Basic Pascal Tutorial/Chapter 3/Solution/fr
│
български (bg) │
English (en) │
français (fr) │
日本語 (ja) │
中文(中国大陆) (zh_CN) │
Tutoriel de Pascal Objet : Structures de contrôle / Solutions des exercices
Suite de Fibonacci
(* Auteur: Tao Yue
Date: 19 July 1997
Description:
Trouver les dix premiers nombres de Fibonacci
Version:
1.0 - version originale
*)
program Fibonacci;
var
Fibonacci1, Fibonacci2 : integer;
temp : integer;
count : integer;
begin (* Main *)
writeln ('Les 10 premiers nombres de Fibonacci sont:');
count := 0;
Fibonacci1 := 0;
Fibonacci2 := 1;
repeat
write (Fibonacci2:7);
temp := Fibonacci2;
Fibonacci2 := Fibonacci1 + Fibonacci2;
Fibonacci1 := Temp;
count := count + 1
until count = 10;
writeln;
(* Bien sûr, vous pouvez utiliser une boucle FOR ou une boucle WHILE
pour résoudre le problème. *)
end. (* Main *)
Puissances de deux
(* Auteur: Tao Yue
Date: 13 July 2000
Description:
Affiche toutes les puissances de deux jusqu'à 20000, 5 par ligne
Version:
1.0 - version originale
*)
program PowersofTwo;
const
numperline = 5;
maxnum = 20000;
base = 2;
var
number : longint;
linecount : integer;
begin (* Main *)
writeln ('Puissances de ', base, ', 1 <= x <= ', maxnum, ':');
(* initialisation de la boucle *)
number := 1;
linecount := 0;
(* Boucle *)
while number <= maxnum do
begin
linecount := linecount + 1;
(* Imprime une virgule et un caractère d'espace sauf pour le premier
nombre de la ligne *)
if linecount > 1 then
write (', ');
(* Affiche le nombre *)
write (number);
(* Imprime une virgule et va à la prochaine ligne si c'est
le dernier nombre de la ligne sauf si c'est le dernier
de la série *)
if (linecount = numperline) and not (number * base > maxnum) then
begin
writeln (',');
linecount := 0
end;
(* Incrémente le nombre *)
number := number * base;
end; (* while *)
writeln;
(* Ce programme peut aussi être écrit avec une boucle REPEAT..UNTIL. *)
end. (* Main *)
Observez que j'ai utilisé trois constantes : la base, le nombre de puissances à afficher sur chaque ligne et la borne supérieure. Cela garantit que le programme sera facilement adaptable dans le futur.
Utiliser des constantes plutôt que des littéraux est une bonne habitude de programmation. Quand vous écrivez des programmes vraiment longs, vous ferez référence à certains nombres des milliers de fois. Si vous les codez en dur, vous aurez à les rechercher tous. Mais vous pouvez utiliser la même valeur dans un contexte différent, donc vous ne pouvez pas rechercher/remplacer globalement. L'emploi de constantes rend donc plus simple l'extension du programme.
Notez aussi que j'ai employé des types longint pour la variable number. C'est parce que pour faire échouer les tests number <= 20000, number doit atteindre 32768, la prochaine puissance de deux après 16384. Cela dépasse la plage du type entier : -32768 to 32767 (essayez sans longint et regardez ce qui se passe).
← | Sommaire | → |