Vous êtes sur la page 1sur 9

Fonctions et Procédures usuelles

Algorithme Python
Saisir un caractère alphabétique.
procedure saisiec (@ c : caractère) def saisiec():
début c=input( ‘Donner un caractère alphabétique ')
Répéter while 'A'>= c.upper() or c.upper() >= 'Z' :
ecrire(″Donner un caractère alphabétique″), lire(c) c=input(‘ Donner un caractère alphabétique ')
Jusqu'à majus(c) dans [″A″..″Z″] return c
Fin
Saisir un entier ou réel avec condition
procedure saisien( @ n : entier) def saisien():
debut test=False
Répéter
while test==False:
écrire("donner la valeur de N"), lire( n)
n=int(input(' donner la valeur de N '))
jusqu'à <condition>
fin test=<condition>
return n
Opérations sur les chaines de caractères
Saisir une chaîne de caractère non vide et de longueur maximale égale à 20.
procedure saisiech (@ ch : chaine) def saisiech():
debut ch=input( 'Donner une chaine ')
Répéter while 1>=len(ch) or len(ch)>=20:
ecrire(″Donner une chaine :″) , lire( ch) ch=input('ch=')
Jusqu'à long(ch) dans [1..20] return ch
Fin
Vérifier est-ce qu’une chaîne de caractère donnée vérifie une condition ou non.
fonction Verif (ch : chaine) : booléen def verif (ch) :
debut i=-1
i-1 test= True
Répéter while test and i< len(ch)-1:
i i+1 i=i+1
Test  cdt {exemple: chaine alphabétique:Test majus(ch[i]) dans [“A”..”Z”]} test= <condition>
Jusqu'à (i=long(ch)-1) ou (test=faux) return test
retourner test
Fin
Saisie d’une chaine avec condition : appel de la fonction verif
procedure saisie (@ ch :chaine) def saisiech():
début ch=input( donner une chaine ')
répéter while verif(ch)==False:
ecrire(“donner une chaine”),lire(ch)
ch=input( donner une chaine ')
Jusqu’a (verif(ch)=vrai)
Fin return ch
Compter l'occurrence (nombre d'apparition) d'un caractère dans une chaîne.
fonction Occurence(c : caractère ; ch :chaine) :entier def occurence (c,ch):
début nb=0
nb  0 for i in range(0,len(ch)):
Pour i de 0 à long(ch)-1 faire if ch[i]==c :
Si ch[i]=c alors nb+=1
nb nb+1 return nb
fin si
Fin Pour
Retourner nb
Fin
Vérifier la présence d'un caractère dans une chaîne.
fonction Present (c:caractère ; ch:chaine):booléen def present (c, ch) :
debut i=-1
Test  faux, i  -1 test= False
Repeter while test==False and i< len(ch)-1:
i  i+1 i=i+1
Si (ch[i]=c) alors test= (ch[i]==c)
Test  vrai return test
FinSi
jusqu'à (i>long(ch)-1) ou (test=vrai)
retourner test
fin
Conversion d’une chaine majuscule en minuscule
fonction minus ( ch :chaine) :chaine def minus (ch) :
début ch1=’’
ch1’’ for i in range(0,len(ch)):
pour i de 0 à long(ch)-1 faire ch1=ch1+ CHR(ORD(ch[i])+32)
Ch1ch1+CHR(ORD(ch[i])+32) return ch1
Fin pour
retourner ch1
Fin
Tester si une chaine est palindromique ou non
fonction palindrome (ch :chaine) :booléen def palindrome (ch):
debut i=-1
i -1 ; ok Vrai ok=True
Répéter while ok==True and i<len(ch)//2 :
i i+ 1 i=i+1
Si Ch[i] <> ch[long(ch) – i - 1] Alors ok=(ch[i]==ch[len(ch)-i-1])
ok  Faux return ok
FinSi
Jusqu’à (ok = faux) ou (i=(long(ch) div 2))
retourner ok
Fin
Operations sur les tableaux
Remplir un tableau T avec une condition de saisie
procedure remplir ( @ t : Tab ; n :entier) def remplir (t,n):
début
Pour i de 0 à n -1 faire for i in range(n):
répéter t[i]=int(input("t["+str(i)+"]="))
ecrire(" t[",i, "]= ") ; lire(t[i])
jusqu'à <condition> while not (< condition>) :
Fin pour t[i]=int(input("t["+str(i)+"]="))
Fin
Remplir un tableau de chaines avec condition : appel de la fonction verif
procedure remplir ( @ t : Tab ; n :entier) def remplir (t,n):
debut
for i in range(n):
Pour i de 0 à n-1 faire
répéter t[i]= input("t["+str(i)+"]=")
ecrire (" T[",i, "]= ") ;lire(t[i])
while verif(t[i])==False :
jusqu'à (verif(t[i])= vrai)
Fin pour t[i]=input("t["+str(i)+"]=")
Fin
Remplir un tableau T par N entiers triés dans l’ordre croissant.
procedure saisietabtri(@ T : tab ; n : entier) def saisietabtri (n,t):
début t[0]=int(input('donner un entier'))
ecrire(″Donner T[0]= ″) ;lire(t[0])
for i in range(1,n):
Pour i de 1 à n-1 faire
Répéter t[i]=int(input("t["+str(i)+"]="))
ecrire (″Donner T[″,i, ″] supérieur à ″, T[i-1]) while t[i]<t[i-1]:
lire(t[i])
t[i]=int(input("t["+str(i)+"]="))
Jusqu'à (T[i]>T[i-1])
FinPour
Fin
Remplir un tableau T par des éléments distincts
procedure remplir_distincts ( @ T :tab ; n :entier) def remplir_distincts (n,t):
debut t[0]=int(input('t[0]= '))
ecrire(’Donner T[0] = ‘) ; lire (t[0]) for i in range(1,n):
Pour i de 1 à n-1 faire ok=False
Répéter while ok==False:
ecrire(’Donner T[ ’,i,’] = ‘) ;lire(t[i)) t[i]=int(input("t["+str(i)+"]="))
j-1 ; okfaux j=-1
Répéter ok =True
J j+1, while ok==True and j<i-1:
ok  T[i]=T[j] j=j+1
Jusqu’à (ok = vrai) ou (j=i-1) ok =t[i]!=t[j]
Jusqu’à (Ok = faux)
fin pour
Fin
Remplir un tableau T par N entiers positif d’une manière aléatoire {exemple t[i] dans [5..100]}
Procedure Aléatoire(@ t : tab ; n : entier) def Aléatoire (t,n):
Début for i in range(n):
Pour i de 0 à n-1 faire
T[i]alea(5,100) t[i]=randint(5,100)
FinPour
Fin
Remplir un tableau T par N lettres minuscules d’une manière aléatoire
procedure Aleatoire(@ t : tab ; n : entier) def Aléatoire (t,n):
debut
for i in range(n):
Pour i de 0 à n-1 faire
T[i]chr(alea(0,26)+97) t[i]=chr(randint(0,26)+97)
FinPour
Fin
Afficher un tableau T de N éléments.
procedure Affiche (T : tab ; n : entier) def affiche (t,n):
debut for i in range(n):
pour i de 1 a n-1 faire
Ecrire (T[i], ″ | ″ ) print(t[i],end=’|’)
Fin Pour
Fin
Afficher un tableau T de N éléments avec condition
procedure AFFICHE(T : tab ; N : entier) def affiche (t,n):
debut for i in range(n):
Pour i de 0 à N-1 faire
if <condition> :
Si <condition> alors
Ecrire ("T[",i, "]=",T[i]) print(’ t[ ‘,i,’ ]= ’, t[i] )
Fin si
Fin pour
Fin
Inverser les éléments d’un tableau
procedure Inversion (@ T : tab ; n : entier) def inversion (t,n):
debut for i in range(n//2):
Pour i de 0 a (n div 2)-1 faire
t[i],t[n-i-1]=t[n-i-1],t[i]
Ox  T[i]
T[i]T[n- i -1]
T[n – i - 1]  ox
Fin Pour
Fin
Déterminer le maximum d’un tableau d’entiers
fonction max (T : tab; n :entier) : entier def max (t,n):
debut M=t[0]
MT[0] for i in range(1,n):
Pour i de 1 à n-1 faire if t[i]> M :
Si T[i]> M alors M=t[i]
M  T[i] return M
FinSi
Fin Pour
Retourner M
Fin
Somme des éléments d’un tableau d’entiers
Fonction somme (T : tab ; N : entier) : entier def somme (t,n):
debut s=0
S 0 for i in range(0,n):
pour i de 0 a n-1 faire s=s+t[i]
S  S + t[i] return s
Fin pour
retourner S
Fin
Fréquence d’un élément (x) dans un tableau T d’entiers
fonction FREQ(T :Tab ; x , N:entier) :entier def FREQ (t,x,n):
Début F=0
F0 for i in range(0,n):
Pour i de 0 à N-1 faire if t[i]==x :
si T[i]=x alors F=F+1
FF+1 return F
Fin Si
Fin pour
Retourner F
Fin

Quelques Fonctions Utiles


Factoriel d’un entier N
fonction factoriel ( n :entier) :entier def factoriel (n):
debut f=1
f 1 for i in range(1,n):
Pour i de 1 a n faire f=f*i
ff*i return f
Fin pour
Retourner f
Fin
Calcul de la Puissance
Fonction puissance (n :entier ; x :reel) :réel def puissance (n,x):
debut p=1
P1 for i in range(1,abs(n)):
Pour i de 1 a abs(n) faire p=p*x
Pp*x if n>=0 :
Fin pour return p
Si n>0 alors retourner p else :
Sinon retourner 1/p return 1/p
Fin si
Fin
Somme de diviseur d’un entier N
Fonction somme_div (n : entier) : entier def som_div (n):
debut s=0
s0 for i in range(1,n+1):
Pour i de 1 à n faire if n % i==0 :
Si n mod i =0 alors s=s+i
ss+i return s
fin si
Fin pour
Retourner s
Fin
Calcul de pgcd de deux entiers
fonction pgcd(a,b :entier) :entier def pgcd(a,b):
debut while a!=b:
Tantque (a <> b) faire if a>b:
Si a>b alors aa-b a=a-b
Sinon abb-a else:
Fin si b=b-a
Fin tantque return a
retourner a
Fin
Calcul du ppcm de deux entiers
fonction ppcm(a,b :entier) :entier def ppcm(a,b):
début m=a
m a while (m%a != 0 or m%b !=0):
tantque (m mod a ≠0 ou m mod b ≠0) faire m=m+1
return m
mm+1
fintantque
retourner m
fin
Tester si un entier est premier ou non
fonction premier (n :entier) :booleen def premier(n):
début if n <= 1 :
si n <= 1 alors test=False
testfaux else :
test=True
sinon
for i in range(2, n) :
testvrai
if (n % i == 0) :
pour i de 2 a n-1 faire
test= False
si n mod i = 0 alors return test
testfaux
finsi
fin pour
retourner test
fin
Tri d’un tableau
Procédure Tri (@ T :tab ; n :entier) def tri(t,n):
Debut for i in range(0,n-1):
Pour i de 0 a n-2 faire for j in range(i+1,n):
Pour j de i+1 a n-1 faire if (t[i]>t[j]):
Si (t[i] > t[j]) alors t[i],t[j]=t[j],t[i]
AuxT[i]
T[i]T[j]
T[j]aux
Fin pour
fin
Recherche d’un élément dans un tableau
Fonction recherche (t:tab;n:entier;x:entier):entier def recherche(t,n,x):
debut i=-1
i-1 ok=False
répéter
while ok==False and i<n-1:
i  i+1
i=i+1
ok (T[i] = x )
jusqu’à (ok = vrai) ou (i=n-1) ok=t[i]==x
retourner ok fin return ok

Vous aimerez peut-être aussi