Introduction à l’algorithmique et aux structures des données
Dr. Tahar GHERBI
Sommaire
01
L'algorithmique - notions fondamentales
02
De l'algorithmique à Python
03
Les tableaux
Projet
04
Les types composés - Structures
05
Les fonctions
06
Les fichiers
Evaluation
Evaluation
01
Quiz (35% de la note finale)
02
Projet informatique (65% de la note finale)
Deadline du rendu : ??/??/2021
Introduction (Algorithme vs Programme)
Objectif et déroulement
Structure générale d'un algorithme
Projet
chapitre 1
Variables, types et expressions
L'algorithmique - notions fondamentales
Quiz
Instructions
Exerccies
- de base
- séquence 1
- conditionnelles
- séquence 2
- de boucles
Synthèse
- Séquence 1
- Séquence 2
EXERCICES - Séquence 1
- Exercice 1 : Dérouler cet algorithme en indiquant à chaque étape le contenu des variables:
- Exercice 2 : Ecrire un algorithme qui demande à l'utilisateur de saisir deux valeurs entières, puis vérifie si elles sont égales et affiche le résultat.
- Exercice 3 : Ecrire un algorithme qui demande à l'utilisateur de saisir valeurs entières, puis calcule le maximum de ces valeurs et affiche le résultat.
Algorithme exercice1Variables nb1, nb2, nb3, nb4 : entier bool1, bool2 : booléendébut nb1 <- 8 nb2 <- 10 nb3 <- nb2 - nb1 nb3 <- nb3 * 2 nb4 <- nb1 nb1 <- nb2 bool2 <- faux bool1 <- non bool2 bool1 <- bool1 ou (nb2=4) bool2 <- (nb2=10) et (nb3=4)Fin
Plus d'exercices ?
EXERCICES - Séquence 2
- Exercice 1 : Ecrire un algorithme qui demande à l’utilisateur d'introduire un nombre N entier, puis affiche le message "bonjour" N fois. Utiliser la boucle pour
- Exercice 2 : Ecrire un algorithme qui demande à l’utilisateur d'introduire N nombres entier, puis calcule et affiche la moyenne de ces N nombres. Utiliser la boucle Tantque
- Exercice 3 : Ecrire un algorithme qui affiche les nombres de 1 à 10. Utiliser la boucle jusquaceque
Plus d'exercices ?
EXERCICES supplémentaires
Séquence 1 :
- Exercice 1 : Ecrire un algorithme qui demande à l'utilisateur d'introduire un nombre entier, puis affiche sa valeur absolue.
- Exercice 2 : Ecrire un algorithme qui demande à l'utilisateur d'introduire 4 nombres entiers, puis affiche le maximum de ces quatre nombres.
- Exercice 3 : Ecrire un algorithme qui demande à l'utilisateur d'introduire une année, puis vérifie si elle est bissextile ou non et affiche le résultat. Une année multiple de 4 est une année bissextile, sauf si en plus elle est multiple de 100; auquel cas, elle doit être multiple de 400 aussi.
- Exercice 4 : Ecrire un algorithme qui demande à l’utilisateur de choisir une opération par les suivante : la somme, la soustraction, la division ou le produit. Il lui demande ensuite, d'introduire deux nombres entiers et affiche le résultat de l’opération demandée (lorsque c’est possible).
EXERCICES supplémentaires
Séquence 2 (1/2) :
- Exercice 1 : Ecrire un algorithme qui demande à l'utilisateur d'introduire un nombre entier N; puis affiche les nombres pairs <= N.
- Exercice 2 : Ecrire un algorithme qui demande à l'utilisateur d'introduire un nombre entier positif N, puis Calcule et affiche sa factorielle. Rappelons que factorielle de N =1x2x…x(N-1)xN et la factorielle de 0 = 1
- Exercice 3 : Ecrire un algorithme qui demande à l'utilisateur d'introduire un nombre entier N; puis calcule et affiche la somme des N premiers nombres (1 à N).
- Exercice 4 : Ecrire un algorithme qui demande à l'utilisateur d'introduire deux nombres entiers N et M; puis Calcule et affiche N+M par incrémentations successives de 1 (en oubliant +). Par exemple pour 3+4, on calcule 3 + 1 + 1 + 1 + 1.
- Exercice 5 : Ecrire un algorithme qui demande à l'utilisateur d'introduire un nombre entier N, suivi de N nombres réels. L'algorithme calcule au fur et à mesure le minimum des réels et l'affiche.
- Exercice 6 : Ecrire un algorithme qui affiche, sur une seule ligne séparés par des virgules, les nombres entiers, entre 900 et 1700, qui sont divisibles par 7 et non divisibles par 3.
- Exercice 7 : Ecrire un algorithme qui demande à l'utilisateur d'introduire deux nombres entiers N et M; puis Calcule et affiche N*M par additions successives de 1 (en oubliant *). Par exemple pour 3*4, on calcule 3 + 3 + 3 + 3.
- Exercice 8 : Ecrire un algorithme qui demande à l'utilisateur d'introduire deux nombres entiers N et M; puis Calcule et affiche N*M par incrémentations successives de 1 (en oubliant *). Par exemple pour 3*4, on calcule 3 + (1 + 1 + 1) + (1 + 1 + 1) + (1 + 1 + 1) .
- Exercice 9 : Ecrire un algorithme qui demande à l'utilisateur d'introduire deux nombres entiers N et M; puis Calcule et affiche le quotient et le reste de N/M par soustractions successives (en oubliant /). Par exemple pour 7/2, on calcule 7-2=5 puis 5-2=3, puis 3-2=1. On s'arrête quand le résultat est < M (ici 2) et le résultat sera le reste (ici 1) et le nombre de soustractions effectuées sera le quotient (ici 3). Donc 7/2 a comme quotient 3 et comme reste 1.
EXERCICES supplémentaires
Séquence 2 (2/2) :
- Exercice 10 : Ecrire un algorithme qui demande à l'utilisateur d'introduire deux nombres entiers N et M; puis Calcule et affiche la puissance de N par M (N**M ou 𝑁^𝑀) par multiplications successives de 1 (en oubliant l’opération de puissance **). Par exemple pour 5**3, on calcule 5 * 5 * 5. Tenir compte du cas où M = 0.
- Exercice 11 : Ecrire un algorithme qui demande à l'utilisateur d'introduire deux nombres entiers N et X, puis calcule et affiche le résultat de : ∑𝑖=1𝑁𝑥𝑖
- Exercice 12 : Ecrire un algorithme qui demande à l'utilisateur d'introduire deux nombres entiers positifs x et y; puis calcule, par soustraction successives, le plus grand commun diviseur (pgcd) de x et y :
pgcd(x − y, y) si x > y pgcd(x, y) = pgcd(x, y − x) si x < y x si x = y
- Exercice 13 : Ecrire un algorithme qui demande à l'utilisateur d'introduire successivement des valeurs entières positives ou négatives. L’algorithme s’arrête quand l’utilisateur introduit la valeur nulle (0) et affiche la somme des valeurs positives et la somme des valeurs négatives.
- Exercice 14 : Ecrire un algorithme qui demande à l'utilisateur d'introduire un nombre entier N, puis vérifie et affiche s’il est parfait ou non. Un nombre entier est dit parfait s’il est égal à la somme de ses diviseurs (sauf lui même). Par exemple, 8 n’est pas un nombre parfait car 8 n’est pas égal à 1 + 2 + 4, mais 28 est un nombre parfait puisque 28 = 1 + 2 + 4 + 7 + 14. 6 aussi est un nombre parfait, …
- Exercice 15 : Ecrire un autre algorithme qui affiche les nombres parfaits <= 500
Ce qu'il faut retenir - séquence 1 (1/2)
Algorithme :
- Une séquence finie et non ambiguë d'instructions pour effectuer une tâche donnée.
- Une représenter d'une solution au problème traité, indépendante de tout langage de programmation et facilement traduisible en un programme
Programme :
- un algorithme traduit dans un langage de programmation donné, pour dire à l'ordinateur ce qu'il doit faire.
Structure d'un algorithme : Algorithme nomAlgorithme
Variables: déclarez les variables nécéssaires
début
Instruction 1
Instruction 2
…
Instruction n
Fin
Syntaxe des commentaires :// Commentaire sur une ligne: doit être précédé par // /* Commentaire sur plusieurs ligne: doit exister entre /* et */ */
Variable : zone mémoire qui sert à stocker des valeurs, des résultats de calculs, ... Constante : reste inchangée durant toute l'exécution de l’algorithme /programme.
Ce qu'il faut retenir - séquence 1 (2/2)
Type :
- Ensemble de valeurs qu’on peut affecté à une variable et sur lesquelles on peut appliquer des opérateurs
- Un langage d’algorithmique/de programmation possède un minimum de types prédéfinis. Souvnt ce sont ls types primitifs, mais on peut définir nos propres types (par exemple: les nombres complexes, …)
- Types primitifs :
- Types arithmétiques
- ENTIER (opérateurs : +, -, *, DIV, MOD). DIV : division entière (sans la partie décimale) et MOD : le modulo
- REEL (opérateurs : +, -, *, /). / : division réelle
- Type logique : BOOLEEN (Valeurs : VRAI / FAUX, Opérateurs : ET, OU, NON)
- Types alphabétiques (Caractère : CARACTERE, Chaîne de caractères : CHAINE, Opérateurs : (concaténation/assemblage de chaîne) &, (longueur) long, …)
Expression :
- Obtenue en reliant les valeurs d’un type entre elles (et/ou avec des variables et/ou expressions de même type) via des opérateurs.
Instructions: Elles regoupent :
- Les instructios de base (lecture du clavier,affichage sur l'écran et affectation d'une valeur à une variable)
- Les instructions conditionnelles (si … finSi, si … sinon … finSi, selon le cas ... finSelon)
Ce qu'il faut retenir - séquence 2 (1/2)
Algorithme :
- Une séquence finie et non ambiguë d'instructions pour effectuer une tâche donnée.
- Une représenter d'une solution au problème traité, indépendante de tout langage de programmation et facilement traduisible en un programme
Programme :
- un algorithme traduit dans un langage de programmation donné, pour dire à l'ordinateur ce qu'il doit faire.
Structure d'un algorithme : Algorithme nomAlgorithme
Variables: déclarez les variables nécéssaires
début
Instruction 1
Instruction 2
…
Instruction n
Fin
Syntaxe des commentaires :// Commentaire sur une ligne: doit être précédé par // /* Commentaire sur plusieurs ligne: doit exister entre /* et */ */
Variable : zone mémoire qui sert à stocker des valeurs, des résultats de calculs, ... Constante : reste inchangée durant toute l'exécution de l’algorithme /programme.
Synthèse et Ressources utiles
Introduction (Algorithme vs Programme)
QCM - Instruction
QCM - Introduction
chapitre 2
Structure générale d'un algorithme
Instruction
Python
QCM - Structure d'algorithme
QCM - Variable
Variable
Synthèse et Ressources utiles
Introduction (Algorithme vs Programme)
QCM - Instruction
QCM - Introduction
chapitre 3
Structure générale d'un algorithme
Instruction
LES tableaux
QCM - Structure d'algorithme
QCM - Variable
Variable
Synthèse et Ressources utiles
Introduction (Algorithme vs Programme)
QCM - Instruction
QCM - Introduction
chapitre 4
Structure générale d'un algorithme
Instruction
LES types composés
QCM - Structure d'algorithme
QCM - Variable
Variable
Synthèse et Ressources utiles
Introduction (Algorithme vs Programme)
QCM - Instruction
QCM - Introduction
chapitre 5
Structure générale d'un algorithme
Instruction
LES fonctions
QCM - Structure d'algorithme
QCM - Variable
Variable
Synthèse et Ressources utiles
Introduction (Algorithme vs Programme)
QCM - Instruction
QCM - Introduction
chapitre 6
Structure générale d'un algorithme
Instruction
LES fichiers
QCM - Structure d'algorithme
QCM - Variable
Variable
Algorithmique & Python - Notions fondamentales
Tahar GHERBI
Created on September 19, 2021
Apprendre à concevoir des algorithmes et les programmer avec Python
Start designing with a free template
Discover more than 1500 professional designs like these:
View
Math Lesson Plan
View
Primary Unit Plan 2
View
Animated Chalkboard Learning Unit
View
Business Learning Unit
View
Corporate Signature Learning Unit
View
Code Training Unit
View
History Unit plan
Explore all templates
Transcript
Introduction à l’algorithmique et aux structures des données
Dr. Tahar GHERBI
Sommaire
01
L'algorithmique - notions fondamentales
02
De l'algorithmique à Python
03
Les tableaux
Projet
04
Les types composés - Structures
05
Les fonctions
06
Les fichiers
Evaluation
Evaluation
01
Quiz (35% de la note finale)
02
Projet informatique (65% de la note finale)
Deadline du rendu : ??/??/2021
Introduction (Algorithme vs Programme)
Objectif et déroulement
Structure générale d'un algorithme
Projet
chapitre 1
Variables, types et expressions
L'algorithmique - notions fondamentales
Quiz
Instructions
Exerccies
- de base
- séquence 1
- conditionnelles
- séquence 2
- de boucles
Synthèse
- Séquence 1
- Séquence 2
EXERCICES - Séquence 1
Algorithme exercice1Variables nb1, nb2, nb3, nb4 : entier bool1, bool2 : booléendébut nb1 <- 8 nb2 <- 10 nb3 <- nb2 - nb1 nb3 <- nb3 * 2 nb4 <- nb1 nb1 <- nb2 bool2 <- faux bool1 <- non bool2 bool1 <- bool1 ou (nb2=4) bool2 <- (nb2=10) et (nb3=4)Fin
Plus d'exercices ?
EXERCICES - Séquence 2
Plus d'exercices ?
EXERCICES supplémentaires
Séquence 1 :
EXERCICES supplémentaires
Séquence 2 (1/2) :
EXERCICES supplémentaires
Séquence 2 (2/2) :
- Exercice 10 : Ecrire un algorithme qui demande à l'utilisateur d'introduire deux nombres entiers N et M; puis Calcule et affiche la puissance de N par M (N**M ou 𝑁^𝑀) par multiplications successives de 1 (en oubliant l’opération de puissance **). Par exemple pour 5**3, on calcule 5 * 5 * 5. Tenir compte du cas où M = 0.
- Exercice 11 : Ecrire un algorithme qui demande à l'utilisateur d'introduire deux nombres entiers N et X, puis calcule et affiche le résultat de : ∑𝑖=1𝑁𝑥𝑖
- Exercice 12 : Ecrire un algorithme qui demande à l'utilisateur d'introduire deux nombres entiers positifs x et y; puis calcule, par soustraction successives, le plus grand commun diviseur (pgcd) de x et y :
pgcd(x − y, y) si x > y pgcd(x, y) = pgcd(x, y − x) si x < y x si x = yCe qu'il faut retenir - séquence 1 (1/2)
Algorithme :
- Une séquence finie et non ambiguë d'instructions pour effectuer une tâche donnée.
- Une représenter d'une solution au problème traité, indépendante de tout langage de programmation et facilement traduisible en un programme
Programme :- un algorithme traduit dans un langage de programmation donné, pour dire à l'ordinateur ce qu'il doit faire.
Structure d'un algorithme : Algorithme nomAlgorithme Variables: déclarez les variables nécéssaires début Instruction 1 Instruction 2 … Instruction n Fin Syntaxe des commentaires :// Commentaire sur une ligne: doit être précédé par // /* Commentaire sur plusieurs ligne: doit exister entre /* et */ */Variable : zone mémoire qui sert à stocker des valeurs, des résultats de calculs, ... Constante : reste inchangée durant toute l'exécution de l’algorithme /programme.
Ce qu'il faut retenir - séquence 1 (2/2)
Type :
- Types primitifs :
- Types arithmétiques
- ENTIER (opérateurs : +, -, *, DIV, MOD). DIV : division entière (sans la partie décimale) et MOD : le modulo
- REEL (opérateurs : +, -, *, /). / : division réelle
- Type logique : BOOLEEN (Valeurs : VRAI / FAUX, Opérateurs : ET, OU, NON)
- Types alphabétiques (Caractère : CARACTERE, Chaîne de caractères : CHAINE, Opérateurs : (concaténation/assemblage de chaîne) &, (longueur) long, …)
Expression :- Obtenue en reliant les valeurs d’un type entre elles (et/ou avec des variables et/ou expressions de même type) via des opérateurs.
Instructions: Elles regoupent :Ce qu'il faut retenir - séquence 2 (1/2)
Algorithme :
- Une séquence finie et non ambiguë d'instructions pour effectuer une tâche donnée.
- Une représenter d'une solution au problème traité, indépendante de tout langage de programmation et facilement traduisible en un programme
Programme :- un algorithme traduit dans un langage de programmation donné, pour dire à l'ordinateur ce qu'il doit faire.
Structure d'un algorithme : Algorithme nomAlgorithme Variables: déclarez les variables nécéssaires début Instruction 1 Instruction 2 … Instruction n Fin Syntaxe des commentaires :// Commentaire sur une ligne: doit être précédé par // /* Commentaire sur plusieurs ligne: doit exister entre /* et */ */Variable : zone mémoire qui sert à stocker des valeurs, des résultats de calculs, ... Constante : reste inchangée durant toute l'exécution de l’algorithme /programme.
Synthèse et Ressources utiles
Introduction (Algorithme vs Programme)
QCM - Instruction
QCM - Introduction
chapitre 2
Structure générale d'un algorithme
Instruction
Python
QCM - Structure d'algorithme
QCM - Variable
Variable
Synthèse et Ressources utiles
Introduction (Algorithme vs Programme)
QCM - Instruction
QCM - Introduction
chapitre 3
Structure générale d'un algorithme
Instruction
LES tableaux
QCM - Structure d'algorithme
QCM - Variable
Variable
Synthèse et Ressources utiles
Introduction (Algorithme vs Programme)
QCM - Instruction
QCM - Introduction
chapitre 4
Structure générale d'un algorithme
Instruction
LES types composés
QCM - Structure d'algorithme
QCM - Variable
Variable
Synthèse et Ressources utiles
Introduction (Algorithme vs Programme)
QCM - Instruction
QCM - Introduction
chapitre 5
Structure générale d'un algorithme
Instruction
LES fonctions
QCM - Structure d'algorithme
QCM - Variable
Variable
Synthèse et Ressources utiles
Introduction (Algorithme vs Programme)
QCM - Instruction
QCM - Introduction
chapitre 6
Structure générale d'un algorithme
Instruction
LES fichiers
QCM - Structure d'algorithme
QCM - Variable
Variable