Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Algorithmique

No description
by

Brice Effantin

on 25 August 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Algorithmique

Brice EFFANTIN
brice.effantin-dit-toussaint@univ-lyon1.fr

Initiation à l'algorithmique
Initiation à l'algorithmique: contenu
"Avec de la méthode on peut arriver à tout
aussi bien qu'à rien"
Pierre Dac

Algorithmique et
Programmation
Initiation à
l'algo
Algo et
programmation
Initiation à
l'algorithmique
4 CM
9 TD
6 TP
Soutien
DS machine
+ interros
Algorithmique
Qu'est-ce qu'un algorithme?
Comment le représente-t-on?
Programmation
Eléments de base
Variables (type, déclaration,...)
Actions (affectation, E/S,...)
Structures de contrôle (tests, boucles,...)
Tableaux (1D)
Fonctions
Qu'est-ce qu'un algorithme?
Algorithme
Ensemble d'actions à effectuer afin
de résoudre un problème
en un nombre fini d'opérations.
Exemple
Exercice segment
Enoncé
Donner les instructions nécessaires
pour tracer la médiatrice d'un segment [XY]
avec un compas et une règle
Solution?
Etapes:
Pointe sur X
Mine sur Y (écartement taille du segment)
Tracer un quart de cercle vers la gauche
Mine sur Y
Tracer un quart de cercle vers la droite
Pointe sur Y
Mine sur X
Tracer un quart de cercle vers le gauche
Mine sur X
Tracer un quart de cercle vers la droite
Noter les 2 points formés par les intersections des cercles par A et B
Tracer une droite passant par A et B
Qu'est-ce qu'un algorithme?
Suite d'instructions à réaliser pour résoudre un problème.
Les instructions doivent être compréhensibles par celui qui devra les exécuter.
Ordinateur comprend 4 catégories d'instructions
Affectation de
variables
Entrée / Sortie
Tests
Boucles
Algorithme = suite d'instructions
Algorithme vs Programme
Algorithme
Algorithme vs Programme ?
exprime les instructions résolvant un problème donné, indépendamment des particularités d'un langage
Programme
c'est traduire l'algorithme dans un langage
Résolution d'un problème informatique
Problème
Algorithme
Programme
Langage
machine
Analyse du problème
Traduction
Compilation
Les variables
Qu'est-ce qu'une variable?
Affectation d'une variable
Qu'est-ce qu'une variable?
Elément permettant de stocker
"provisoirement" des données
Exemples:
Données venant de l'utilisateur
Résultats intermédiaires
-> Exercice moyenne
Enoncé
Donner les étapes (une par une) que vous faites pour calculer la moyenne des valeurs suivantes: 11, 14, 20.
Solution
Etapes:
11 + 14 = 25

25 + 20 = 45

45 / 3 = 15
Variable
Variable: espace mémoire pour stocker des données
En informatique, les variables sont représentées par un nom (une étiquette)
Exemples: x , truc , somme , ...
Affectation d'une variable
Action de mettre une valeur dans une variable
Possibilité d'affecter 1 seule valeur
x = 34 ;
Possibilité d'affecter une expression
x = 2 + 28;
Possibilité d'utiliser une autre variable
somme = 2 + x;
Possibilité d'utiliser la même variable
x = x + 1;
Affectation d'une variable
Comme son nom l'indique, une variable a un contenu qui peut varier.
Chaque affectation remplace le contenu précédent.
Exemple:
x = 2;
x = 3;
x = x + 1;
Que contient la variable x?
Types de variables
Il existe plusieurs types de données en fonction des besoins:
Nom, prénom,...
Age, numéro,...
Moyenne, niveau de précipitation,...
Un caractère (M/F),..
-> il existe plusieurs types de variables
(à voir avec la prog)
Entrée / Sortie
Communication entre le programme et l'extérieur:
l'utilisateur:
entrée -> saisie clavier
sortie -> affichage écran
un fichier:
entrée -> lecture fichier
sortie -> écriture fichier
un transfert de données
...
Organigramme: action
Afin de représenter une action dans un
organigramme, nous utiliserons un rectangle
Organigramme
pour représenter
un algorithme
Début
Fin
Organigramme: actions d'entrée/sortie dans un parallélogramme
Entrée / Sortie
Entrée: lire une donnée au clavier et la placer dans une variable
Sortie: écrire quelque chose (texte, variable) à l'écran
Les actions conditionnelles
(tests)
Objectif: à quoi sert un test?
Ecriture: comment écrit-on un test? De quoi est-il composé (condition, réponse)?
Organigramme: comment est-il représenté?
Objectif d'un test
De nombreuses actions sont à réaliser sous certaines conditions:
Si ma vitesse est supérieure à 90 km/h -> je dois ralentir
Si ma moyenne est comprise entre 10 et 12 -> mention A, si elle est comprise entre 12 et 14 -> mention B
Si le prix d'un objet X est supérieur au prix d'un objet Y -> j'achète 2 objets X, sinon j'achète 1 objet Y
Objectif d'un test
Avec un test, on souhaite donc appliquer des instructions différentes en fonction de certaines conditions
Organigramme: test
Le principe est le suivant:
Si une condition est vraie alors on exécute des instructions. Si elle est fausse, on exécute d'autres instructions.
En programmation:
Initialisation d'une variable
Types de variables
Opérateurs
Exemple: Si x est supérieur à 10, on retire 2. Si x est
inférieur à 10, on ajoute 3.
Organigramme: test
Exemple: Si l'âge de la personne est de 18, on affiche "Vous êtes majeur", sinon on ne fait rien.
Les actions itératives
(les boucles)
Utilisation: code répétitif. Exécuter plusieurs fois la même chose.
Avantages:
Factorisation du code -> moins de code donc moins d'erreurs
Maintenance facilité si modification
Les boucles: exemples
Demander 5 nombres à l'utilisateur
On fait 5 fois la même opération: demander un nombre
Demander un nbre compris entre 5 et 10
On demande un nombre et on répète cette opération tant qu'il n'est pas entre 5 et 10
Afficher les nombres pairs compris entre 1 et 50
Pour chaque nombre entre 1 et 50, on fait les mêmes opérations: Le nombre courant est-il pair? Si oui, on l'affiche (sinon rien)
Les boucles
On remarque qu'il y a 2 types de boucles:
Celles dont on connaît le nombre d'itérations
exemple: afficher 5 fois..., pour tous les nombres entre 1 et 50...
Celles dont on ne connaît pas le nombre d'itérations
exemple: demander un nombre tant qu'une condition n'est pas remplie
Les boucles: organigramme
Les boucles seront représentées par un lien remontant dans l'organigramme
Les boucles: exemple
On souhaite afficher les carrés des nombres de 1 à 5
2 solutions proposées
Solution 1: copier/coller
Inconvénients:
Si on change les bornes, il faut tout recommencer

Si la formule change (2n^2 au lieu de n^2), il faut tout recommencer
Solution 2:
boucles
Les pb précédents?
Si changement de formule: 1 modif

Si changement de bornes: 2 modifs
Exercice 1
Ecrire un algorithme qui
demande 2 nombres à l'utilisateur
si le premier est plus petit, calcule la somme
sinon, calcule la différence
calcule le produit des 2
affiche les 2 résultats
Solution exo 1
Solution exo 1
1. on lit les 2 valeurs
2. on teste si A > B
3. si oui: C = différence
4. si non: C = somme
5. D = produit
6. affichage de C et D
Exercice 2
Ecrire un algorithme qui demande un nombre à l'utilisateur et affiche sa table de multiplication (1 à 10).
Solution exo 2
Solution exo 2
1. Demander N
2. Initialiser une variable à 1
3. Ecrire i*N
4. A-t-on atteint la borne sup:
i <=10?
5. Si non -> Fin
6. Si oui: incrément de i et retour de la boucle
Exercice 3
Ecrire toutes les tables de multiplications de 1 à 10
Solution exo 3
Solution exo 3
Entrée / Sortie
Possibilité d'afficher une variable
Ecrire(x)
Possibilité d'afficher du texte
Ecrire("Bonjour")
Possibilité d'afficher les 2
Ecrire("Valeur=",x)
Entrée / Sortie :
exemple
Demander un nombre à l'utilisateur et afficher le double de celui-ci
Test: les conditions
Une condition est une question dont la réponse est binaire: VRAI ou FAUX (OUI ou NON)
Exemples:
x<10
y+3 >= x-2
x pair ET y impair
Opérateurs de comparaison: <, <=, >, >=, !=
Exécution de haut en bas
Organigramme
Se lit de haut en bas
Action: Rectangle
E/S: Parallélogramme
Test: Losange
Boucle: retour
Début/Fin: Cercle
Boucles: remarque
Plusieurs manières de présenter une boucle:
- test avant les instructions de la boucle
- test après les instructions de la boucle
Test: exemple
Demander une note:
- entre 0 et 10: rattrapage
- entre 10 et 14: Bien
- au delà de 14: Très bien
Full transcript