Want to create interactive content? It’s easy in Genially!
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
Essential Learning Unit
View
Akihabara Learning Unit
View
Genial learning unit
View
History Learning Unit
View
Primary Unit Plan
View
Vibrant Learning Unit
View
Art learning unit
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
- 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 :
- 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
- un algorithme traduit dans un langage de programmation donné, pour dire à l'ordinateur ce qu'il doit faire.
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, …)
- 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.
- 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
- un algorithme traduit dans un langage de programmation donné, pour dire à l'ordinateur ce qu'il doit faire.
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