• Aucun résultat trouvé

Introduction à l'algorithmique

N/A
N/A
Protected

Academic year: 2022

Partager "Introduction à l'algorithmique"

Copied!
28
0
0

Texte intégral

(1)

Introduction à l'algorithmique

1

Informatique et Science du Numérique

« Un langage de programmation est une convention pour donner des ordres à un ordinateur. Ce n’est pas censé être obscur, bizarre et plein de pièges subtils. Ça, ce sont les caractéristiques de la

magie. »

Dave Small

• Objectif : obtenir de la « machine » qu’elle effectue un travail à notre place

• Problème : expliquer à la « machine » comment elle doit s'y prendre

(2)

Introduction à l'algorithmique

2

Informatique et Science du Numérique

Informatique

Science du traitement rationnel de l'information par des machines automatiques

Philippe Dreyfus, 1962

(3)

Introduction à l'algorithmique

3

Informatique et Science du Numérique

Algorithme et organigramme

• Un algorithme est une suite finie et non ambiguë d’opérations ou d'instructions permettant de résoudre un problème.

• Un organigramme est une représentation d'une programmation sous forme d'un schéma.

• Un programme est une implémentation d'un algorithme ou d'un

organigramme.

(4)

Introduction à l'algorithmique

4

Informatique et Science du Numérique

Exemples d'algorithmes

Briques de LEGO Camion de pompiers

suite de dessins

Meuble en kit Cuisine équipée

notice de montage

Farine, œufs, .... gâteau

recette

(5)

Introduction à l'algorithmique

5

Informatique et Science du Numérique

Séquence linéaire

Début Saisie

Traitement

Affichage

Fin

(6)

Introduction à l'algorithmique

6

Informatique et Science du Numérique

Un premier algorithme

Algorithme ElèveAuCarré

{ Cet algorithme calcule le carré du nombre que lui fournit l'utilisateur }

variable unNombre, sonCarré : entier ; { déclarations des variables } début

{ préparation du traitement }

unNombre := saisir("Quel nombre voulez-vous élever au carré ?") ; { traitement : calcul du carré }

sonCarré := unNombre × unNombre ; { présentation du résultat }

afficher("Le carré est : ", sonCarré) ; fin

(7)

Introduction à l'algorithmique

7

Informatique et Science du Numérique

#include <stdio.h>

int main() { // declaration int nombre, carre;

// saisie

printf("tapez un nombre");

scanf("%d", &nbr);

// traitement

carre = nombre * nombre;

// affichage

printf("son carre est %d", carre);

return 0;

}

#include <iostream>

using namespace std;

int main() { // declaration int nombre, carre;

// saisie

cout << "tapez un nombre : ";

cin >> nombre;

// traitement

carre = nombre * nombre;

// affichage

cout << "son carre est " << carre << endl;

return 0;

}

# saisie

nombre = input("tapez un nombre : ")

# traitement

carre = nombre * nombre

# affichage print(carre)

(8)

Introduction à l'algorithmique

8

Informatique et Science du Numérique

Un deuxième algorithme

Algorithme ToutOuRien

{ affiche 0 si une valeur saisie est inférieure à un seuil donné sinon affiche 1 } constante (SEUIL : entier) := 5 ; { seuil à 5 V }

variable val : réel ; { valeur analogique } début

val := saisir("Donnez un nombre :") ; si val < SEUIL

alors

val := 0 ; sinon

val := 1 ;

afficher("La valeur finale est : ", val) ; fin

(9)

Introduction à l'algorithmique

9

Informatique et Science du Numérique

(10)

Introduction à l'algorithmique

10

Informatique et Science du Numérique

#include <stdio.h>

int main()

{ const int SEUIL = 5;

float val;

printf("Donnez un nombre : ");

scanf("%f", &val);

if ( val < (float) SEUIL ) val = 0;

else val = 1;

printf("La valeur finale est : %d", (int) val);

return 0;

}

#include <iostream>

using namespace std;

int main()

{ const int seuil(5);

float val;

cout << "Donnez un nombre : ";

cin >> val;

if ( val < static_cast<float>(seuil) ) val = 0;

else val = 1;

cout << "La valeur finale est : " << static_cast<int>(val);

return 0;

}

# declaration SEUIL = 5

# saisie

val = input("Donnez un nombre : ")

# traitement if val < SEUIL:

val = 0 else:

val = 1

# affichage

print("La valeur finale est : ", val)

(11)

Introduction à l'algorithmique

11

Informatique et Science du Numérique

L'instruction conditionnelle

si <expression logique

(vraie)

>

alors

début

Instructions ; sinon fin

début

Instructions ;

fin

(12)

Introduction à l'algorithmique

12

Informatique et Science du Numérique

En langage C/C++

if (

condition )

{ traitement1();

} else

{ traitement2();

}

En langage Python

if

condition :

traitement1() else :

traitement2()

(13)

Introduction à l'algorithmique

13

Informatique et Science du Numérique

Sélection conditionnelle

Selon <identificateur> Faire Début

(Liste de) valeur :

Traitement() ; FinFaire

Sinon :

Traitement_par_defaut() ; FinFaire

Fin

(14)

Introduction à l'algorithmique

14

Informatique et Science du Numérique

En langage C/C++

switch ( value ) { case 2 :

Traitement2();

Break ; case 3 :

Traitement3();

break ; default :

Traitement1();

break ; }

En langage Python

if value == 2

:

Traitement2() eli

f value == 3

:

traitement3() else :

traitement1()

(15)

Introduction à l'algorithmique

15

Informatique et Science du Numérique

Les instructions itératives

pour

<variable> de <valeur_initiale> à <valeur_finale>

par pas de <n>

Faire

Action(s)

FinFaire

(16)

Introduction à l'algorithmique

16

Informatique et Science du Numérique

En langage C

// le nombre d'itérations est connu int i ;

for ( i = Vi ; i != Vf ; i += pas ) { Action();

}// en sortie de boucle, i = Vf

// le nombre d'itérations est connu for ( int i(Vi) ; i != Vf ; i += pas )

{ Action();

}// en sortie de boucle, i = Vf

En langage C++

(17)

Introduction à l'algorithmique

17

Informatique et Science du Numérique

En langage Python

// le nombre d'itérations est connu for i in range(Vi, Vf) :

Action()

(18)

Introduction à l'algorithmique

18

Informatique et Science du Numérique

Les instructions itératives

tanque <expression logique

(vraie)

> faire début

Instructions ; Fin

répéter

Instructions ;

tanque <expression logique

(vraie)

> ;

(19)

Introduction à l'algorithmique

19

Informatique et Science du Numérique

En langage C/C++

while ( condition ) { Traitement();

}

do {

Traitement();

} while ( condition ) ;

En langage Python

while condition : Traitement()

continuation = True while continuation : Traitement()

if not condition :

continuation = False

(20)

Introduction à l'algorithmique

20

Informatique et Science du Numérique

Exemple 1 : le distributeur de boisson

Un distributeur propose de 2 types de boissons : eau et soda.

Le stock initial de chaque boisson est égal à 20.

Quand les stocks sont vides, le système doit avertir la maintenance et se mettre Hors Service.

Sinon, le système doit demander la boisson désirée.

• Le bouton 1 sélectionne une bouteille d'eau

• Le bouton 2 sélectionne une canette de soda

Une fois la sélection faite, si le stock de la boisson sélectionnée n'est pas vide, le système met à jour le stock, sélectionne la boisson demandée et ouvre la trappe d'accès à la boisson.

(21)

Introduction à l'algorithmique

21

Informatique et Science du Numérique

Notions abordées

• Opérateur logique

• Conditions imbriquées

(22)

Introduction à l'algorithmique

22

Informatique et Science du Numérique

Exemple 2 : le chiffre de Caesar*

Jules César, dans ses correspondances secrètes, codait le texte en remplaçant chaque lettre du texte clair original par une lettre à distance fixe, toujours du même côté, dans l'ordre de l'alphabet.

* http://fr.wikipedia.org/wiki/Chiffrement_par_décalage

(23)

Introduction à l'algorithmique

23

Informatique et Science du Numérique

Exemple 3 : le mot de passe

Réaliser l'algorigramme d'un programme qui demande à un utilisateur de définir un mot de passe.

• Le mot de passe ne doit pas être inférieur à 5 caractères.

• Le mot de passe de doit pas dépasser 10 caractères.

• Tant que le mot de passe est incorrect, on doit demander le mot de passe.

• Si le mot de passe est correct, on fait appel à un sous programme de chiffrement*, puis on enregistre le mot de passe chiffré dans un fichier.

* avec un algorithme de chiffrement par décalage

(24)

Introduction à l'algorithmique

24

Informatique et Science du Numérique

Notions abordées

• Programmation modulaire

• Fonctions statiques

• Fichier à accès aléatoire

(25)

Introduction à l'algorithmique

25

Informatique et Science du Numérique Programmation modulaire

datadisplay.cpp

void setup() {

//...

} datalogger.cpp

void setup() {

//...

Utiliser le mot clef stastic

}

Collision !

(26)

Introduction à l'algorithmique

26

Informatique et Science du Numérique

Exemple 4 : le tri à bulles

Mesurer la performance de l'algorithme du tri à bulles* sur une liste de 1000 éléments.

• Créer une liste de 1000 entiers [0 ; 500] générés aléatoirement.

• Trier la liste selon l'algorithme du tri à bulles.

• Afficher le temps de calcul.

• Enregistrer la liste triée dans un fichier.

Bonus :

• Enregistrer le temps de traitement pour des listes de tailles différentes.

• Évaluer graphiquement la performance de l'algorithme.

* permutations successives d'éléments adjacents

(27)

Introduction à l'algorithmique

27

Informatique et Science du Numérique

Exemple 5 : occurrence des lettres

Déterminer l'occurrence des lettres de l'alphabet dans un texte*.

• Utiliser un fichier comportant au moins 1000 caractères.

• Afficher les occurrences en %.

• Afficher les occurrences avec un histogramme.

Bonus :

• Afficher les occurrences en % par ordre décroissant.

* utilisé en cryptographie pour le déchiffrement par méthode statistique

(28)

Introduction à l'algorithmique

28

Informatique et Science du Numérique

Exemple 6 : pour terminer...

Écrire un programme pour rechercher les racines d'un polynôme :

• Quelconque de degré 2

• D'équation : y = 0,25.x3 + 0,75.x² − 1,5.x − 1,9

Références

Documents relatifs

Appuyez deux fois sur l'image de la partie ou l'écran d'ordinateur partagé que vous souhaitez masquer, puis appuyez sur l'icône affichée en haut à droite.. Pour afficher une

Votre très cher collègue vient de protéger contre toute modification l’interface web du robot que vous venez de recevoir et dont vous venez juste de finir la programmation. Une

Ce que je vous propose, c’est que la prochaine fois que vous vous connecter à un service que vous utilisez déjà, avec peut-être un mot de passe que vous utilisez partout, vous

Avec cette attaque, en supposant que notre Bob possède un excellent dictionnaire et que le mot de passe ne soit composé que de mots communs (avec des chiffres ou pas), même s'il

Ecrire un programme PHP qui affiche toutes les petites images du répertoire onglets dans un tableau de 4 colonnes, formant des liens vers les grandes images encadrées avec un

En cas de perte de votre mot de passe, cliquez sur le lien « RETROUVER MON MOT-DE-PASSE » sur la page de connexion, puis choisissez votre statut dans la liste et entrez votre email

3 En cas de perte de votre mot de passe, cliquez sur le lien « J’ai oublié mon mot de passe » sur la page de connexion, et suivez la procédure indiquée.. En cas de

Les ordinateurs compatibles sont ceux des salles 08, 11, 12, 32, 41, 44, Cedoc ainsi que les PC de l’administration (les PC en libre accès dans les classes et la salle polyvalente