Académique Documents
Professionnel Documents
Culture Documents
Séance 6
Ça accélère…
1
De plus en plus … complexe
Écrire un programme qui …
2
Voici le programme 3
#include <stdio.h>
void main ()
{
float Note1, Note2, Moyenne, Somme = 0.0;
int i, N;
3
De plus en plus … complexe
Écrire un programme qui …
4
Voici le programme 4
#include <stdio.h>
void main ()
{
float Note1, Note2, Moyenne, Somme = 0.0;
int i, N, NbreSup10 = 0;
6
Ce programme ne le fait plus !
#include <stdio.h>
void main ()
{
float Note1, Note2, Moyenne, Somme = 0.0;
int i, N, NbreSup10 = 0;
8
Les tableaux indice
Nombre
d’éléments
T[0] T[1] T[2]
int T[5]; T[3] T[4]
T
Type des Nom
éléments
En C:
int Premiers [4];
1. Les indices débutent en 0
Premiers [0] = 2; 2. T[i] : i+1ème élément
Premiers [1] = 3;
Premiers [2] = 5;
Premiers [3] = 7;
printf(“Le 3e nombre premier: %d\n”, Premiers [2]);
printf(“Somme du 2e et du 3e: %d”, Premiers[1]+ Premiers[2]);
Le 3e nombre premier: 5
Somme du 2e et du 3e: 8
9
Utilisation
Indexation par une variable
Et même:
int Tpremiers [] = {2, 3, 5, 7};
Egaux = 'O'; i = 0;
while ((i < 4) && (Egaux == 'O'))
{
if (T1 [i] != T2 [i])
Egaux = 'N';
i ++;
}
if (Egaux == 'O') printf ("Tableaux identiques.");
else printf ("Tableaux différents.");
}
14
Attention aux dépassements !
À la différence d'autres langages, C ne contrôle pas les dépassements.
Trouve = 0;
for (i = 0; i<4; i++)
{
if (T1 [i] == V)
Trouve = 1;
}
Trouve = 0; i = 0;
while ((i<4) && (Trouve == 0))
{
if (T1 [i] == V)
Trouve = 1;
i ++;
}
Trouve = 0; i = 0;
while ((i<4) && (!Trouve))
{
if (T1 [i] == V)
Trouve = 1;
i ++;
}
Conséquence
if (Trouve == 1) if (Trouve)
if (Trouve == 0) if (!Trouve)
19
Cas particulier: Les tableaux de caractères
Ces tableaux suivent les mêmes règles que les tableaux de nombres.
Mais ils ont en plus certaines particularités.
20
Chaînes de caractères: Suite
Déclarations:
Mot B o n j o u r \0 ? ?
21
Chaînes de caractères: Affichage, saisie
Affichage
char Prenom[] = “Ali”;
Votre prénom: Ali
printf(“Votre prénom: %s”, Prenom);
Saisie
scanf et %s : s'arrête aux espaces, tabulations et retours de ligne
char nom [32]; Votre nom: Ali Ibn
printf (“Votre nom: “); Votre nom est Ali
scanf (“%31s”, nom);
printf (“Votre nom est %s”, nom);
Notez l’absence de & dans ce cas
fgets : lit tous les caractères jusqu'au Return (compris) ou le nombre indiqué
char nom [10];
printf (“Tapez votre nom: “); Votre nom: Ali Ibn
fgets (nom, 10, stdin); Votre nom est Ali Ibn
printf (“Votre nom est %s”, nom); 22
Chaînes de caractères: Taille et copie
Bibliothèque string
#include <stdio.h>
#include <string.h>
24