Vous êtes sur la page 1sur 8

Les sous programmes

Il existe deux types : les fonctions et les procedures

I- Les fonctions
Une function est un sous programme qui retourne obligatoirement qu’un seul resultat
1- Syntaxe
fonction nom-fonction (donnees : arg1 :type, arg2 :type , ….argn :type) :type-de-
retour
/*declaration des variables locales*/
Debut
Instruction
Retourner(resultat)
Fin
2- Exemple
Ecire une fonction qui recoit en parametre deux entiers puis calcul leur somme
Solution
Fonction somme (donnees : a,b :entier) :entier
Var s 0:entier
Debut
S a+b
Retourner(s)
fin
3- Exercice
Ecrire un sous programme qui permet de resoudre l’equation ax+b=0
Solution
Fonction equation (donnees : a,b :reel) : reel
Var x :reel
Debut
X -b/a
retourne (x)
fin
II- Les procedures
Ce sont des sp qui peut produire 0 ou plusieurs resultats .
Les resultats produits par la procedure ne sont pas retournes au programme appelant
mais les affichent elle-même
1- Syntaxe
Procedure nom_procedure donnees : p1,p2,..pn:type
Resultat: r1,r2, … pn:type
Donnees/resultat: d1, ..dn:type
/* variable locales*/
Debut
Instructions
Fin
2- Exemple
Ecrire une procedure qui recoit un parametre d’un nombre entier puis affiche la
table de multiplication de 1 a n de ce nombre
Solution
Procedure table_multiplication (donnees :a,n :entier)
Var i :entier
Debut
Pour i de 1 a n faire
Afficher(a,’’*’’,i,’’=’’,a*i)
Finpour
Fin
III- Tableau-sous programme
Exercice:
Ecrire un programme qui permet de creer un tableau pouvant contenir 100 entier et
affiche l’ensemble des valeurs de ce tableau
Solution
Algo : creation_tableau
cosnt n 100
type tableau=tableau(1—n)de entier
var tab :tableau
i : entier
debut
/*creation du tableau*/
Poutr i de 1 a n faire
Afficher( ‘’veuillez saisir la val de la cellule no’’,i)
Lire(tab[i])
Finpour

/*affichage du tableau*/

Pour i de 1 a n faire

Afficher(tab[i])

Finpour

Fin

Algo : creation_tableau

Const n 100

Type tableau=tableau(1--n)de entier

Var  tab :tableau

I : entier

Debut
Creationtableau (tab, n)

Affichagetableau (tab, n)

Fin

Procedure creationtableau donnees : tab : tableau

n: entier

var i : entier

debut

pour i de 1 a n faire

afficher(‘’veuillez saisir la valeur de la cellule no’’, i)

lire(tab[i])

finpour

fin

exo2 : ecrire un programme qui fait appel a deux sous programme creationtableau et
affichagetableau qui permettent respectivement de créer un tableau de n entier et d’afficher le
tableau de n entier, n est un entier positif <=100 et sera saisi au clavier par l’utilisateur

solution

algo : creation_affichage_tableau

const 100

type tableau=tableau(1--m)de entier

var tab :tableau

n :entier

debut

/*saisie et contrôle de la taille du tableau*/

Repeter

Afficher(‘’veuillez saisir la taille du tableau’’)

Lire(n)

Jusqu’à(n>=1 et n<=m)
/*appel des sp*/

Creationtableau(tab,n)

Affichagetableau(tab,n)

Fin

/*code sp*/

Procedure creationtableau donnees : tab :tableau

n :entie

var i : entier

debut

pour i de 1 a n faire

afficher(‘’veuillez saisir la valeur de la cellule no’’,i)

lire(tab[i])

finpour

fin

procedure affichagetableau donnees : tab :tableau

n :entier

var i :entier

debut

pour i de 1 a n faire

afficher(tab[i])

finpour

fin

les enregistrements :

c’est un type compose qui permet de créer des variables capables de stocker des informations de
type different

I- Declaration du type d’enregistrement


Syntaxe
Type nom_enregistrement=enregistrement
Debut
Champ1 : type
Champ2 : type
Champ n : type
Fin

Exemple : on souhaite enregistrer les infos des produits, chaque produit etant caracterise par libelle
de type chaine, un prix unitaire de type entier et une quantite de type entier

Solution

Type produit = enregistrement

Debut

Libelle : chaine

Pu : entier

Qte : entier

Fin

Var pdt : produit

Tableau

3-ecrire dans une variable de type enregistrement

Pour ecrire dans une variable de type enregistrement on met d’abord le nom de l’enregistrement
(ex :pdt) : nom_egt. Nom_champ val ou lire (nom_egt. Nom_champ)

Exemple :

Pdt.libelle ‘’ordinateur’’

Pdt.pu 300.000

Pdt.qte 4

Ou

Lire (pdt.libelle)

Lire (pdt.pu)

Lire (pdt.qte)

Ou

Lire (pdt.libelle,pdt.pu,pdt.qte)

3- Afficher les valeurs d’une variables de type enregistrement


Afficher (nom_egt. Nom_champ)
Exemple : afficher (pdt.libelle) ou afficher (‘’libelle :’’, pdt.libelle)

Ecrire un programme qui permet de saisir puis d’afficher les informations d’un etudiant. L’etudiant
est saisi sous la forme d’un enregistrement contenant les informations : matricule (de type chaine),
nom (de type chaine), pronom(de type chaine), sexe (caractere)

methode

Algo : nom_algo

/*declaration de l’enregistrement*/

/*declaration des variables*/

Debut

/*sasie des valeurs*/

/*affichage des valeurs*/

Fin

Solution

Algo : saisie_et_affichage

Type etudiant= enregistrement

Debut

Matricule : entier

Nom : chaine

Prenom : chaine

Sexe : caractere

Fin

Var etd : etudiant

Debut

Afficher (‘’veuillez saisir le matricule’’)

Lire (etd.matricule)

Afficher (‘’veuillez saisir le nom’’)

Lire (etd.nom)

Afficher (‘’veuillez saisir le prenom’’)


Lire (etd.prenom)

Afficher (‘’veuillez saisir le sexe’’)

Lire (etd.sexe)

Afficher (‘’matricule :’’,etd.matricule)

Afficher (‘’nom :’’,etd.nom)

Afficher (‘’prenom’’,etd.prenom)

Afficher (‘’sexe’’,etd.sexe)

Fin

Chap : les enregistrements et tableau d’enregistrements

I- Declaration d’un tableau d’enregistrement

Synataxe

/*declaration de l’enregistrement*/

Type nom_enregistrement = structure

Debut

Champ 1

Champ 2

Fin

/*declaration du tableau d’enregistrement*/

Const n val

Type tableau = tableau(1—n) de nom_enregistrement

Var tab : tableau

Exemple : declaration d’un tableau on suppose que l’etudiant est caracterise par le matricule, le
nom, le prenom.

/*declaration de l’enregistrement etudiant*/

Type etudiant = structure

Debut

Matricule : entier

Nom : chaine
Prenom : chaine

Fin

/*declaration du tableau d’etudiant*/

Const n val

Type tableau = tableau(1—n) de etudiant

Var tab : tableau

II- Saisie des valeur d’un tableau


Pour ecrire dans une cellule d’un tableau d’enregistrement :
nom_tableau[no_cellule].nom_du_champ val
Ou
Lire(nom_tableau[no_cellule].nom_du_champ)
En general une boucle est necessaire pour saisir l’ensemble des valeurs d’un tableau
Pour i de 1 a n faire
Afficher(‘’veuillez saisir la valeur du champ’’)
Lire(nom_tableau[i].nom_du_champ 1)

Lire(nom_tableau[i].nom_du_champ n)

Vous aimerez peut-être aussi