Fiche de R Vision en Informatique 2023
Fiche de R Vision en Informatique 2023
Fiche de R Vision en Informatique 2023
Sections :
Mathématiques, Sciences Expérimentales, Sciences Techniques.
Fonction qui permet de calculer le PGCD de deux entiers positifs non nuls a et b. (Méthode d'Euclide)
fonction PGCD_Euclide(a, b: entier) : entier def PGCD_Euclide(a,b):
Début while b!=0:
Tant que (b ≠ 0) faire
r = a % b
r ← a mod b
a = b
a ← b
b ← r b = r
fin Tant_que return a
Retourner a
Fin
Fonction qui permet de calculer le PPCM de deux entiers positifs a et b.
fonction PPCM(a,b: entier) : entier def PPCM(a,b):
Début
if a>b:
Si a > b alors
max ← a max, min = a, b
min ← b else:
sinon max, min = b, a
max ← b while max % min != 0:
min ← a
max = max + (a + b - min)
finSi
return max
Tant que (max mod min ≠ 0) faire
max ← max + (a + b - min)
fin Tant_que
Retourner max
Fin
Fonction qui permet de tester de tester la primalité d'un entier strictement supérieur à 1(Premier ou non).
NB. Un nombre premier est donc un nombre dont ses seuls diviseurs sont 1 et lui-même
fonction Premier(x : entier) : booléen def Premier(x):
début d = 2
d ← 2 while(d<= x//2 and x % d != 0):
tant que(d ≤ x div 2) et (x mod d ≠ 0 )faire d = d + 1
d ← d + 1
fin_tant_que return (d > x // 2) and (x>1)
retourner (d > x div 2) et (x>1) Par définition 1 n'est pas
fin un nombre premier
Fonction qui permet de décomposer un entier x donné en produit de ses facteurs premiers.
fonction facteurs_premiers (x : entier) : chaîne def facteurs_premiers(x):
début d = 2
fp ← "" fp = ""
d ← 2 while x>1:
Tant que (x>1) faire if x % d == 0:
si x mod d = 0 alors fp = fp + str(d) + "*"
fp ← fp + convch(d) + "*" x = x // d
x ← x div d else:
sinon d = d + 1
d ← d + 1 non inclus return fp[:len(fp)-1]
fin_si
fin tant_que
retourner sous_chaîne(fp, 0, long(fp)-1)
fin
Fonction qui permet de vérifier si une chaîne de caractère est formée uniquement par des caractères
distincts.
fonction verif_carcteres_distincts(ch:chaîne): booléen def verif_caractres_distincts(ch):
début i = 0
i ← 0
while(i<len(ch))and(ch.find(ch[i]) == i):
tant que (i<long(ch))et (Pos(ch[i],ch)=i)faire
i ← i + 1 i = i + 1
fin_tant_que return i == len(ch)
retourner i = long(ch)
fin
#2ème méthode #2ème méthode
fonction verif_caracteres_distincts(ch:chaîne): booléen def verif_caractres_distincts(ch):
début Ok = True
Ok ← vrai i = 0
i ← 0 while (i<len(ch)) and Ok:
tant que (i<long(ch))et (Ok) faire if (ch.find(ch[i]) == i):
si (Pos(ch[i],ch)=i) alors i = i + 1
i ← i + 1 else:
sinon Ok = False
Ok ← faux return Ok
fin_si
fin_tant_que
retourner i = long(ch)
fin
Fonction qui permet de calculer le nombre de voyelles dans une chaîne ch.
fonction nb_voyelles(ch : chaîne) : entier def nb_voyelle(ch):
début nb = 0
nb ← 0 voy = "AEIOUY"
pour i de 0 à long(ch)-1 faire for i in range(len(ch)):
si Majus(ch[i]) ∈ ["A","E","I","O","U","Y"] if voy.find(ch[i].upper())!= -1:
alors nb = nb + 1
nb ← nb + 1
fin_si return nb
fin_pour
retourner nb
fin
Fonction qui prend une chaîne de caractères non vide composée uniquement par des lettres puis de la convertir en
minuscule.
fonction Minus(ch : chaîne) : chaîne #sans l'utilisation la méthode lower()
début def Minus(ch):
chmin ← "" chmin=""
pour i de 0 à Long(ch)-1 faire for i in range(len(ch)):
si (ch[i] ∈ ["a".."z"] alors if "A"<=ch[i]<="Z":
chmin ← chmin + chr(ord(ch[i])+32) chmin = chmin+chr(ord(ch[i])+32)
sinon else:
chmin ← chmin + ch[i] chmin = chmin + ch[i]
fin_si return chmin
fin_pour Ord("A") = 65
32
retourner chmin Ord("a") = 97
fin
L'algorithme d'une procédure qui prend en paramètre une chaîne de caractères non vide composée
uniquement par des lettres majuscules puis d'afficher l'ordre alphabétique de chaque lettre.
procédure rang_alphabetique(ch : chaîne) def rang_alphabetique(ch):
début for i in range(len(ch)):
pour i de 0 à long(ch)-1 faire
print(ch[i],"=>",ord(ch[i])-64)
Ecrire(ch[i],"=>",ord(ch[i])-64)
fin_pour
fin #Exemple d'exécution :
Lettre Rang Comment ?
"A" 1 65 -64
"B" 2 66-64
"C" 3 67-64
…
"Z" 26 90-64
Avec ord("A") = 65, ord("B")=66,….
Procédure qui permet de remplir un tableau T par N entiers positifs non nuls distincts.
procédure remplir(@T: Tab, n:entier) def remplir(T,n):
début ok = False
répéter while ok == False:
écrire("T[0]: ") T[0] = int(input("T[0]:"))
lire(T[0]) ok = T[0]>0
jusqu'à T[0] > 0
pour i de 1 à n-1 faire for i in range(1,n):
répéter T[i] =int(input("T["+str(i)+"]:"))
écrire("T[", i, "]: ") while not(T[i]>0 and distincts(T,i)):
lire(T[i]) T[i] =int(input("T["+str(i)+"]:"))
jusqu'à (T[i] > 0) et (distincts(T,i))
fin_pour
fin
Fonction qui prend en paramètres un tableau T de N réels puis de retourner la somme de ses éléments.
fonction somme_tab(T : Tab, n : entier) : entier def somme_tab(T,n):
début s = 0
s ← 0 for i in range(n):
pour i de 0 à n-1 faire s = s + T[i]
s ← s + T[i] return s
fin_pour
retourner s
fin
Fonction qui permet de déterminer le nombre d'occurrence d'un entier x dans un tableau T de taille n.
fonction nb_occurrence(T:Tab, n, x:entier):entier def nb_occurrences(T,n,x):
début
nb = 0
nb ← 0
pour i de 0 à n-1 faire for i in range(n):
si T[i] = x alors
if T[i]==x:
nb ← nb + 1
fin_si nb = nb + 1
fin_pour return nb
retourner nb
fin
Fonction qui permet de déterminer la valeur maximale dans un tableau d'entiers T de taille n.
fonction max_tab(T : Tab, n: entier) : entier def max_tab(T,n):
début max = T[0]
max ← T[0]
for i in range(1,n):
pour i de 1 à n-1 faire
si T[i] > max alors if T[i]>max:
max ← T[i] max = T[i]
fin_si return max
fin_pour
retourner max
fin
Fonction qui permet de déterminer la position de la valeur minimale dans un tableau d'entiers T de taille n.
fonction pos_min_tab(T : Tab, n: entier) : entier def pos_min_tab(T,n):
début pmin = 0
pmin ← 0
for i in range(1,n):
pour i de 1 à n-1 faire
si T[i] < T[pmin] alors if T[i]<T[pmin]:
min ← i pmin = i
fin_si return pmin
fin_pour
retourner pmin
fin
Fonction qui implémente un algorithme de recherche séquentielle pour trouver un élément x dans un tableau T
de taille n
fonction Recherche_sequentielle T:tab, n,x:entier):Booléen def Recherche_sequentielle (T,n,x):
début
Trouve = False
Trouve ← faux
i ← 0 i = 0
tant que (i<n) et (Trouve=Faux) faire
while (i<n) and (Trouve==False):
si (T[i] = x) alors
Trouve ← vrai if T[i]==x:
sinon
Trouve = True
i ← i + 1
fin_si else:
fin_tant_que
i = i + 1
Retourner Trouve
fin return Trouve
#deuxième méthode
fonction Recherche_sequentielle(T:tab, n,x:entier):Booléen
début #deuxième méthode
Trouve ← faux def Recherche_sequentielle (T,n,x):
i ← 0
i = 0
Répéter
si (T[i] = x) alors while (i<n) and (T[i]!=x):
Trouve ← vrai
i = i + 1
sinon
i ← i + 1 return i<n
fin_si
Jusqu'à (Trouve) ou (i = N)
Retourner Trouve
fin
Fonction qui implémente un algorithme de recherche dichotomique pour trouver un élément x dans un tableau T
de taille n
fonction Recherche_dichotomique (T:tab ; n,x:entier):Booléen def Recherche_dichotomique(T, n, x):
Début d = 0
d ← 0
f = n - 1
f ← n-1
Trouve ← faux Trouve = False
Tant Que (d ≤ f) et (Trouve = faux) faire while (d <= f) and (Trouve==False):
Milieu ← (d + f) Div 2 milieu = (d + f) // 2
Si (T[milieu] = x) Alors
if T[milieu] == x:
Trouve ← vrai
Sinon Si (T[milieu] > x) Alors Trouve = True
f ← milieu – 1 elif T[milieu] < x:
Sinon d = milieu + 1
d ← milieu+1
else:
Fin_si
fin_Tant_Que f = milieu - 1
Retourner Trouve return Trouve
fin
Procédure qui implémente un algorithme de tri par sélection dans l'ordre croissant d'un tableau T de taille n.
procédure Tri_Selection (@T : Tab , n : Entier ) def Tri_Selection(T, n):
début for i in range(n-1):
Pour i de 0 à n-2 Faire
posmin = i
posmin ← i
for j in range(i+1, n):
Pour j de i+1 à n-1 Faire
si T[j] < T[posmin] Alors if T[j] < T[posmin]:
posmin ← j posmin = j
fin_Si if posmin != i:
T[i], T[posmin] = T[posmin], T[i]
fin_Pour
Si posmin ≠ i Alors
Aux ← T[i]
T[i] ← T[posmin]
T[posmin] ← Aux
Fin_Si
Fin_Pour
Fin
Procédure qui implémente un algorithme de tri par insertion dans l'ordre croissant d'un tableau T de taille n.
procédure Tri_Insertion (@T : Tab , n :entier) def Tri_Insertion(T, n):
début for i in range(1, n):
Pour i de 1 à n-1 faire
aux = T[i]
aux ← T[i]
j = i
j ← i
Tant Que (j>0) et (T[j-1]>aux) faire while j > 0 and T[j-1] > aux:
T[j] ← T[j-1] T[j] = T[j-1]
j ← j-1 j = j-1
fin_Tant_Que
T[j] = aux
T[j] ← Aux
Fin_Pour
fin
You Can Do It !