Erreur39 en pascal

Fermé
ame - 20 nov. 2008 à 23:53
 amie - 21 nov. 2008 à 15:26
Bonjour,
j'ai un probléme avec l'erreur n°39 sur pascal


program les_feus;
uses wincrt;
var feu:string;
begin
write ('entrez couleur du feu R/V/O : ');
read(feu);
case feu of
'orange':write('attention');
'vert':write('passer');
'rouge':write('stop');
end;
end.
A voir également:

3 réponses

houla !

de mémoire : pas de ; juste avant le end du case.

je gagne qqe chose ?
0
abdelli1991 Messages postés 64 Date d'inscription lundi 12 mai 2008 Statut Membre Dernière intervention 8 avril 2009
21 nov. 2008 à 13:20
Ecoute moi cher ame...

La structure "case" marche qu'avec un sélecteur de type scalaire comme booléen, caractère, entier, intervalle, énuméré, mais non pas les chaines de caractère, les réels et les tableaux et les matrices...

Merci

essaye avec ça

program les_feus;
uses wincrt;
var feu:string;
begin
write ('entrez couleur du feu R/V/O : ');
repeat
read(feu);
until (feu='orange') or (feu='vert') or (feu='rouge');
if feu='orange' then
writeln('attention') else
if feu='rouge' then
writeln('stop') else
if feu='vert' then
writeln('passer');

end.
0
salut
pourquoi tu demande d'enter un caractere (R / V / O) et tu fait le contrôle sur des strings(rouge vert orange )?!!
si un autre utilisateur execute ton pgm et voie: entrez couleur du feu R/V/O : il va enter bien sur R ou V ou O !!
essaye ça:
program les_feus; 
uses wincrt; 
var feu:char; 
begin 
write ('entrez couleur du feu R/V/O : '); 
readln(feu); 
case feu of 
  'O':write('attention'); 
  'V':write('passer'); 
  'R':write('stop'); 
end; 
end.

cordialement
0