0% ont trouvé ce document utile (0 vote)
35 vues144 pages

Cours Programmation C SMP3 2021

Ce document présente un cours sur la programmation en langage C, abordant des notions fondamentales telles que la définition d'un programme, les étapes de construction d'un programme informatique, et les structures de contrôle. Il détaille également la structure générale d'un programme C, les types de données, les opérateurs et les expressions, ainsi que les fonctions et procédures. Enfin, il explique le rôle du compilateur et de l'environnement de développement intégré dans le processus de programmation.

Transféré par

khaledmoundir62
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
35 vues144 pages

Cours Programmation C SMP3 2021

Ce document présente un cours sur la programmation en langage C, abordant des notions fondamentales telles que la définition d'un programme, les étapes de construction d'un programme informatique, et les structures de contrôle. Il détaille également la structure générale d'un programme C, les types de données, les opérateurs et les expressions, ainsi que les fonctions et procédures. Enfin, il explique le rôle du compilateur et de l'environnement de développement intégré dans le processus de programmation.

Transféré par

khaledmoundir62
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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" , &notes[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

Vous aimerez peut-être aussi