Modules de révision 4
èmeScientifiques
Saisie d’un entier avec une condition Procedure saisie(var n: entier)
Résultat= n n=[ ]répéter
n=donnée ("donner la taille") jusqu’à (n>5) et (n<=10) Fin saisie
--- Remplissage d’un tableau sans condition Procedure remplir (n: entire;var t:tab)
Résultat= t
t=[ ]pour i de 1 à n faire
t[i]=donnée (‘’donner l’élément’,i) fin pour
Fin remplir
---
Remplissage d’un tableau avec condition Procedure remplir (n: entier;var t:tab)
Résultat= t
t=[ ]pour i de 1 à n faire répéter
t[i]=donnée(‘’donner l’élément’,i) jusqu’à (t[i]>=100) et (t[i]<=999) fin pour
Fin remplir
---
Remplissage d’un tableau par des valeurs aléatoires et automatiques (entre 6 et 20)
Procedure remplir (n: entier;var t:tab) Résultat= t
t=[ ]pour i de 1 à n faire
t[i]=random(20-6+1)+6 fin pour
Fin remplir
---
Remplir un tableau par des éléments distincts Procedure remplir ( n: entire;var t:tab)
Résultat= t
t=[]pour i de 2 à n faire répéter
T[i]=donnée(‘’donner l’élément’,i) jusqu’à (recherche (t[i],i-1,t)=faux) fin pour
t[1]=donnée(‘’donner le 1er élément’’) Fin remplir
---
Recherche d’un élément dans un tableau Fonction recherche (x,n :entier ;t :tab):booléen Résultat= existence
existenceb b=[ bfaux, i0]
répéter ii+1 si t[i]=x alors
bvrai finsi
Remplir un tableau trié en ordre croissant Procedure remplir ( n: entire;var t:tab)
Résultat= t
t=[]pour i de 2 à n faire répéter
T[i]=donnée(‘’donner l’élément’,i) jusqu’à t[i]>t[i-1]
fin pour
t[1]=donnée(‘’donner le 1er élément’’) Fin remplir
---
Affichage d’un tableau Procedure afficher (n: entire; t:tab) Résultat= [ ] pour i de 1 à n faire Ecrire (t[i]) fin pour Fin afficher
---
Fonction Premier Fonction Premier (n:entier):booléen Résultat= premier
Premierb B=[bvrai, i1]
répéter ii+1
si (n mod i=0) alors bfaux
fin si
jusqu’à (b=faux) ou (i=n div 2) Fin premier
---
Fonction Premier (2ème méthode) Fonction Premier (n:entier):booléen
Résultat= premier Premierb B=[bvrai, i2]
Tant que (b=vrai) et (i<=n div 2) faire si (n mod i=0) alors
bfaux sinon ii+1 fin si fin tantque Fin premier
---
Fonction PGCD Function PGCD (a,b:entier):entier Résultat= pgcd
Pgcd=a
a=[] tant que (b<>0) faire ra mod b ab b r Fin tant que Fin pgcd
jusqu’à (b=vrai) ou (i=N) Fin recherche
--- Insérer un entier x dans un tableau trié
(ordre croissant) Procedure inserer (x,N:integer; var t:tab) Résultat=t
t=[jN] tant que (j>0) et (t[j]>x) faire t[j+1]t[j]
jj-1 fin tant que t[j+1]x Fin inserer
---
Supprimer un élément du tableau sachant sa position p Procedure supprimer(p,N:integer; var t:tab)
Résultat=t
t=[ ]pour i de p à n-1 faire t[i]t[i+1]
fin pour Fin supprimer
--- Saisie d’une chaîne contenant que des chiffres Procedure saisie(var ch: chaîne)
Résultat= ch ch=[ ]répéter
ch=donnée ("donner une chaîne") valeur (ch,x,e)
jusqu’à (e=0) Fin saisie
---
Saisie d’une chaîne contenant que des caractères Procedure saisie(var ch: chaîne)
Résultat= ch ch=[ ]répéter
ch=donnée ("donner une chaîne") jusqu’à (FN verif(ch)=vrai) Fin saisie
Fonction verif Fonction verif (ch:chaîne):booléen Résultat= verif
Verifb
b=[ bvrai, i0]
répéter ii+1
si non (majus(ch[i]) dans ["A".."Z"]) alors bfaux
finsi
jusqu’à (b=faux) ou (i=long(ch)) Fin verif
---
Somme des chiffres d’un entier fonction somme (n :entier) :entier
Résultat= Somme SommeS
S=[S0, convch(n,ch)]
Pour i de 1 à long(ch) faire
Fonction PPCM Fonction PPCM (a,b:entier):entier Résultat= ppcm
Ppcm=a*i
i=[i1] tant que (a*i mod b<>0) faire ii+1
Fin tant que Fin ppcm
---
Fonction factoriel Fonction factoriel (n:entier):longint Résultat= factoriel
Factoriel= f
F=[f1] pour i de 1 à n faire ff*i
Fin pour Fin factoriel
---
Fonction Puissance Fonction Puissance (a,b:entier):longint Résultat=puissance
Puissance=p
P=[p1] pour i de 1 à b faire pp*a
Fin pour Fin puissance
---
Fonction facteurs premiers Fonction facteur (n:entier):chaîne
Résultat= facteur Facteurch Ch=[ch "",i2]
Répéter
si n mod i= 0 alors convch(i,c) chch+c n n div i sinon ii+1 fin si jusqu’à (n=1) Fin facteur
---
Fusionner deux tableaux triés
Procedure fusioner(n1,n2:entier;t1,t2:tab,var t3:tab) Résultat= t3
t3=[ c1, c11, c21] répéter
si t1[c1]<t2[c2] alors t[c]t1[c1]
c1c1+1 sinon
t[c]t2[c2]
c2c2+1 finsi
cc+1
jusqu’à (c1>n1)ou(c2>n2)
Valeur (ch[i],X,e) S S + X Fin pour Fin somme
--- Inversion d’une chaîne (1ère méthode)
fonction inverse (ch :chaîne) :chaîne Résultat= inverse
Inverse=chf
Chf=[chf""] pour i de 1 à long(ch) faire Chf ch[i]+chf Fin pour
Fin inverse
Inversion d’une chaîne (2ème méthode) fonction inverse (ch :chaîne) :chaîne
Résultat= inverse Inverse=chf
Chf=[chf""] pour i de long(ch) à 1 faire Chf chf + ch[i]
Fin pour Fin inverse
--- Trier une chaîne de caractères (identique au tableau) Procedure tri (var ch:chaîne)
Résultat= ch
ch=[ n long(ch)] répéter echangefaux pour i de 1 à N-1 faire si ch[i]>ch[i+1] alors
auxch[i], ch[i]ch[i+1], ch[i+1]ch[i]
echange vrai fin si
fin pour nn-1
jusqu’à echange=faux Fin tri
--- Vérifier si une chaîne est palindrome
fonction palindrome (ch :chaîne) :booléen Résultat= palindrome
palindrome=b
b=[bvrai, i0] répéter ii+1
si ch[i]<>ch[long(ch)-i+1] alors bfaux
fin si
jusqu’à (b=faux) ou (i=long(ch)) Finpalindrome
---
Calculer le nombre de voyelle dans une chaîne fonction voyelle (ch :chaîne) : entier
Résultat= calcul calcul=nb
nb=[nb0] pour i de 1 à long(ch) faire
si majus(ch[i]) dans ["A","E","I","O","Y","U"]
nbnb+1 fin si
Fin pour Fin voyelle
si c1>n1 alors
pour i de c2 à n2 faire cc+1
t[c] t2[i]
fin pour sinon
pour i de c1 à n1 faire cc+1
t[c] t1[i]
fin pour fin si Fin fusionner
---
Remarques :
- Une variable de type booléen ne peut pas être lue
- Une variable de type énuméré ne peut pas être ni lue ni affichée
- Une variable de type intervalle qui est défini à partir d’un type énuméré ne peut pas être ni lue ni affichée - Une constante ne peut pas figurer à gauche d’une
affectation
- La fonction prédéfinie Ord appliquée sur un caractère retourne son code ascii
- La fonction prédéfinie Ord appliquée sur une variable de type scalaire énumérée retourne son numéro d’ordre dans la liste en commençant par 0.
- Le compteur d’une boucle pour peut être de type entier, caractère ou bien scalaire énuméré.
- Les variables déclarées dans le module appelant sont vues par tous les modules appelés
- Les variables déclarées dans le module appelé ne sont pas vues par le module appelant.
- La fonction prédéfinie Tronc (Trunc en pascal) retourne la partie entière d’un réel (trunc(7,9)=7)
- La fonction prédéfinie Arrondi (Round en pascal) retourne l’entier le plus proche d’un réel (round(7,9)=8)