Bonjour ,
Une âme charitable pourrait m'écrire ce pseudocode en language c s'il vous plaît , je ne le comprends pas bien![]()
Bonjour ,
Une âme charitable pourrait m'écrire ce pseudocode en language c s'il vous plaît , je ne le comprends pas bien![]()
Hello,
Il y a une erreur dans le pseudo code (ou alors je n'ai pas compris la question): les lettres majuscules (en ascii) vont de 65 ('A') à 90 ('Z'). Donc le test (rng>=0 et rng<=25) ne sera jamais vrai....
C'est le texte en entier , il est peu probable que ça soit faux![]()
@edgarjacobs : oui selon ce que l'on a pris l'habitude de penser. Mais non, si on reprend doucement.
Si l'on fait ascii(lettre) et que l'on a 65 c'est certes unA.
Mais si "A" doit être compté à l'indice zéro c'est que l'on a dû faire un ascii(lettre) - ascii("A") -> 65-65==0.
Bon, perso, dans ma conception, le rang de A serait plutôt 1. Là, c'est juste penser en terme d'indice dans un tableau.
Ce qui est important dans l'énoncé est la définition précise de ce qu'est un rang dans le pseudo-code. En français on dit que dans l'alphabet A est le premier donc rang de A serait 1 (ça manquait dans le 1er texte.)
Cependant, le pseudo-code veut "penser en C", et en C tout ce qui est indice commence à 0.
Ici, la ligne la plus piégeuse du pseudo-code à traduire en C est: "rng <-- rang de txt[i]", qui doit s'écrire :
On pouvait deviner ça par le test indiqué juste après: "si rng<=0 ou rng>=25", le rang (du pseudo-code) est bien un nombre de 0 à 25 pour 'A' à 'Z'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part int rng = txt[i] - 'A'; // la lettre A a le rang 'A'-'A' donc 0, la lettre B a le rang 'B'-'A' donc 1...
J'avais ien compris le pseudo code, j'étais bien conscient que le rang de 'A' est zéro et qu'il faut faire rng=txt[i]-'A'. Je critiquais juste la manière de présenter l'exercice.
j'ai essayer de suivre le pseudocode mais je suis vraiment perdu ........ Est-ce que quelqu'un peut me faire le programme pour que je voie mes fautes s'il vous plaît
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 #include<stdio.h> int main() { printf("Saisissez un texte") ; int num[26] ; int i ; for (i=0;i<25;i++) num[i]=0 ; char txt[80] ; for (i=0;i<(txt)-1;i++) int rng = txt[i]-A if (rng=>0 and 25=>rng) { printf("%i" , rng); } for (i=0;i<25;i++) printf("%i" , num[i]) ;
Partager