Académique Documents
Professionnel Documents
Culture Documents
1ère IAG
Responsables : Dr. Fadoua Bouafif
Dr. Boutheina Fessi
2
Chapitre 1: Généralité
1. Introduction
2. La démarche algorithmique
3. Définitions
4. Élaboration d'un algorithme
5. Structure d'un algorithme
6. Passage de l'algorithme au programme
7. Etapes d’éxecution d’un programme sur la machine
3
Introduction
4
La démarche algorithmique
5
Définitions
L'algorithmique est une science qui cherche la manière la plus optimale pour calculer des solutions
pratiques à un problème de calcul.
L'algorithmique désigne l'ensemble des règles et des techniques qui sont impliquées dans la
définition et la conception des algorithmes.
L'implémentation est la transcription de l'algorithme dans un langage évolué.
6
Élaboration d'un algorithme
Solution:
Ecriture d’un algorithme où nous précisons les constantes, les variables, les types de données et
les instructions.
7
Élaboration d'un algorithme
Caractéristiques :
Un algorithme doit être :
Lisible : l'algorithme doit être compréhensible même par un non informaticien.
De haut niveau : l'algorithme doit pouvoir être traduit dans n'importe quel langage de programmation.
Précis : chaque élément de l'algorithme ne doit pas porter à confusion. Il est donc important de lever
toutes ambigüités.
Concis : un algorithme ne doit pas dépasser une page. Si c'est le cas, il faut le décomposer en sous-
programme.
Structuré : un algorithme doit être composé de différentes parties facilement identifiables.
8
Structure d'un algorithme/programme
En Algorithmique En C
Algorithme nom_algorithme En tête void main()
{ //début du programme
Const:
// déclaration des constantes
Var: Déclaration des variables // déclaration des constantes
// déclaration des variables et des constantes // déclaration des variables ;
Début
instruction 1 instruction 1;
instruction 2 instruction 2 ;
…… Traitement ……
instruction n instruction n ;
Fin
} //fin du programme
9
Passage de l'algorithme au programme
Après la phase d’analyse qui aboutit à l’écriture de l'algorithme relatif au problème donné, la
deuxième phase qui doit être élaborée est la programmation.
La programmation consiste à traduire l'algorithme en un langage de programmation
(langage évolué) spécifique.
Le langage de programmation
est l'intermédiaire entre l'humain et la machine.
permet d'écrire dans un langage proche de la machine mais intelligible par l'humain les opérations que
l'ordinateur doit exécuter.
doit respecter une sémantique et une syntaxe stricte.
La sémantique est l'étude du sens des mots.
La syntaxe ou la grammaire est l'étude des contraintes entre les mots pour former des phases correctes.
10
Etapes d’éxecution d’un programme sur la machine
12
Introduction
La structure général d'un algorithme comprend plusieurs parties et définit certaines notions et
actions.
Déclaration des variables
Les expressions et les opérateurs
Les instructions simples ou élémentaires
13
Déclaration des variables
Les données utilisées dans un programme sont rangées dans différentes variables, donc elles doivent être
déclarées avant l'écriture des instructions qui les traitent.
Une variable est un espace mémoire que le programme réserve lors de son exécution, au moment de sa
déclaration.
ne doit pas correspondre à un mot clé du langage utilisé. En C, on différencie les majuscules et les minuscules.
14
Déclaration des variables
Le type précise la taille de l'espace mémoire réservé et le codage binaire employé pour lire et écrire la
donnée.
Les types simples correspondent aux données uniques, comme les entiers, réels, caractères,
Les types structurés correspondent à un ensemble de données, comme une suite de nombres
(tableau d'entier) ou de caractères (chaine de caractères). Dans ce cas, chaque case élémentaire de
l'ensemble peut contenir une donnée de type simple ou structuré.
Lors de la déclaration des variables dans l’algorithme (programme), deux types sont discernés: les
constantes et les variables.
15
Les constantes: définition
En algorithmique En C
Const : nom_constante = valeur Const type nom_constante = valeur ; #define nom_constante valeur
16
Les variables: définition
Une variable est une donnée dont la valeur peut être modiée au cours de l'exécution de
l'algorithme (programme).
Elle peut être :
Une donnée d'entrée (fournie par l'utilisateur)
Un résultat final d'un calcul
Un résultat intermédiaire de calcul
17
Les variables: déclaration
En algorithmique En C
Var : nom_v : type Type nom_v ;
Exemple : Exemple :
Algorithme test void main()
var : a : entier {
x ,y : caractère int a;
debut char x,y;
.......... ....
Fin }
18
Les types de données
Ce type de variable stocke des caractères : des lettres, des signes de ponctuations,
des espaces et des chiffres.
caractère (char en C) : correspond à un caractère du code ASCII.
Exemple : b, c, h.
Ce type prend deux valeurs soit vrai (1) soit faux (0).
En C, ce type n'est pas explicitement exprimé. Il est formulé à travers des
expressions booléennes basées sur les opérateurs logiques afin de générer un
résultat booléen.
Exemple :
int age_legal, age ;
age_legal = (age >= 16) && (age < 65)
22
Les expressions
Un opérateur est un signe qui relie deux valeurs pour produire un résultat.
Il existe plusieurs types d'opérateurs :
Opérateurs sur les entiers et les réels
Opérateurs sur les entiers et les booléen
Opérateur sur les chaines de caractères
Opérateurs de comparaison
24
Les opérateurs sur les entiers et les réels
Arithmétique
En Algorithmique En C
+ Addition +
- Soustraction -
* Multiplication *
/ division /
div Division entière /
mod Reste de la division %
Remarques :
La multiplication et la division ont la priorité sur l'addition et la soustraction.
L'utilisation des parenthèses force l'ordre des priorités.
25
Les opérateurs sur les entiers et les réels
26
Les opérateurs sur les entiers et les booléens
28
Les opérateurs de comparaison
Remarques :
Ces opérateurs sont utilisés en algorithmique et en C (par convention)
29
Les instructions simples ou élémentaires:
Instruction d’affectation
Instruction d’affectation :
Consiste à attribuer une valeur à une variable donnée.
En algorithmique En C
Notation :
=
Exemples : Exemples :
A 30 A = 30;
B "bonjour" B = "bonjour";
Une instruction d’affectation ne modifie que ce qui est situé à gauche de la flèche (= en C)
La valeur qui va être affectée à une variable doit être impérativement du même type que
cette dernière, sinon c'est une erreur.
Exemples : var : X : réel
X "bonjour" erreur
X 5.3 correcte
30
Les instructions simples ou élémentaires:
Instruction d’affectation
Exercices:
1. Quelles sont les valeurs de A; B et C après exécution 2. Déterminer les valeurs de x
des instructions suivantes :
32
Instruction de lecture/écriture (entrée/sortie)
EN C:
Les fonctions d'entrée-sortie sont déclarées dans le fichier 'stdio.h’.
Il faut, donc, inclure ce fichier avant le programme principal (void main( )) en utilisant l'instruction #include <stdio.h>
La fonction scanf() : permet de lire les données à partir du clavier.
EN C:
La fonction printf() : permet d’afficher à l'écran du texte, des valeurs de variables ou des résultats d'expression
Syntaxe : printf ("format", expr1, expr2, …);
Format : est une chaîne de caractères qui peut contenir:
du texte
des séquences d’échappement (\n : retour à la ligne; \t: tabulation ; \": guillemet; …)
des spécificateurs de format : indiquant le format d’affichage
expr1, … : sont les variables et les expressions dont les valeurs seront achées à la place des spécificateurs de formats
Exemples:
1. printf ("bonjour");
2. float x ; int i ;
x = 15.3 ; i=5;
printf ("la variable x vaut %f \n la variable i vaut %d\n", x, i) ;
34
Instruction de lecture/écriture (entrée/sortie)
EN C:
Spécificateurs de format
EN C:
Exemple
#include <stdio.h> /* bibliothèque pour les fonctions entrée /sortie */
void main () /* programme principal */
{ / * déclaration des variables */
int i, j ; // déclaration d'entiers
double a, b ; // déclaration de réels
/* initialisation des variables */
i = 10 ; // affecte à i la valeur 10
j=i+3; // affecte à j la valeur de i + 3
a = 4.5 ; // affecte à a la valeur 4.5
b = 7.2 * a ; // affecte à b la valeur 7.2* valeur de a
/* Affichage des valeurs des variables */
printf ("i = %d \n", i) ;
printf ("j = %d \n", j) ;
printf ("a = %lf \n", a) ;
printf ("b = %lf \n", b) ;
}