TD1 Algorithmes

10
 SRC-FC / INF120 - Algorithme Page 1 T D TD - Algorithmes 1) Paire ou impaire Ecrire un algorithme qui demande un nombre (saisie) et qui affiche Paire ou Impaire selon sa valeur. Corrigé // Algorithme Paire ou Impaire Déclaration des variables Var nombre : Entier Début Afficher("Saisir un nombre entier : ") saisir nombre Si (nombre module 2) = 0 Alors Afficher(nombre," est paire“) Sinon Afficher(nombre,“ est impaire“ ) Finsi Fin 2) Paire ou impaire et boucle Reprendre l’algorithme en 1) et le modifier de manière à répéter les opérations tant que la valeur du nombre est différente de zéro. Corrigé // Algorithme Paire ou Impaire et Boucle Déclaration des variables Var nombre : Entier Début // Amorçage Afficher("Saisir un nombre entier : ") saisir nombre // Boucle avec un nombre inconnu d’itérations  Tant que (nombre<>0) faire Si (nombre module 2) = 0 Alors Afficher(nombre," est paire“)  Sinon Afficher(nombre,“ est impaire“)  Finsi Afficher("Saisir un nombre entier : ") saisir nombre Fin tanque Fin 

Transcript of TD1 Algorithmes

Page 1: TD1 Algorithmes

7/28/2019 TD1 Algorithmes

http://slidepdf.com/reader/full/td1-algorithmes 1/9

 

SRC-FC / INF120 - Algorithme Page 1

T D

T D - A l g o r i t h m e s

1) Paire ou impaireEcrire un algorithme qui demande un nombre (saisie) et qui affiche Paire ou Impaire selon sa valeur.

Corrigé// Algorithme Paire ou Impaire

Déclaration des variables

Var nombre : Entier

Début

Afficher("Saisir un nombre entier : ")

saisir nombre

Si (nombre module 2) = 0 Alors

Afficher(nombre," est paire“)

Sinon

Afficher(nombre,“ est impaire“)

FinsiFin 

2) Paire ou impaire et boucleReprendre l’algorithme en 1) et le modifier de manière à répéter les opérations tant que la valeur dunombre est différente de zéro.

Corrigé

// Algorithme Paire ou Impaire et Boucle

Déclaration des variables

Var nombre : Entier

Début

// Amorçage

Afficher("Saisir un nombre entier : ")

saisir nombre

// Boucle avec un nombre inconnu d’itérations 

Tant que (nombre<>0) faireSi (nombre module 2) = 0 Alors

Afficher(nombre," est paire“) 

Sinon

Afficher(nombre,“ est impaire“) 

Finsi

Afficher("Saisir un nombre entier : ")

saisir nombre

Fin tanqueFin 

Page 2: TD1 Algorithmes

7/28/2019 TD1 Algorithmes

http://slidepdf.com/reader/full/td1-algorithmes 2/9

 

SRC-FC / INF120 - Algorithme Page 2

T D

3) Ça dépend de l’âge !

Ecrire un algorithme qui demande l’âge d’un enfant à l’utilisateur. Ensuite, il indique sa catégorie :o  "Poussin" de 6 à 7 anso  "Pupille" de 8 à 9 anso  "Minime" de 10 à 11 anso  "Cadet" après 12 ans

Corrigé

// Algorithme Boucles imbriquées

Déclaration des variables

Var age : Entier

Début

Afficher("Entrez l’âge de l’enfant : ")

saisir age

Si age >= 12 Alors

Afficher("Catégorie Cadet")

Sinon

Si age >= 10 Alors

Afficher("Catégorie Minime")

Sinon

Si age >= 8 Alors

Afficher("Catégorie Pupille")

Sinon

Si age >= 6 Alors

Afficher("Catégorie Poussin")

Sinon

Afficher(“Pas classé“)

Finsi

Finsi

Finsi

FinsiFin

Page 3: TD1 Algorithmes

7/28/2019 TD1 Algorithmes

http://slidepdf.com/reader/full/td1-algorithmes 3/9

 

SRC-FC / INF120 - Algorithme Page 3

T D

4) Trouvé, c’est gagné. Ecrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu’à ce que la réponseconvienne. En cas de réponse supérieure à 20, on fera apparaître un message : « Plus petit ! », etinversement, « Plus grand ! » si le nombre est inférieur à 10.

Corrigé

// Algorithme Trouvé c’est gagné 

Déclaration des variables

Var nombre : Entier

Début

// Amorçage

Afficher("Saisir un nombre entre 10 et 20 : ")

saisir nombre

// Boucle avec un nombre inconnu d’itérations 

Tant que (nombre<10 ou nombre>20) faireSi nombre<10 Alors

Afficher(" Plus grand !“) 

Finsi

// Ici on réalise un test pour une meilleure

// lecture mais il n’est pas nécessaire 

Si nombre>20 Alors

Afficher( “Plus petit !“) 

Finsi

Afficher("Saisir un nombre entre 10 et 20 : ")saisir nombre

Fin tanque

Afficher(nombre,“ est bien compris entre 10 et 20“) Fin 

Page 4: TD1 Algorithmes

7/28/2019 TD1 Algorithmes

http://slidepdf.com/reader/full/td1-algorithmes 4/9

 

SRC-FC / INF120 - Algorithme Page 4

T D

5) Payer ses dettesLire la suite des prix (en euros entiers et terminée par zéro) des achats d’un client. Calculer la sommequ’il doit, lire la somme qu’il paye, et simuler la remise de la monnaie.  

Corrigé

// Algorithme Payer ses dettes

Déclaration des variables

Var Prix : Entier

Var Total : Entier

Var Paiement : Entier

Début

// Amorçage

Afficher("Saisir un prix en euros (entier) : ")

saisir PrixTotal = 0

// Boucle avec un nombre inconnu d’itérations 

Tant que (prix<>0) faire

Total Total + Prix

Afficher("Saisir un prix en euros (entier) : ")

saisir Prix

Fin tanque

Afficher(“Vous devez la somme de “,Total) 

Afficher(“Entrer votre paiement“) Saisir Paiement

Si Paiement<Total Alors

Afficher(“Paiement insuffisant“) 

Sinon

Afficher(“Nous vous devons“,Total-Paiement)

FinsiFin 

Page 5: TD1 Algorithmes

7/28/2019 TD1 Algorithmes

http://slidepdf.com/reader/full/td1-algorithmes 5/9

 

SRC-FC / INF120 - Algorithme Page 5

T D

6) Que produit l’algorithme suivant ? Algorithme

Tableau Nb(5) en Entier Var compteur : Entier 

DébutPour compteur ← 0 à 5 

Nb(compteur) ← compteur * compteur  Fin pour Pour compteur ← 0 à 5 

Ecrire Nb(compteur)Fin pour 

Fin

Peut-on simplifier cet algorithme avec le même résultat ?

Corrigé

Ce programme remplie un tableau avec le carré des 6 premiers entiers. Il faut corriger la dimension dutableau Tableau Nb(6). Puis il affiche les valeurs obtenues.On aurait pu simplifier ainsi :Algorithme

Tableau Nb(6) en Entier Var compteur : Entier 

DébutPour compteur ← 0 à 5 

Nb(compteur) ← compteur * compteur  Ecrire Nb(compteur)Fin pour 

Fin

Page 6: TD1 Algorithmes

7/28/2019 TD1 Algorithmes

http://slidepdf.com/reader/full/td1-algorithmes 6/9

 

SRC-FC / INF120 - Algorithme Page 6

T D

7) Gérer un tableauEcrivez un algorithme permettant à l’utilisateur de saisir un nombre quelconque de valeurs, quidevront être stockées dans un tableau. L’utilisateur doit donc commencer par entrer le nombre devaleurs qu’il compte saisir. Il effectuera ensuite cette saisie. Enfin, une fois la saisie terminée, le

programme affichera le nombre de valeurs négatives et le nombre de valeurs positives.Corrigé

// Algorithme Gérer un tableau

Déclaration des variables

Var Nb : Numérique

Var Nbpos : Numérique

Var Nbneg : Numérique

Var Tableau T() : Numérique

DebutAfficher("Entrez le nombre de valeurs :")

Saisir Nb

// On redimensionne le tableau

Redim T(Nb)

// On met à zéro les compteurs

Nbpos ← 0 

Nbneg ← 0 

Pour i ← 0 à Nb - 1

Ecrire "Entrez le nombre n° ", i + 1

Saisir T(i)

Si T(i) > 0 alors

Nbpos ← Nbpos + 1

Sinon

Nbneg ← Nbneg + 1 

Finsi

Fin pour

Afficher("Nombre de valeurs positives : ", Nbpos)

Afficher("Nombre de valeurs négatives : ", Nbneg)

Fin

Page 7: TD1 Algorithmes

7/28/2019 TD1 Algorithmes

http://slidepdf.com/reader/full/td1-algorithmes 7/9

 

SRC-FC / INF120 - Algorithme Page 7

T D

8) Fusionner deux tableauxEcrivez un algorithme constituant un tableau, à partir de deux tableaux de même longueur préalablement saisis. Le nouveau tableau sera la somme des éléments des deux tableaux de départ.

Tableau 1 :

4 8 7 9 1 5 4 6

Tableau 2 : 7 6 5 2 1 3 7 4

Tableau à constituer : 11 14 12 11 2 8 11 10

Corrigé

// Algorithme : fusion de deux tableaux

Déclaration des variables

Var i, N : Numérique

// T1 et T2 comptent N éléments déjà saisis

Var Tableaux T1(), T2(), T3() : Numérique

Debut

// Redimensionnent du tableau en fonction de N

N 8

Redim T3(N)

Pour i ← 0 à N - 1T3(i) ← T1(i) + T2(i)

Fin pourFin

Page 8: TD1 Algorithmes

7/28/2019 TD1 Algorithmes

http://slidepdf.com/reader/full/td1-algorithmes 8/9

 

SRC-FC / INF120 - Algorithme Page 8

T D

9) Une boucleEcrire un algorithme qui demande un nombre de départ, et qui calcule la somme des entiers jusqu’àce nombre. Par exemple, si l’on entre 5, le programme doit calculer :

1 + 2 + 3 + 4 + 5 = 15

NB : on souhaite afficher uniquement le résultat, pas la décomposition du calcul.

Corrigé

// Algorithme Somme d’entiers

Déclaration des variables

Var nombre : Entier

Var somme : Entier

Début

// Amorçage

Afficher("Saisir un nombre entier : ")

saisir nombre

// Boucle avec un nombre connu d’itérations 

Somme 0

Pour i1 à nombre

Somme Somme + i

Fin pour

Afficher(“La somme des entiers jusqu’à “,nombre)

Afficher(“ est “,Somme) 

Fin 

Page 9: TD1 Algorithmes

7/28/2019 TD1 Algorithmes

http://slidepdf.com/reader/full/td1-algorithmes 9/9

 

SRC-FC / INF120 - Algorithme Page 9

T D

10)  Un tableau bien rangé

Ecrivez un algorithme qui permette de saisir un nombre quelconque de valeurs, et qui les range au fur et à mesure dans un tableau. Le programme, une fois la saisie terminée, doit dire si les éléments du

tableau sont tous consécutifs ou non.Par exemple, si le tableau est :

12 13 14 15 16 17 18

ses éléments sont tous consécutifs. En revanche, si le tableau est :

9 10 11 15 16 17 18

ses éléments ne sont pas tous consécutifs.

Corrigé

// Algorithme Tableau rangé

Déclaration des variables

Var Nb, i : Entier

Var Flag : Booleen

Var Tableau T() : Entier

Debut

Afficher("Entrez le nombre de valeurs :")

Saisir Nb

Redim T(Nb-1)

Pour i ← 0 à Nb - 1

Afficher("Entrez le nombre n° ", i + 1)

Saisir T(i)

Fin pour

// Flag est une variable utilisé comme un indicateur

// (drapeau qui change selon la situation

Flag ← Vrai 

// Boucle avec un nombre connu d’itérations Pour i ← 1 à Nb - 1

Si T(i) <> T(i – 1) + 1 Alors

Flag ← Faux 

FinSi

Fin pour

Si Flag Alors

Afficher("Les nombres sont consécutifs")

Sinon

Afficher("Les nombres ne sont pas consécutifs")FinSi

Fin