Université Privée de Marrakech
Ecole d’Ingénierie et de l’Innovation Marrakech
PARTIE 2 : PROGRAMMATION
EN LANGAGE C
Professeur : Salwa Belaqziz
Filière : SMP-3
Année universitaire 2021 - 2022
PLAN
• Introduction
1. Notion de programme
2. Familles de langages de programmation
3. Etapes de construction d'un programme informatique
• Le langage C
1. Introduction
2. Structure générale
3. Déclaration des données
4. Instruction d'affectation, opérateurs et expressions
5. Instructions d'entrée-sortie
6. Les structures de contrôle conditionnelles
7. Structures de contrôle itératives
8. Les tableaux
9. Les fonctions et les procédures
PLAN
• Introduction
1. Notion de programme
2. Familles de langages de programmation
3. Etapes de construction d'un programme informatique
• Le langage C
1. Introduction
2. Structure générale
3. Déclaration des données
4. Instruction d'affectation, opérateurs et expressions
5. Instructions d'entrée-sortie
6. Les structures de contrôle conditionnelles
7. Structures de contrôle itératives
8. Les tableaux
9. Les fonctions et les procédures
Introduction
Rappel : l’activité de programmation (ou codage) consiste à
exprimer la résolution d’un problème à l’aide des instructions
de base d’un langage de programmation.
Avant de programmer, les étapes de résolution du
problème ont donc dû être matérialisées dans le langage
simplifié de l’algorithmique.
Notion de programme
Un PROGRAMME SOURCE (synonyme code source) est le
résultat de traduction d’un algorithme (exprimé en pseudo-
code, ou sous forme graphique) dans un langage de
programmation.
Il est stocké dans un fichier au format texte dont l’extension
dépend du langage utilisé (en C : .c, en C++ : .cpp,…).
Notion de programme
Un PROGRAMME COMPILE (synonyme exécutable) est le
résultat de la traduction d’un programme source (exprimé
dans un langage de programmation) en un langage
exécutable par l’ordinateur, le langage machine.
Il est stocké dans un fichier binaire, son extension est .exe
(sous Windows).
Notion de programme
Une APPLICATION INFORMATIQUE (synonyme logiciel) est
un programme ou un ensemble de programmes utilisables
par l’utilisateur pour l’aider dans sa tâche.
Etapes de programmation
1. Editeur de texte
Un éditeur de texte est un logiciel permettant d’écrire un
fichier texte (suite de caractères sans mise en forme, non
formaté).
Un bon éditeur de texte, pour la programmation, doit offrir :
• Obligatoirement la coloration syntaxique : coloration des
mots-clefs du langage de programmation ;
• éventuellement la complétion de code : proposition de
syntaxe des instructions en fonction du contexte de saisie ;
2. Compilateur du langage vers le
langage machine
Le compilateur traduit le langage source, exprimé dans un
langage de programmation, en langage machine.
En fait, la « compilation » est un processus plus complexe
qu’une simple traduction, et se déroule en 3 phases
essentielles, réalisées par les programmes suivants :
1- Le pré-processeur (pre-processor) : analyse des
directives de compilation (ex : #include pour les langages C
et C++), suppression des commentaires.
2. Compilateur du langage vers le
langage machine
2- Le compilateur (compiler) : il assure la traduction du code
source en code machine en tenant compte du jeu d’instruction
de la famille de processeur, du mode d’adressage (analyse
la syntaxe du programme source et produit un programme
compilé, mais non exécutable).
3- L’éditeur de liens (linker) : met en relation le
programme avec les librairies externes utilisées et construit
le programme exécutable.
3. Environnement de Développement Intégré
L’EDI (Environnement de Développement Intégré, en anglais :
IDE, Integrated Development Environment) est un outil
intégrant toutes les fonctions permettant l’écriture des
sources, la compilation et le débogage*.
Il inclut également des outils permettant la construction
d’interfaces graphiques et de nombreuses bibliothèques de
procédures et fonctions permettant de produire rapidement
des applications.
Exemples :
• Pour C/C++ : Dev C++, Anjuta, Code::Blocks
• Pour Java : NetBeans
• Pour Pascal Objet : Borland Delphi
• Pour VB.net et C# : Microsoft Visual Studio
* Débogage : recherche et correction des défauts de conception du programme conduisant à des disfonctionnements ou bogues (en anglais : bugs)
PLAN
• Introduction
1. Notion de programme
2. Familles de langages de programmation
3. Etapes de construction d'un programme informatique
• Le langage C
1. Introduction
2. Structure générale
3. Déclaration des données
4. Instruction d'affectation, opérateurs et expressions
5. Instructions d'entrée-sortie
6. Les structures de contrôle conditionnelles
7. Structures de contrôle itératives
8. Les tableaux
9. Les fonctions et les procédures
Introduction
• Le langage C a été conçu par Dennis
Ritchie et Ken Thompson dans les
années 1970 afin d’écrire le système
d’exploitation Unix.
• Le langage se devait d’être à la fois proche
de la machine et de haut niveau, et devait
être simple d’utilisation.
Ken Thompson (à gauche)
et Dennis Ritchie (à droite).
• Il est normalisé au début des années 1990 :
il devient ISO C 90 (appelé aussi ANSI
C90), puis des améliorations sont incluses
dans la version ISO C 99 (afin d’assurer,
autant que possible, la portabilité de C vers
C++) .
Introduction
• Pour pouvoir programmer en C, vous
devez nécessairement avoir installé un
compilateur C sur votre machine.
• Après avoir été compilé, le programme
peut être exécuté en chargeant sa
version exécutable en mémoire
Le compilateur est un programme exécutable qui
permet de traduire un programme écrit dans un
langage de programmation en langage machine.
PLAN
• Introduction
1. Notion de programme
2. Familles de langages de programmation
3. Etapes de construction d'un programme informatique
• Le langage C
1. Introduction
2. Structure générale
3. Déclaration des données
4. Instruction d'affectation, opérateurs et expressions
5. Instructions d'entrée-sortie
6. Les structures de contrôle conditionnelles
7. Structures de contrôle itératives
8. Les tableaux
Structure générale
Un programme source C est généralement constitué d’un ensemble de
fonctions dont une et une seule porte le nom de main (la fonction
principale du programme).
Tous les éléments d’un programme C sont mémorisés dans des fichiers au
format texte (à l’extension .c pour le programme source, ou .h pour
déclarer les entêtes de fonctions ou définir des directives communes) :
Un fichier comporte des directives de compilation, des
déclarations de constantes, variables et fonctions, et des définitions
de fonctions.
Une fonction comporte un type, un nom, une liste de paramètres, et
un bloc.
Un bloc est délimité par des accolades et comporte des
déclarations locales à la fonction : constantes ou variables du bloc,
des instructions ou d’autres blocs (imbrication de blocs).
Structure générale
Structure d’un programme C
Un programme C est composé d’une ou plusieurs fonctions dont l’une doit s’appeler main
inclusion d’un fichier contenant la
début de la fonction « main »
déclaration de fonctions pour
(point d’entrée de tout
gérer les entrées/sorties standard
programme)(main signifie
principale)
Type de include <stdio.h>
la valeur int main(void) Liste des arguments entre
de retour parenthèses
{
Début /* corps du programme*/
déclaration des constantes et des variables ;
quitte la fonction
main en renvoyant
instruction1 ;
Entre accolades "{" et "}" on
la valeur 0 (en instruction2 ; met la succession d‘instructions
général, signifie
que ‘tout s’est
…. à réaliser.(Bloc)
bien passé’) return 0
}
Fin
Structure d’un programme C
void main(void) : La fonction main ne prend aucun paramètre et ne
retourne pas de valeur.
int main(void) : La fonction main retourne une valeur entière à l'aide de
l'instruction return (0 si pas d’erreur).
int main(int arg1, char arg2) : On obtient alors des programmes auxquels
on peut adresser des arguments au moment où on lance le programme.
Structure d’un programme C :
Exemple
#include <stdio.h> Directives du préprocesseur :
#define PI 3.14 accès avant la compilation
int fonc_somme(int a, int b);
int fonc_division(int a, int b); Déclaration des fonctions
void main()
{ /* début du bloc de la fonction main*/
int i, j; /* définition des variables locales */
i = 10 ; Programme principal
j=2;
fonc_somme(I,j) ;
fonc_division(i,j) ;
} /* fin du bloc de la fonction main */
int fonc_somme(int a, int b) {
return (a+b);
} Définitions des
fonctions
int fonc_division(int a, intb) {
return (a / b);
}
Le préprocesseur
• Le préprocesseur effectue un prétraitement du programme source avant qu'il soit
compilé.
• Ce préprocesseur exécute des instructions particulières appelées directives.
• Ces directives sont identifiées par le caractère # en tête.
Inclusion de fichiers
#include <nom-de-fichier> /* répertoire standard */
#include "nom-de-fichier" /* répertoire courant */
La gestion des fichiers (stdio.h) /* Entrees-sorties standard */
Les fonctions mathématiques (math.h)
Taille des type entiers (limits.h)
Limites des type réels (float.h)
Traitement de chaînes de caractères (string.h)
Le traitement de caractères (ctype.h)
Utilitaires généraux (stdlib.h)
Date et heure (time.h)
Exemple 1 :
#include <stdio.h>
#include <conio.h>
int main(void)
{
int age; /*déclaration d’une variable*/
printf("Cours de programmation en \t langage C,\n \"SMI-S4\" \n");
printf("Quel est ton âge? ");
scanf(" %d", &age); /* lecture de l'âge, on donne l'adresse de age */
printf("\n ton âge est de %d ans \n",age);
getch() ; /* Attente d'une saisie clavier */
return 0; /* En principe un code d'erreur nul signifie "pas d'erreur". */
}
Exemple 2 :
Les commentaire en C
Les commentaires sont ajoutées au programme source afin
d’apporter des précisions sur certaines parties complexes ou
donner des informations générales sur l’objet du programme
ou d’une fonction.
PLAN
• Introduction
1. Notion de programme
2. Familles de langages de programmation
3. Etapes de construction d'un programme informatique
• Le langage C
1. Introduction
2. Structure générale
3. Déclaration des données
4. Instruction d'affectation, opérateurs et expressions
5. Instructions d'entrée-sortie
6. Les structures de contrôle conditionnelles
7. Structures de contrôle itératives
8. Les tableaux
9. Les fonctions et les procédures
Déclaration des données – constantes
et variables
Déclaration des données
Types de données de base
4 types de base, les autres types seront dérivés de ceux-ci.
Codage en
Type Signification Exemples de valeur Peut être
mémoire
'a' 'A' 'z' 'Z' '\n' 'a' 'A'
Caractère 1 octet signed,
char 'z' 'Z' '\n'
unique unsigned
Varie de –128 à 127
Short, long,
0 1 -1 4589 32000
int Nombre entier 2 ou 4 octets signed,
-231 à 231 +1
unsigned
Nombre réel 0.0 1.0 3.14 5.32
float 4 octets
simple -1.23
Nombre réel 0.0 1.0E–10 1.0 -
double 8 octets long
double précision 1.34567896
Les identificateurs
Déclaration des variables
Déclaration des variables
Les constantes
généralement en lettres Majuscules (c’est
une convention)
PLAN
• Introduction
1. Notion de programme
2. Familles de langages de programmation
3. Etapes de construction d'un programme informatique
• Le langage C
1. Introduction
2. Structure générale
3. Déclaration des données
4. Instruction d'affectation, opérateurs et expressions
5. Instructions d'entrée-sortie
6. Les structures de contrôle conditionnelles
7. Structures de contrôle itératives
8. Les tableaux
9. Les fonctions et les procédures
Expressions et opérateurs
Expressions et opérateurs
1. Expressions arithmétiques
Expressions et opérateurs
1. Expressions arithmétiques
• Par exemple : 2 + 3 * 5
• Par exemple : (2 + 3) * 5
Expressions et opérateurs
2. Expressions logiques et opérateurs relationnels
Expressions et opérateurs
3. Expressions logiques et opérateurs logiques
&& (and), || (or) et ! (not)
L’affectation : opérateur =
L’affectation : opérateur =
Le référencement/adresse : opérateur &
(&) d’une variable
retourne l’adresse mémoire de la variable
Le déréférencement/indirection :
opérateur *
(*) d’une variable de
type pointeur retourne la valeur située à l’adresse mémoire
pointée.
Affectation et opérateurs
arithmétiques en C
1. Pré- et post- incrémentations
Affectation et opérateurs
arithmétiques en C
1. Pré- et post- incrémentations
Affectation et opérateurs
arithmétiques en C
1. Pré- et post- incrémentations : Exemple
#include <stdio.h>
int main(void)
{ équivalent à:
int i, j = 5; 1. j++;
2. i = j;
i=6, j=6
i = ++j;
printf("i=%d, j=%d\n", i, j);
j = 5; équivalent à:
i = j++; 1. i = j; i=5, j=6
printf("i=%d, j=%d\n", i, j); 2. j++;
return 0;
}
Affectation et opérateurs
arithmétiques en C
2. Affectations composées (ou étendues)
Transtypage, changement de type (casting)
(<Type>) <Expression>
Transtypage, changement de type (casting)
char A=3;
int B=4;
float C;
C = (float)A/B;
Attention !
Les contenus de A et de B restent inchangés; seulement les valeurs utilisées dans
les calculs sont converties !
Les fonctions arithmétiques standards
Type des données : Les arguments et les résultats des fonctions arithmétiques sont
du type double.
PLAN
• Introduction
1. Notion de programme
2. Familles de langages de programmation
3. Etapes de construction d'un programme informatique
• Le langage C
1. Introduction
2. Structure générale
3. Déclaration des données
4. Instruction d'affectation, opérateurs et expressions
5. Instructions d'entrée-sortie
6. Les structures de contrôle conditionnelles
7. Structures de contrôle itératives
8. Les tableaux
9. Les fonctions et les procédures
Instructions d’entrée/sortie
Ecrire des informations : flux de sortie
librairie C <stdio.h> : printf(), fprintf(), puts(), fputs()
printf("<format>",<Expr1>,<Expr2>, ... )
Ecrire des informations : flux de sortie
librairie C <stdio.h> : printf(), fprintf(), puts(), fputs()
Lire des informations : flux d’entrée
librairie C <stdio.h> : scanf, fscanf, gets, fgets, getchar
Scanf(format, ref_variable)
• ref_variable : représentent une référence vers la variable variable1
• format représente la chaîne de format, c'est-à-dire les caractères de
formatage des variables à saisir
Lire des informations : flux d’entrée
librairie C <stdio.h> : scanf, fscanf, gets, fgets, getchar
La lecture d’une valeur supérieure à la taille du tableau cause une erreur de
débordement (buffer overflow)
Ecrire un programme qui permute et affiche les valeurs de trois
variables A, B, C de type entier qui sont entrées au clavier :
A ==> B ,
B ==> C ,
C ==> A
Chaînes de caractères
#include <string.h>
Déclaration des chaînes de caractères
Les fonctions de la librairie string.h
strcat(Vstr1, Vstr2
Les fonctions de la librairie string.h
Les fonctions de la librairie string.h
strcpy() :
PLAN
• Introduction
1. Notion de programme
2. Familles de langages de programmation
3. Etapes de construction d'un programme informatique
• Le langage C
1. Introduction
2. Structure générale
3. Déclaration des données
4. Instruction d'affectation, opérateurs et expressions
5. Instructions d'entrée-sortie
6. Les structures de contrôle conditionnelles
7. Structures de contrôle itératives
8. Les tableaux
9. Les fonctions et les procédures
Déroulement linéaire d’un programme
Structure conditionnelle simple
Syntaxe : une seule instruction à exécuter
ou
Structure conditionnelle simple
Exemple :
Structure conditionnelle avec
alternative
Structure conditionnelle avec
alternative
Syntaxe :
Ou
Ou bien encore toute combinaison des 2.
Structure conditionnelle avec
alternative
Exemple :
Imbrication de structures conditionnelles
Structures conditionnelle à alternatives successives
Ecrire un programme qui permet d’afficher le
signe du produit de deux entiers sans faire la
multiplication
Structure conditionnelle à choix
multiples
Structure conditionnelle à choix
multiples
Syntaxe :
Structure conditionnelle à choix
multiples
• Valeur : variable ou expression de type entier
• cas1, cas2, casN :
o représente chacune des valeurs évaluées
• bloc d’instructions 1, 2, N :
o chacun des blocs d’instructions
• break : cette instruction permet de mettre fin à l’exécution des
instructions d’un cas et reprend l’exécution après la fin du bloc switch ;
sans cette instruction, l’exécution se poursuit aux instructions du cas
suivant
• default : représentent le bloc d’instructions à exécuter dans le cas où
aucun cas n’a été sélectionné (ou bien oubli de l’instruction de sortie
d’un cas : break)
Structure conditionnelle à choix
multiples
Exemple :
PLAN
• Introduction
1. Notion de programme
2. Familles de langages de programmation
3. Etapes de construction d'un programme informatique
• Le langage C
1. Introduction
2. Structure générale
3. Déclaration des données
4. Instruction d'affectation, opérateurs et expressions
5. Instructions d'entrée-sortie
6. Les structures de contrôle conditionnelles
7. Structures de contrôle itératives
8. Les tableaux
9. Les fonctions et les procédures
Généralités
CONDITION
DE POURSUITE DE LA REPETITION.
LA CONDITION DE POURSUITE (OU D’ARRET) D’UNE
BOUCLE DOIT ETRE PARFAITEMENT IDENTIFIEE.
Boucle TANT QUE : While
SI UNE CONDITION EST VERIFIEE ET TANT QU’ELLE EST
VERIFIEE.
Boucle TANT QUE : While
Syntaxe :
condition = Expression_logique
o l’expression à évaluer : si VRAI, exécution du bloc d’instructions, et répétition
de l’exécution TANT QUE cette expression logique a pour valeur VRAI
bloc d’instructions: o bloc d’instructions à exécuter
Boucle TANT QUE : While
Exemples :
Boucle TANT QUE : While
Remarque :
Les éléments constituant l’expression logique doivent impérativement avoir
été initialisées avant la boucle et devront être a nouveau modifiées à l’intérieur
du bloc d’instructions (sinon on obtient une boucle infinie !)
Boucle REPETER … JUSQU’A :
do – while
Boucle REPETER … JUSQU’A :
do – while
Syntaxe :
Condition : l’expression à évaluer : exécution du bloc d’instructions 1 fois, et
répétition éventuelle TANT QUE cette expression logique a pour valeur VRAI
instruction, bloc d’instructions: instruction ou bloc d’instructions à exécuter
une ou plusieurs fois
Boucle REPETER … JUSQU’A :
do – while
Exemple :
ATTENTION : les éléments constituant l’expression logique doivent
impérativement être modifies dans le bloc d’instructions (sinon on obtient
une boucle infinie !)
Boucle POUR : For
Boucle POUR : For
Syntaxe :
• Initialisation : initialisation de la variable de boucle
• condition : condition de poursuite de la boucle
• incrémentation : incrémentation (ou modification) de la variable de boucle
Boucle POUR : For
Exemple pour afficher les nombres de 0 à 10 :
Equivalent à :
Boucle POUR : For
Remarques :
1. UTILISER UNE VARIABLE DE TYPE ENTIER COMME COMPTEUR
DE BOUCLE.
2. NE PAS MODIFIER LA VARIABLE DE BOUCLE DANS LE CORPS
DE LA STRUCTURE.
PLAN
• Introduction
1. Notion de programme
2. Familles de langages de programmation
3. Etapes de construction d'un programme informatique
• Le langage C
1. Introduction
2. Structure générale
3. Déclaration des données
4. Instruction d'affectation, opérateurs et expressions
5. Instructions d'entrée-sortie
6. Les structures de contrôle conditionnelles
7. Structures de contrôle itératives
8. Les tableaux
9. Les fonctions et les procédures
LES TABLEAUX
Les tableaux
Déclaration de tableaux
• Un tableau (array) est une collection de variables de même type, appelées éléments
• On les déclare par un type, un nom et une dimension (CONSTANTE) placée entre [ ]
• Le C alloue toujours un tableau dans une zone contigüe de la mémoire
• Une fois déclaré, on ne peut redimensionner un tableau
Exemples
int tab[4]; déclare un tableau de 4 valeurs entières tab[0] tab[1] tab[2] tab[3]
float A[5] = { 10.1, 20.3, 30.5, 40.0, 50.4 };
1 Les tableaux
Rappels Accès aux éléments d’un tableau
void main()
void main(void) a
{ void main(void)
{ 59 0
int a[6]; { const int N=10;
? 1
int i = 7;
intint
i; t[N],i;
? 2
a[0] = 59; 2 3 intfor
A[6] = { 1, 2,3, 5, 7, 11 };
(i=0;i<N;i++)
a[5] = -10;
a[i/2] = 2; ? 4 for
{ (i=0;i<6;i++)
-10 5 printf("%d ", A[i]);
a[6] = 0; printf("Entrez
a[-1] = 5; } t[%d]=",i);
}
scanf("%d",&t[i]);
Les tableaux consomment beaucoup }
de place mémoire. On a donc intérêt
}
à les dimensionner au plus juste.
1 Les tableaux
Rappels Exemple :
Calcul du nombre d'étudiants ayant une note supérieure à 10
main ( )
{ float notes[30];
int nbre,i;
for(i=0;i<30;i++)
{ printf ("Entrez notes[%d] \n ",i);
scanf(" %f" , ¬es[i]);
}
nbre=0;
for (i=0; i<30; i++)
if (notes[i]>10) nbre+=1;
printf (" le nombre de notes > à 10 est égal à : %d",
nbre);
}
1 Les tableaux
Rappels Tableaux à plusieurs dimensions
On peut définir un tableau à n dimensions de la façon suivante:
Type Nom_du_Tableau[D1][D2]…[Dn];
où Di est le nombre d’éléments dans la dimension i
Exemple : pour stocker les notes de 20 étudiants en 5 modules dans
deux examens, on peut déclarer un tableau :
float notes[20][5][2];
(notes[i][ j][k] est la note de l’examen k dans le module j pour
l’étudiant i)
1 Les tableaux
Rappels Tableaux à deux dimensions (Matrices)
Syntaxe : Type
nom_du_Tableau[nombre_ligne][nombre_colonne];
Ex: short A[2][3]; On peut représenter le tableau A de la manière
suivante :
• Un tableau à deux dimensions A[n][m] est à interpréter comme un
tableau unidimensionnel de dimension n dont chaque composante
tableau unidimensionnel de dimension m.
• Un tableau à deux dimensions A[n][m]contient n* m composantes. Ainsi
1 Les tableaux à deux dimensions
Rappels Initialisation à la déclaration d’une matrice
L’initialisation lors de la déclaration se fait en indiquant la liste des
valeurs respectives entre accolades ligne par ligne
Exemple :
float A[3][4] = {{-1.5, 2.1, 3.4, 0}, {8, 7e-5,1, 2.7 }, {3.1, 0, 2.5E4, -
1.3E2}};
A[0][0]=-1.5 , A[0][1]=2.1, A[0][2]=3.4, A[0][3]=0
A[1][0]=8 , A[1][1]=7e-5, A[1][2]=1, A[1][3]=2.7
A[2][0]=3.1 , A[2][1]=0, A[2][2]=2.5E4, A[2][3]=-1.3E2
1 Les tableaux à deux dimensions
Rappels Matrices : saisie et affichage
• Saisie des éléments d’une matrice d’entiers A[n][m] :
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{ printf ("Entrez la valeur de A[%d][%d] \n
",i,j);
scanf(" %d" , &A[i][j]);
}
• Affichage des éléments d’une matrice d’entiers A[n][m] :
for(i=0;i<n;i++)
{ for(j=0;j<m;j++)
printf (" %d \t",A[i][j]);
printf("\n")
}
1 Les tableaux à deux dimensions
Rappels Exercice 1
Ecrire un programme qui construit et affiche une matrice
carrée unitaire U de dimension N (max 50).
Une matrice unitaire est une matrice, telle que:
Uij = 1 si i=j
sinon Uij = 0
1 Les tableaux à deux dimensions
Rappels Exercice 1 : correction
#include <stdio.h>
main()
{
/* Déclarations */
int U[50][50]; /* matrice unitaire */
int N; /* dimension de la matrice unitaire */
int I, J; /* indices courants */
/* Saisie des données */
printf("Dimension de la matrice carrée (max.50) : ");
scanf("%d", &N);
1 Les tableaux à deux dimensions
Rappels /* Construction de la matrice carrée
unitaire */
for (I=0; I<N; I++)
for (J=0; J<N; J++)
{ if (I==J)
U[I][J]=1;
else
U[I][J]=0;
/* Edition
} du résultat */
printf("Matrice unitaire de dimension %d :\n", N);
for (I=0; I<N; I++)
{
for (J=0; J<N; J++)
printf("%d", U[I][J]);
printf("\n");
}
return 0;
}
1 Exercice 2
Rappels
Ecrire un programme effectuant le décalage des
éléments d'un tableau.
Exemple :
Tableau
D E C A L A G E
initial
Tableau
E C A L A G E D
modifié
1 Exercice 2 - correction
Rappels
1 Exercice 3
Rappels
Ecrire un programme qui teste si une matrice carrée
d’ordre n est symétrique et qui retourne « la
matrice M est symétrique » ou « la matrice M n’est
pas symétrique ».
1 Exercice 2
Rappels
1 Exercice 4
Rappels
Ecrire un programme qui lit la dimension N d'un
tableau T du type int (dimension maximale: 50
composantes), remplit le tableau par des valeurs
entrées au clavier et affiche le tableau.
Copiez ensuite toutes les composantes strictement
positives dans un deuxième tableau TPOS et toutes
les valeurs strictement négatives dans un troisième
tableau TNEG. Afficher les tableaux TPOS et TNEG.
1 Exercice 2
Rappels
1 Exercice 2
Rappels
PLAN
• Introduction
1. Notion de programme
2. Familles de langages de programmation
3. Etapes de construction d'un programme informatique
• Le langage C
1. Introduction
2. Structure générale
3. Déclaration des données
4. Instruction d'affectation, opérateurs et expressions
5. Instructions d'entrée-sortie
6. Les structures de contrôle conditionnelles
7. Structures de contrôle itératives
8. Les tableaux
9. Les fonctions et les procédures
LES FONCTIONS
– Les fonctions :
– Les procédures :
"factoriser" les programmes
structuration meilleure lisibilité
• facilitent la maintenance
réutilisées
procédure sans renvoyer aucune valeur.
fonction renvoie une valeur
Procédure Fonction
Paramètres Paramètres Résultat
Nom Nom
Fonction Fonction
Déclaration
Syntaxe
• type
• nom_fonction :
parenthèses
• return (expression):
Remarques
void ()
return
locales
1. SommeCarre
Pair
3. Affiche
ValeurAbsolue
prototype
Type NomFonction (type1 [param1],…, typeN [paramN]);
#include <stdio.h> #include <stdio.h>
float multiplication (float, Ou bien float multiplication (float a, float b);
float);
• int main ()
int main ( )
{
…
return 0;
}
Remarques:
Exemple :
return a>b ? a :b;
return c>Max2(a,b)? c : Max2(a,b);
return Max2(Max2(a,b),c);
variable locale à la fonction
une variable globale
Exemple : dans affecte avant affectation a=10
dans affecte après affectation a=5
dans main a=10
Vocabulaire
Signification
Paramètres formels
Paramètres effectifs
remplirTab
afficheTab
incTab
main
remplirTab
afficheTab
incTab
main