Précédent   Forum du club des développeurs et IT Pro > Autres langages > Pascal > Langage
Langage Vos questions sur langage Pascal en général, ses évolutions, les technologies, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 30/04/2011, 11h58   #1
mohsenuss91
 
Homme mohsenuss don
Étudiant
Inscription : avril 2011
Messages : 133
Détails du profil
Informations personnelles :
Nom : Homme mohsenuss don
Localisation : Algérie

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 133
Points : -48
Points : -48
Par défaut Passer d'une boucle FOR à une boucle WHILE

Salut à tous !

J'ai un petit problème que je n'arrive pas à résoudre; j’espère que vous m’aiderez ou guiderez dans pour le bon chemin ..
Bon mon problème c'est changer les boucles d'un programme que je déjà fait (avec Turbo Pascal 7) de FOR en WHILE .. (en gardant la même fonction et résultat du programme).
Bon voilà le programme, j’attends vos réponses le plus tôt possible ...
MERCI d'avance
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
program tabdever;
uses crt;
var a,b,c:boolean;
begin
clrscr;
writeln('+++++++++++++++++++++++++++++++++++++++++++++++');
writeln('+   a       b       c   not a or b and not c  +');
writeln('+++++++++++++++++++++++++++++++++++++++++++++++') ;
for a:=false to true do begin
                        for b:=false to true do begin
                                                for c:=false to true do begin
                      writeln('+',a:7,b:7,c:7,not a or b and not c:7,'                 +');
                                                                        end;
                                                end;
writeln('+++++++++++++++++++++++++++++++++++++++++++++++') ;                    end;
readln;
end.
mohsenuss91 est déconnecté   Envoyer un message privé Réponse avec citation 02
Vieux 30/04/2011, 13h35   #2
Paul TOTH
Expert Confirmé Sénior
 
Avatar de Paul TOTH
 
Homme Paul TOTH
Freelance
Inscription : novembre 2002
Messages : 4 409
Détails du profil
Informations personnelles :
Nom : Homme Paul TOTH
Âge : 43
Localisation : Réunion

Informations professionnelles :
Activité : Freelance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2002
Messages : 4 409
Points : 10 782
Points : 10 782
ah tient c'est amusant comme cas de figure

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
var
  i : Integer;
 a : Booelan;
begin
  i := 0;
  while i < 2 do
  begin
    a := odd(i);
    ...
    Inc(i);
  end;
end;
__________________
Developpez.com: Mes articles, forum FlashPascal
Entreprise: Execute SARL
Produits : UPnP, RemoteOffice, FlashPascal
Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5%
Paul TOTH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2011, 15h59   #3
mohsenuss91
 
Homme mohsenuss don
Étudiant
Inscription : avril 2011
Messages : 133
Détails du profil
Informations personnelles :
Nom : Homme mohsenuss don
Localisation : Algérie

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 133
Points : -48
Points : -48
Citation:
Envoyé par Paul TOTH Voir le message
ah tient c'est amusant comme cas de figure

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
var
  i : Integer;
 a : Booelan;
begin
  i := 0;
  while i < 2 do
  begin
    a := odd(i);
    ...
    Inc(i);
  end;
end;
j'ai pas bien compris le truc , esque tu peux m'expliqué un peu !
mohsenuss91 est déconnecté   Envoyer un message privé Réponse avec citation 02
Vieux 01/05/2011, 10h24   #4
Paul TOTH
Expert Confirmé Sénior
 
Avatar de Paul TOTH
 
Homme Paul TOTH
Freelance
Inscription : novembre 2002
Messages : 4 409
Détails du profil
Informations personnelles :
Nom : Homme Paul TOTH
Âge : 43
Localisation : Réunion

Informations professionnelles :
Activité : Freelance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2002
Messages : 4 409
Points : 10 782
Points : 10 782
Citation:
Envoyé par mohsenuss91 Voir le message
j'ai pas bien compris le truc , esque tu peux m'expliqué un peu !
et bien tu veux passer d'une boucle FOR a deux états à un WHILE qui en nécessite 3, il faut donc passer par une autre variable qui servira à boucler.

si on déroule la boucle ça donne :
Code :
1
2
3
4
5
6
7
8
9
10
11
 
 i := 0;
 { condition while OK 0 < 2 }
 a := odd(i); // FALSE, 0 est pair
 ...
  Inc(i); // i = 1
 { condition while OK 1 < 2 }
  a := odd(i); // TRUE, 1 est impair
 ...
  Inc(i); // i = 2
 { condition while PAS OK, fin de boucle }
tu peux maintenant imbriquer trois while sur le même modèle, ou encore chercher des conditions de répétition sur la seule variable i, mais ça demande un peu plus de réflexion.

voici une façon de mettre ces conditions en évidence :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var
 a,b,c:boolean;
 i : integer;
begin
 writeln('+++++++++++++++++++++++++++++++++++++++++++++++');
 writeln('+   a       b       c   not a or b and not c  +');
 writeln('+++++++++++++++++++++++++++++++++++++++++++++++') ;
 i := 0;
 for a:=false to true do
 begin
   for b:=false to true do
   begin
     for c:=false to true do
     begin
       writeln(i:2,' +',a:7,b:7,c:7,not a or b and not c:7,'                 +');
       inc(i);
     end;
   end;
   writeln('+++++++++++++++++++++++++++++++++++++++++++++++') ;
 end;
que l'on pourra remplacer par ceci
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
begin
  writeln('+++++++++++++++++++++++++++++++++++++++++++++++');
 writeln('+   a       b       c   not a or b and not c  +');
 writeln('+++++++++++++++++++++++++++++++++++++++++++++++') ;
 i := 0;
 while i < ??? do
 begin
   a := ???;
   b := ???;
   c := ???;
   writeln(i:2,' +',a:7,b:7,c:7,not a or b and not c:7,'                 +');
   if ??? then
     writeln('+++++++++++++++++++++++++++++++++++++++++++++++') ;
   inc(i);
 end;
end;
reste plus qu'à remplacer les "???" par des expressions pertinentes
__________________
Developpez.com: Mes articles, forum FlashPascal
Entreprise: Execute SARL
Produits : UPnP, RemoteOffice, FlashPascal
Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5%
Paul TOTH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 01/05/2011, 10h37   #5
mohsenuss91
 
Homme mohsenuss don
Étudiant
Inscription : avril 2011
Messages : 133
Détails du profil
Informations personnelles :
Nom : Homme mohsenuss don
Localisation : Algérie

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 133
Points : -48
Points : -48
on faite je connais pas le role de : odd -Inc
plus d'explication s.v.p
et si c'est possible de me donné un exemple complet sur mon ancien programme avec FOR et un nouveau avec WHILE
mohsenuss91 est déconnecté   Envoyer un message privé Réponse avec citation 03
Vieux 01/05/2011, 12h52   #6
M.Dlb
Rédacteur/Modérateur
 
Avatar de M.Dlb
 
Inscription : avril 2002
Messages : 2 275
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : avril 2002
Messages : 2 275
Points : 3 392
Points : 3 392
Un peu d'effort. Tu as une documentation avec ton compilateur, il suffit de chercher dedans.

De plus, Paul t'a déjà donné tout ce qu'il fallait, alors à toi de réfléchir un peu. Nous ne te donnerons pas de solution définitive.
__________________
M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal
M.Dlb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2011, 14h54   #7
mohsenuss91
 
Homme mohsenuss don
Étudiant
Inscription : avril 2011
Messages : 133
Détails du profil
Informations personnelles :
Nom : Homme mohsenuss don
Localisation : Algérie

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 133
Points : -48
Points : -48
merci a tous
mohsenuss91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 03h44.


 
 
 
 
Partenaires

Hébergement Web