Algorithmique. 2.1 Introduction. 2.2 Algorithmes Définition Caractéristiques d un algorithme :

Documents pareils
Corrigé des TD 1 à 5

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Examen Médian - 1 heure 30

Initiation à la programmation en Python

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.


INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Cours Informatique Master STEP

Enseignement secondaire technique

Cours d algorithmique pour la classe de 2nde

Rappels sur les suites - Algorithme

Algorithmes et programmation en Pascal. Cours

Chap III : Les tableaux

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

STAGE IREM 0- Premiers pas en Python

Organigramme / Algorigramme Dossier élève 1 SI

Algorithmique et Programmation, IMA

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Maple: premiers calculs et premières applications

Algorithmique et programmation : les bases (VBA) Corrigé

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

1. Structure d'un programme FORTRAN 95

Introduction à MATLAB R

Initiation à la Programmation en Logique avec SISCtus Prolog

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Bases de programmation. Cours 5. Structurer les données

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Cours d Algorithmique et de Langage C v 3.0

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Résolution de systèmes linéaires par des méthodes directes

L ALGORITHMIQUE. Algorithme

Calcul Formel et Numérique, Partie I

ALGORITHMIQUE ET PROGRAMMATION En C

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Représentation d un entier en base b

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d Informatique

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Découverte de Python

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

CORRECTION EXERCICES ALGORITHME 1

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Chapitre 6. Fonction réelle d une variable réelle

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

Programmation C++ (débutant)/instructions for, while et do...while

Définitions. Numéro à préciser. (Durée : )

INF 321 : mémento de la syntaxe de Java

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

Auto-Entreprise : Activités : Eric SOTY - Siret n Formation Bureautique, continue d'adultes. Tél : Fax :

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.

Programmer en JAVA. par Tama

Cours 7 : Utilisation de modules sous python

Algorithme. Table des matières

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Exprimer ce coefficient de proportionnalité sous forme de pourcentage : 3,5 %

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)

Résolution d équations non linéaires

1 Recherche en table par balayage

Premiers pas avec Mathematica

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Introduction au langage C

CORRIGE LES NOMBRES DECIMAUX RELATIFS. «Réfléchir avant d agir!»

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12


Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Python - introduction à la programmation et calcul scientifique

MÉTHODES NUMERIQUES. Cours. Licence de Physique Année Universitaire : Licence Chimie, parcours Physique. Semestre S3

Probabilités sur un univers fini

Les structures. Chapitre 3

Adama MBODJI MBODJ.SYSTEM

Conventions d écriture et outils de mise au point

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Calcul Formel et Numérique, Partie I

Informatique Générale

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

MINISTERE DE L ENSEIGNEMENT TECHNIQUE ET DE LA FORMATION PROFESSIONNELLE. (Pour l obtention du diplôme d analyste programmeur)

Solutions du chapitre 4

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

Logiciel Libre Cours 2 Fondements: Programmation

Initiation à LabView : Les exemples d applications :

Java Licence Professionnelle CISII,

Qualité du logiciel: Méthodes de test

Programmation C. Apprendre à développer des programmes simples dans le langage C

Notions fondamentales du langage C# Version 1.0

Compilation (INF 564)

V- Manipulations de nombres en binaire

Transcription:

Algorithmique 2.1 Introduction Pour résoudre un problème sur ordinateur, on suit un nombre d étapes : - On doit cerner le problème à traiter ; On doit définir toutes les données avec leur nature ainsi que les résultats auxquels on s attende avec les précisions souhaitées. - On formule la résolution du problème sous forme d une succession logique d instructions pour passer des données aux résultats. (algorithmes). - Pour bien schématiser le problème, on dresse un équivalent graphique de l algorithme (organigramme). - Ensuite on réécrit l algorithme dans un langage évolué (programmation). - On compile le programme en question (compilation). - Une fois le programme est compilé, on l exécute, puis on vérifie si les résultats correspondent aux solutions du problème. 2.2 Algorithmes 2.2.1 Définition L algorithme c est une succession de règles opératoires dont l application permet de résoudre un problème particulier. L algorithme consiste à bien analyser le problème avant de commencer à programmer. 2.2.2 Caractéristiques d un algorithme : L algorithme doit être très clair, formé d une combinaison d opérations élémentaires et doit fournir, pour toutes les données, un résultat après un nombre fini d opérations. 2.2.3 Structure générale d un algorithme : Elle est composée de trois parties : l entête, les déclarations, les actions. Exemple : résolution d une équation de premier degré 1

ALGORITHME premier degré (1) VARIABLES a, b, x en réel (2) DEBUT FIN L entête : ECRIRE ( donnez les valeurs de a et b : ) LIRE(a,b) SI a<>0 ALORS ECRIRE ( la valeur de x est :, -b/a) SINON SI b=0 ALORS ( tout réel est solution de l équation ) SINON ECRIRE ( pas de solution ) l entête contient le titre qu on souhaite donner à l algorithme. (la partie (1) de l exemple précédent. 2.2.4 Les déclarations : dans la partie déclaration, on doit déclarer tous les objets qu on utilise dans l algorithme. (la partie (2) de l exemple) (3) L objet : c est un symbole ou un identificateur qu on déclare avant sa manipulation. 2.2.4.1 La constante : c est un symbole ou un identificateur dont la valeur est introduite lors de la programmation. Celle-ci ne peux pas changer pendant l exécution du programme. Exemple : Pi= 3.14 2.2.4.2 Le type : Un type est un ensemble de valeurs que peut prendre une donnée. On distingue : - Types standards : entier, réel, booléen, caractère. - Types non-standards : 1. Enuméré : Syntaxe : type identificateur = (id1, id2,,idn) 2

Exemple : type couleur = (jaune, vert, rouge, ) Remarque : le mot type doit être écrit une seule fois. 2. Intervalle : Syntaxe : type identificateur = inf.sup Exemple : type décimal = 0.. 9 Remarque : pas de type intervalle issu du type réel. 2.2.4.3 La variable : c est un symbole ou un identificateur dont la valeur est susceptible de changer au cours de l exécution du programme. Le type de variable doit être choisi d une manière très appropriée. Il y a plusieurs types de variables numérique (entier, réel ), logique, chaîne de caractères, tableau,.. 2.2.5 Les actions ou instructions : La partie instruction est la partie corps du programme ((3) dans l exemple ci-dessus) où sont écrites les instructions nécessaires pour arriver au résultat. Toute manipulation sur les objets est appelée action. 2.2.5.1 Lecture : La donnée: c est une valeur introduite par l utilisateur pendant l exécution du programme. Elle peut être lue itérativement ou issue d un fichier. Syntaxe : LIRE (a,b) est équivalent LIRE a, LIRE b, ça voudrait dire que l utilisateur fait entrer à la machine la valeur de a puis celle de b. 2.2.5.2 Ecriture : l instruction d écriture est couramment utilisée dans deux situations : - pour afficher les résultats de l exécution, - avant la lecture des données. Syntaxe : ECRIRE ( la valeur de x est :, -b/a) 2.2.5.3 Affectation : c est une instruction qui consiste à attribuer une valeur à une variable pendant l exécution du programme. La variable peut changer de valeur dans le même programme. Exemples : 1) A 1, B A+1, A 3, B A+4, après exécution A 3 et B 7 2) L incrémentation : I I+1 ( I est augmenté de 1) 3

2.2.5.4 Structures conditionnelles : Avant d exposer les structures conditionnelles on essaye de donner les différents opérateurs de comparaison utilisés: - Expressions et opérateurs : un opérateur relie entre deux valeurs pour produire un résultat. L expression est un ensemble de valeurs reliées par des opérateurs et qui est équivalente à une seule valeur. a) Opérateurs numériques : +, -, *, /, div., mod. L ordre des opérations est important, la priorité revient aux opérateurs /, *, div, et mod. 1 Exemple : 4*3+2=(4*3)+2 et non à 4*(3+2). b) Les opérateurs alphanumériques : Cet opérateur agglomère deux chaînes de caractère c) Opérateurs logiques : ET, OU, NON, et XOR. d) Opérateur de comparaison : Egal : =, Différent : < >, Egal ou plus grand : = >, Egal ou plus petit =<, plus grand : >, plus petit : < - Sélection simple : Si (condition) Alors (instruction1) Sinon (instruction2) Finsi - Tests imbriqués : Si (condition) Alors (instruction1) Sinon Si (condition) Alors (instruction2) Sinon Si (condition) Alors (instruction3) Finsi Exemple : Finsi 1 La priorité peut changer d un langage à un autre il est fortement conseillé d utiliser des parenthèse pour définir l ordre d application des opérateurs. 4

Ecrire un algorithme qui affiche les états de l eau en fonction de sa température T. Algorithme Etat_température Variable T en réel Début Ecrire ( donnez la température T : ) Lire T Si T=< 0 Alors Ecrire ( l eau est dans un état solide ) Sinon Si T< 100 Alors Ecrire ( l eau est dans un état liquide ) Sinon Ecrire ( l eau est dans un état gazeux ) Finsi Fin Finsi 1. Structures répétitives : Il existe trois type de structures répétitives : 1) Boucle Pour : Elle est souvent utilisée quand on connaît le nombre de boucles à réaliser. Syntaxe : Pour i (valeur initiale) à (valeur finale) faire (ensemble d instructions) FinPour Exemple : Effectuer la somme des n premiers entiers naturels. Algorithme Somme Variables s, i, n en entier Début Ecrire ( donnez un nombre n : ) Lire n S 0 5

Pour i 1 à n faire s s+i FinPour Ecrire ( la somme est :, s) Fin 2) Boucle Tant que : Syntaxe : Tant que (condition) faire (ensemble d instructions) FinTanque Remarque : - Pas d augmentation automatique d une variable. - Faire le bloc d instructions tant que la condition est réalisée. Algorithme Somme Variables s, i, n en entier Début Ecrire ( donnez un nombre n : ) Lire n s 0 i 1 Tant que i<=n faire s s+i i i+1 FinTantque Ecrire ( la somme est :, s) Fin Syntaxe : Répéter 3) Boucle Répéter: Ensemble d instructions 6

FinR Jusqu à (condition) Remarques : - Le bloc d instructions est à faire si la condition n est pas réalisée. - Le bloc d instructions est parcourue au moins une fois. - Pas d augmentation automatique de la variable qui apparaît dans la condition (i dans l exemple qui suit). Exemple : Algorithme Somme Variables s, i, n en entier Début Ecrire ( donnez un nombre n : ) Lire n s 0 i 1 Répéter s s+i i i+1 jusqu à i>n FinR Ecrire ( la somme est :, s) Fin 2.3 Les tableaux Supposons qu on a besoin spontanément de manipuler 12 valeurs (pour calculer par exemple la moyenne d une classe de 12 étudiants). Il faut donc déclarer 12 variables n1, n2,, n12. Alors là si on se trouve à traiter 1000 ou 100000 de variables, c est laborieux!! La solution c est de rassembler toutes ces variables en une seule au sein de laquelle chaque valeur sera indexée par un numéro, cette variable est appelée tableau. 2.3.1 Les vecteurs (tableau à une dimension) : Un vecteur est ensemble de valeurs ordonnées les unes après les autres. Il est défini par sa taille (le plus grand indice) et le type de valeurs qu il contient. Exemple : Soit V(N) un vecteur qu on représente comme suit : 7

12 15 2 6 14 V(1) =12, V(5)=14, N=5, ce vecteur contient des entiers. Déclaration d un vecteur : On doit préciser dans la variables, le plus grand indice et le type des valeurs que le vecteur contient. Syntaxe : Variables V : tableau (N) en entier Indice le plus grand Remarque : L avantage des tableaux c est qu on va pouvoir traiter des données en faisant des boucles. Exemple : La moyenne d une classe de 140 étudiants Algorithme moyenne Variables s en réel i en entier N : tableau (140) en réel Début Pour i 1 à 140 faire Lire N(i) FP s 0 Pour i 1 à 140 faire s s+n(i) FP Ecrire ( la moyenne est:, s/140) Fin 8

Exercices d application : Exercice1 : Ecrire un algorithme qui déclare et qui remplit un tableau de 7 valeurs et les mettant toutes à 0. Zero(i) 0 Algorithme zéro Variables i en entier Zero : tableau (7) en entier Début Pour i 1 à 7 faire FP Fin Exercice 2: Ecrire un algorithme qui déclare un tableau de 9 notes dont on fait ensuite saisir les valeurs par l utilisateur. Algorithme lecture Variables i en entier N : tableau (9) en réel Début Pour i 1 à 9 faire Lire N(i) 0 FP Fin 2.3.2 Les matrices (tableaux à deux dimensions) : Si on se place à deux dimension, on aura deux indices à manipuler, soit i, j ces indices. Déclaration des matrices : Variables T : tableau (n,p) en entier Nombre de lignes Nombre de colonnes 9

Exemple : Ecrire un algorithme qui déclare et qui remplit un tableau zéro(n,n) en les mettant tous à zéro. Algorithme zéro Variables i, j en entier Zero : tableau (3,3) en entier Début Pour i 1 à 3 faire Pour j 1 à 3 faire Zero(i,j) 0 FP FP Fin 2.4 Enoncés des exercices : Exercice 1 : Quelles seront les valeurs des variables A, B et C après exécution des instructions suivantes? Variables A, B, C en Entier Début A 3 B 10 C A + B B A + B A C Fin Exercice 2 : Quelles seront les valeurs des variables A et B après exécution des instructions suivantes? Variables A, B en Entier Début A 5 B 2 A B B A 10

Fin Les deux dernières instructions permettent-elles d échanger les deux valeurs de B et A? Si l on inverse les deux dernières instructions, cela change-t-il quelque chose? Exercice 3 : Ecrire un algorithme permettant d échanger les valeurs de deux variables A et B, et ce quel que soit leur contenu préalable. Ecrire un algorithme qui permet de faire une permutation circulaire de 4 nombre A, B, C, D, soit de la manière suivante : A B C D Exercice 4 : Ecrire un algorithme qui demande un nombre à l utilisateur, et l informe ensuite si ce nombre est positif, négatif ou nul. Exercice 5: Ecrire un algorithme qui demande deux nombres à l utilisateur et l informe ensuite si le produit est négatif, positif ou nul. Attention toutefois, on ne doit pas calculer le produit! Exercice 6 : Ecrire un algorithme qui demande l âge d un enfant à l utilisateur. Ensuite, il l informe de sa catégorie : - «Poussin» moins de 8ans - «Pupille» de 8 à 9 ans - «Minime» de 10 à 11 ans - «Cadet» après 12 ans Exercice 7 : Ecrire un algorithme qui demande un nombre de départ, qui calcule et affiche : la somme des dix entiers qui le suivent. sa factorielle Exercice 8 : Ecrire un programme qui demande un nombre à l utilisateur, puis qui calcule et affiche le carré de ce nombre. 11

Exercice 9: Ecrire un algorithme qui demande un nombre de départ, et qui calcule la somme des entiers jusqu à ce nombre. Par exemple, si l on entre 5, le programme doit calculer : 1 + 2 + 3 + 4 + 5 = 15 Exercice 10: 1) Que produit l algorithme suivant : Algorithme. Variables. Début Ecrire ( `donnez. :`) Lire N m1 1, m2 1 Pour i 1 a N faire Si i mod2 =0 alors m1 m1*i Sinon m2 m2*i Finsi i suivant FP Ecrire (.. : m1) Ecrire ( : m2) Fin Refaire l algorithme précédent avec la boucle Tant que? Exercice 11 : Ecrire un algorithme qui demande un nombre de départ, et qui ensuite écrit la table de multiplication de ce nombre, présentée comme suit (cas où l'utilisateur entre le nombre 5) : Table de 5 : 5 x 1 = 5 5 x 2 = 10 5 x 3 = 15 5 x 10 = 50 12

Exercice 12 : Ecrire un algorithme qui demande un nombre de départ, et qui calcule la somme des entiers jusqu à ce nombre. Par exemple, si l on entre 5, le programme doit calculer : 1 + 2 + 3 + 4 + 5 = 15 Exercice 13 : Ecrire un algorithme qui demande successivement 10 nombres à l utilisateur, et qui lui dise ensuite quel était le plus petit parmi ces 10 nombres : Entrez le nombre numéro 1 : 12 Entrez le nombre numéro 2 : 14 Etc. Entrez le nombre numéro 10 : 6 Le plus grand de ces nombres est : 14 2) Modifiez ensuite l algorithme pour que le programme affiche en quelle position avait été saisie ce nombre : C était le nombre numéro 2 Exercice 15 : On reprend le problème précédent cette fois-ci, on ne connaît pas d avance combien l utilisateur souhaite saisir de nombres. La saisie des nombres s arrête lorsque l utilisateur entre un zéro. Exercice 16: 1) Ecrire un algorithme, qui pour un temps donné en secondes, retourne le temps représenté sous la forme heure, minute, seconde. 2) Ecrire un algorithme, qui pour un temps donné (représenté sous la forme heure, minute, seconde) retourne le temps (sous la même représentation) après avoir ajouté une seconde. Exercice 17: Simulation d achat dans un supermarché On souhaite dans cet exercice simuler la remise de monnaie en dinars. Le client passe à la caisse pour payer la somme qu il doit au vendeur. On désigne par PA le prix de chaque article et M le montant qu il paye. Ecrire un algorithme qui permet de : saisir la liste des prix en dinars terminée par zéro (on ignore à l avance le nombre d articles). Calculer la somme qu il doit. 13

lire la somme qu il paye. simuler la remise de la monnaie en affichant les textes «10DA», «5DA» et «1DA» autant de fois qu il y a de coupures de chaque sorte à rendre. Exercice 18 : Ecrire un algorithme qui calcule la somme de deux vecteurs A, B de taille m. Exercice 19 : Ecrire un algorithme qui rempli un tableau de 100 nombres, et calcule ensuite les sommes des nombres positifs et négatifs respectivement. Exercice 20 : Ecrire un algorithme qui calcule la valeur de en utilisant l expression : / 4 1 1/3 1/5 1/ 7 Exercice 21: Ecrire un algorithme qui calcule la somme de rang impair d un tableau de taille m. Exercice 22 : Ecrire un algorithme qui calcule la trace d une matrice n*n.rappel : la trace d une matrice est égale à la somme des éléments diagonaux. Exercice 23: Soit la suite géométrique suivante : U n+1 = r * U n Avec U 1 =1, r=0.5 Ecrire un algorithme qui calcule et qui affiche : 1- La somme S des 10 premiers éléments. 2- La somme C des carrées des 10 premiers éléments. Exercice 24: Ecrivez un algorithme qui permet à l utilisateur de saisir les notes d'une classe de 40 étudiants et de calculer : - la moyenne de la classe. - La meilleure note. - le nombre de ces notes supérieures à la moyenne. - Affichez les résultats Exercice 25: : Soit deux matrices carrées A et B. Ecrire un algorithme qui calcule : 1/ La matrice somme. 2/ La matrice produit. 14

3.1 Généralités : Langage de programmation Pascal Il existe différents logiciels prêt à l emploi, c est à dire déjà réalisés par d autres programmeurs. On cite les programmes de jeux, en bureautique (traitement de texte, tableurs, ). Cependant, il arrive fréquemment que l on aie besoin de concevoir soi-même un logiciel particulier pour une tâche spécifique. Il est donc indispensable de programmer. On utilise dans ce cas un langage de programmation. De nos jours, il existe plusieurs langages spécialisés. Exemples : C++ et le VB : pour la programmation orientée objet. Cobol pour les applications de gestion. Le Pascal : traditionnellement utilisé dans l enseignement de l informatique pour son intérêt pédagogique, Il permet d apprendre les bonnes bases de la programmation, il est donc bien adapté aux débutants. C est un langage typé où toutes les variables sont prédéclarées et dont les types sont explicitement définis. Comme dans tous les langages informatiques, dans un langage Pascal on utilise des mots clés ou encore les mots réservés tels que, Program, begin, end, if, then, else, while, do, for,...etc, et les identificateurs ceux réservés par le programmeur pour représenter les constantes, les types, les variables et les fonctions. Un identificateur est composé de lettres et de chiffres, et où le premier caractère est obligatoirement une lettre. Définition : Un programme est un ensemble d instructions devant être exécutées sur ordinateur. 3.2 Structure globale d un programme Pascal : Un programme Pascal est structuré comme suit : En-tête Déclarations 1. Constantes 2. types 3. variables 4. fonctions/procédures Bloc d instructions 15

3.2.1 L en-tête : Il s agît de la première ligne du programme, dans l en-tête d un programme pascal on inscrit le mot réservé PROGRAM suivi d un identificateur et puis s il y a, d une liste de paramètres situés entre parenthèses. Syntaxe : Program identificateur (id1, id2,, idn) ; Exemples : Program premier_degre (input, output); 3.2.2 Partie Déclarations : en Pascal, tout symbole utilisé dans le programme doit être explicitement déclaré. Les déclarations doivent respecter l ordre suivant : Constante Types variables La constante : Il est possible de déclarer dans un programme Pascal une constante, puis à chaque fois, on peut la changer, ceci nous évite de remplacer partout une entité constante. Syntaxe : Const identificateur=valeur; Exemple : Constante numérique : Pi=3.1415926 Constante booléenne : vrai=true ; les expressions logiques ont deux valeurs vrai=true ou faux= false Constante de type caractère : caract1= a ; Le type : Définition : Un type est un ensemble de valeurs que peut prendre une donnée. Il est existe deux catégories de types, les types sandards et les types non-standards. 16

Les types standards : un type standard qu on ne déclare pas dans un langage Pascal, on distingue quatre types : Integer (les entiers) : Les entiers dans le Turbo-Pasacal sont compris entre 32768=2 16 et +32767=2 16-1. Real (les réels) : En Turbo-Pascal les réels sont compris entre 1.7 e 37 et 1.7 e 37 Boolean (types booléens): Ce type nous permet de manipuler avec des opérateurs logiques. Char (type caractère): c est un caractère entouré d apostrophes. Les types non-standards : on distingue deux catégories : Type Enuméré : Syntaxe : Type identificateur=(id1, idn) ; Remarque : On doit écrire le mot type une seule fois dans le programme. Exemple : Type Voyelle=(A, E, I, O, U) ; Semaine=(samedi, dimanche, lundi, mardi, mercredi, jeudi, vendredi) Type intervalle : Syntaxe : Type identificateur=inf..sup ; Exemple : Type Decimal=0..9; Age=1..120; MAJ= A.. Z ; Semaine=samedi..vendredi; REMARQUE: La borne inf doit être placée avant la borne sup. Pas de type intervalles issus de types réel. - Type tableau : Pour déclarer un type particulier de tableaux, par exemple un tableau de réels de n lignes et de p colonnes, on utilise la syntaxe suivante : Type table: Array [1..n,1..p] of real; La variable : Pour pouvoir utiliser une variable dans un programme, on doit impérativement la déclarer, en d autre termes, on doit définir l ensemble de valeurs que cette variable peut prendre. Syntaxe : VAR identificateur : type ; Propriétés : une variable est définie par un type standard ou un type non-standard. Plusieurs variables du même type peuvent être regroupées et séparées par des virgules. Le mot Var n apparaît qu une seule fois. 17

Exemple : Var L,M : table ; a, b, c : real; jour: semaine; vivant: boolean; 3.2.3 Les instructions (les actions) : L instruction : une instruction dans un programme est équivalente à une phrase dans un texte, elle représente un ou plusieurs ordres devant être exécutées par la machine. L instruction composée : L instruction composée permet de regrouper dans un même bloc un ensemble d instructions exécutées au même niveau. Caractéristiques : - on peut écrire une instruction sur plusieurs lignes et plusieurs instructions sur la même ligne. - Une instruction commence par un mot réservé ou un identificateur et se termine par un point virgule. - On distingue les instructions simples telle que l affectation et les instructions structurées telles que les instructions composées, itératives et conditionnelles. Le bloc d instructions : Deux ou plusieurs instructions doivent être regroupées dans un même bloc entre le mot clé BEGIN et le mot clé END suivi d un point virgule. Remarque : Une instruction composée peut être imbriquée dans une autre instruction composée. Les différentes instructions : L instruction d affectation : Pour affecter une valeur à une variable en pascal on utilise la syntaxe suivante : Variable := expression ; L expression peut être une constante, une variable ou des variables et des constantes reliées par des opérateurs. Remarque : Quand on effectue un test, on utilise l opérateur = et non l opérateur :=. 18

Exemple : Supposons qu on veut affecter la valeur 4 à la variable x, puis on effectue le test If x=5 then x :=x/2 ; la condition sur x n est pas réalisée alors x garde toujours la même valeur x=4. Les instructions d entrée-sortie : Les entrées-sorties se font entre la mémoire (variables et constantes) et les périphériques (clavier, écran, ). La lecture : Il existe deux écritures en Pascal pour la lecture Read (a1, a2,...,an) ou Readln (a1, a2,...,an). Le programme lis ce que l utilisateur tape et stocke les valeurs dans les variables correspondantes en mémoire. Exemple : Lecture d un entier Program lecture_entier ; Var i : integer ; Begin Read (i) ; End. Read (a1, a2,...,an) est équivalent à Read (a1), Read (a2),..., Read (an) La deuxième écriture signifie qu il faut passer à ligne suivante en ignorant tout ce qui reste sur la même ligne. REMARQUE : pour permettre l affichage des résultats, Readln peut être utilisé sans paramètres à la fin du programme et ce pour laisser le temps à l utilisateur de saisir les résultats à l écran. L écriture : Il existe deux façons pour l impression soient write et writeln Writeln (a1, a2,, an) est équivalent à Writeln (a1), Writeln (a2), Writeln (an). Exemple: Program entier_réel; Var i : integer ; r : real ; Begin Write ( donnez un entier et un réel: ); Read (i, r); 19

Writeln ( l entier est:, i: 3 ); Writeln ( le réel est:, r: 5: 3 ); End. L entier est affiché en trois caractères et le réel avec 5 caractères dont 2 pour la partie fractionnaire. Les structures conditionnelles : Avant de détailler les structures conditionnelles du Pascal, on va donner les principales opérateurs et fonctions utilisées. Opérateurs et expressions : Opérateurs : + addition - soustraction * multiplication / division DIV division entière (3div2=1) MOD (modulo) (3mod2=1) - Expressions: Définition: une expression est une combinaison d opérandes (variables et constantes d opérateurs et de fonctions ). Evaluation des expressions : * et / sont de priorité supérieure à + et -, mais entre * et /, tout dépend du compilateur (en général de gauche à droite). Exemple : soit A=6, B=3, C=3 A+B/C = A+(B/C)=7 qui est différent de (A+B)/C =3 A/B*C = (A/B)*C =6 et non à A/(B*C)=2/3 20

Fonctions arithmétiques : Les principales fonctions arithmétiques sont présentées dans le tableau suivant : Valeur absolue de x ABS(x) Arc tangente de x ARCTAN(x) Cosinus de x COS (x) Sinus de x SIN(x) Logarithme népérien de x LN(x) Racine carrée de x SQRT(x) Carré de x SQR(x) Exponentielle de x EXP(x) Partie entière de x TRUNC(x) Instructions de sélection : - Sélection simple : Instruction If Then else Syntaxe: If condition then bloc1 d instructions Else bloc2 d instructions; REMARQUES: Il n y a pas de point virgule immédiatement avant le else. On peut imbriquer plusieurs if. La valeur de la condition est booléenne ; si le résultat est TRUE alors il faut effectuer le bloc1, sinon c est le bloc2 qu il faut effectuer. Si on s intéresse au bloc1 seulement, on peut ignorer le else bloc2 Exemple :Programme qui calcule le maximum de eux nombres entiers entrés par l utilisateurs. Program max ; Var x, y, max : integer ; BEGIN Writeln ( donnez deux nombres entiers : ) ; Read (x, y) ; If x>0 then max:=x Else max:=y; Writeln ( le maximum est :, max) ; End. 21

- Sélection multiple (Instruction CASE): L instruction CASE remplace plusieurs instructions IF imbriquées, il s agît de choisir une instruction parmi plusieurs. Syntaxe : CASE réponse of 1 : instruction1 ; 2 : instrcution2 ;.. n : instructionn ; end ; REMARQUE : Au niveau du test, seule l égalité est admise. Cependant, on peut utiliser des intervalles. Exemple : Simulation d une calculatrice Program calculatrice ; Var a, b, res : real ; Touch: char; BEGIN Write ( donnez un nombre, une opération puis un nombre: ); Readln (a, touch, b) ; CASE touch of + : res:=a+b; - : res:=a-b; * : res:=a*b; / : res:=a/b; end; writeln (a, touch, b, =, res); end. Structures répétitives : Les boulcles A/ Boucles à bornes définies :Boucle For Dans le cas de la boucle FOR, on connaît le nombre d itérations à effectuer. Un indice varie de la valeur initiale à la valeur finale. Syntaxe : For variable := valeur initiale to valeur finale do bloc d'instructions 22

REMARQUES: La variable ne peut pas être réelle. Si la valeur initiale est supérieures à la valeur finale la boucle est ignorée. Il est possible d imbriquer plusieurs boucles FOR. Exemple : Calcul de la moyenne d une classe de 20 étudiants : Program Moy ; Const n=20 ; Var V: array [1..n] of real; i: integer; moy: real; begin moy:=0; For i:=1 to 20 do begin write ( donnez l élément V[,i, ] : ) ; readln (V[i]); moy:=moy+v[i]; end; Writeln ( la moyenne de la classe est:,moy/n); End. b/boucles à bornes non-définies : Il existe deux types de boucles aux bornes inconnues, soient boucles while et repeat. La boucle While : Il s agît de la boucle tant que en algorithmique. Syntaxe : While expression do bloc d instructions Caractéristiques: Le traitement du bloc d instruction est effectué tant que la condition est réalisée, et il s arrête dès que l expression est fausse. L incrémentation n est pas automatique contrairement à la boucle FOR. Exemple : Program Moy ; Const n=20 ; Var V: array [1..n] of real; i: integer; moy: real; 23

begin moy:=0; i:=1; while i:<= 20 do begin write ( donnez l élément V[,i, ] : ) ; readln (V[i]); moy:=moy+v[i]; i:=i+1; end; Writeln ( la moyenne de la classe est:,moy/n); End. La boucle repeat : Syntaxe : Repeat Bloc d instructions Until expression ; Caractéristiques : Contrairement à la boucle while, le traitement est effectué tant que l expression est fausse, l arrêt correspond au résultat TRUE de l expression. L incrémentation est nécessaire comme la boucle while. Etant donné que la condition vient après le bloc d instructions, le traitement est effectué au moins une fois. Program Moy ; Const n=20 ; Var V: array [1..n] of real; i: integer; moy: real; begin moy:=0;i:=1; repeat write ( donnez l élément V[,i, ] : ) ; readln (V[i]); moy:=moy+v[i]; i:=i+1; until i>20 ; 24

Writeln ( la moyenne de la classe est:,moy/n); End. 3.3 Enoncés des exercices Exercice 1 : degré ax+b=0. Ecrire un programme Pascal qui résout et qui affiche les solutions de l équation de 1 er Exercice 2 : Soit l équation de second degré ax 2 +bx+c, avec a, b, c des réels. Ecrire un algorithme qui résout et qui affiche les solutions de cette équation. (considérez les solutions complexes). Donnez le programme Pascal correspondant. Exercice 3 : factorielle. Ecrire un programme Pascal qui demande un nombre de départ, et qui calcule sa Exercice 4: Ecrire un programme Pascal qui simule la remise de monnaie après la lecture des achats et du montant à payer par un client. Ne considérez que des pièces de 10Da et de 5Da, et de 1Da. Exercice 5 : 1) Traduire l algorithme suivant en langage pascal : Algorithme. Constante n=10 Variable mat : tableau (n,n) en entier i,j en entier début pour i 1 à n faire pour j 1 à n faire si j=i alors mat(i,j) 1 sinon mat(i,j) 0 25

écrire ( mat[,i,j, ]=,mat(i,j) ) fp fp end. 2) Que produit le programme ainsi écrit? Améliorer-le pour pouvoir calculer et afficher la trace de la matrice mat. Exercice 6 : 1) En utilisant la boucle for, écrire un Programme Pascal qui calcule et qui affiche : la valeur de pi en utilisant l expression de la série suivante: (considérez les dix premiers termes) pi 4 1/1 1/ 3 1/ 5 1/ 7 Le périmètre et la surface d un cercle de rayon r. 2) Refaire l algorithme précédent en utilisant la boucle while, le processus d itération s arrête quand l erreur sur pi est inférieur à 10-8? affichez le nombre d itérations effectuées? Exercice 7 : Ecrire un programme Pascal qui demande successivement 20 nombres à l utilisateur, qui lui dise ensuite quel était le plus grand parmi ces 20, et qui affiche en quelle position avait été saisie ce nombre. Exercice 8: Complétez ce qui manque à l algorithme suivant : Algorithme.. début.. Ecrire ( introduire une suite de nombres entiers terminée par 0 : ) Répéter. Si Nombre > 0 Alors S1 S1+Nombre p p+1 Finsi 26

Si Nombre < 0 Alors S2 S2+Nombre n n+1 Finsi Jusqu à Ecrire (.., S1) Ecrire (.., S2) Fin Donnez le programme Pascal correspondant? Exercice 9: 1/ Ecrire un programme Pascal qui calcule et qui affiche le maximum de trois nombre entrés au clavier. 2/ On suppose maintenant qu on a N nombres et que l on range dans un tableau. Ecrire le programme Pascal qui calcule et qui affiche le maximum de ses éléments. 3/ Ecrire le programme qui calcule et qui affiche la moyenne des éléments du tableau. Exercice 10 : Que produit le programme suivant? (Après avoir compléter) program.. ; const n=5 ; var ; begin for i:=1 to n do begin writeln ( introduire l elément A[,i, ]: );..; end; for i:=1 to n do begin writeln ( introduire l elément B[,i, ]: );..; end; s:=0; for i:=1 to n do s=s+ A[i]*B[i]; writeln (..:, s); end. 27

2) Réduire ce programme en utilisant une seule boucle for? Exercice 11 : Soit A[1..N] un tableau à N éléments. Ecrire un programme Pascal permettant de remplir ce tableau d entiers et de classer ces éléments par ordre décroissant. Exercice 12 : 1) Ecrire un programme algorithme qui rempli un tableau T de 20 nombres entiers, et qui calcule : - Le plus petit élément. - Le nombres d éléments nuls. - La somme des éléments de rang pair. - Le produit des éléments de rang impair. - Donner le programme Pascal correspondant? Exercice 13 : Soit deux matrices carrées A et B. Ecrire un programme Pascal qui calcule : 1/ La matrice somme. 2/ La matrice produit. 28