Utilisation de withdo en pascal

Fermé
marienoelle2 Messages postés 2 Date d'inscription lundi 21 juillet 2008 Statut Membre Dernière intervention 21 juillet 2008 - 21 juil. 2008 à 21:10
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 22 juil. 2008 à 19:33
Bonjour,
je suis nouvelle ds la proigrammation en pascal et je voudrai quevous m'aidiez en m'expliquant l'utilisation du " withdo"
merci d'avance.
A voir également:

3 réponses

KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
22 juil. 2008 à 18:13
Ne parlerais-tu pas plutôt de "while ... do" ? Dans ce cas ça se traduit par "tant que ... faire"

Entre le while et le do il faut placer une instruction de type boolean, c'est à dire qui vaut true ou false.
Par exemple : while a=b do, while a<b do, while (a<b) and (a>c) do, while k do (k est de type boolean)

Exemple concret :

On considère la Conjecture de Syracuse vérifiée pour des entiers de type integer.
On créé une fonction qui compte le nombre d'étapes pour passer de n à 1 :
function CompteurSyracuse(n:integer):integer;
begin
     result:=0;
     while n>1 do // tant que n supérieur à 1
           begin
           if odd(n)   // si n est impair
                then n:=3*n+1;   // alors
                else n:=n div 2; // sinon
           inc(result); // on le résultat de 1
           end;
end;
Il faut toujours faire attention que la condition se termine à un moment, sinon la boucle tourne indéfiniment !
0
watou Messages postés 199 Date d'inscription vendredi 27 juin 2008 Statut Membre Dernière intervention 19 avril 2013 28
22 juil. 2008 à 18:53
vous parlez de "with.... do"

c'est pour les champ d'un enregistrements dans le but de ne pas repeter le nom de l'enregistrement!

exemple:

type t_etudiant: record
nom,prenom:sting;
matricule:integer;
end;
var etudiant: t_etudiant;

begin
with etudiant do
nom := 'zidane';
prenom:='zinedine';
matricule:=65446;
end;
end.
0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
22 juil. 2008 à 19:33
Autant pour moi, je ne connaissais pas cette astuce...
0