Pair / impair / ascii
eliot
-
lami20j Messages postés 21644 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
lami20j Messages postés 21644 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
Bonjour , j'aimerais savoir quel est le signe pair ou impair en langage c , mettons si j'ai la variable a et que je veux écrire si a est impair , en C çà donne quoi , a = '?';
autre chose , si je veux que la variable a me représente une lettre , je peux écrire a = 'b'; et ensuite putchar(a); mais j'aimerais déclarer la lettre b par son code ascci , comment faire svp?
merci
autre chose , si je veux que la variable a me représente une lettre , je peux écrire a = 'b'; et ensuite putchar(a); mais j'aimerais déclarer la lettre b par son code ascci , comment faire svp?
merci
A voir également:
- Chifre pair
- Chifre en lettre - Télécharger - Outils professionnels
- Python pair impair ✓ - Forum Python
- Afficher les nombres pair entre 1 et n en python ✓ - Forum Python
- Python 3.41 Programme nombre pair/impair ✓ - Forum Python
- Comment ecrir un chifre en lettre ✓ - Forum Réseau
14 réponses
euh je n'ai pas très bien saisi , peux tu me donner un exemple avec putchar(a) , car je ne comprends vraiment pas...
[lamitest@localhost bin]$ cat ascii_char.c
#include <stdio.h>
main()
{
char c;
int i=65; /*code ASCII du la lettre A */
c=i; /* affectation du entier i à une variable caractère */
putchar(c); /* affiche A */
putchar('\n');
}
[lamitest@localhost bin]$ gcc -o ascii_char ascii_char.c
[lamitest@localhost bin]$ ./ascii_char
A
[lamitest@localhost bin]$
Salut,
1.
Un numéro impaire a la forme
2k+1 (non divisible avec 2)
Un numéro paire à la forme
2k ( divisible avec 2)
Utilise l'opérateur % (modulo) pour tester le reste de la division d'un entier avec 2
2.
Pour obtenir le code ASCII d'un caractère il suffit d'affecter le caractère à une variable entière.
i=c
Pour obtenir le caractère qui correspond à un code ASCII il suffit d'affecter l'entier à une variable caractère
c=i
1.
Un numéro impaire a la forme
2k+1 (non divisible avec 2)
Un numéro paire à la forme
2k ( divisible avec 2)
Utilise l'opérateur % (modulo) pour tester le reste de la division d'un entier avec 2
2.
Pour obtenir le code ASCII d'un caractère il suffit d'affecter le caractère à une variable entière.
i=c
Pour obtenir le caractère qui correspond à un code ASCII il suffit d'affecter l'entier à une variable caractère
c=i
Re,
Pour les Majuscules
65 à 90
Pour les minuscules
97 à 122
donc c'est bien +32
Prenons 2 exemples:
Code paire
-----------------------------------------------
---------------------------------------------------------------
Code impaire
-----------------------------------------------
Tu crois que c'est clair?
Pour les Majuscules
65 à 90
Pour les minuscules
97 à 122
donc c'est bien +32
Prenons 2 exemples:
Code paire
-----------------------------------------------
On teste le code ASCII 66qui correspond à B. Donc en ce cas 66 est paire puisque 66 se divide avec 2. Ou le reste de la division 66 avec 2 égal 0. la répresentation de 66dans la forme 2k est 2 x 33 En C tu teste le reste avec l'opérateur % (modulo) Donc que fait modulo? Il recupere le reste d'une division i=66 j=2 reste=i%j ( en ce cas reste égal 0) si reste égal 0 alors paire ->putchar( code +32) affiche minuscule sinon impaire ->putchar(code) affiche majuscule
---------------------------------------------------------------
Code impaire
-----------------------------------------------
On teste le code ASCII 65 qui correspond à A. Donc en ce cas 65 est impaire puisque 65 ne se divide pas avec 2. Ou le reste de la division 65 avec 2 égal 1. la répresentation de 65 dans la forme 2k +1 est 2 x 32 +1 En C tu teste le reste avec l'opérateur % (modulo) Donc que fait modulo? Il recupere le reste d'une division i=65 j=2 reste=i%j (en ce cas reste égal 1) si reste différent de 0 alors impaire ->putchar( code) affiche majuscules sinon paire ->putchar(code+32) affiche minuscule
Tu crois que c'est clair?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ok , çà va mieux avec ton exemple , et pour tester si le code d'une lettre est impair ou pair , as tu un indice à me donner ? ( pas de code tout fait stp ) , car en fait moi je veux coder une fonction qui m'affiche l'alphabet en écrivant une lettre en majuscule sur 2 , donc mon algo dans ma tête c'est :
tant que le code ascii est pair , on affiche en minuscule , si le code est impair on affiche en majuscule ( c'est +32 je crois ) , donc çà c'est clair , mais il me faut un indice pour dire en C : si le code de la lettre est pair , tu me dis 2k + 1 , reste de division différent de 2 , c'est pas clair ans mon esprit...
tant que le code ascii est pair , on affiche en minuscule , si le code est impair on affiche en majuscule ( c'est +32 je crois ) , donc çà c'est clair , mais il me faut un indice pour dire en C : si le code de la lettre est pair , tu me dis 2k + 1 , reste de division différent de 2 , c'est pas clair ans mon esprit...
je ne comprends vraiment pas "Donc en ce cas 66 est paire puisque 66 se divise avec 2. Ou le reste de la division 66 avec 2 égal 0."
66%2 = 33 , quel rapport avec le reste = 0 , je suis un peu perdu là , c'est ce putin de pair et impair qui me bloque , et le nombre de variables à déclarer ...
66%2 = 33 , quel rapport avec le reste = 0 , je suis un peu perdu là , c'est ce putin de pair et impair qui me bloque , et le nombre de variables à déclarer ...
66%2 n'est pas égal avec 33 mais avec 0
Donc 66 % 2 donne le reste de la division du numéro 66 avec 2
Numéro paire
C'est un numéro qui se divide par 2. Ou qui est divisible avec 2.
2 4 6 8
2 divisé par 2 égal 1 reste 0 ( 2 * 1 = 2)
4 divisé par 2 égal 2 reste 0 ....
6 divisé par 2 égal 3 reste 0 .....
8 divisé par 2 égal 4 reste 0 ( 2 * 4 = 8) donc la forme 2 * k
Numéro impaire
C'est un numéro qui ne se divise pas avec 2. Ou qui n'est pas divisible avec 2
3 5 7 9
3 divisé par 2 égal 1 reste 1 (2 * 1 + 1 = 3)
5 divisé par 2 égal 2 reste 1 .......
7 divisé par 2 égal 3 reste 1 ......
9 divisé par 2 égal 4 reste 1 (2 * 4 +1 = 9) donc la forme 2 * k +1
Maintenant tu comprends?
Donc en ce cas 66 est paire puisque 66 se divise avec 2.
Ou le reste de la division 66 avec 2 égal 0."
Le deux affirmations sont vraies.
Donc 66 % 2 donne le reste de la division du numéro 66 avec 2
Numéro paire
C'est un numéro qui se divide par 2. Ou qui est divisible avec 2.
2 4 6 8
2 divisé par 2 égal 1 reste 0 ( 2 * 1 = 2)
4 divisé par 2 égal 2 reste 0 ....
6 divisé par 2 égal 3 reste 0 .....
8 divisé par 2 égal 4 reste 0 ( 2 * 4 = 8) donc la forme 2 * k
Numéro impaire
C'est un numéro qui ne se divise pas avec 2. Ou qui n'est pas divisible avec 2
3 5 7 9
3 divisé par 2 égal 1 reste 1 (2 * 1 + 1 = 3)
5 divisé par 2 égal 2 reste 1 .......
7 divisé par 2 égal 3 reste 1 ......
9 divisé par 2 égal 4 reste 1 (2 * 4 +1 = 9) donc la forme 2 * k +1
Maintenant tu comprends?
Donc en ce cas 66 est paire puisque 66 se divise avec 2.
Ou le reste de la division 66 avec 2 égal 0."
Le deux affirmations sont vraies.
En fait si tu as remarqué dans mon message précedent, le reste de la division des numéros avec 2 est :
0 pour les numéros paires
et
1 pour les numéros impaires
Donc pour tester si un numéro est pair ou impair il faut tester le reste de la division du numéro avec 2.
Si reste égal 0 alors pair
Si reste égal 1 alors impair
Et le reste tu l'obtiens avec l'opérateur %.
Tu comprends maintenant?
0 pour les numéros paires
et
1 pour les numéros impaires
Donc pour tester si un numéro est pair ou impair il faut tester le reste de la division du numéro avec 2.
Si reste égal 0 alors pair
Si reste égal 1 alors impair
Et le reste tu l'obtiens avec l'opérateur %.
Tu comprends maintenant?
ben alors je crois que je ne savais pas ce que voulait dire l'opérateur modulo , quand on écrit 100 % 2 , çà donne 50 - 0 ? modulo = résultat + reste? et combien de variables faut il utiliser ?
100 % 50 égal 0
le résultat du modulo c'est le reste de la division
101 : 50 = 2 reste 1 donc 101 % 50 = 1
si tu veux
Numéro = Quotient * Diviseur + Reste
101 = 2 * 50 + 1 = 100 + 1 = 101
Reste = Numéro - Diviseur * Quotient
1 = 101 - 50 * 2 = 101 - 100 = 1
Le résultat du modulo c'est le reste. Plus clair que ça désolé mais je ne peux pas.
le résultat du modulo c'est le reste de la division
101 : 50 = 2 reste 1 donc 101 % 50 = 1
si tu veux
Numéro = Quotient * Diviseur + Reste
101 = 2 * 50 + 1 = 100 + 1 = 101
Reste = Numéro - Diviseur * Quotient
1 = 101 - 50 * 2 = 101 - 100 = 1
Le résultat du modulo c'est le reste. Plus clair que ça désolé mais je ne peux pas.
#include <stdio.h>
int main()
{
char c = a;
while ( c <= z )
++c;
if ( c % 2 != 0 )
putchar(c);
if ( c % 2 = 0 )
putchar(c+32);
return 0;
}
qu'est ce qui ne va pas dans ce code?
Il y a des erreur de syntaxe par exemple
char c = a;
il faut écrire
char c='a';
Pour while il faut utiliser des accolades pour le bloc d'instructions.
Pour les tests c'égalité on utilise == et pas = qui correspond à une affectation.
Donc il faut se documenter un peu avant de commencer la programmation.
http://c.developpez.com/
http://membres.lycos.fr/tonysoueid/cour_c/cour_1/
char c = a;
il faut écrire
char c='a';
Pour while il faut utiliser des accolades pour le bloc d'instructions.
Pour les tests c'égalité on utilise == et pas = qui correspond à une affectation.
Donc il faut se documenter un peu avant de commencer la programmation.
http://c.developpez.com/
http://membres.lycos.fr/tonysoueid/cour_c/cour_1/