Bloc conditionnel If [C/C++][Débutant] - Programmation
Marsh Posté le 08-11-2001 à 00:36:24
tu fait un
int main()
{
char a;
clrscr();
cout<<"Veuillez taper un caratère : \n";
cin>>a;
if((a == 'a' || (a == 'e' || (a == 'i' || (a == 'o' || (a == 'u' || (a == 'y')
cout <<"voyelle";
else
cout << "consonne";
getch();
return(0);
}
programme finit
[edtdd]--Message édité par koulip31--[/edtdd]
Marsh Posté le 08-11-2001 à 00:37:25
merci beaucoup
et puis merci pour le y que j avais oublie dans les voyelles
[edtdd]--Message édité par cowabunga--[/edtdd]
Marsh Posté le 08-11-2001 à 00:46:21
koulip31 a écrit a écrit : tu fait un int main() { char a; clrscr(); cout<<"Veuillez taper un caratère : \n"; cin>>a; if((a == 'a' || (a == 'e' || (a == 'i' || (a == 'o' || (a == 'u' || (a == 'y') cout <<"voyelle"; else cout << "consonne"; getch(); return(0); } programme finit |
Ouais mais un caractère c pas forcément une lettre...
'2' c pas un consonne... et '&' non plus...
Marsh Posté le 08-11-2001 à 01:07:14
tu fait un
if ((a >= 'a' && (a <= 'Z')
aant et basta
voir tab de code ascii avant je suis plus sur si c'est lalphabet en min avant celui en maj ou inversement
Marsh Posté le 08-11-2001 à 01:09:04
kwiky a écrit a écrit : Ouais mais un caractère c pas forcément une lettre... '2' c pas un consonne... et '&' non plus... |
très juste, du coup tu rajoute une condition:
if((a == 'a' || (a == 'e' || (a == 'i' || (a == 'o' || (a == 'u' || (a == 'y')
cout <<"voyelle";
else if( c > 'a' && c<='z'
cout << "consonne";
else
cout << "autre caractère";
et ne pas oublier q les codes ASCII des minuscules ne sont pas les meme q les majuscules...
Marsh Posté le 08-11-2001 à 01:10:34
koulip31 a écrit a écrit : tu fait un if ((a >= 'a' && (a <= 'Z') aant et basta voir tab de code ascii avant je suis plus sur si c'est lalphabet en min avant celui en maj ou inversement |
on a posté en meme temps, .
mais t'as été plus rapide, respect.
d'abord les MAJ et ensuite les min
[edtdd]--Message édité par xmulder--[/edtdd]
Marsh Posté le 08-11-2001 à 01:15:20
xmulder a écrit a écrit : très juste, du coup tu rajoute une condition: if(a =='a' || a=='e' || a=='i' || a=='o' || a=='u' || a=='y' || a =='A' || a=='E' || a=='I' || a=='O' || a=='U' || a=='Y' cout <<"voyelle"; else if( a > 'a' && a <='z' || a > 'A' && a <='Z' ) cout << "consonne"; else cout << "autre caractère"; et ne pas oublier q les codes ASCII des minuscules ne sont pas les meme q les majuscules... |
[edtdd]--Message édité par xmulder--[/edtdd]
Marsh Posté le 08-11-2001 à 01:17:19
sauf ke toi ta oublie le maj
et moi tu rajoute cette ligne au debut du prog donc 1line de + toi 2
i am the best sur un prog comme ca jai honte
Marsh Posté le 08-11-2001 à 01:20:46
koulip31 a écrit a écrit : sauf ke toi ta oublie le maj et moi tu rajoute cette ligne au debut du prog donc 1line de + toi 2 i am the best sur un prog comme ca jai honte |
permets moi de te corriger, prends ta table ASCII et regarde ce q'il y a entre 'Z' et 'a'... pas mal de chose.
donc ton a>'a' && a<='Z' est faux.
j'ai édité mon message pour donner la soluce complete.
allez, sans rancune
et en tte modestie, je suis pas le moins bon...
Marsh Posté le 08-11-2001 à 01:24:13
Citation : else if( a > 'a' && a <='z' || a > 'A' && a <='Z' ) |
hihi je te corrige
if ((a >='a') && (a <='z') || (a >= 'A') && (a <='Z'))
bizar les = se mettent pas en gras je les ais soulignés
[edtdd]--Message édité par koulip31--[/edtdd]
Marsh Posté le 08-11-2001 à 01:25:19
koulip31 a écrit a écrit :
|
bonne reponse
vous y etes enfin arrivés
j'hallucine
Marsh Posté le 08-11-2001 à 01:26:28
Skylight a écrit a écrit : enfin il mank encore un truc |
2 paire de parenthese en fonction des prioritees
les lettres accentue si on est en france
le elset si on est en allemagne
les lettre tilde si on est enespagne
[edtdd]--Message édité par koulip31--[/edtdd]
Marsh Posté le 08-11-2001 à 01:26:45
koulip31 a écrit a écrit :
|
[edtdd]--Message édité par Skylight--[/edtdd]
Marsh Posté le 08-11-2001 à 01:28:38
enfin le a > 'a' c juste car le a est une voyelle dc pa bezoin de l'inclure ds la condition
Marsh Posté le 08-11-2001 à 01:30:21
le && nest pas prioritaire sur le || ? si oui tes parentheses ne servent a rien
moi je place cette condition en 1er (avan la serie de ||) donc le A je le verifie aussi
[edtdd]--Message édité par koulip31--[/edtdd]
Marsh Posté le 08-11-2001 à 01:32:00
koulip31 a écrit a écrit : le && nest pas prioritaire sur le || ? si oui tes parentheses ne servent a rien moi je place cette condition en 1er (avan la serie de ||) donc le A je le verifie aussi |
oui mais bon pour un effet de clarté vo mieu les mettre enfin moi je les mets tjs, c'est + clair
Marsh Posté le 08-11-2001 à 01:32:03
koulip31 a écrit a écrit :
|
d'une part, les parenthèses en sont pas obligatoires car les opérateurs de comparaisons sont prioritaires sur les opérateurs logique
(d'abord les > et ensuite les &&)
d'autre part, on peut se contenter d'un a>'a'plutot q d'un a>='a' (mais pas pour le Z) car on ne veut pas d'une voyelle...
donc g encore raison, comme d'hab.
Marsh Posté le 08-11-2001 à 01:34:54
[edtdd]--Message édité par xmulder--[/edtdd]
Marsh Posté le 08-11-2001 à 01:36:22
xmulder a écrit a écrit : c dans les vieux pots q'on fait les meilleures soupes |
Marsh Posté le 08-11-2001 à 01:40:21
arff c'est zarb kar sans les parenthese il m'est deja arrive des trucs zarbs comme koi
voyelle ou consonne men fout car je met ca avant tout au debut en gros je teste mon interval avant de determiner si c'est une voyelle ou une consonne donc besoin autan du a que du z
Marsh Posté le 08-11-2001 à 01:42:59
koulip31 a écrit a écrit : arff c'est zarb kar sans les parenthese il m'est deja arrive des trucs zarbs comme koi voyelle ou consonne men fout car je met ca avant tout au debut en gros je teste mon interval avant de determiner si c'est une voyelle ou une consonne donc besoin autan du a que du z |
ql genre de truc bizarr?
tu utilises ql compilateur?
Marsh Posté le 08-11-2001 à 01:52:07
en ce momen VC++ et defois gcc
ben les condition ki se fesaient pas dans le bon ordre ou ki chiaent tout bonnement deouis je fout des parentheses partout ca gonfle le code betement mais au moin ca me chie pas dans les ailes
sous gcc ca arrive + ou - souvent ce genre de truc vais essayer de te trouver un eexemple
Marsh Posté le 08-11-2001 à 08:35:35
ouais,
c'est pas encore ça. vous êtes Anglais ? nan, bon ben é c'est une voyelle non ! me dites pas que c'est pas la peine de le prendre en compte, c'est avec des truc comme ça qu'on oublie les accent sur les noms propre. Au fait pour les majuscules aussi, je rappelle que pour les noms propres les accents sur majuscule sont a respecter. MALLARMÉ, AYMÉ, ... É est une voyelle.
p'tit coup main, dans windows appeler la table des caractères. il s'agit de tous les carac > 191.
[edtdd]--Message édité par Barbarella--[/edtdd]
Marsh Posté le 08-11-2001 à 10:02:08
c tres gentil d avoir grandement ameliore mon programme, mais j ai commence le C il y a quelques jours, mon prof va se poser des questions ,je vais garder la premiere version de Koulip31 car elle doit se rapprocher des souhaits du prof
Mais aumoins j ai appris quelquechose, merci a tous
Marsh Posté le 08-11-2001 à 10:23:35
réponse incomplete,
mais bon raissonement. Je suppose que si tu prenais en compte les accents ton prof te prendrait pour un p'tit génie qui pense a tout ou ... a une grosse aide provenant de l'espace intersidérale
Mais si un jour tu as un prog pro a faire pense a ces accents. Il est inadmissble que l'informatique d'aujourd'hui ne les prenne en comtpe.
Marsh Posté le 08-11-2001 à 10:32:55
et tant qu'on y est, ne pas oublier les cédilles ! ç et Ç, les ligatures æ, œ ...
Marsh Posté le 08-11-2001 à 10:38:18
eh oui,
tous ces caratères sont situés au-dessus des ascii > 191. C'est très important pour le tri des base de données. Ca ne concerne pas seulement la France, mais toutes les langues qui utilisent des accents.
Marsh Posté le 08-11-2001 à 11:42:17
hihi mais bon en informatique l'anglais est la referance donc les accent tu peux les jartter sans probleme
essaye de compile des lettre accentuées tu vas bien te marrer
et si tu met les accents pkoi pas aussi le elset allemand et les letres tilde espagnoles ?
serrieux tu code en anglais tu programme doit sortir de langlais ton programme traite de l'anglais les autres langues on s'en ...bip... ptet ke ca plais pas aux anglophobes ca mais bon en info c'est comme ca et pas autrement et les anglophobes a l'heure actuel non rien a foutre en informatique
[edtdd]--Message édité par koulip31--[/edtdd]
Marsh Posté le 08-11-2001 à 12:14:20
koulip31 a écrit a écrit : hihi mais bon en informatique l'anglais est la referance donc les accent tu peux les jartter sans probleme essaye de compile des lettre accentuées tu vas bien te marrer et si tu met les accents pkoi pas aussi le elset allemand et les letres tilde espagnoles ? serrieux tu code en anglais tu programme doit sortir de langlais ton programme traite de l'anglais les autres langues on s'en ...bip... ptet ke ca plais pas aux anglophobes ca mais bon en info c'est comme ca et pas autrement et les anglophobes a l'heure actuel non rien a foutre en informatique |
Meme si il faut bien admettre q l'anglais est incontournable dans le monde de l'info, il ne faut pas tomber dans la modialisation.
Je fais mes etudes d'info en Finlande et je peux te dire q cote programmation ils develloppent pas mal de choses et c pas tt en anglais (ds des domaines comme JAVA Cpp, surtout chz Nokia, pareil de l'autre cote de la Baltique chz Ericson)
mais c vrai q gérer les accents est assez chiant car les codes ASCII dependent de la langue installée sur ta machine donc c pas tres portable, mais c un point à ne pas négliger...
Marsh Posté le 08-11-2001 à 12:15:03
et je parle pas des asiatiques
Marsh Posté le 08-11-2001 à 14:51:31
ils on un clavier latin he ouais (pas de chti ideogramme sur le clavier mais bien de lettres)
mais bon jaimmerais bien ovir des source asiatiques ca doit etre cocasse ou en anglais pas le choix
Marsh Posté le 08-11-2001 à 15:06:47
et alors tu crois que ça justifie de ne pas prendre en comtpe
les accents ...
Ca me parait tellement evident de devoir prendre en compte les accents pour les langues qui les utilises que je ne vois pas trop le sens de tes remarques koulip. Pas d'accent pour les anglais oui, mais tu souhaiterais généraliser à tout le monde ? (on parle des données que manipule un programme, pas des commandes de prog)
[edtdd]--Message édité par Barbarella--[/edtdd]
Marsh Posté le 08-11-2001 à 15:17:34
Barbarella a écrit a écrit : et alors tu crois que ça justifie de ne pas prendre en comtpe les accents ... Ca me parait tellement evident de devoir prendre en compte les accents pour les langues qui les utilises que je ne vois pas trop le sens de tes remarques koupil. Pas d'accent pour les anglais oui, mais tu souhaiterais généraliser à tout le monde ? (on parle des données que manipule un programme, pas des commandes de prog) |
ben certe pour ce ke manipule les prog mais bon kan on te demande un prog generale tu le develope pour traiter de l'info angalise non?
je bosse actuellement dans un SSII francaises toute la doc est en anglais je doit developper un outis de test interne kin ne sortiras pas du labo a cote de mon bureau donc resterras en france ici bien on ma demande explicitement de tout mettre en anglais donc dans le cadre scolaire ou en entreprise mainpuler des donne francaises rete une utopie a part si c'est une chtite entreprise
mais bon dans le cadre scolaire si tu gere pas les accent rien a battre les profs
remarque que dans tout les book de prog les chaines traites sont anglaise exemple le HELLO WORLD donc ede refuser cela au nom de la difference
Marsh Posté le 08-11-2001 à 15:32:21
ok,
je comprends ta position, en ce sens que j'ai deja eu l'occasion de rencontrer des collègues qui penses un peu comme toi. Toutefois permets moi de te dire que la différenciation culturel/respect des langues est une richesse intellectuelle.
Le nivellement par l'homogénisation, est un appauvrissement intellectuel. C'est une des raisons qui font que bcp de personnes ne suivent pas (et ne le feront pas) la démarche que tu adoptes.
Sur le terme d'utopie pour l'utilisation dans les boites, je te renvois au terme de 'je m'en foustisme' de certaines boites, vu que la mise en place de cette prise en compte est facilement intégrable. Le plus long c'est encore le temps qu'il faut pour l'écrire dans le cahier des charges
Mais bon ...
[edtdd]--Message édité par Barbarella--[/edtdd]
Marsh Posté le 08-11-2001 à 15:47:20
moi je dirais:
bool c_une_voyelle=false;
switch(char moncara){
case 'A':
case 'E':
case 'I':
case 'O':
case 'U':
case 'Y':
c_une_voyelle = true;
break;
}
en pensant biensûr à passer en majuscule le caractère à tester...
Marsh Posté le 08-11-2001 à 00:25:34
Voila je viens de debuter le C++
voici le probleme que notre prof nous a demandé de traiter :
programme a créer
Créer un programme qui permet de savoir si le caractere que l on a entré est une voyelle ou une consonne.
Il faut utiliser le bloc conditionnel if/else
Mais mon soucis est que j ai imbriqué 1 bloc par voyelle, c fastidieux et pas tres jolie a mon avis, donc ma question est :
y a t il moyen de mettre dans l expression du if plusieurs valeurs pour tester le caractere tapé au clavier?
du style (si a=='a' ou a=='e'......)
merci de m eclairer sur ce point
code source
#include <iostream.h>
#include <conio.h>
main()
{
char a;
clrscr();
cout<<"Veuillez taper un caratère : \n";
cin>>a;
if (a=='a'
{
cout<<"Le caractère est une voyelle !";
}
else
{
if (a=='e'
{
cout<<"Le caractère est une voyelle !";
}
else
{
if (a=='i'
{
cout<<"Le caractère est une voyelle !";
}
else
{
if (a=='o'
{
cout<<"Le caractère est une voyelle !";
}
else
{
if (a=='u'
{
cout<<"Le caractère est une voyelle !";
}
else
{
cout<<"Le caractère est une consonne !";
}
}
}
}
};
getch();
return(0);
}
[edtdd]--Message édité par cowabunga--[/edtdd]