Démarche de résolution

Documents pareils
Corrigé des TD 1 à 5


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

Examen Médian - 1 heure 30

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)

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

Enseignement secondaire technique

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

LES TYPES DE DONNÉES DU LANGAGE PASCAL

STAGE IREM 0- Premiers pas en Python

Cours d Informatique

Algorithmique et programmation : les bases (VBA) Corrigé

Algorithmes et programmation en Pascal. Cours

Représentation d un entier en base b

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

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

INF 321 : mémento de la syntaxe de Java

Découverte de Python

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

Initiation à la programmation en Python

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

TP 1. Prise en main du langage Python

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

ACTIVITÉ DE PROGRAMMATION

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

TD3: tableaux avancées, première classe et chaînes

Cours d algorithmique pour la classe de 2nde

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Notions fondamentales du langage C# Version 1.0

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

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

I. Introduction aux fonctions : les fonctions standards

Cours Informatique Master STEP

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

Java Licence Professionnelle CISII,

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

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

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

Cours 7 : Utilisation de modules sous python

Compléments de documentation Scilab : affichage de texte et formatage de nombres

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

Recherche dans un tableau

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

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

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Algorithmique et Programmation, IMA

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Utilitaires méconnus de StrataFrame

Initiation à la Programmation en Logique avec SISCtus Prolog

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

Chap III : Les tableaux

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Les structures. Chapitre 3

Organigramme / Algorigramme Dossier élève 1 SI

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

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

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

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

UE C avancé cours 1: introduction et révisions

PROJET ALGORITHMIQUE ET PROGRAMMATION II


1. Structure d'un programme FORTRAN 95

Licence Sciences et Technologies Examen janvier 2010

OCL - Object Constraint Language

Solutions du chapitre 4

Langage Java. Classe de première SI

Introduction à MATLAB R

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

Compilation (INF 564)

Introduction à l algorithmique et à la programmation M1102 CM n 3

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

Programmation en langage C

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

L informatique en BCPST

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

Utilisation d objets : String et ArrayList

Les structures de données. Rajae El Ouazzani

Langage C. Patrick Corde. 22 juin Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin / 289

Programmer en JAVA. par Tama

Cours d Algorithmique et de Langage C v 3.0

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

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

Informatique Générale

V- Manipulations de nombres en binaire

ALGORITHMIQUE ET PROGRAMMATION En C

Conventions d écriture et outils de mise au point

L ALGORITHMIQUE. Algorithme

Programmation structurée et algorithmes de base en Pascal

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

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Programmation en Java IUT GEII (MC-II1) 1

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Rappels d architecture

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

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

Calcul Formel et Numérique, Partie I

Introduction au langage C

Rappels Entrées -Sorties

Transcription:

Démarche de résolution Il existe plusieurs approches pour analyser un problème. Pour nous, ont va suivre l approche dite «descendante». Cette méthode se traduit par les trois actions: résultat, traitement et données. Dans cette étape, nous avons à faire: - Reposer le problème en détail, - Dégager les résultats à atteindre, - Définir les méthodes de résolution, - Définir les structures de données nécessaires. Les Actions élémentaires simples L affectation On appelle AFFECTATION la mise d'une valeur dans une variable. Celle-ci peut être sous forme directe ou sous forme d'un calcul. Au niveau Algorithme Variable valeur X 21 C A Z 22*5 Au niveau Pascal Variable := valeur Y :=2.365 ; S := chaine ; X := y+30 Remarque : Une affectation ne peut se faire qu'entre une variable et une expression de même type. La seule exception est de mettre un entier dans un réel L opération d entrée Cette structure permettre à l utilisateur d'introduire des valeurs au clavier pour qu elles soient utilisées par le programme, on appelle cette opération la lecture. Au niveau Analyse Variable = Donnée ( Message ) Moy=Donnée ( Entrer la moyenne ) Au niveau Algorithme Lire(Variable) Lire(a) Au niveau Pascal Readln(variable) Readln(a) L opération de sortie C est la structure qui permet au programme de communiquer des valeurs à l utilisateur en les affichant à l écran. Cette opération s appelle écriture. Write : Affiche un contenu et reste sur la même ligne Writeln : Affiche un contenu et passe à la ligne suivante Au niveau Analyse et Algorithme Affichage d un message : 1 P a g e Au niveau Pascal

Ecrire ( Algorithmique ) Affichage du contenu d un variable : A 55 Ecrire (A) Remarque : Ecrire ( A ) affiche le caractère A pas le contenu de la variable A. Write ( algorithmique ) ; A := 55 ; Write (A) ; Affichage Mixte : Utiliser une virgule pour la séparation Ecrire ( La variable A=,A) Write ( La variable A=,A) ; Remarques: 1. Writeln; provoque un retour à la ligne après l'opération d'écriture. 2. Un mot avec apostrophe sera affiché au niveau de pascal avec deux apostrophes, comme par exemple cette écriture: WriteLn('L'informatique'); C'est faux. WriteLn('L''informatique'); C'est Vrai. Les structures de données Les constantes Définition : On appelle constante un objet ayant une valeur inchangée tout le long d un algorithme. Une constante est caractérisé par : Son nom (un identificateur unique), Sa valeur Objet Type/ Nature NOM_Constante Constante=Vlauer PI Constante = 3,14 CONST <nom_constante> = valeur_constante ; Exemple: CONST coef = 1.5 ; Les variables Définition : On appelle variable tout objet pouvant prendre différentes valeurs tout le long d un algorithme. Une variable est caractérisée par : Son nom (un identificateur unique), Son type, Son contenu. Tableau de déclaration des Objets T.D.O Objet Type/ Nature nom_variable Type(entier, caractère, chaine, réel, booléen ) x Entier La déclaration d une variable entière se fait comme suit : VAR < nom_variable > : Type ; Le type Entier : Dans un ordinateur un entier est représenté avec un nombre fixe d octets ou de bits. C est pour cette raison que l ensemble des entiers dans un ordinateur est fini (compris entre un minimum et un maximum). Les opérateurs arithmétiques sur les Entiers :+, -, *, DIV, MOD, >, <,,, =, 2 P a g e

Le type Réel Sous ensemble de R Les opérateurs arithmétiques sur les Entiers :+, -, *, /, >, <,,, =, Algorithmique Pascal Rôle Exemple Trunc (x) Trunc(x) Permet d extraire la partie entière de x Trunc (5,2) vaut 5 Trunc (6,9) vaut 6 Arrondi (x) Round (x) Arrondit une valeur réelle à l entier le plus proche Round (10,23) vaut 10 Round (10,5) vaut 11 Round (-10,83) vaut -11 Abs (x) ABS (x) Renvoie la valeur absolue de x ABS (-10) vaut 10 Carré (x) SQR (x) Renvoie le carré de x SQR (6) vaut 36 Racine (x) carré SQRT (x) Renvoie la racine carrée de x s il est positif sinon elle provoque une erreur SQRT (5) vaut 2,236 INT (x) INT (x) Renvoie la partie entière de x dans un réel INT (10,23) vaut 10,00 FRAC (x) FRAC (x) Renvoie la partie décimale de x dans un réel FRAC (10,23) vaut 0,23 Cos (x) 3 P a g e Cos (x) Renvoie le cosinus de x (x en radians) Cos (PI) vaut -1,00 Sin (x) Sin (x) Renvoie le sinus de x (x en radians) Sin (PI) vaut 0,00 Aléa Random Renvoie un réel entre 0 et 1 Aléa(x) Random(x) Renvoie un entier entre 0 et X-1 Utiliser Randomize avant Random pour avoir une séquence différente à chaque exécution. Le type Booléen Le type booléen contient les deux valeurs logiques VRAI et FAUX. Dans le langage PASCAL, la déclaration d une variable booléenne se fait comme suit : VAR <nom_variable> : Boolean ; Opérateurs logiques sur les booléens : NON, ET, OU, OUEx (not, and, or, xor) Table de vérité de ET a b a ET b F F F F V F V F F V V V Table de vérité de OU a b a OU b F F F F V V V F V V V V Table de vérité de XOR (OU EXCLUSIF) a b a XOR b F F F F V V V F V V V F

Remarque : Il existe un ordre de priorité entre les opérateurs logiques : La négation NON est prioritaire par rapport à la conjonction ET. La conjonction ET est prioritaire par rapport à la disjonction OU. Si deux opérateurs ont la même priorité, le calcul de l expression logique se fera de gauche à droite. Dans tous les cas, les opérations misent entre parenthèse sont prioritaires. Vrai est supérieur à Faux (True>False renvoi True) Le type caractère Le type Char défini des variables "caractère seul" ou "lettre" ayant code appartenant à la table ASCII. Syntaxe : Var Nom_Var : Char ; Les Fonctions prédéfinies pour les caractères (x entier compris entre 0 et 255) Nom Code en Pascal Rôle Exemples ORD (c) ORD (c) Renvoie le code ASCII du caractère c. Le résultat est un entier positif. CHR (x) CHR (x) Renvoie le caractère dont le code ASCII est x. SUCC (c) SUCC (c) Renvoi le caractère successeur de c s il existe. ORD ("A") vaut 65 ORD ("a") vaut 97 CHR (65) vaut A CHR (97) vaut a SUCC ("C") vaut D SUCC ("2") vaut 3 PRED (c) PRED (c) Renvoi le caractère prédécesseur de c s il existe. MAJUS (c) UPCASE (c) 4 P a g e Convertit le caractère c en majuscule s il est possible PRED ("C") vaut B PRED ("2") vaut 1 MAJUS ("d") vaut D Le type chaine de caractères Une chaîne de caractère est une succession de n caractère avec n compris entre 0 et 255 si n = 0 on dit que la chaîne est vide. Les valeurs de chaîne de caractères sont définies entre guillemets. Syntaxe : Var chaine : String ; (chaine de longueur MAX 255) telephone : String[10] ; (chaine de longueur 10 caractéres) Les fonctions relatives au type chaîne de caractères Algorithmique Pascal Rôle Exemple Long (ch) Position (ch1,ch2) Length (ch) Pos (ch1,ch2) Renvoie le nombre de carctères de ch Renvoie la position de la 1ère occurence de ch1 dans ch2. Si ch1 n est pas dans ch2, elle retourne la valeur 0 Length ( technologie ) vaut 12 Pos ( i,'informatique ) vaut 9 Pos ( I,'Informatique ) vaut 1 Pos ( Formation,'Informatique ) vaut 0

Sous_chaine (ch,p,n) Copy (ch,p,n) Renvoie une sous-chaine de n caractères à partir de la position p de ch Copy ( Informatique,3,6) vaut format Concat (ch1,ch2chn) Concat (ch1,ch2chn) Permet la concaténation de ch1, ch2, et chn Soit ch1:= Ecole ; ch2:= Sup ; Concat (ch1,,ch2) vaut Ecole Sup Les procédures relatives au type chaîne de caractères Algorithmique Pascal Rôle Exemple Efface (ch,p,n) Delete (ch,p,n) Enlève n caractères de la chaîne ch à partir de la position p. Le résultat se trouvera dans la chaine ch Delete ( Turbo Pascal,6,7) vaut Turbo Insére (ch1,ch2,p) Insert (ch1,ch2,p) Insère la chaîne ch1 dans la chaîne ch2 à la position p. Le résultat se trouvera dans la chaine ch2 Ch1:= mation ;ch2:= program ; Insert (ch1,ch2,8) alors ch2:= programmation Convch (n,ch) Str (n,ch) Convertit le nombre n en une chaîne ch n:=20; Str (n,ch), la chaîne ch va contenir 20 Valeur (ch,n,e) Val (ch,n,e) Convertit la chaîne ch en un nombre n. e contient la position de l erreur ch:= 20 ; Aprés exécution de l instruction Val (ch,n,e), n va contenir 20 e sera égale à 0 Avec e est de type entier. Le Type Scalaire énuméré Le type scalaire par énumération définit un ensemble ordonné et fini de valeurs désignées par des identificateurs. Tableau de déclaration des nouveaux types Types Couleurs= (rouge, vert, blanc, noir, jaune, bleu) on peut appliquer la fonction ORD sur ces valeurs pour déterminer leurs numéros d ordre, ainsi ORD (rouge) vaut 0 Les opérateurs applicables à ces valeurs sont: Les opérateurs relationnels Lés opérateurs PRED et SUCC. PRED En PASCAL: TYPE <nom_type> = ( Const1,Const2,, ConstN); VAR <nom_variable> : nom_type; Le type Intervalle Le type intervalle possède les propriétés d un type scalaire discret ordonné (entier, caractère et scalaire énuméré) 5 P a g e

La définition d un intervalle est décrite par la donnée de deux constantes représentant respectivement la borne inférieur et la borne supérieur appartenant à un type scalaire discret ordonné et telle que Borne Inférieur < Borne Supérieur Tableau de déclaration des nouveaux types Types Nom_Type = BorneInf.. BorneSup Mois=1..12 Anne_Scolaire= (Septembre, Octobre, Novembre, Decembre, Janvier, Fevrier, Mars, Avril, Mai, Juin) Premier_Trimestre = Septembre.. Decembre En Pascal: TYPE <nom_type> = Bonrne_inf.. Borne_sup; VAR <nom_variable> : nom_type; Le type Tableau Un tableau est une structure de données homogènes regroupant un ensemble d éléments de même type. Au niveau de l analyse et de l algorithme Objet Type/ Nature Ident_Tab Tableau de taille et de Type-élément En Pascal: Var Ident_Tab:ARRAY[Borne_inf..Borne_Sup] OF Type_élément; Exemple: T : ARRAY [1..4] OF CHAR; Il est possible de déclarer le type d un tableau. Tableau de déclaration des nouveaux types Types Eleves = tableau de 30 chaînes de caractère Moyennes = tableau de 30 réels Tableau de déclaration des objets Objet Type/ Nature Rôle T_ELEVES T_Moy 6 P a g e Eleves Moyennes Tableau des 30 noms d élèves Tableau des 30 moyennes d élèves Les structures de contrôle conditionnelles Structure de contrôle conditionnelle simple réduite Analyse Algorithme Pascal Initialisations Si (condition(s)) Alors Instruction 1 Instruction n R=[Initilisations] Si (condition(s)) Alors Instruction 1 Instruction n Initialisations ; IF (condition(s)) then Instruction 1 ; ; Instruction n ;

Structure de contrôle conditionnelle simple complète Analyse Algorithme Pascal Initilisations Si (condition(s)) Alors Instruction 1 Trait1 Instruction n Trait1 Sinon Instruction 1 Trait2 Instruction m Trait2 R=[Initilisations] Si (condition(s)) Alors Instruction 1 Trait1 Instruction n Trait1 Sinon Instruction 1 Trait2 Instruction m Trait2 Initialisations ; IF (condition(s)) then Instruction 1 Trait1 ; ; Instruction n Trait1 ; Else Instruction 1 Trait2 ; ; Instruction m Trait2 ; 7 P a g e Structure de contrôle conditionnelle généralisée Analyse Algorithme Pascal Initilisations Si (condition(s) 1) Alors Traitement1 Sinon Si (condition(s) 2) Alors Traitement 2 Sinon Si (condition(s) n-1) Alors Traitement n-1 Sinon Traitement n R=[Initilisations] Si (condition(s) 1) Alors Traitement1 Sinon Si (condition(s) 2) Alors Traitement 2 Sinon Si (condition(s) n-1) Alors Traitement n-1 Sinon Traitement n Remarque : Au niveau de l analyse on écrit : R = [Initialisation] R indique le résultat recherché SI condition ALORS Initialisations ; IF (condition(s)1) then Trait1 ; Else If (condition(s)1) then Trait2 ;.. ; Else If (condition(s)n-1) then Trait n-1 ; Else Trait n ; Structure à choix multiple Cette structure permet une présentation plus claire d un ensemble d alternatives imbriquées. Un nombre important de choix est à envisager selon les valeurs prises par une variable. La structure SELON évalue le "sélecteur", passe à comparer celui ci respectivement avec les valeurs dans les listes. En cas d'égalité avec une valeur, les actions correspondantes, qui sont devant cette valeur seront exécutées.

Analyse Algorithme Pascal Initilisations Selon Sélécteur Faire Val1 :action1 Val2,val3 :action21 action22 action2n Val4 :action3 Valn :action n Sinon action R Fin selon R=[Initilisations] Selon Sélécteur Faire Val1 :action1 Val2,val3 :action21 action22 action2n Val4 :action3 Valn :action n Sinon action R Fin selon Initialisations ; Case sélécteur of Val1 :action1 ; Val2,val3 :begin action21 ; action22 ; action2n ; end ; Val4 :action3 ; Valn :action n; else action R end ; 8 P a g e Structures de contrôle itératives La structure : Pour faire Définition Un résultat à une structure itérative complète s il est obtenu après la répétition d un traitement un nombre fini de fois connu d avance. Au niveau analyse : Il faut utiliser un compteur pour signifier la répétition : R=[Initialisation] Pour c de 1 à n Faire Traitements (Ensemble d instruction) FinPour Dans le cas d un parcours descendant, la définition s écrit : R=[Initialisation] Pour c de n à 1 (pas=-1)faire Traitements (Ensemble d instruction) FinPour Au niveau Pascal : FOR i :=1 TO n DO Instructions à répéter Dans le cas parcours descendant, la définition s écrit : FOR i :=n DOWNTO 1 DO Instructions à répéter La structure : Répéter jusqu'à Définition Un résultat a une définition itérative à condition d arrêt, s'il est la répétition d'une suite d'instructions jusqu'à ce qu'une condition d'arrêt passe à l'état vrai. Analyse Algorithme Pascal R=[Init] Répéter <traitement > Jusqu'à (condition d'arrêt).. {Init} Répéter <traitement > Jusqu'à (condition d'arrêt) ; ; {Init} Repeat <traitement > Until (condition d'arrêt) ; Avec <condition>: expression logique déterminant l arrêt de la boucle <traitement> : action ou séquence d action à exécuter tant que la condition est fausse Remarques:

On utilise la boucle REPETER lorsque le nombre de répétitions peut ne pas être connu à l avance. Il faut modifier la condition à l intérieur de la boucle REPETER pour ne pas avoir une boucle fermée (infinie). La structure : Tant que faire Définition La structure itérative à condition d arrêt : tant que faire est utilisée lorsque la condition doit être testée avant l exécution du traitement à répéter. Structure utilisée lorsque le nombre de traitement n est pas connu à l avance. Vocabulaire et syntaxe : Au niveau de l analyse et Au niveau pascal l algorithme R=[init]Tant que (condition) faire Instruction 1 Instruction n Fin tant que While (condition) do Instruction 1 ; Instruction n; End; Les instructions seront exécutées au moins zéro fois Si la valeur de la condition est vraie, l'ordinateur doit exécuter les instructions 1 à n. Si la valeur de la condition est fausse, l'exécution des instructions 1 à n s'arrête et l'ordinateur passe à l'exécution de l'instruction qui se trouve juste après fin tant que La boucle tant que n est utilisée si la condition n est pas vérifiée dés la première fois. 9 P a g e