Devenir membre club
Connectez vous
Aide & règlement
Votre 1ère visite
Le règlement
Contacter les admins
Contacter le webmaster
Questions & réponses
Comment soutenir CodeS-SourceS
Comment faire un lien vers CodeS-SourceS
Autres questions
A propos & don
A propos du réseau
Les modérateurs
Remerciements
Faire un don
Le livre d'or
Tous les livres
Les dernières parutions
Les plus consultés
Les critiques
Le top des ventes
Le top favoris des membres
Recevoir des livres blancs
Tous les thèmes
Les derniers messages
Les nouveaux messages
Poser une question
Le Chat - IRC
Tous les tutoriels
Ajouter un tutoriel
Les tutoriels en vidéo
Les formations vidéos
Tous les codes
Ajouter un code
Filtrer par catégorie
Filtrer par date
Les plus récents
Les mis à jour
Les codes par jour
Filtrer par niveau
Niveau débutant
Niveau initié
Niveau expert
Filtrer par type
Les codes avec capture
Les codes avec zip
Les codes .Net
Filtrer par qualité
Les plus populaires
Les plus populaires du mois
Les plus téléchargés
Les mieux notés
Top par catégorie
Top des favoris
Filtrer par auteur
Tous les auteurs
Le top des membres
Les snippets
Déposer votre CV
Consulter les offres d'emploi ou de stage
Consulter les CVs
Déposer une offre d'emploi ou de stage
Modèles de CV et lettres
Trouver une convention collective
Les écoles d'informatique
Toutes les écoles
Ajouter une école
Les outils
Outils pour développeurs
Trouver des ressources
Base de données de CodeS-SourceS
Télécharger les meilleurs logiciels
Comparer les prix
Envoyer des ecards
Création de bannières
Annuaire de la prog
Tous les sites
Ajouter votre site
Le dico de la prog
Toutes les définitions
Ajouter une définition
Les évènements
Tous les évènements
Les évènements à venir
Ajouter un évènement
Téléchargements
CodeS-SourceS Toolbox
CodeS-SourceS Toolbar
Toolbar pour FireFox
Fonds d'écran
Les compil's
Nos partenaires
Magazine Programmez
Frontier.fr
Xiti
ProgOnline
Winwise
Editions Eyrolles
Toute la liste
Les RFC
CS
VB, VB.NET
ASP.NET,ASP
C, C++
ColdFusion
PHP
Javascript
Delphi
Flash
Java
Graphisme
Irc
Assembleur
C#
Mobilité
SQL
Foxpro
Python
Regex
Flex
Windev
Ce site au démarrage
begin process at 2012 02 14 02:55:37
Accueil
Codes
Tutoriels
Forum
Livres
Emploi
Services
Connexion
Trouver un code source :
dans
Tout le site
Codes
Tutoriels
Forum
Blogs
Livres
RFC
Icones
News .NET
Boutique
[ Dernières recherches ]
Veuillez saisir votre recherche... Ex: smtp, lire un fichier, rs232
Options de recherche :
Tous les codes
Tous les codes en .Net
Tous les codes sauf .Net
Langages disponibles :
Tous les langages
ASP / ASP.NET
Assembleur
C / C++ / C++.NET
C# / C#.NET
ColdFusion
Delphi
Flash
Flex, Air, ActionScript
Foxpro
Graphisme
IRC
JAVA / J2EE
Javascript / Ajax / DHTML
PDA / PocketPC
PHP
Python
Regex, Regular Expression, Expression régulière
SQL
Visual Basic, VB6, VB.NET, VB 2005, VB
28 commentaire(s) de Chouchou182
sur des sources sur tout
CodeS-SourceS
Déposé sur
Les opérations de la liste chainée
Salut,
Quelques remarques (suggérées par un compilateur):
Lignes 51 et 52, il y a deux if et ligne 58 un else; à quel if se rapporte-t-il ? Je sais qu'il y a une réponse, mais on risque toujours de se tromper. Alors autant mettre des accolades !
Ligne 119, une variable k est déclarée; jamais utilisée.
Ligne 170, une fonction inconnue est appelée. Peut-être est-elle connue de dev-C++ mais celui-ci est obsolète...
Enfin, la fonction main DOIT retourner un int (puisqu'elle est déclarée int main())...
---
Venons-en à scanf.
«[scanf] renvoie[...] le nombre d'éléments d'entrées correctement mis en correspondance et assignés. Ce nombre peut être plus petit que le nombre d'éléments attendus, et même être nul, s'il y a une erreur de mise en correspondance.» (le manuel)
Conclusion, il FAUT vérifier quelle est la valeur retournée.
Si l'utilisateur fait une erreur de saisie, le programme peut «boucler» indéfiniment. C'est fâcheux.
---
Dans le cas 5 (du switch principal), il me semble que
z=detruire(z);
serait plus adéquat qu'un simple
detruire(z);
---
Une dernière remarque pour la route. La fonction Supprdebut est-elle récursive à dessein ? Que penserais-tu d'une version récursive comme toutes les autres ?
Ce code servirait encore mieux le néophyte s'il était agrémenté de quelques commentaires.
Bonne prog.
--
Chouchou.
Posté le :
24/04/2010 18:12:42
Déposé sur
Pong en sdl
Oula
en effet, j'ai fumé quoi moi ??
Il faut donc utiliser le type de donnée dont la taille en mémoire correspond à la capacité recherchée (256 octets est trop et 1 octet est effectivement insuffisant).
Merci Kirua pour ta présence d'esprit.
Posté le :
03/02/2005 17:56:49
Déposé sur
Pong en sdl
Salut
Shenron666, pour mapper l'état (appuyé ou non) de 256 touches, un octet suffit : 1 bit par touche et on utilise des and et or bit à bit pour faire les tests.
Ce sera plus rapide et l'utilisation de la mémoire sera moindre.
Personnellement j'intercepte les appuis des touches via SDL_KEYDOWN et SDL_KEYUP et j'ajuste par des opérations logiques l'état des bits de ma variable contenant l'état des inputs de mon jeu.
Ensuite pour déplacer, je teste successivement l'état de chaque touche et agis en conséquence.
Bonne prog
Chouchou
Posté le :
02/02/2005 22:18:06
Déposé sur
Galerie d'image avec réation de miniature et compression des ...
Salut
Je poste l'ensemble corrigé, il est disponible à cette adresse :
http://www.phpcs.com/code.aspx?ID=25025
A++
Chouchou
Posté le :
30/07/2004 11:55:48
Déposé sur
Compte à rebour en c++
Bonjour.
Tu es sûrement débutant ; il ne faut pas se décourager mais tu as encore quelques progrès à faire.
Tout d'abord ton compte à rebours n'a rien de "très simple". Il est totalement illisible.
Il y a trop d'includes : <iostream> et <ctime> auraient suffi.
L'ordinateur sait faire des calculs sur des nombres plus grand que 10, il n'est donc pas nécessaire de traiter chiffre par chiffre.
cout c'est du C++, getch() c'est pas standard. Alterner n'est pas l'idéal d'un point de vue logique du programme.
L'utilisation de goto ainsi que celle de l'opérateur virgule sont plutôt à bannir. Dans certains cas ils peuvent être utiles mais pas dans ton programme.
La méthode aussi a des lacunes, tu attends 1000 millisecondes mais tu ne mesures pas le temps nécessaire à l'affichage et aux calculs. Donc tes secondes sont un peu trop longues.
Nous allons donc refaire un compte à rebours en C ansi lisible :
[Code]
/* rebours.c */
/* Includes */
#include <stdio.h> /* Pour les entrées / sorties */
#include <time.h> /* Pour mesurer le temps qui passe */
/* main */
int main(int argc, char** argv)
{
/* Variables */
/* Durées entrées par l'utilisateur */
time_t heures = 0, minutes = 0, secondes = 0 ;
/* Temps à patienter en secondes, déduit de la saisie de l'utilisateur */
time_t temps = 0 ;
/* Heure du début du compte à rebours */
time_t debut = 0 ;
/* Temps écoulé et temps écoulé précédant */
time_t temps_ecoule = 0, precedant = 0 ;
/* On affiche un petit message de bienvenue */
puts("-- Compte \205 rebours --\n") ;
/*
* On commence par demander à l'utilisateur
* la durée du compte à rebours
*/
/* On lit le nombre d'heures... */
puts("Entrez le nombre d\'heures \205 attendre : ") ;
scanf("%d", &heures) ;
/* ...puis le nombre de minutes... */
puts("Entrez le nombre de minutes \205 attendre : ") ;
scanf("%d", &minutes) ;
/* ...et enfin le nombre de secondes */
puts("Entrez le nombre de secondes \205 attendre : ") ;
scanf("%d", &secondes) ;
/*
* On convertit la saisie de l'utilisateur en un nombre de secondes
*/
temps = secondes + minutes * 60 + heures * 3600 ;
/*
* Maintenant on boucle tant que le temps n'est pas écoulé.
* C'est une boucle infinie qui utilise toute la puissance de calcul
* du CPU.
*/
/* On récupère l'heure de début du compte à rebours */
time(&debut) ;
while ( temps > (temps_ecoule = time(0) - debut) )
{
/* Seulement lorsque le temps écoulé change : */
if ( precedant == temps_ecoule )
continue ;
/* On convertit le temps restant au format h-m-s */
secondes = (temps-temps_ecoule) % 60 ;
minutes = ( ((temps-temps_ecoule) - secondes) / 60 ) % 60 ;
heures = (((temps-temps_ecoule) - secondes) / 60 - minutes) / 60 ;
/* On affiche le temps restant */
printf("\r%02ih%02im%02is soit %06is", heures, minutes, secondes, (temps-temps_ecoule)) ;
/* On sauve le temps écoulé */
precedant = temps_ecoule ;
}
/*
* Un petit message d'adieu pour que le programme
* ne se ferme pas avant que l'utilisateur ne l'ai vu
* en entier
*/
puts("\nC\'est fini !!\nEntrez une valeur pour terminer\n") ;
getchar() ;
return 0 ;
}
[/Code]
Cette méthode n'est toujours pas idéale. En effet elle consomme toutes les resources disponibles et n'est fiable qu'à la seconde près.
J'espère que ce code te servira.
Et si tu as des questions, surtout, n'hésite pas.
A++
Chouchou
Posté le :
25/07/2004 23:51:51
Déposé sur
Galerie d'image avec réation de miniature et compression des ...
Salut à vous, belle compagnie !!
Puisque Mr Aramiil est allé passer ces vacances dans un pays peuplé d'ostrogoths sans PC, j'ai résolu le problème.
Je ne sais pas si tu avais fait des tests avant de poster parce que réussi à inclure un fichier qui n'existe pas, chapeau.
compress.php existe mais compres.php?file_to.... lui, n'existe pas !!
Donc la ligne avec l'include défaillant (46 si je ne m'abuse) est à remplacer par :
compress($image, $title) ;
la fonction compress est la copie presque conforme du fichier compress. Il y a tout de même quelques modifications à faire donc je donne tout le début du fichier compress_dir.php :
<?
//on inclu la fonction de miniaturisaton
include('mini.php');
include('param.php');
// Fonction de compression
function compress ($file, $__title)
{
global $directory, $login, $serveur, $pass, $base ;
// On se protège contre les apostrophes dans le noms de fichier. Le KHANARD qui a inventé ça ...
$file = addslashes($file) ;
// On se protège aussi des utilisateurs qui savent pas que les guillemets, ça passe mal
$title = addslashes($__title) ;
//on determine le fichier à compresser
$file_to_c_whithout_path = $file;
$file_to_c = $directory.$file_to_c_whithout_path;
//on l'ouvre
if ($file_open = @fopen($file_to_c, "r+"))
{
//on lit les données
$data = fread($file_open, filesize($file_to_c));
//on ferme le fichier
fclose($file_open);
//on compress les données
$compress = bzcompress($data, 9);
//on ouvre le fichier de sauvegarde
if ($file_open = @fopen($file_to_c.'.bz', "w+"))
{
//on inscrit les données
fwrite($file_open, $compress);
//on ferme le fichier
fclose($file_open);
} else {
//on affiche l'erreur
echo 'Impossible d\'ouvrir le fichier compréssé';
exit;
}
//on recupere les infos
$info = pathinfo($file_to_c);
//on lance la miniaturisation
miniature($file_to_c, $file_to_c_whithout_path, strtolower($info["extension"]));
unlink($file_to_c);
//on créé le titre
$connection = MySQL_connect($serveur, $login, $pass) or die(mysql_error());
mysql_select_db($base, $connection) or die(mysql_error());
MySQL_query("INSERT INTO titres (image, titre) VALUES ('$file_to_c_whithout_path', '$title')", $connection) or die(mysql_error());
MySQL_close($connection);
//on affiche confirmation
echo 'L\'image '.$file_to_c.' à bien été compréssée.<br>';
} else {
//affichage de l'erreur
echo 'Impossible d\'ouvrir le fichier à compresser.';
}
}
//on regarde l'action
$act = $_POST['act'];
//....
Le reste, vous l'avez déjà
Bonnes vacances à ceux qui en ont et bonne prog à tous !
A++
Chouchou
Posté le :
08/07/2004 16:28:53
Déposé sur
Coloration syntaxique d'un fichier source en c/c++ (dev-c++)
Salut
C'est sympa comme source
Je pense que tu aurais pu programmer une routine de comparaison du mot en cours avec un tableau contenant tous les mots-clés. Parce que là c'est plutôt long ce gros switch suivi de pas mal de if...
En utilisant strncmp ce serait également allé plus vite (à programmer)
Sinon il manquait effectivement string.h (et pas strings.h) mais ce n'est pas dramatique
A++
Chouchou
Posté le :
04/07/2004 12:54:56
Déposé sur
Bijection explicite entre n et q+
Salut
Je pense avoir résolu le problème lié à cin provoquant un affichage ininterrompu en cas de saisie maladroite de la part de l'utilisateur. Voila les modifications :
-Saisie de 'choix' pour le menu :
fflush(stdin) ;
choix = getchar() - 48 ;
-Saisie de 'valeur' pour la case 1:
char val[50] ;
cin >> val;
valeur = atoi(val) ;
-Méthode de saisie d'une fraction:
istream & operator >> (istream & in, fraction &b)
{
char val[50] ;
in >> val ;
b.numerateur = atoi(val) ;
in >> val ;
b.denominateur = atoi(val) ;
b.simplifier();
return in;
}
Le principe est simple : on récupère la saisie de l'utilisateur comme une chaîne de caractères et transforme à l'aide de atoi. En cas d'erreur, atoi renvoie 0 donc le programme continue sans problème.
Bonne Prog !
Chouchou.
Posté le :
23/06/2004 23:30:14
Déposé sur
Remplace dans toute une chaine
Salut
Je ne voudrais pas critiquer mais si cette source est un exemple, c'est pas vraiment très clair.
Certes on apprend mieux en essayant de comprendre seul mais quelques commentaires seraient bienvenus parce que certaines lignes peuvent rester obscures pour le programmeur peu averti.
Merci.
Chouchou
Posté le :
23/06/2004 16:49:19
Déposé sur
Un simple calculette pour débutants...(dev-cpp)
Salut
Pourquoi inclure stdio ?
J'ai pas regardé la source en détail mais je n'en ai pas trouvé l'utilité (de l'include)
De plus une seule fonction avec un switch suffirait plutot qu'un switch pour choisir la fonction.
Bonne prog
Chouchou
Posté le :
20/04/2004 22:01:09
1
2
3
Nos sponsors
Derniers Blogs
XNA IS DEAD!
XNA IS DEAD!
par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier. OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article
par richardc
TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !
TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !
par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article
par ROMELARD Fabrice
[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)
[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)
par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article
par Gio
TECHDAYS PARIS 2012 : CHUCK MORRIS N'A PAS PEUR DES MALWARES, CE SONT LES MALWARES QUI ONT PEUR DE CHUCK MORRIS
TECHDAYS PARIS 2012 : CHUCK MORRIS N'A PAS PEUR DES MALWARES, CE SONT LES MALWARES QUI ONT PEUR DE CHUCK MORRIS
par ROMELARD Fabrice
Speakers: Pascal Sauliere, Arnaud Lheureux, Stanislas Quastana et Cyril Voisin Cette session a pour but de présenter les grands risques présents sur Internet aujourd'hui, aussi bien pour les particuliers que les entreprises. Arnaques c...
Cliquez pour lire la suite de l'article
par ROMELARD Fabrice
[WP7] DYNAMICALLY CHANGE STARTUP PAGE
[WP7] DYNAMICALLY CHANGE STARTUP PAGE
par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article
par KooKiz
La suite
RSS
Côté IT
Utiliser Office 365 pour un projet d?équipe - PART 2
Utiliser Office 365 pour un projet d?équipe - PART 1
SharePoint 2007 : Installation du Service Pack 3 de MOSS
SharePoint 2007 : Installation du Service Pack 3 de WSS V3
Installation de SQL Server DENALI CTP3
Mise à jour de Windows 2003 R2 vers Windows 2008 R2
Upgrade de SQL Server 2005 vers SQL Server 2008 R2
La suite
RSS
Offres d'emploi
Recherche Recherche développeur web ASP et ASP.Net
Recherche Analyste Programmeur Adélia
Recherche Développeur eZ Publish confirmé
Recherche AP (H/F) ACCESS EXCEL VBA
Recherche SUPPORT INFORMATIQUE / DEVELOPPEUR
Recherche Developpeur web
Recherche développeur Web
Déposer une offre
La suite
RSS
Formations Video
Coffret : Ateliers sur la mode
Atelier sur la mode : Motifs et matières
Atelier sur la mode : La planche tendance
Atelier sur la mode : De retour de pige et repérage
Corel Painter 12 : Les fondamentaux
Coffret : Microsoft Office 2010 de A à Z
De Microsoft Office 2003 à 2007 et 2010
La suite
RSS
Appels d'offres
URGENT - Realisation d-un flux standard XML -NewsML- CAHIER DES CHARGES DISPONIBLE
Budget :
400€
Creation de newsletter sur une page Facebook
Budget :
400€
fichier d-export de site OS commerce ver plateforme logistique-CDC disponible
Budget :
1 200€
La suite
RSS
Logiciels
DocTranslate (V3.1.0.0)
DOCTRANSLATE (V3.1.0.0)
DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom...
Cliquez pour télécharger DocTranslate
Tribler (2012)
TRIBLER (2012)
Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des...
Cliquez pour télécharger Tribler
OneSwarm (2012)
ONESWARM (2012)
Le peer-to-peer qui protège votre vie privée, c'est OneSwarm. Ce logiciel de peer-to-peer crypté...
Cliquez pour télécharger OneSwarm
PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)
PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)
PONAMEDIA TV DEVIENS HELLLOOO FLASH LA TV SUR VOTRE ORDINATEUR. Toute une plateforme Multi...
Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO
Academy System (17.2.1.0)
ACADEMY SYSTEM (17.2.1.0)
Logiciel de gestion des établissements. - élèves/étudiants (inscription, dossier, absence...) -...
Cliquez pour télécharger Academy System
+ de logiciels à télécharger
Vidéos drôles
Halloween Party
Terry Tate Office Linebacker Superbowl 2003
Jeu vidéo instructif
C'est un véritable vol !
Banana Song
Comment attraper la grippe A
Parodie Pub Window 7
La suite
RSS
Sondage...
Votre navigateur n'utilise pas le javascript, pour
voter aux sondages de ce site, cliquez ici
Statistiques
1 874 204
membres
5
nouveaux aujourd'hui
16 152
membres club
Comparez les prix
Apple iPad 2 (16 GB) Wi-Fi White Tablet PC
Entre 639€ et 639€
Visiter le guide achat
CalendriCode
Février
2012
L
M
M
J
V
S
D
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Consulter la suite du CalendriCode
Photothèque
Visiter la photothèque
CS Tool Box