Problème dans une déclartion if ... then

Résolu
Utilisateur anonyme - 26 oct. 2005 à 12:55
jlen100
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
- 26 oct. 2005 à 14:27
Salut à tous ,

Voila mon ptit probleme : je souhaite réaliser une procédure de ce style

Procedure maprocedure;

var

begin

//si la condition est réalisée executer le bloc d'instructions
if condition1
then instruction1-1;
instruction1-2;
end;

//si la condition est réalisée executer le bloc d'instructions
if condition2
then instruction2-1;
instruction2-2;
end;

//si la condition est réalisée executer le bloc d'instructions
if condition 3
then instruction3-1;
instruction3-2;
end;

Quand je veux compiler Delphi détecte une erreur au niveau du IF de if condition 2. Pourquoi ????

PS: je suis tombé sur un ptit site sympa ou il y a un cours de delphi (et on parle pas que des boutons pour une fois).voici le lien :http://www.marcocantu.com/epascal/French/

6 réponses

cptpingu
Messages postés
3834
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
20 octobre 2021
124
26 oct. 2005 à 13:26
ok alors ceci:





begin



//si la condition est réalisée executer le bloc d'instructions

if condition1then

begin

instruction1-1;

instruction1-2;

end;



//si la condition est réalisée executer le bloc d'instructions

if condition2 then

begin

instruction2-1;

instruction2-2;

end;



//si la condition est réalisée executer le bloc d'instructions

if condition 3 then

begin

instruction3-1;

instruction3-2;

end;



end;
3
jlen100
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
26 oct. 2005 à 13:37
salut il est normal que tu aie une erreur de compilation: tu as 1 begin et 3 end ainsi
le compilateur ne peut pas affecter à la procedure tout ce qui est
après le 1er end (qui correspond à la fin de procédure)

bonne prog
3
cptpingu
Messages postés
3834
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
20 octobre 2021
124
26 oct. 2005 à 13:00
cest normal tu place mal tes "end"...



begin



//si la condition est réalisée executer le bloc d'instructions

if condition1 then instruction1-1;

instruction1-2;



//si la condition est réalisée executer le bloc d'instructions

if condition2 then instruction2-1;

instruction2-2;



//si la condition est réalisée executer le bloc d'instructions

if condition 3 then instruction3-1;

instruction3-2;

end; // la tu peu le laisser
0
Utilisateur anonyme
26 oct. 2005 à 13:25
je me suis mal expliqué :

commence :

si condition 1 est réalisée :
comence
execute le bloc :
{instruction1-1
instruction2-1
instructuin3-1
...}

si condition 2 est réalisée :
comence
execute le bloc :
{instruction1-2
instruction2-2
instructuin3-2
...}

si je prend ta source si la condition 1 n'est pas vérifiée alors l'instruction 2-1 est quand meme executée. Moi je veux que les instructions 1-1 et 2-1 soient executées si et seulement si la condition 1 est vérifiée. Alors comment faire ??
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
26 oct. 2005 à 14:12
C'est de ma faute j'avais oublié un end pour la premierè condition sinon j'avais effectivement fait comme notre mascotte Pinguin
0
jlen100
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
26 oct. 2005 à 14:27
et encore tu as de la chance car pour un begin oublié le compilateur
s'arrete sur le 1er end surnumeraire et çela peut etre à la fin de la
procedure si les boucles sont imbriquées qui peut etre quelques
dizaines de ligne plus bas; d'ou l'interet aussi d'indenter la
programme et d'utiliser le CTRL J pour declarer les if then else; while do, case of...etc
0