| marp | false |
|---|---|
| _class | invert |
La syntaxe admise en cours d'algo est susceptible de différer avec celle présentée ici.
Parmi les changements possibles:
Les fonctionsFonction nomFonction():sortieau lieu denomFonction:Fonction():sortie
Debut Nb100
Pour i allant de 0 à 100 par pas de 1 Faire
afficherEntier(i)
FinPour
Fin
Debut Nb100Utilisateur
var n: entier
Debut
n = saisirEntier()
Pour i allant de 0 à 100 par pas de 1 Faire
afficherEntier(i)
FinPour
Fin
Soit un tableau de 100 entiers. Demander à l'utilisateur de remplir le tableau. Ajouter 5 à 10 entrées au choix. En faire la somme du tableau.
Debut Exotab
var n: entier
var cpt: entier
var tab: tableau[100]: entier
Debut
Pour i allant de 0 à 99 par pas de 1 Faire
tab[i] = saisirEntier()
FinPour
cpt = 0
Faire
n = saisirEntier()
Si n >= 0 && n < 100 Alors
cpt = cpt + 1
tab[n] = tab[n] + 5
FinSi
TantQue (cpt < 10)
FinFaire
// On réutilise la variable n pour le calcul de la somme (pas forcément une bonne pratique)
n = 0
Pour i allant de 0 à 99 par pas de 1 Faire
n = n + tab[i]
FinPour
afficherEntier(n)
Fin
Debut Mot
var tab: tableau[]: char
var taille: entier
var c: char
Debut
taille = 0
TantQue (c = saisirChar() != '.') Faire
Redim(tab, taille + 1)
tab[taille] = c
taille = taille + 1
FinTantQue
Pour i allant de 0 à taille - 1 par pas de 1 Faire
afficherChar(tab[i])
FinPour
Fin
Debut Tab10Entiers
var tab: tableau[10]: entier
Fonction div2Nb(): entier
var x: entier
var y: entier
Debut
x = saisirEntier()
Faire
y = saisirEntier()
TantQue (y == 0)
FinFaire
Retourne x/y
FinFonction
Debut
tab[0] = div2Nb()
tab[1] = div2Nb()
tab[2] = div2Nb()
tab[3] = div2Nb()
tab[4] = div2Nb()
tab[5] = div2Nb()
tab[6] = div2Nb()
tab[7] = div2Nb()
tab[8] = div2Nb()
tab[9] = div2Nb()
Fin
- U(0) = 0
- U(n) = n + U(n-1) pour n > 0
Debut SommeDesN
Fonction sommeN(n: entier): entier
Si n == 0 Alors
Retourne 0
Sinon
Retourne n + sommeN(n-1)
FinSi
FinFonction
var unN: entier
Debut
unN = saisirEntier()
afficherEntier(sommeN(unN))
Fin
- n > 1
- 0! → 1
- U(n) = n * U(n-1)
- Factorielle de 0 renvoi 1
- n * (n-1)
Debut Factorielle
Fonction factorielle(n:entier): entier
Si n <= 1 Alors
Retourne 1
Sinon
Retourne n * factorielle(n-1)
FinSi
FinFonction
var n: entier
Debut
n = saisirEntier()
afficherEntier(factorielle(n))
Fin
Debut
Fonction remplirTabRecursif(ref tab: tableau[]: entier, n: entier): NULL
var x: entier
var y: entier
Debut
x = saisirEntier()
Faire
y = saisirEntier()
TantQue (y == 0)
FinFaire
tab[n] = x/y
Si n > 0 Alors
remplirTabRecursif(tab, n-1)
FinSi
FinFonction
var tab: tableau[10]: entier
Debut
remplirTabRecursif(tab, 9)
Pour i allant de 0 à 9 par pas de 1 Faire
afficherEntier(tab[i])
FinPour
Fin
Debut Min Recur
Fonction remplirTabRecursif(ref tab: tableau[]: entier, n:entier): NULL
var x: entier
Debut
x = saisirEntier()
tab[n] = x
Si n > 0 Alors
remplirTabRecursif(tab, n-1)
FinSi
FinFonction
Fonction minRecursif(ref tat: tableau[]: entier, n: entier): entier
Si n = 0 Alors
Retourne tab[n]
Sinon Si ( minRecursif(tab, n-1) < tab[n]) Alors
Retourne tab[n-1]
Sinon
Retourne tab[n]
FinSi
FinFonction
var tab: tableau[10]: entier
Debut
remplirTabRecursif(tab, 9)
afficherEntier(minRecursif(tab, 9))
Fin
Debut Exo
Fonction remplirTab(ref tab: tableau[] d'entiers, taille: entier, ref min: entier): NULL
Debut
tab[taille-1] = saisirEntier()
Si tab[taille-1] < min Alors
min = tab[taille-1]
FinSi
Si taille > 1 Alors
remplirTab(tab, taille-1, min)
FinSi
FinFonction
var min: entier
var tab:tableau[10] d'entiers
Debut
min = 10^9
remplirTab(tab, 10, min)
afficherEntier(min)
Fin
Debut Exo
Fonction rechercheMini(ref tab: tableau[] d'entiers, taille: entier, idx: entier, ref min: entier): NULL
Debut
Si (idx < taille) Alors
Si tab[idx] < min Alors
min = tab[idx]
FinSi
rechercheMini(tab, taille, idx+1, min)
FinSi
FinFonction
var min: entier
var tab:tableau[10] d'entiers
Debut
Pour i allant de 0 à 9 par pas de 1 Faire
tab[i] = saisirEntier()
FinPour
min = tab[0]
rechercheMini(tab,10,0,min)
afficherEntier(min)
Fin
Écrire un programme qui gère un tableau de 10^999 éléments. Écrire une fonction qui remplit le tableau
Debut grotablo
var tab: tableau [10^999]
var taille: entier
Fonction remplirTabRecursif(ref tab: tableau[]: entier, idx: entier, taille: entier): NULL
// Degressif
Si idx >= 0 Alors
tab[idx] = saisirEntier()
FinSi
Si idx > 0 Alors
remplirTabRecursif(tab, idx - 1, taille)
FinSi
// Progressif
Si idx <= taille-1 Alors
tab[idx] = saisirEntier()
FinSi
Si idx < taille-1 Alors
remplirTabRecursif(tab, idx + 1, taille)
FinSi
FinFonction
Debut
// Dégressif
remplirTabRecursif(tab, 10^999, 10^999)
// Progressif
remplirTabRecursif(tab, 0, 10^999)
Fin
Debut Achètes des RAM
Fonction recu(ref tab: tableau[]: entier, ref taille: entier): NULL
Si taille < 10^999 // Capacité mémoire max
taille = taille + 1
redim(tab, taille)
tab[taille-1] = saisirEntier()
recu(tab, taille)
FinSi
FinFonction
var taille: entier
var tab: tableau[]: entier
Debut
taille = 0
recu(tab, taille)
Fin
Debut Recu
Fonction recu(ref tab: tableau[]: entier, ref index: entier): NULL
Si index < 10^999 Alors
tab[index] = saisirEntier()
index = index + 1
recu(tab, index)
FinSi
FinFonction
var tab: tableau[10^999]: entier
var index: entier
Debut
index = 0
recu(tab, index)
Fin
Ecrire un programme qui rempli un tableau de taille fixe. Demander à l'utilisateur une lettre à rechercher dans le tableau. Écrire une fonction qui retourne l'index de la première occurence de la lettre ou -1
Debut Recherche Lettre
var tab: tableau[]: char
Fonction remplirTabRecursif(ref tab: tableau[]: char, ref index: entier) NULL
Si index < 10^999 Alors
tab[index] = saisirChar()
index = index + 1
remplirTabRecursif(tab, index)
FinSi
FinFonction
Fonction trouveIndexLettre(ref tab: tableau[]: char, lettre, char, idx: entier, taille: entier): entier
Si (idx >= 0 et idx < taille) Alors
Si tab[idx] == lettre Alors
Retourne tab[idx]
Sinon Si (idx <= taille-2) Alors
Retourne trouveIndexLettre(tab, lettre, idx+1, taille)
Sinon
Retourne -1
FinSi
FinSi
FinFonction
Debut
remplirTabRecursif(tab, 9)
afficherEntier(trouveIndexLettre(tab, lettre, 0, 10))
Fin
Debut Recherche Lettre
var lettre: char
var tab: tableau[10]: char
Fonction recherche(lettre: char, tab: tableau[]: char): entier
var index: entier
Debut
index = 0
TantQue (index < 10 && tab[index] != lettre) Faire
index = index + 1
FinTantQue
Si index == 10 Alors
Retourne -1
Sinon
Retourne index
FinSi
FinFonction
Debut
Pour i allant de 0 à 9 par pas de 1
tab[i] = saisirChar()
FinPour
lettre = saisirChar()
afficherEntier(recherche(lettre, tab))
Fin
- Addition
- Soustraction
- Division
- Multiplication
- Afficher le résultat
Debut Calculatrice
Fonction add(a: reel, b: reel): reel
Retourne a + b
FinFonction
Fonction sub(a: reel, b: reel): reel
Retourne a - b
FinFonction
Fonction mult(a: reel, b: reel): reel
Retourne a * b
FinFonction
Fonction div(a: reel, b: reel): reel
Si b == 0 Alors
Faire
b = saisirReel()
TantQue (b == 0)
FinFaire
FinSi
Retourne a / b
FinFonction
var continue: Booleen
var oper: char
var resultat: entier
var operande: entier
Debut
Faire
resultat = saisirReel()
oper = saisirChar()
Si oper == 'q' Alors
continue = FAUX
Sinon
continue = VRAI
Si oper != 'p' Alors
operande = saisirReel()
FinSi
FinSi
SelonQue oper:
Cas 'a': // Addition
resultat = add(resultat, operande)
FinCas
Cas 'm': // Multiplication
resultat = mult(resultat, operande)
FinCas
Cas 's': // Soustraction
resultat = sub(resultat, operande)
FinCas
Cas 'd': // Division
resultat = div(resultat, operande)
FinCas
Cas 'p': // print
afficherReel(resultat)
FinCas
autrement: // inclus oper = 'q'
continue = FAUX
FinCas
FinSelonQue
TantQue (continue)
FinFaire
Fin
Debut Calculatrice
Fonction addition(a: reel, b: reel): reel
var resultat: reel
Debut
resultat = a + b
Retourne resultat
FinFonction
Fonction soustraction(a: reel, b: reel): reel
var resultat: reel
Debut
resultat = a - b
Retourne resultat
FinFonction
Fonction multiplication(a: reel, b: reel): reel
var resultat: reel
Debut
resultat = a * b
Retourne resultat
FinFonction
Fonction division(a: reel, b: reel): reel
var resultat: reel
Debut
resultat = a / b
Retourne resultat
FinFonction
var n1: reel
var n2: reel
var operateur: char
Debut
n1 = saisirReel()
Faire
operateur = saisirChar()
// Note: Perso j'aurais saisie n2 ici pour ne pas le répéter
SelonQue
Cas '+'
n2 = saisirReel()
n1 = addition(n1,n2)
FinCas
// Même principe pour multiplication et soustraction
Cas '/'
Faire
n2 = saisirReel()
TantQue (n2 == 0)
FinFaire
n1 = division(n1, n2)
FinCas
Cas '='
afficherReel(n1)
FinCas
FinSelonQue
TantQue (operateur != 'q')
FinFaire
Fin
- F(0) = 0
- F(1) = 1
- F(n) = F(n-1) + F(n-2)
- n >= 0
Debut Fibonacci
Fonction fibonacciRecursif(n: entier):entier
Si (n == 0) Alors
Retourne 0
Sinon Si (n == 1) Alors
Retourne 1
Sinon Si (n > 1) Alors
Retourne fibonacci(n-1) + fibonacci(n-2)
Sinon
Retourne -1
FinSi
FinFonction
var n: entier
Debut
n = saisirEntier()
afficherEntier(fibonacci(7))
Fin
Debut Fibonacci Itératif
Fonction fibonacciIteratif(n: entier):entier
var tmp: entier
var vald:entier
var valf: entier
Debut
vald = 0
valf = 1
Si n > 1
Pour i allant de 2 à n par pas de 1 Faire
tmp = vald + valf
vald = valf
valf = tmp
FinPour
Retourne tmp
Sinon Si n == 1 ou n == 0 Alors
Retourne n
FinSi
FinFonction
var n: entier
Debut
Faire
1n = saisirEntier()
TantQue (n < 0)
FinFaire
afficherEntier(fibonacciRecursif(7))
afficherEntier(fibonacciIteratif(7))
Fin