0 évaluation0% ont trouvé ce document utile (0 vote)
4 vues36 pages
Introduction à l'algorithmique de base
Le document présente les éléments de base de l'algorithmique, incluant les définitions des types de données, des variables, et des opérations d'entrée/sortie. Il aborde également les structures de contrôle, telles que la sélection et la répétition, avec des exemples pratiques en langage C. Enfin, des exercices sont proposés pour renforcer la compréhension des concepts abordés.
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0 évaluation0% ont trouvé ce document utile (0 vote)
4 vues36 pages
Introduction à l'algorithmique de base
Le document présente les éléments de base de l'algorithmique, incluant les définitions des types de données, des variables, et des opérations d'entrée/sortie. Il aborde également les structures de contrôle, telles que la sélection et la répétition, avec des exemples pratiques en langage C. Enfin, des exercices sont proposés pour renforcer la compréhension des concepts abordés.
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
{C} Eléments de base d’algorithmique
HAJJI TARIK
Language ENSAM – Meknès
Version – 2021/ 2022 Cours de EL Moukhtar ZEMMOURI Sommaire
I. Algorithme, c’est quoi ?
II. Notions de base
1. La notion de type
2. La notion de variable
3. Les entrées sorties
III. Structures de contrôle
1. La sélection
2. La répétition
2 ENSAM Algorithme, c’est quoi ?
3 ENSAM I - Notions de bases
4 ENSAM 1 - La notion de type • Définition : • Un type de données est un ensemble caractérisé par : • Un nom • Ensemble de valeurs • Opérateurs • En algorithmique, on distingue 4 types de base : • Les entiers • Les réels • Les caractères • Les booléens • A partir de ces 4 types on peux définir des types composés : • Tableaux, matrices, listes, graphes, …
5 ENSAM Le type entier - int
6 ENSAM Le type entiers - int • Remarques : • Soient a et b deux entiers : • b divise a ssi a%b = 0 • a est pair ssi a%2 = 0 • a est impair ssi a%b = 1
7 ENSAM Le type réels - float
8 ENSAM Le type caractères - char • Représente l’ensemble des caractères imprimables et non imprimables • Alphabétiques : 'a', …, 'z' 'A', …, 'Z' espace, tiret bas (underscore) • Numériques : '0', …, '9' • Symboles mathématiques et ponctuation • Retour à la ligne • Tabulation • … • Un caractère est noté entre ' et ' • Exemple : 'A' '1' '@' '\n' '\t' • Une chaine de caractères est notée entre " et " • Exemples : "hello" "bonjour tout le monde"
9 ENSAM Le type booléens • Le type booléen représente l’ensemble {vrai, faux} muni des opérateurs logiques suivants: ET, OU, NON • Opérateurs de comparaison : • Les opérateurs : < , > , <= , >= , == et != s’appliquent sur les 4 types de bases. • Le résultat d’une opération de comparaison est toujours booléen
10 ENSAM Valeurs constantes et types • N. B. la manière avec laquelle on écrit une constante indique implicitement son type. • Exemple : • '1' est de type caractère (char), • 1 est de type int • 1.0 est de type float • "1" est une chaine de caractères • Ces valeurs ne sont pas codées de la même manière sur la mémoire de l’ordinateur
11 ENSAM 2- La notion de variable • Définition : • Une variable est un emplacement mémoire caractérisé par : • Un nom (identificateur) • Un type • Un contenu (une valeur).
valeur nom
12 ENSAM Déclaration d’une variable • La déclaration est l’opération qui permet de réserver un espace mémoire et lui associer un identificateur, un type et éventuellement une valeur initiale. • Syntaxe : nomVar • type nomVar ; • type nomVar = valeur ; valeur nomVar
• Exemples : • int n,i ; • float a,b,c ;
13 ENSAM L’affectation • L’affectation est l’opération qui permet d’attribuer une valeur à une variable. • L’affectation permet d’écrire une valeur dans une variable. • Modifier le contenu de la variable. • Syntaxe : • nomVar = valeur ; • On distingue trois types d’affectations : • variable = constante ; • variable = variable ; • variable = expression ; • Exemples : • int a = 26, b = 15 ; • r=a%b; • a=b; • b=r;
14 ENSAM 3- Les entrées / sorties • Lecture / Ecriture : • Les deux opérations lire et écrire permettent à un algorithme de communiquer avec l’extérieur (l’utilisateur) via des périphériques d’entrées et de sorties.
lire écrire Algorithme
15 ENSAM Les entrées / sorties • Lecture : • L’opération lire permet d’affecter une valeur de l’extérieur à une variable (à travers un périphérique d’entrée : clavier…). • Syntaxe : • lire (nomVar) ; • Exemples : • lire (n) ; • lire (a, b) ;
16 ENSAM Les entrées / sorties • Ecriture : • L’opération écrire permet d’afficher un message (chaîne de caractères) ou la valeur d’une variable (sur un périphérique de sortie : écran …). • Syntaxe : • Ecrire ("message") ; • Ecrire (nomVar) ; • Exemples : • Ecrire ("donner la valeur de n") ; • Lire (n) ; • … • Ecrire (n, "est premier") ;
17 ENSAM 4- Structure d’un algorithme • Exemple : Début • Algorithme qui permet de lire deux int a, b, s; entiers a et b, puis calculer et float moy ; afficher la somme et la moyenne. écrire ("donner a et b ") ; lire (a, b) ; s=a+b; moy = s / 2.0 ; écrire("la somme est ", s) ; écrire("la moyenne est", moy) ; Fin
18 ENSAM Exercices • Exercice 1 • Ecrire un algorithme qui lit un temps en secondes puis l’affiche en heures, minutes et secondes. • Exercice 2 • Algorithme pour lire le rayon d’une sphère puis calculer et afficher sa surface et son volume. • Exercice 3 • Ecrire un algorithme qui permet de transformer la valeur d’un angle donnée du (degrés, minutes et secondes) en radian. • Exemple : 6° 50’ 10" = 0.119 rand • Transformation inverse ? 19 ENSAM II – Structures de contrôle Les structures de contrôle • On appelle structure de contrôle toute instruction qui permet de contrôler l’ordre d’exécution des instructions dans un algorithme. • En algorithmique, on distingue trois structures de contrôle qui permettent de construire des algorithmes : • La séquence • La sélection (structure conditionnelle) • La répétition (boucles) • La séquence : • Une séquence est un bloc d’instructions qui s’exécutent dans un ordre séquentiel.
21 ENSAM 1- La sélection • La structure de sélection permet de choisir les instructions à exécuter en fonction d’une condition. • Elle est utilisé pour l’exécution conditionnelle. • N.B. • Une condition est une expression booléenne. • expression dont le résultat est vrai ou faux.
22 ENSAM La sélection
Si (condition) Si (condition) Bloc d’Instructions 1 Bloc d’Instructions Sinon Finsi Bloc d’Instructions 2 Finsi
Faux Cond Cond Faux Vrai Vrai
Instructions 2 Instructions 1 Instructions
23 ENSAM La sélection • Exemple : • Tester si un nombre est pair ou impair #include <stdio.h>
int main() Début { int n; int n; printf("donnez un entier :\n"); écrire ("Donnez un entier "); scanf("%d", &n); lire (n); if (n%2 == 0){ si (n%2 == 0) printf("%d est pair\n", n); ecrire(n, "est pair"); } sinon else{ printf("%d est impair\n", n); ecrire(n, "est impair"); } finsi return 0; Fin }
24 ENSAM Exercices
25 ENSAM 2- La répétition • Une structure de répétition, ou boucle, est une instruction qui permet de répéter (ré-exécuter) un bloc d’instructions un certain nombre de fois (en fonction d’une condition). • On distingue 3 formes de boucles : • La boucle tantque • La boucle pour • La boucle répéter
26 ENSAM La boucle Tantque - while
Faux Cond Tantque (condition) Instruction 1 Vrai
... Instructions 1 Instruction N ... FinTanque Instruction N
• Tant que la condition est vraie exécuter le bloc d’instructions.
• N. B. • Le nombre de répétitions n’est pas connu à l’avance. • Le bloc d'instruction peut ne pas être exécuté, si la condition est fausse au début.
27 ENSAM La boucle Tantque - while
• Exemple : • Algorithme d’Euclide pour calculer le PGCD de 2 entiers • Input : deux entiers a et b • Output : le PGCD(a, b) • Le PGCD de a et b est égal à b si ce dernier divise a, sinon le PGCD de a et b est égal au PGCD de b et de r (reste de la division de a par b).
28 ENSAM La boucle Tantque - while • Exemple : PGCD #include <stdio.h> Début int main() int a,b, r; { ecrire ("donnez a et b"); int a, b, r; lire(a,b); printf("donnez deux entiers :\n"); r = a%b; scanf("%d%d", &a, &b);
tantque (r != 0) r = a%b; a=b ; while(r != 0){ b=r ; a = b; b = r; r=a%b ; r = a%b; fintantque } ecrire ("le PGCD est ", b) ; printf("Le PGCD est : %d\n", b); return 0; Fin }
29 ENSAM La boucle pour - for
Pour compteur = init à fin faire
compteur = init Instruction 1 ... Instruction N Compteur Faux <= fin FinPour Vrai
Instructions 1 • Permet de répéter un bloc d'instructions un ... nombre prédéfini de fois. Instruction N
• N. B. compteur ++ • Le nombre de répétitions est connu : • fin - init +1 • Le bloc d'instructions peut ne pas être exécuté, si fin est inférieur à init.
30 ENSAM La boucle pour - for
31 ENSAM La boucle pour - for • Exemple : somme
Début #include <stdio.h>
int n, i, s; int main(){ ecrire("donner la valeur de n"); int n, i, s; lire(n); printf("donnez un entier :\n"); scanf("%d", &n); s = 0; s = 0; pour i=1 à n faire for (i= 1; i<=n; i++){ s = s + i; s = s + i; finpour } printf("la somme est %d\n", s); ecrire ("la somme est : ", s); return 0; Fin }
32 ENSAM La boucle pour - for
33 ENSAM La boucle pour - for Début #include <stdio.h> int n, i; int a, b, c; int main() ecrire("donnez la valeur de n : "); { int n, i; lire(n); int a, b, c; si (n==0 OU n==1) printf("donnez la valeur de n : \n"); ecrire("U", n, " = 1"); scanf("%d", &n); sinon if (n==0 || n==1) printf("U%d = 1\n", n); else{ a = 1; a = 1; b = 1; b = 1; pour i=2 à n faire for (i=2; i<= n; i++){ c = b + a; c = b + a; a = b; a = b; b = c; b = c; } printf("U%d = %d\n", n, c); finpour } ecrire("U", n, " = ", c); return 0; finsi }
34 Fin ENSAM La boucle répéter jusqu’à
Répéter Instructions 1 Instruction 1 ... ... Instruction N Instruction N Jusqu’à (condition); Faux Cond Vrai
• Exécuter le bloc d’instructions jusqu’à ce que la condition soit vraie.
• N. B. • Le nombre de répétitions n’est pas connu à l’avance. • Le bloc d'instruction est exécuté au moins une fois.
35 ENSAM La boucle répéter jusqu’à • Exemple : • Lire au clavier un note entre 0 et 20 Début float x; répéter #include <stdio.h> ecrire("donner une note : "); lire(x); int main() jusqu’à (x>=0 and x<=20); { float note; . do{ . printf("donnez une notre entre 0 et 20 : \n"); . scanf("%f", ¬e); }while (note < 0 || note > 20); Fin ...