Mise à niveau - Algorithmique - Niveau: Première année Par: Mr ADIL ENAANAI 1
Activité 1 : Citer le chemin qu’il faut suivre par le bon homme pour arriver au trésor : Pour cela, utiliser la notation suivante pour designer les instructions à respecter : AV : Avancer d’un pas TG : Tourner à gauche TD : Tourner à droite AV TD AV TG AV TD AV TG AV TD AV TG AV TG AV TG AV TD AV TD AV TG AV TD AV Les instructions 2
Activité 2 : Le bon homme n’a pas de sac pour mettre l’argent. Il doit chercher tout d’abord le sac1 de capacité 20 unités d’argent, et le sac2 de capacité 10 unités d’argent. Sachant que la caisse contient 30 unités d’argent, décrire en suivant les instructions de base comment doit-il procéder pour avoir le trésor et revenir chez lui. Utiliser la notation suivante pour designer les instructions à respecter : AV : Avancer TG : Tourner à gauche TD : Tourner à droite Sac1 20 : Mettre 20 unités d’argent dans le sac1 Sac2 10 : Mettre 10 unités d’argent dans le sac2 Sac1 :SAC(20): Avoir un sac de 20 unités Sac2 :SAC(10): Avoir un sac de 10 unités AV TG AV TD AV TG AV Sac1 :SAC(20) TD AV TD AV TG AV TD AV TG AV TG AV Sac2 :SAC(10) TG AV TD AV TD AV TD AV TG AV TG AV TG AV TD AV TD AV TG AV TD AV Sac1 20 Sac2 10 Les instructions 3
Chapitre I: Algorithmique et programmation I ) Notion d’algorithme 1- Définition: Un Algorithme: c’est une méthode précise et efficace à suivre pour résoudre un problème. Le mot algorithme vient du nom du savant musulman « AL KHAWARIZMI ». Exemple: Algorithme de résolution de l’équation ax+b=0 a=0 b=0 x = -b/a S={ R }S={Ø} Oui Non OuiNon 4
2- Les variables d’entrée et de sortie: Un algorithme possède des variables d’entrée et des variables de sortie. Algorithme Variables d’entrée Variables de sortie Une variable: C’est une place mémoire qui stocke une information qui a un type bien défini. Variable d’entrée: c’est une variable dont le contenu est saisie par l’utilisateur en utilisant le clavier. Variable de sortie: c’est une variable dont le contenu est défini par l’algorithme. Le contenu de la variable de sortie est affiché à la fin par l’écran. Exemple: pour l’équation ax+b=0, on donne la valeur de a et b pour obtenir la valeur de x. Donc: a et b sont des variables d’entrée et x une variable de sortie. Exercice 1: Donner les variables d’entrée et de sortie des algorithmes suivants: a) La solution de ax²+bx+c=0 b) La moyenne générale de trois contrôles c) La conjugaison d’un verbe du premier groupe au présent Exercice 1: Donner les variables d’entrée et de sortie des algorithmes suivants: a) La solution de ax²+bx+c=0 b) La moyenne générale de trois contrôles c) La conjugaison d’un verbe du premier groupe au présent 5
Solution 1: Algorithme a b c S a) Algorithme Note1 Note2 Note3 Moyenne b) Algorithme Sujet VI VC c) Verbe à l’infinitif Verbe conjugué 6
3- La structure générale d’un algorithme Un algorithme doit respecter la structure d’écriture suivante: Déclaration Déclaration de toutes les variables par les instructions de déclaration Début Saisie des données par les instructions d’entrée Résoudre le problème par les instructions de calcul et d’affectation Afficher le résultat par les instructions de sortie FIN. II ) Les instructions de base 1- L’instruction de déclaration La déclaration: c’est la réservation de l’espace mémoire pour mettre une valeur. Une variable est une place mémoire qui possède un Nom, un Type est une Valeur. Pour déclarer une variable, il faut respecter la syntaxe suivante: Variable nom : Type; NB: Le nom d’une variable doit toujours commencer par une lettre et ne contenant pas un espace à l’intérieur 7
Les types des variables TypeValeur 0 ; -4 ; 5 ; 126 ; - 14 ; … -1,83 ; 5,13 ; 36,36 ; … ‘A’ ; ‘B’ ; ‘?’ ; ‘(‘ ; ‘\’ ; ; ‘5’ ; … ‘Informatique’ ; ‘MAROC’ ; ‘12,56’; … Entier Réel Caractère Chaine de caractère Exemple de déclaration: Variable i, j, k : Entier ; Variable x1, x2 : Réel ; Variable c1, c2, c3 : Caractère ; Variable ch1, ch2, ch3 : Chaine de caractère ; 8
Exercice 2: Déclarer les variables suivantes: a)3 entiers. b)3 Réels c)2 caractères d)3 chaines de caractères Exercice 2: Déclarer les variables suivantes: a)3 entiers. b)3 Réels c)2 caractères d)3 chaines de caractères Solution 2: a) Variable classe, niveau, page : Entier ; b) Variable note, prix, poids : Réel ; c) Variable lettre, groupe, ponctuation, opération : Caractère ; d) Variable nom, pays, marque : Chaine de caractère ; classe niveau page note La mémoire RAM Déjà rempli prixpoids Lettregroupe NB: NB: Les chaines de caractère prennent par défaut 255 caractères 9
2- Les instructions d’affectation L’instruction d’affectation sert à mettre une valeur dans une variable. Exemple i 3;3 i 3 x 16,8;16,8 x c1 ‘?’;‘?’‘?’ c1 ‘?’‘?’ ch1 ‘MAROC’;‘M A R O C’ ch1 ‘M A R O C’ 10
Exercice 3 : Marquer les instructions erronées: a)i 1; b)j 2,5 * i; c)k 3; d)c1 2; e)c2 ’-’ f)c3 ch1+3; g)ch2 c2; h)ch3 ch1 + ch2; Type incompatible Flèche inversée Manque de ; Exercice 4: Donner la valeur des variables réelles x, y et z après l’exécution des instructions suivantes: x 2; y 3* x; x y – 1; z 2*x – 1; y z /2; x 2* y; xyz ,5 9 11
Solution 4: Instructionxyz x 2;2 y 3* x;26 x y – 1;56 z 2*x – 1;569 y z /2;54,59 x 2* y;94,59 Donc x=9 ; y= 4,5 et z=9 12
3- Les instructions d’entrées L’instruction d’entrée sert à charger une variable par une valeur qui respecte son type. Cette valeur est saisie par le clavier. L’instruction d’entrée s’écrit sous la forme suivante: LIRE(variable); Exemple LIRE(âge) ; 16 Clavier L’instruction LIRE attend la saisie de l’âge par l’utilisateur, quand il tape la valeur 16, cette valeur est chargée dans la variable âge 13
Exemple d’algorithmes DECLARATION Variable note1, note2, moyenne: Réel; DEBUT note1 15,5; note2 13,5; moyenne (note1 + note2)/2; FIN. DECLARATION Variable note1, note2, moyenne: Réel; DEBUT LIRE(note1); LIRE(note2); moyenne (note1 + note2)/2; FIN. Sans instruction d’entrée Avec instruction d’entrée b) L’instruction de sortie L’instruction de sortie sert à afficher un message ou résultat sur l’écran. Exemple: ECRIRE(‘Bonjour’);Affiche Bonjour sur l’écran âge 17; ECRIRE(âge);Affiche 17 sur l’écran ECRIRE(‘âge’);Affiche âge sur l’écran nom ‘amine’; ECRIRE(‘Bonjour ’, nom);Affiche Bonjour amine sur l’écran 14
note1 17; Note2 15; moyenne (note1 + note2)/2; ECRIRE(‘La moyenne de ‘,note1,’ et ‘,note2,’ est ‘,moyenne); Affiche: La moyenne de 17 et 15 est 16 Exercice 5: bonjour Ecrire un algorithme qui affiche bonjour sur l’écran. Exercice 6: Ecrire un algorithme qui demande à l’utilisateur de saisir un nombre entier, puis affiche son opposé sur l’écran. Exercice 7: Ecrire un algorithme qui demande à l’utilisateur de saisir un nombre réel, puis affiche son double sur l’écran. Algorithme e opposé Algorithme r double 15
Exercice 8: Ecrire un algorithme qui demande à l’utilisateur de saisir deux nombres entiers puis calcule et affiche leur somme (S=e1+e2). Algorithme e1 e2 S Exercice 9: Ecrire un algorithme qui calcule la surface d’un disque (Surface= rayon*rayon*3,14). Algorithme rayon Surface Exercice 10: Ecrire un algorithme qui calcule le volume d’un cube (volume= a*a*a). Algorithme a Volume 16
Solution 5: DECLARATION Variable e, opposé: Entier; DEBUT LIRE(e); opposé - e; ECRIRE(opposé); FIN. Solution 6: DECLARATION DEBUT ECRIRE(‘Bonjour’); FIN. Bonjour e opposé
Solution 7: DECLARATION Variable r, double: Réel; DEBUT LIRE(r); double r*2; ECRIRE(double); FIN. Solution 8: r double 5,4 2* 5,4 10,8 DECLARATION Variable e1, e2, S: Entier; DEBUT LIRE(e1); LIRE(e2); S e1 + e2; ECRIRE(‘La somme de ‘,e1,’ et ‘,e2,’ est ‘,S); FIN. e1 e2 S La somme de 2 et 8 est 10 18
Solution 9: DECLARATION Variable rayon, surface: Réel; DEBUT LIRE(rayon); surface rayon*rayon*3,14; ECRIRE(surface); FIN. rayon surface 2,5 19,625 2,5*2,5*3,14 19,625 Solution 10: DECLARATION Variable a, volume: Réel; DEBUT LIRE(a); volume a*a*a; ECRIRE(volume); FIN. a volume 2,5 15,625 2,5*2,5*2,5 15,625 19
4- L’instruction conditionnelle L’instruction conditionnelle permet de choisir un bloc d’instructions parmi plusieurs Condition Oui Non Bloc d’instructions1 Bloc d’instructions2 On écrit: SI (Condition) ALORS Bloc d’instruction1 SINON Bloc d’instruction2; La condition est une expression logique comme: a>0 b<=4 x=12,5 c1<>’R’ ch1=‘Info’ 20
Exercice 11: Prenons les variables a, b et c avec : a=1; b=-2 et c=10 Vérifier les conditions suivantes: a)a>0 b)-b=2 c)c>=-b*5 d)a+b<>0 e)c/5 -1 <a-2*b f)(a>=1) ET (b<0) g)(c=10) ET (b>=5) h)(a>0) OU (c=1) i)(b-1=2) OU (a<1) j)(a<>1) OU (b<0) ET (c<=10) k)(a=1) OU (b<0) ET (c<0) OU (a=-1) l)((a=1) OU (b<0)) ET ((c<0) OU (a=-1)) Vrai Faux Vrai Faux Vrai Faux 21
Exemple: a>0a>0 Oui Non ECRIRE(‘Positif‘)ECRIRE(‘Négatif‘) LIRE(a) LIRE(a); SI (a>0) ALORS ECRIRE(‘Positif‘) SINON ECRIRE(‘Négatif‘); 22
Exercice 12: Note Ecrire un algorithme qui demande à l’utilisateur de saisir la note d’un élève Note puis affiche Réussite si la note est supérieure ou égale à 10 ou échec si la note est inférieure à 10 DECLARATION Variable Note: Réel; DEBUT LIRE(Note); SI (Note>=10) ALORS ECRIRE (‘Réussite‘) SINON ECRIRE (‘Echec‘); FIN. Solution 12: Note>=10 Oui Non ECRIRE (‘Réussite‘)ECRIRE (‘Echec‘) LIRE(Note) 23
Exercice 13: N VA Ecrire un algorithme qui demande à l’utilisateur de saisir un nombre entier N puis affiche sa valeur absolue VA Algorithme N VA DECLARATION Variable N, VA: Entier; DEBUT LIRE(N); SI (N>0) ALORS VA N SINON VA - N; ECRIRE(VA); FIN. Solution 13: N>0N>0 Oui Non VA N VA - N LIRE(N) ECRIRE(VA) 24
Exercice 14: q PUPT Ecrire un algorithme qui demande à l’utilisateur de saisir la quantité q et le prix unitaire PU d’un produit, puis calcule et affiche le prix total PT sachant que: si la quantité dépasse 100 unités, on effectue une remise de 4%. DECLARATION Variable q, PU, PT: Réel; DEBUT LIRE(q, PU); SI (q>100) ALORS PT q*PU - q*PU*0,04 SINON PT q*PU; ECRIRE(PT); FIN. Solution 14: q>100 Oui Non PT q*PU - q*PU*0,04 PT q*PU LIRE( q, PU) ECRIRE(PT) Algorithme q PU PT 25
Exercice 15: Ecrire un algorithme qui demande à l’utilisateur de saisir deux entiers a et b, puis calcule et affiche la somme de leurs valeurs absolues (SVA=|a|+|b|). DECLARATION Variable a, b, SVA: Entier; DEBUT LIRE(a, b); SI (a<0) ALORS a -a; SI (b<0) ALORS b -b; SVA a + b; ECRIRE(SVA); FIN. Solution 15: Algorithme a b SVA a<0a<0 Oui a -a LIRE( a, b) SVA a + b b<0b<0 Oui b -b ECRIRE( SVA) 26
II) Le langage de programmation PASCAL: 1) Définition: Un langage de programmation est un ensemble de règles lexicales, syntaxiques et sémantiques à respecter pour écrire un programme. Quelques langages de programmation: Assembleur, Basic, Pascal, Delphi, C, C++, Java, Php, … 27
En AlgorithmeEn PASCAL DéclarationProgram nom; VariableVar EntierInteger RéelReal CaractèreChar Chaine de caractèresString DébutBegin LireReadln := SiIf AlorsThen SinonElse EcrireWriteln FinReadln; End 2) La traduction Algorithme PASCAL 28