Want to create interactive content? It’s easy in Genially!

Get started free

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:

Essential Learning Unit

Akihabara Learning Unit

Genial learning unit

History Learning Unit

Primary Unit Plan

Vibrant Learning Unit

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 :
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