cs_Farqual
Messages postés37Date d'inscriptiondimanche 6 janvier 2008StatutMembreDernière intervention15 mars 2009
-
3 sept. 2008 à 10:18
cs_Farqual
Messages postés37Date d'inscriptiondimanche 6 janvier 2008StatutMembreDernière intervention15 mars 2009
-
20 sept. 2008 à 17:42
Bonjour, voila j'ai essayé de faire un programme en c++ mais quelques petites choses ne marchent pas !
Voila mes problèmes :
Le programme s'éteint juste après le lancement (et si je met un " system("pause") " ca me met une erreur !
Le programme ne compte pas en secondes comment faire ?
Voici le code source :
<hr />
#include
<stdio.h>
int
main(){
int compteur=0;printf(
"Vous avez 10 secondes pour crier " Je suis con !!! "\n ");
while(compteur<20){
printf(
"Je compte : %i\n", compteur);compteur++;
}
while(11>compteur>10){
printf(
"Crie le plus fort j'entend pas !");}
while(16>compteur>15){
printf(
"\a OK, cool maintenant tu peux peux aller glandouiller sur MSN !");
}
}
<hr />
Comment faire pour le faire compter en secondes ?
Et aussi pour qu'il ne s'éteigne pas dès l'éxécution ?
BunoCS
Messages postés15472Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention25 mars 2024103 3 sept. 2008 à 11:29
Hello,
Héhé...ça s'est du prog
Alors, pour compter en secondes:
- soit utilisation d'un timer qui t'enverra un "signal" toutes les secondes...mais ptet pas adapter pour un débutant
- soit utilisation de la fonction sleep() en fin de boucle à laquelle tu passes le nombre de milli-secondes à attendre
Malgré cela, à la fin de ta première boucle, compteur vaudra 20 et donc ton prog ne passera jamais dans tes boucles suivantes.
Du coup, je te conseille d'intégrer des 2 dernières boucles dans la 1ère, sous forme de conditions if()
Et pour ton problème de "fin rapide", system("pause")...mais avec l'inclusion du fichier .h qui va avec (windows.h ?? je ne sais plus)
Ai-je été clair? Dans le cas contraire, n'hésites pas à demander des précisions.
Bon courage pour tes 1ers pas en C++!!
@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
zaibacker
Messages postés97Date d'inscriptionvendredi 17 février 2006StatutMembreDernière intervention24 janvier 2018 3 sept. 2008 à 11:41
Salut
-pour compter en seconde moi j'utilise la fonction sleep( temps en ms), la librairy c'est time.h je crois.
-Pour ne pas qu'il s'éteigne à la fin, aparemment tes sous windows , j'utilise à la fin de mon main ( juste avant le return 0; que tu n'as pas mis alors que tu programmes en c++) un getch(); qui appartient à la librairie conio.h. Attention , ce n'est pas standart , donc selon ton compilateur il va comprendre ou non.
BunoCS
Messages postés15472Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention25 mars 2024103 3 sept. 2008 à 20:15
Ah bah non, ton parenthésage n'est toujours pas bon...
Tu ne peux pas mettre ta déclaration de compteur entre accolade car ta variable ne sera pas reconnu en dehors de ce bloc
#include <stdio.h>
#include <windows.h>
int main()
{
printf("Vous avez 10 secondes pour crier " Je suis con !!! "\n ");
int compteur = 0;
while(compteur<20)
{
printf("\nJe compte : %i\n", compteur);
if(compteur==10)
{
printf("Crie le plus fort j'entend pas !");
}
if(compteur==15)
{
printf("\a OK, cool maintenant tu peux peux aller glandouiller sur MSN !");
}
Sleep(1000);
compteur++;
}
getchar();
return 0;
}
@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Farqual
Messages postés37Date d'inscriptiondimanche 6 janvier 2008StatutMembreDernière intervention15 mars 2009 3 sept. 2008 à 14:16
J'ai commencé a programmer le c++ y'a pas longtemps et j'ai que 14 ans et en plus c'est le premier language de progrrammation que j'apprend après le HTML donc j'ai un peu de mal ^^ !
Ca donne ca alors ? :
<hr />#include<stdio.h>
#include<time.h>
int main() {
int compteur=0;
printf(
"Vous avez 10 secondes pour crier " Je suis con !!! "\n ");
while(compteur<20) {
printf(
"Je compte : %i\n", compteur); compteur++;
sleep(1000);
}
while(11>compteur>10)
{
printf(
"Crie le plus fort j'entend pas !");
sleep(500);}
while(16>compteur>15)
{
printf(
"\a OK, cool maintenant tu peux peux aller glandouiller sur MSN !");
BunoCS
Messages postés15472Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention25 mars 2024103 3 sept. 2008 à 14:35
Eh non...ce n'est pas encore bon:
- regarde mes remarques concernant les boucles
- rien ne sera exécuté après un return: ton getchar() (plutôt que getch() ) doit être fait avant
Je te montres le squelette du programme.
int main()
{
// Affichage du message d'intro
[Je te laisse faire]
// Compte-à-rebours
int compteur=0;
while (compteur < 20)
{
// Affichage du 1er message au bout de 10 secondes
if (compteur==10)
{
[Je te laisse faire]
}
[Je te laisse faire]
// Attendre 1 seconde;
sleep(1000);
compteur++;
}
// attendre la saisie d'un caractère avant d'arrêter le programme
getchar();
return 0;
}
@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
cs_Farqual
Messages postés37Date d'inscriptiondimanche 6 janvier 2008StatutMembreDernière intervention15 mars 2009 3 sept. 2008 à 15:17
J'ai fait ceci :
<hr />#include
<stdio.h>#include
<time.h>
int
main(){
printf(
"Vous avez 10 secondes pour crier " Je suis con !!! "\n ");
int compteur = 0;
while(compteur<20)printf(
"Je compte : %i\n", compteur);{
if(compteur==10){
printf(
"Crie le plus fort j'entend pas !");}
if(compteur==15)}
printf(
"\a OK, cool maintenant tu peux peux aller glandouiller sur MSN !");sleep(1000);
compteur++;
getchar();
return 0;}
<hr />
Je pense que c'est mal structuré et il y a cette erreur qui m'intrigue :
1>c:\documents and settings\eric\bureau\1er programme\main.cpp(20) : error C3861: 'sleep' : identificateur introuvable
cs_Farqual
Messages postés37Date d'inscriptiondimanche 6 janvier 2008StatutMembreDernière intervention15 mars 2009 3 sept. 2008 à 15:17
J'ai fait ceci :
<hr />#include
<stdio.h>#include
<time.h>
int
main(){
printf(
"Vous avez 10 secondes pour crier " Je suis con !!! "\n ");
int compteur = 0;
while(compteur<20)printf(
"Je compte : %i\n", compteur);{
if(compteur==10){
printf(
"Crie le plus fort j'entend pas !");}
if(compteur==15)}
printf(
"\a OK, cool maintenant tu peux peux aller glandouiller sur MSN !");sleep(1000);
compteur++;
getchar();
return 0;}
<hr />
Je pense que c'est mal structuré et il y a cette erreur qui m'intrigue :
1>c:\documents and settings\eric\bureau\1er programme\main.cpp(20) : error C3861: 'sleep' : identificateur introuvable
BunoCS
Messages postés15472Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention25 mars 2024103 3 sept. 2008 à 16:09
Problème de parenthèses, jeune Padawan :
- Après ton while, le printf doit être inclus dans l'accolade
- if (compteur==15) --> il n'y a rien dans ton test
- entre compteur++ et getchar(), il manque l'accolade de fin du while
@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
BunoCS
Messages postés15472Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention25 mars 2024103 4 sept. 2008 à 13:45
Hey! Bien vu JejeLand!
C'était pour voir si vous suiviez Nan, bon, ok, j'm'a gourré....
@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...