Difference between revisions of "Basic Pascal Tutorial/Chapter 3/Solution/fr"

From Free Pascal wiki
Jump to navigationJump to search
(Created page with "{{Solution 3}} 3Ea - Solutions (auteur: Tao Yue, état: traduit) '''Solution au problème de la suite de Fibonacci''' <syntaxhighlight> (* Auteur: Tao Yue Date: 1...")
 
(Refonte)
Line 1: Line 1:
 
{{Solution 3}}
 
{{Solution 3}}
  
3Ea - Solutions (auteur: Tao Yue, état: traduit)
+
[[Object Pascal Tutorial/fr|Tutoriel de Pascal Objet]] : Structures de contrôle / '''Solutions des exercices'''
  
'''Solution au problème de la suite de Fibonacci'''
+
=== Suite de Fibonacci ===
 
<syntaxhighlight>
 
<syntaxhighlight>
 
(* Auteur:    Tao Yue
 
(* Auteur:    Tao Yue
Line 40: Line 40:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
'''Solution au problème des puissances de deux'''
+
=== Puissances de deux ===
 
<syntaxhighlight>
 
<syntaxhighlight>
 
(* Auteur:    Tao Yue
 
(* Auteur:    Tao Yue
Line 94: Line 94:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
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.
+
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 progammes 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).
+
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 <tt>longint</tt> pour la variable number. C'est parce que pour faire échouer les test <tt>number <= 20000</tt>, <tt>number</tt> doit atteindre <tt>32768</tt>, la prochaine puissance de deux après <tt>16384</tt>. Cela dépasse la plage du type entier: <tt>-32768</tt> to <tt>32767</tt>. (essayer sans <tt>longint</tt> et regardez ce qu'il se passe.
+
Notez aussi que j'ai employé des types <tt>longint</tt> pour la variable ''number''. C'est parce que pour faire échouer les tests <tt>number <= 20000</tt>, <tt>number</tt> doit atteindre <tt>32768</tt>, la prochaine puissance de deux après <tt>16384</tt>. Cela dépasse la plage du type entier : <tt>-32768</tt> to <tt>32767</tt> (essayez sans <tt>longint</tt> et regardez ce qui se passe).
  
{|style=color-backgroud="white" cellspacing="20"
+
{{Tutorial page navigation/fr|Programming Assignment 3|Procedures}}
|[[Programming_Assignment_3/fr|précédent]] 
 
|[[Contents/fr|table des matières]]
 
|[[Procedures/fr|suivant]]
 
|}
 

Revision as of 16:04, 26 October 2015

български (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 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