abdou-tanger|
* |
|
|
|
|
||
|
|
||
|
|
||
| par jaidi abdellah |
|
|
|
|
|
pour les eleves et les professeurs de debdou..youssef..zaki et les autres... |
| وراثة الساكنة | إنتاج الطاقة | علم المناعة | الخبر الوراثي | ||
|
|
|
|
||
| ظواهر جيولوجية |
التركيب الضوئي |
الضغط الشرياني | التوالد البشري | ||
|
|
|
|
||
|
الوراثة البشرية |
التواصل العصبي |
تحلون الدم |
التوالد النباتي |
||
|
|
|
|
||
|
مواقع هامة |
التمارين | ||||
| مواد أخرى | مراجع |
الأولى بكالوريا |
الثانية بكالوريا | ||
|
|
|
|
||
| صفحة التلاميذ |
الخلية |
الفروض | مساهمات الأساتذة | ||
|
|
|
||||
|
|
|
|||
|
البرامج التربوية word |
2006انشئ الموقع بتاريخ 8 نونبر | العطل المدرسية و البينية | |||
|
|
|
||||
et a la fin le veux dire bon courage
a tous les eleves de debdou...tetouan...tanger..steha a chaoun.....et tous le maroc .....
(i >= 0) && (i < 10) && (p[i] != 0)Une instruction est une expression suivie d'un point-virgule. Le point-virgule signifie en quelque sorte ``évaluer cette expression''. Plusieurs instructions peuvent être rassemblées par des accolades { et } pour former une instruction composéeou blocqui est syntaxiquement équivalent à une instruction. Par exemple,
if (x != 0)
{
z = y / x;
t = y % x;
}
Une instruction composée d'un spécificateur de type et d'une liste d'identificateurs séparés par une virgule est une déclaration.Par exemple,
int a; int b = 1, c; double x = 2.38e4; char message[80];En C, toute variable doit faire l'objet d'une déclaration avant d'être utilisée.
[directives au préprocesseur]
[déclarations de variables externes]
[fonctions secondaires]
main()
{déclarations de variables internes
instructions
}
La fonction principale mainpeut avoir des paramètres formels. On supposera dans un premier temps que la fonction main n'a pas de valeur de retour. Ceci est toléré par le
compilateur mais produit un message d'avertissement quand on utilise l'option -Wall de gcc (cf. chapitre 4).
type ma_fonction ( arguments )
{déclarations de variables internes
instructions
}
Cette fonction retournera un objet dont le type sera type (à l'aide d'une instruction comme return objet;). Les arguments
de la fonction obéissent à une syntaxe voisine de celle des déclarations : on met en argument de la fonction une suite d'expressions type objet séparées par des
virgules. Par exemple, la fonction secondaire suivante calcule le produit de deux entiers :
int produit(int a, int b)
{
int resultat;
resultat = a * b;
return(resultat);
}
main()
{
char c = 'A';
printf("%c", c + 1);
}
Suivant les implémentations, le type char est signé ou non. En cas de doute, il vaut mieux préciser unsigned char ou signed char. Notons que tous les caractères
imprimables sont positifs.Le bit de poids fort d'un entier est son signe. Un entier positif est donc représenté en mémoire par la suite de 32 bits dont le bit de poids fort vaut 0 et les 31 autres bits correspondent à la décomposition de l'entier en base 2. Par exemple, pour des objets de type char (8 bits), l'entier positif 12 sera représenté en mémoire par 00001100. Un entier négatif est, lui, représenté par une suite de 32 bits dont le bit de poids fort vaut 1 et les 31 autres bits correspondent à la valeur absolue de l'entier représentée suivant la technique dite du ``complément à 2''. Cela signifie que l'on exprime la valeur absolue de l'entier sous forme binaire, que l'on prend le complémentaire bit-à-bit de cette valeur et que l'on ajoute 1 au résultat. Ainsi, pour des objets de type signed char (8 bits), -1 sera représenté par 11111111, -2 par 11111110, -12 par par 11110100.Un int peut donc représenter un entier entre -231 et (231-1). L'attribut unsigned spécifie que l'entier n'a pas de signe. Un unsigned int peut donc représenter un entier entre 0 et (232-1). Sur un DEC alpha, on utilisera donc un des types suivants en fonction de la taille des données à stocker :
DEC Alpha PC Intel (Linux) char 8 bits 8 bits caractère short 16 bits 16 bits entier court int 32 bits 32 bits entier long 64 bits 32 bits entier long long long n.i. 64 bits entier long (non ANSI)
Table 1.2: Les types entiers
| signed char | [-27;27[ |
| unsigned char | [0;28[ |
| short int | [-215; 215[ |
| unsigned short int | [0;216[ |
| int | [-231;231[ |
| unsigned int | [0;232[ |
| long int (DEC alpha) | [-263;263[ |
| unsigned long int (DEC alpha) | [0;264[ |
unsigned short x; taille = sizeof(unsigned short); taille = sizeof(x);Dans les deux cas, taille vaudra 4.
Les flottants sont généralement stockés en mémoire sous la représentation de la virgule flottante normalisée. On écrit le nombre sous la forme ``signe 0,mantisse Bexposant''. En général, B=2. Le digit de poids fort de la mantisse n'est jamais nul.
DEC Alpha PC Intel float 32 bits 32 bits flottant double 64 bits 64 bits flottant double précision long double 64 bits 128 bits flottant quadruple précision
Table 1.3: Les types flottants
main()
{
int i, j = 2;
float x = 2.5;
i = j + x;
x = x + i;
printf("n %f n",x);
}
imprime pour x la valeur 6.5 (et non 7), car dans l'instruction i = j + x;, l'expression j + x a été convertie en entier.| + | addition |
| - | soustraction |
| * | multiplication |
| / | division |
| % | reste de la division (modulo) |
float x; x = 3 / 2;affecte à x la valeur 1. Par contre
x = 3 / 2.;affecte à x la valeur 1.5.
>
|
strictement supérieur |
| >= | supérieur ou égal |
<
|
strictement inférieur |
| <= | inférieur ou égal |
| == | égal |
| != | différent |
main()
{
int a = 0;
int b = 1;
if (a = b)
printf("n a et b sont egaux n");
else
printf("n a et b sont differents n");
}
imprime à l'écran a et b sont egaux !| && | et logique |
| || | ou logique |
| ! | négation logique |
int i; int p[10]; if ((i >= 0) && (i <= 9) && !(p[i] == 0)) ...la dernière clause ne sera pas évaluée si i n'est pas entre 0 et 9.
if (expression-1 ) instruction-1 else if (expression-2 ) instruction-2 ... else if (expression-n ) instruction-n else instruction-¥avec un nombre quelconque de else if ( ... ). Le dernier else est toujours facultatif. La forme la plus simple est
if (expression ) instructionChaque instruction peut être un bloc d'instructions.
switch (expression )
{case constante-1:
liste d'instructions 1
break;
case constante-2:
liste d'instructions 2
break;
...
case constante-n:
liste d'instructions n
break;
default:
liste d'instructions ¥
break;
}
Si la valeur de expression est égale à l'une des constantes, la liste d'instructions correspondant est exécutée. Sinon la liste
d'instructions ¥ correspondant à default est exécutée. L'instruction default est facultative.
while (expression ) instructionTant que expression est vérifiée (i.e., non nulle), instruction est exécutée. Si expression est nulle au départ, instruction ne sera jamais exécutée. instruction peut évidemment être une instruction composée. Par exemple, le programme suivant imprime les entiers de 1 à 9.
i = 1;
while (i < 10)
{
printf("n i = %d",i);
i++;
}
do instruction while (expression );Ici, instruction sera exécutée tant que expression est non nulle. Cela signifie donc que instruction est toujours exécutée au moins une fois. Par exemple, pour saisir au clavier un entier entre 1 et 10 :
int a;
do
{
printf("n Entrez un entier entre 1 et 10 : ");
scanf("%d",&a);
}
while ((a <= 0) || (a > 10));
for (expr 1 ;expr 2 ;expr 3) instructionUne version équivalente plus intuitive est :
expr 1;
while (expr 2 )
{instruction
expr 3;
}
Par exemple, pour imprimer tous les entiers de 0 à 9, on écrit :
for (i = 0; i < 10; i++)
printf("n i = %d",i);
A la fin de cette boucle, i vaudra 10. Les trois expressions utilisées dans une boucle for peuvent être constituées de plusieurs expressions séparées par des virgules.
Cela permet par exemple de faire plusieurs initialisations à la fois. Par exemple, pour calculer la factorielle d'un entier, on peut écrire :
int n, i, fact;
for (i = 1, fact = 1; i <= n; i++)
fact *= i;
printf("%d ! = %d n",n,fact);
On peut également insérer l'instruction fact *= i; dans la boucle for ce qui donne :
int n, i, fact;
for (i = 1, fact = 1; i <= n; fact *= i, i++);
printf("%d ! = %d n",n,fact);
On évitera toutefois ce type d'acrobaties qui n'apportent rien et rendent le programme difficilement lisible.#include <stdio.h>n'est pas nécessaire pour utiliser printf et scanf.
Exemple :
format conversion en écriture %d int décimale signée %ld long int décimale signée %u unsigned int décimale non signée %lu unsigned long int décimale non signée %o unsigned int octale non signée %lo unsigned long int octale non signée %x unsigned int hexadécimale non signée %lx unsigned long int hexadécimale non signée %f double décimale virgule fixe %lf long double décimale virgule fixe %e double décimale notation exponentielle %le long double décimale notation exponentielle %g double décimale, représentation la plus courte parmi %f et %e %lg long double décimale, représentation la plus courte parmi %lf et %le %c unsigned char caractère %s char* chaîne de caractères
Table 1.5: Formats d'impression pour la fonction printf
#include <stdio.h>
main()
{
int i = 23674;
int j = -23674;
long int k = (1l << 32);
double x = 1e-8 + 1000;
char c = 'A';
char *chaine = "chaine de caracteres";
printf("impression de i: n");
printf("%d t %u t %o t %x",i,i,i,i);
printf("nimpression de j: n");
printf("%d t %u t %o t %x",j,j,j,j);
printf("nimpression de k: n");
printf("%d t %o t %x",k,k,k);
printf("n%ld t %lu t %lo t %lx",k,k,k,k);
printf("nimpression de x: n");
printf("%f t %e t %g",x,x,x);
printf("n%.2f t %.2e",x,x);
printf("n%.20f t %.20e",x,x);
printf("nimpression de c: n");
printf("%c t %d",c,c);
printf("nimpression de chaine: n");
printf("%s t %.10s",chaine,chaine);
printf("n");
}
Ce programme imprime à l'écran :
impression de i: 23674 23674 56172 5c7a impression de j: -23674 4294943622 37777721606 ffffa386 impression de k: 0 0 0 4294967296 4294967296 40000000000 100000000 impression de x: 1000.000000 1.000000e+03 1000 1000.00 1.00e+03 1000.00000001000000000000 1.00000000001000000000e+03 impression de c: A 65 impression de chaine: chaine de caracteres chaine de
<RETURN> sauf s'il s'agit de caractères. On peut toutefois fixer le nombre de caractères de
la donnée à lire. Par exemple %3s pour une chaîne de 3 caractères, %10d pour un entier qui s'étend sur 10 chiffres, signe inclus.
#include <stdio.h>
main()
{
int i;
printf("entrez un entier sous forme hexadecimale i = ");
scanf("%x",&i);
printf("i = %dn",i);
}
Si on entre au clavier la valeur 1a, le programme affiche i = 26.
format type d'objet pointé représentation de la donnée saisie %d int décimale signée %hd short int décimale signée %ld long int décimale signée %u unsigned int décimale non signée %hu unsigned short int décimale non signée %lu unsigned long int décimale non signée %o int octale %ho short int octale %lo long int octale %x int hexadécimale %hx short int hexadécimale %lx long int hexadécimale %f float flottante virgule fixe %lf double flottante virgule fixe %Lf long double flottante virgule fixe %e float flottante notation exponentielle %le double flottante notation exponentielle %Le long double flottante notation exponentielle %g float flottante virgule fixe ou notation exponentielle %lg double flottante virgule fixe ou notation exponentielle %Lg long double flottante virgule fixe ou notation exponentielle %c char caractère %s char* chaîne de caractères
Table 1.6: Formats de saisie pour la fonction scanf
#include <stdio.h>
main()
{
char c;
while ((c = getchar()) != EOF)
putchar(c);
}
Pour l'exécuter, il suffit d'utiliser l'opérateur de redirection d'Unix :
#include <stdio.h>
main()
{
char c;
do
{
c = getchar();
if (c != EOF)
putchar(c);
}
while (c != EOF);
}
Ici, le test c != EOF compare un objet de type char et la constante EOF qui vaut -1. Si le type char est non signé par défaut, cette condition est donc
toujours vérifiée. Si le type char est signé, alors le caractère de code 255, y, sera converti en l'entier -1. La rencontre du caractère y sera donc interprétée comme une fin
de fichier. Il est donc recommandé de déclarer de type int (et non char) une variable destinée à recevoir un caractère lu par getchar afin de permettre la détection de fin
de fichier.| Juin 2012 | ||||||||||
| L | M | M | J | V | S | D | ||||
| 1 | 2 | 3 | ||||||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 | ||||
| 11 | 12 | 13 | 14 | 15 | 16 | 17 | ||||
| 18 | 19 | 20 | 21 | 22 | 23 | 24 | ||||
| 25 | 26 | 27 | 28 | 29 | 30 | |||||
|
||||||||||



:talents_jeunesse@hotmail.fr et votre production que sa soit lityeraire ou scientifique ou religieuse ou autre chose, et soyez bien
rassuré que votre nom sera ajouté .....donc qu'est que vous attendez..allez et soyez les premiers..


|
|
الراية البيضاء
Praise to the prophet
طلع البدر
يا رايح للحرم
يا رب يا رحمن

نسألكم الدعاء

nous vous invitons de referencer ses deux sites
|
|
|
|
|
|
|
|