Algo Et Program 1 [PDF]

  • Author / Uploaded
  • Keen
  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

SUPPORT DE COURS

UE : ALGORITHME ET PROGRAMMATION LPRGL 1 Equipe Pédagogique

INFORMATIQUE Propriété exclusive de PIGIER CI. Toute reproduction même partielle de ce document est strictement interdite. 22-23

Formation – Placement - Consultance Tél : (225) 27 20 30 35 00 / Fax : (225) 27 20 22 67 64 E-mail : [email protected] / [email protected] 01 BP 1585 Abidjan République de Côte d'Ivoire 23 Boulevard de la République - Plateau

SARL au capital de 300.000.000 FCFA RC N° CI-ABJ-1977-B-26872 CC : 77 02508 P / Centre des Impôts : DGE Régime d’Imposition : Réel Normal

PIGIER CI

Algorithme et programmation SOMMAIRE

LEÇON 1 : LES BASES DE L’ALGORITHME ................................................................................................. 3 I. Définition .............................................................................................................................................. 3 II. Les différentes étapes dans l’élaboration d’un programme ............................................................... 3 III. La structure générale d’un algorithme ............................................................................................... 3 IV. La déclaration des ressources ............................................................................................................ 3 V. Les instructions de base ...................................................................................................................... 4 VI. Exercices de la leçon .......................................................................................................................... 5 LEÇON 2 : LES STRUCTURES DECISIONNELLES......................................................................................... 8 I)

La structure conditionnelle ............................................................................................................. 8

II)

La structure alternative ................................................................................................................... 9

III)

Exercice corrigé (Cas d’imbrication) .......................................................................................... 10

LEÇON 3 : LES STRUCTURES REPETITIVES .............................................................................................. 12 I)

La boucle TANTQUE ....................................................................................................................... 12

II)

La boucle REPETER ........................................................................................................................ 13

III)

La boucle POUR ......................................................................................................................... 14

LEÇON 4 : LES CHAINES DE CARACTERES .............................................................................................. 16 I)

Généralités sur les chaînes de caractères ..................................................................................... 16

II)

Relation d'ordre............................................................................................................................. 16

III)

Concaténation de chaînes de caractères .................................................................................. 17

IV)

Les fonctions d manipulation de chaînes de caractères ........................................................... 17

LEÇON 5 : LES TABLEAUX ....................................................................................................................... 18 I)

Les tableaux à une dimension ....................................................................................................... 18

II)

Les tableaux à deux dimensions .................................................................................................... 19

LEÇON 6 : LES ENREGISTREMENTS ........................................................................................................ 22 I)

Définition ....................................................................................................................................... 22

II)

Déclaration .................................................................................................................................... 22

III)

Applications ............................................................................................................................... 22

IV)

Exercices corrigés ...................................................................................................................... 23

LEÇON 7 : LES PROCEDURES ET LES FONCTIONS................................................................................... 26 I)

Les procédures .............................................................................................................................. 26

II) Les fonctions...................................................................................................................................... 28 II)

Exercice corrigé ............................................................................................................................. 30

LEÇON 8 : LES FICHIERS ......................................................................................................................... 32 I)

Définition ....................................................................................................................................... 32

II)

Les primitives de gestion de fichier ............................................................................................... 32 1

PIGIER CI III)

Algorithme et programmation

Application................................................................................................................................. 33

LEÇON 9 : LES POINTEURS ..................................................................................................................... 35 I)

Définition ....................................................................................................................................... 35

II)

Notation......................................................................................................................................... 35

III)

Les primitives de gestion de pointeur ....................................................................................... 35

IV)

La valeur NIL ou NULL ................................................................................................................ 35

V)

Application..................................................................................................................................... 35

2

PIGIER CI

Algorithme et programmation

LEÇON 1 : LES BASES DE L’ALGORITHME I. Définition Un algorithme est une suite ordonnée d’opérations permettant de passer d’un état initial à un état final.

II. Les différentes étapes dans l’élaboration d’un programme Pour concevoir un programme informatique (logiciel), il faut mener des réflexions qui aboutiront à la conception d’algorithmes. Une fois les algorithmes obtenus, il faut les traduire en programmes informatiques (logiciel). Cette traduction se fera à l’aide de langages de programmation (Exemples de langage de programmation : Turbo Pascal, C, C++, Visual basic).

III. La structure générale d’un algorithme ALGORITHME NomAlgorithme Déclaration des ressources DEBUT Description du traitement FIN. Commentaire :   

Un algorithme commence par le mot clé algorithme suivi de son identificateur (nom donné à l’algorithme). La partie déclarative permet de présenter les ressources nécessaires pour résoudre le problème. La partie description du traitement permet de préciser les instructions ordonnées résolvant le problème. Cette partie commence par le mot clé DEBUT et se termine par le mot clé FIN suivi d’un point (.).

IV. La déclaration des ressources IV.1 Les constantes IV.1.1 Définition Une constante est affectée d’une valeur au début de l’algorithme et cette valeur ne peut pas être modifiée. IV.1.2 Déclaration CONST NomConstante=valeur Exemples : CONST Classe=’Info1a’ Coef=3 TVA=20%

3

PIGIER CI

Algorithme et programmation

IV.2 les variables IV.2.1 Définition Une variable peut prendre une valeur pendant le déroulement de l’algorithme et cette valeur peut changer. IV.2.2 Les types simples Une variable a un type. Le type permet de définir le domaine de valeurs de la variable. Les types simples sont résumés dans le tableau ci-dessous :

Entier

Symboles ou mots clés du langage de description algorithmique ENTIER

Réel

REEL

Caractère

CARACTERE

Chaîne de caractères

CARACTERES

Booléen

BOOLEEN

Types simples

IV.2.3 Déclaration VAR NomVariable :Type Exemples : VAR Nbre1,Nbre2 : ENTIER Moy :REEL Prenom :CARACTERES

V. Les instructions de base V.1 Le symbole de fin d’instruction (;) Le symbole point virgule ( ;) marque la fin d’une instruction. Il faudra donc mettre un point virgule ( ;) à la fin de chaque instruction.

V.2 Les opérateurs arithmétiques Les opérateurs arithmétiques sont résumés dans le tableau ci-dessous. Les opérateurs arithmétiques

Symboles ou mots clés du langage de description algorithmique

Observations

Addition

+

Soustraction

-

Multiplication

*

Division réelle

/

Division entière

DIV

3 DIV 2 = 1

Reste d’une division entière

MOD

3 MOD 2 = 1

4

PIGIER CI

Algorithme et programmation

V.3 Les opérateurs de comparaison Les opérateurs de comparaisons sont résumés dans le tableau ci-dessous. Symboles ou mots clés du langage de description algorithmique

Les opérateurs de comparaison Supérieur

>

Inférieur


=

Inférieur ou égale

=0 ALORS DEBUT ECRIRE(‘La valeur absolue de ‘,N, ’ est ‘, N) ; FIN ; SI N=0 ALORS DEBUT ECRIRE(‘La valeur absolue de ‘,N,’est ‘,N) ; FIN 9

PIGIER CI

Algorithme et programmation

SINON DEBUT ECRIRE(‘La valeur absolue de ‘,N,’est ‘,-N) ; FIN ; FIN.

III)

Exercice corrigé (Cas d’imbrication)

Enoncé : Ecrire un algorithme permettant de savoir le signe du produit de deux nombres entiers.

Solution : ALGORITHME SigneProd VAR Nbre1,Nbre2,Prod :ENTIER DEBUT (* Saisie de deux nombres entiers *) ECRIRE(‘Entrez deux nombres entiers’) ; LIRE(Nbre1,Nbre2) ; (* Calcul du produit des deux nombres entiers *) Prod←Nbre1*Nbre2 ; (* Recherche et affichage du signe du produit des deux nombres entiers saisis *) SI Prod>0 ALORS DEBUT ECRIRE(‘Le produit est positif’) ; FIN SINON DEBUT SI Prod < 0 ALORS DEBUT ECRIRE(‘Le produit est négatif’) ; FIN SINON 10

PIGIER CI

Algorithme et programmation DEBUT ECRIRE(‘Le produit est nul’) ; FIN ; FIN ;

FIN.

Autres exercices de la leçon. Exercice 1 Ecrire un algorithme permettant de savoir le résultat d’un étudiant. Il a deux notes et il faut avoir une moyenne supérieure ou égale à 10 pour être admis. Pour une moyenne inférieure à 10 on est ajourné.

Exercice 2 Ecrire un algorithme permettant de comparer deux nombres.

11

PIGIER CI

Algorithme et programmation

LEÇON 3 : LES STRUCTURES REPETITIVES I)

La boucle TANTQUE 1) Définition

La boucle TANTQUE est une structure de contrôle permettant d’exécuter plusieurs fois un bloc d’instructions. La condition d’arrêt de la boucle est vérifiée à l’entrée de la structure. Lorsque la condition est vérifiée la boucle s’exécute et s’arrête lorsque la condition n’est plus vérifiée.

2) Syntaxe TANTQUE condition FAIRE DEBUT Bloc d’instructions FIN ;

3) Application Enoncé : On veut faire la somme de 10 (dix) entiers quelconques Ecrire l’algorithme en utilisant la structure de contrôle TANT QUE.

Solution de l’exercice ALGORITHME Somme VAR Nbre,Som,Cpte :ENTIER DEBUT (* Initialisation de la somme et du compteur *) Som←0 ; Cpte←0 ; (* Boucle de saisie et calcul de la somme des 10 nombres entiers saisis *) TANTQUE Cpte "A" car le code ASCII du caractère "B" (66 en base 10) est supérieur au code ASCII du caractère "A" (65 en base 10). Pour comparer deux chaînes de caractères, on compare les caractères de même rang dans les deux chaînes en commençant par le premier caractère de chaque chaîne (le premier caractère de la première chaîne est comparé au premier caractère de la seconde chaîne, le deuxième caractère de la première chaîne est comparé au deuxième caractère de la seconde chaîne, et ainsi de suite…). Exemples : Comparaison de deux chaînes "baobab" < "sapin" car le code ASCII de "b" est inférieur au code ASCII de "s". "baobab" > "banania" car le code ASCII de "o" est supérieur au code ASCII de "n" (la comparaison ne peut pas se faire sur les deux premiers caractères car ils sont identiques). "1999" > "1998" car le code ASCII de "9" est supérieur au code ASCII de "8" (la comparaison ne peut pas se faire sur les trois premiers caractères car ils sont identiques). Attention, ici ce ne sont pas des valeurs numériques qui sont comparées, mais bien des caractères. "333" > "1230" car le code ASCII de "3" est supérieur au code ASCII de "1". "333" < "3330" car la seconde chaîne a une longueur supérieure à celle de la première (la comparaison ne peut pas se faire sur les trois premiers caractères car ils sont identiques). "Baobab" < "baobab" car le code ASCII de "b" est supérieur au code ASCII de "B". 16

PIGIER CI

III)

Algorithme et programmation

Concaténation de chaînes de caractères

Le but de la concaténation est de créer des chaînes de caractères en juxtaposant deux (ou plus) chaînes de caractères. En algorithmique, l'opérateur de concaténation est représenté par + ou par //. Exemple : Concaténation de deux chaînes Algo Concaténations Variable : catégorie : Chaîne Début catégorie ←développeur" catégorie ←catégorie // "s" Afficher(catégorie) # Affiche : développeurs catégorie ←" des " // catégorie Afficher(catégorie) # Affiche : des développeurs Fin

IV)

Les fonctions d manipulation de chaînes de caractères

1. Copie d'un extrait SSCHAINE(chaîne,position,nombre):Chaîne Le rôle de la fonction SSCHAINE() est de retourner une "sous-chaîne" (copie d'un extrait de la chaîne passée en premier paramètre) de nombre caractères de la chaîne chaîne à partir du caractère qui se trouve en position position (rappel : le premier caractère d'une chaîne de caractères se trouve en position 1 en algorithmique. 2. Nombre de caractères LONGUEUR(chaîne):Entier La fonction LONGUEUR() a pour rôle de calculer et de retourner le nombre de caractères présents dans la chaîne de caractères passée en paramètre. 3. Recherche d'un caractère ou d'une sous-chaîne RANG(chaîne,souschaîne,position):Entier La fonction RANG() recherche et retourne la première occurrence de la souschaîne dans la chaîne. La recherche commence à partir de position. Cette fonction retourne la position du premier caractère de la souschaîne, ou la valeur 0 si la "souschaîne" n'existe pas dans la chaîne (à partir de position). 4. Conversion en code ASCII CODE(caractère):Entier La fonction CODE() retourne le code ASCII du caractère passé en paramètre. 5. Conversion en caractère CAR(code_ascii):Caractère La fonction CAR() retourne le caractère dont le code ASCII est passé en paramètre. 6. Conversion en grandeur numérique CVNOMBRE(chaîne):Entier CVNOMBRE(chaîne):Réel La fonction CVNOMBRE() a pour rôle de convertir (CV pour ConVersion) la chaîne de caractères passée en paramètre, en grandeur numérique si la suite de caractères représente un nombre, puis de retourner la grandeur numérique. 7. Conversion en chaîne de caractères CVCHAINE(entier): Chaîne CVCHAINE(réel): Chaîne La fonction CVCHAINE() a pour rôle de convertir en chaîne de caractères une valeur numérique passée en paramètre, puis de retourner la chaîne résultante.

17

PIGIER CI

Algorithme et programmation

LEÇON 5 : LES TABLEAUX I)

Les tableaux à une dimension

1) Définition Un tableau à une dimension également appelé vecteur est une structure de données constituée d’une ligne et de plusieurs colonnes permettant de contenir des informations de même type.

2) Déclaration NomTableau : TABLEAU [valeur initiale..valeur finale] DE TYPE ;

Exemple : Déclarez un tableau de 10 entiers. TNbre :TABLEAU [1..10] DE ENTIER ;

Observations : Chaque case a un indice. Soit le tableau TPrenom de 5 prénoms.

Indice : 1 2 Valeurs : Facto Pluplu TPrenom[3] contient la valeur Poulili

3 Poulili

4 Sacolo

5 Gagoumo

3) Application Enoncé : Ecrire un algorithme permettant de faire la somme et la moyenne de dix nombres que vous devez saisir au préalable dans un tableau à une dimension.

Solution de l’exercice ALGORITHME AdditionMoyenne VAR TNbre :TABLEAU [1..10] DE ENTIER ; i,Som :ENTIER ; Moy :REEL ; DEBUT (* La saisie des nombres*) POUR i←1 JUSQUA 10 FAIRE DEBUT

18

PIGIER CI

Algorithme et programmation ECRIRE(‘Entrez le nombre N° ‘,i) ; LIRE(TNbre[i]) ; FIN ;

(*Calcul de de la somme et de la moyenne*) Som←0 ; POUR i←1 JUSQUA 10 FAIRE DEBUT Som←Som+TNbre[i] ; FIN ; Moy←Som/i ; (*Affichage de de la somme et de la moyenne*) ECRIRE(‘La somme est :’,Som) ; ECRIRE(‘La moyenne est :’,Moy) ; (*Affichage du vecteur Tnbre*) ECRIRE(‘Les nombres contenus dans le vecteur TNbre sont :’) ; POUR i←1 JUSQUA 10 FAIRE DEBUT ECRIRE(TNbre [i], ‘ ’) ; FIN ; FIN.

II)

Les tableaux à deux dimensions 1) Définition

Un tableau à deux dimensions est une structure de données constituée de plusieurs lignes et de plusieurs colonnes permettant de contenir des informations de même type.

2) Déclaration NomTableau :TABLEAU[ValeurInitialeLigne..ValeurFinaleLigne, Valeur initialeColonne..ValeurFinaleColonne] DE TYPE

Exemple : Déclarez un tableau de 2 lignes et de 5 colonnes de prénoms. TPrenom :TABLEAU[1..2,1..5] DE CARACTERES

19

PIGIER CI

Algorithme et programmation

Observation : Un tableau à deux dimensions a deux indices. Le premier indique le numéro de la ligne et le second le numéro de colonne (exemple : TPrenom[2,3] ←’Yaopio’)

3) Application Enoncé : Ecrire un algorithme permettant de saisir 10 nombres dans un tableau de deux lignes et de cinq colonnes. Après la saisi votre algorithme doit permettre de déterminer la plus grande valeur du tableau.

Solution de l’exercice 3 ALGORITHME Maxi VAR TNbre :TABLEAU[1..2 ,1..5] DE ENTIER i,j,Max : ENTIER DEBUT POUR i←1 JUSQUA 2 FAIRE DEBUT POUR j←1 JUSQUA 5 FAIRE DEBUT ECRIRE(‘Entrez le nombre de la ligne ’, i, ‘et de la colonne ‘ , j) ; LIRE(TNbre[i ,j]) ; FIN ; FIN ; Max←TNbre[1;1] ;

POUR i←1 JUSQUA 2 FAIRE DEBUT POUR j←1 JUSQUA 5 FAIRE DEBUT SI Max < TNbre[i ,j] ALORS DEBUT Max ←TNbre[i ,j]; FIN; 20

PIGIER CI

Algorithme et programmation FIN ;

FIN ; ECRIRE(‘La plus grande valeur du tableau est ’,Max) ; FIN. Exercices de la même leçon Exercice 1 Ecrire un algorithme permettant de trier un tableau de dix entiers.

Exercice 2 Ecrire un algorithme permettant de déterminer le nombre de notes supérieures ou égales à 10 préalablement saisie dans un vecteur.

Exercice 3 Ecrire un algorithme permettant de déterminer le nombre de notes inférieures à dix préalablement saisie dans une matrice deux lignes et cinq colonnes.

Exercice 4 Ecrire un algorithme permettant de remplacer tous les nombres inférieurs à zéro par zéro dans une matrice de trois lignes et de quatre colonnes.

21

PIGIER CI

Algorithme et programmation

LEÇON 6 : LES ENREGISTREMENTS I)

Définition

Un enregistrement est une structure de données permettant de stoker des données de types différents.

II)

Déclaration

TYPE NomEnregistrement= ENREGISTREMENT Champ 1 :TYPE 1 Champ n :TYPE n FIN VAR NonVariable :NomEnregistrement

III)

Applications

Enoncé Ecrire un algorithme permettant de saisir des informations sur un étudiant (Matricule, nom et prénom). Votre algorithme doit permettre d’afficher les informations saisies. Correction de l’algorithme ALGORITHME InfoEtud TYPE (*Création du type Etudiant qui est un enregistrement*) Etudiant=ENREGISTREMENT Mat : ENTIER ; Nom : CARACTERES ; Pren : CARACTERES ; FIN VAR EEtudiant : Etudiant ; DEBUT (* saisie des informations sur l’étudiant*) ECRIRE(‘Entrez le matricule de l’’étudiant’) ; 22

PIGIER CI

Algorithme et programmation LIRE(EEtudiant.Mat) ; ECRIRE(‘Entrez le nom de l’’étudiant’) ; LIRE(EEtudiant.Nom) ; ECRIRE(‘Entrez le prénom de l’’étudiant’) ; LIRE(EEtudiant.Pren) ;

(* affichage des informations saisies*) ECRIRE(‘Le matricule de l’’étudiant est :’,EEtudiant.Mat) ; ECRIRE(‘Le nom de l’’étudiant est :’,EEtudiant.Nom) ; ECRIRE(‘Le prénom de l’’étudiant est :’,EEtudiant.Pren) ; FIN.

IV)

Exercices corrigés

Enoncé Ecrire un algorithme permettant de saisir des informations sur des étudiants (Matricule et identité). Il y en a dix au maximum. Votre algorithme doit permettre de rechercher un étudiant à partir du matricule. Prévoir un menu avec les options suivantes : 1 :Saisir un étudiant 2 :Rechercher un étudiant 3 :Quitter le programme Solution de l’exercice

Correction de l’algorithme ALGORITHME GestionEtu TYPE Etudiant=ENREGISTREMENT Mat : ENTIER ; Identite : CARACTERES ; FIN VAR TEEtudiant : TABLEAU [1..10] DE Etudiant ; Rep : ENTIER ; VerifierSaisie ,Trouve : BOOLEEN ; 23

PIGIER CI

Algorithme et programmation

Cpte,MatRecherche ,i:ENTIER ; DEBUT VerifierSaisie←Faux, Cpte←0 ; REPETER (* Affichage du choix et saisie du menu *) ECRIRE(‘MENU’) ; ECRIRE(‘1 :Saisir un étudiant’) ; ECRIRE(‘2 :Rechercher un étudiant’) ; ECRIRE(‘3 :Quitter le programme’) ; ECRIRE(‘Entrez votre réponse’) ; LIRE(Rep) ; SI (Rep=1) ET (Cpte’,N2) ; FIN SINON DEBUT SI N1 < N2 ALORS DEBUT ECRIRE(N1 ,’