Besoin d'aide programme simple .cpp

cs_benjamin71 Messages postés 4 Date d'inscription mercredi 27 décembre 2000 Statut Membre Dernière intervention 24 novembre 2008 - 23 nov. 2008 à 20:48
fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 - 25 nov. 2008 à 16:19
Bonjour à tous, j'ai un petit programme à faire et je n'ai pas pu installer le logiciel sur mon pc alors j'aimerais vous montrer ce que j'ai fais pour savoir si ca va marcher en cours lors de l'interro.




En fait, c'est un programme très simple pour vous je pense, mais bien assez complexe pour moi lol. Le but est lorsque l'on tape le numéro du département (j'ai choisi 71, 89, 21, 58) le programme nous affiche le nom du département.




Alors voila ce que j'ai fais :


#include<stdio.h>
void main ()
{char code [20];
float 71 21 58 89 region


{code=France;
while(code!=France);
printf("Entrer le nom du pays ");
scanf("%s", &code);
}


{code=Bourgogne;
while(code!=Bourgogne);
printf("Entrer le nom de la région ");
scanf("%s", &code);
}




{printf("Entrer le numéro du département : %f \n", region);
if(region=71)
printf("Ce numéro correspond au département de la Saone et Loire \n");


if(region=21)
printf("Ce numéro correspond au département de la Cote dOr \n");


if(region=58)
printf("Ce numéro correspond au département de la Nievre \n");


else printf("Ce numéro correspond au département de lYonne \n");




}
}




Merci de me dire si mon programme fonctionne ou non, et si possible me dire ce qui ne va pas.




Merci beaucoup d'avance.
Benjamin

10 réponses

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
23 nov. 2008 à 21:37
salut

on va prendre seulement le debut de ton code :

void main ()
{char code [20];
float 71 21 58 89 region

{code=France;
while(code!=France);


normalement, c'est int main(int argc, char ** argv) et pas void main()

ensuite,
float 71 21 58 89 region
ca ne veut rien dire.

ton accolade sert a quoi ?
code = France // ou declares tu France ?
while(code!=France); // idem
et ensuite, dans ta boucle while, pourquoi ce ; a la fin ?

bref, moi je te conseille d'apprendre le C, parce-que t'as au moins une erreur par ligne...
0
cs_benjamin71 Messages postés 4 Date d'inscription mercredi 27 décembre 2000 Statut Membre Dernière intervention 24 novembre 2008
23 nov. 2008 à 21:45
Bah pourtant sur le logiciel que l'on a l'iut (Microsoft Visual), on utilise bien void main ()

Et l'accolade permet de débuter le programme, c'est que que l'on a vu en cours.

Peut etre que c'est parce qu'on utilise pas le même programme non ?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 nov. 2008 à 23:28
NON,
VC++ n'a rien à voir dans l'affaire, ton "code" n'en est pas un et est donc incompilable.
Comme dit plus haut, il faut étudier la syntaxe du C avant toute chose.

ciao...
BruNews, MVP VC++
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
24 nov. 2008 à 11:46
l'accolade indique le debut d'un bloc.

et benjamin, les normes des langages ne parlent pas des programmes. peu importe ton compilateur, en C, sur un pc, on doit faire int main (sur un pic c'est different)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_benjamin71 Messages postés 4 Date d'inscription mercredi 27 décembre 2000 Statut Membre Dernière intervention 24 novembre 2008
24 nov. 2008 à 12:57
Voila le début d'un programme fait en cours :
#include<stdio.h>
#include<math.h>
void main ()


{float A, B, C, delta, x1, x2;


printf("Entrer A : ");
scanf("%f", &A);


printf("Entrer B : ");
scanf("%f", &B);


printf("Entrer C : ");
scanf("%f", &C);




if(A==0)
{
if(B==0)
{if(C==0)
printf("Infinite de solution \n");


else printf ("impossible \n");
}


else { printf("Equiation de degré 1 \n");
x1=-C/B;


printf("Solution x=%6.1f \n", x1);
}
}


else {delta=B*B-4*A*C;
if(delta<0)
printf("racines complexes \n");


else if(delta==0)
{x1=-B/2/A;
printf("solution double x=%6.2f, \n", x1);
}


else {x1=(-B+sqrt(delta)/2/A);
printf("deux solutions , x1=%6.2f, \n", x1);
x2=(-B-sqrt(delta)/2/A);


printf("x2=%6.2f, \`n",x2);


}
}
}




Voila le programme que l'on a fait pour la résolution d'une équation du second degré;, mais comme tu peux le constater, ca ne ressemble pas tellement au programme que tu as modifié, non ?
0
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
24 nov. 2008 à 13:38
void main() suffit, dans son cas il n'a pas besoin de récupérer de paramètres (il les récupère plus tard, avec un scanf(); ).
Mais benjamin71, les accolades { et } servent à insérer un bloc de commandes.
La ligne "{float A, B, C, delta, x1, x2;" est correcte, mais pas jolie (la preuve, ça t'a induit en erreur).
L'accolade est en fait celle du début du main (donc rien à voir avec le float).
En gros, main(); est la fonction principale de ton programme, et comme il y a plusieurs instructions dedans, on lui met des accolades.
void main()
{
//instructions
}
J'explique assez mal, je l'accorde. Comme dit plus haut : apprend la syntaxe du C...
Je ne veux pas être méchant mais réaliste : mais si tu avais été noté sur ton code, tu aurais eu sans doute 1/20 pour avoir bien inclus le header stdio.h
Allez, courage !

Cordialement, uaip.
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
24 nov. 2008 à 14:41
quand je parlais d'accolade en trop, je parlais de celle ci :

{code=France;

et non de celle de la fonction main (qui, j'insiste... doit renvoyer un int)
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 nov. 2008 à 14:55
main() renvoie toujours quelque chose, si pas explicitement alors sera 0 pour la libc.

Ne pas oublier que main() n'est pas le "vrai" point d'entrée ni de sortie du prog dans le binaire compilé quand on bosse avec CRT, donc main() a plusieurs formes admissibles.

ciao...
BruNews, MVP VC++
0
cs_benjamin71 Messages postés 4 Date d'inscription mercredi 27 décembre 2000 Statut Membre Dernière intervention 24 novembre 2008
24 nov. 2008 à 17:30
Vous inquiétez pas, je suis en DUT GMP, et on fait de l'info juste pour avoir les bases mini de la programmation.

C'est bon, j'ai réussi a un installer visual sur mon pc et j'ai réussi a modifier mon programme.

Je vous remercie tous de m'avoir accordé un peu de votre temps.
0
fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 4
25 nov. 2008 à 16:19
Salut,


Ne néglige pas trop la programmation.
Il y a 10ans (donc ce que je vais dire est encore plus vrai aujourd'hui), j'étais en GEII alors que des amis étaient en GMP, j'étais souvent sollicité pour des pb d'électronique et d'info. Si tu veux continuer après ton DUT, l'informatique sera beaucoup présente.
Et je ne parle pas de ta future vie professionnelle. Dans l'équipe où j'étais avant, 2 ingé sur environ 15 avaient un diplôme en méca. Et on faisait tous du dév logiciel.
0
Rejoignez-nous