Pascal/Turbo Pascal - Halt (Duda)

   
Vista:

Halt (Duda)

Publicado por wind (26 intervenciones) el 20/04/2014 21:13:32
Saludos cordiales.
Cuando ingresas una opción incorrecta en la primera pregunta, el programa finalizará, si el usuario presiona una tecla. (Ese comportamiento del programa está bien)
Lo que no está bien, es que cuando en la primera pregunta, ingresas la opción correcta, el programa finaliza. Lo correcto es que pase automaticamente a la pregunta dos.
¿Qué debo correguir?


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
program exit;
uses crt;
var
opcion:char;
begin
  writeln('¿Cuantos atomos de hidrogeno tiene el agua?');
  writeln('A) 1');
  writeln('B) 2');(**)
  writeln('C) 3');
  writeln('D) 4');
  write('Seleccione opcion: ');
  readln(opcion);
  if (opcion='B') or (opcion='b') then
  begin
    writeln('Correcto');
  end
  else
  writeln('Incorrecto');
  writeln('Presione una tecla para finalizar el programa');
  readkey;
  halt;(*Termina el programa, si la opción es incorrecta*)
  writeln('¿Cuantos ceros tiene 10 elevado a 5?');
  writeln('A) 5');  (**)
  writeln('B) 6');
  writeln('C) 4');
  writeln('D) 7');
  write('Seleccione una opcion: ');
  readln(opcion);
  if (opcion='A') or (opcion='a') then
  begin
    writeln('Correcto');
  end
  else
  writeln('Incorrecto');
  writeln('Presione una tecla para finalizar el programa');
  readkey;
end.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Halt (Duda)

Publicado por David (139 intervenciones) el 21/04/2014 10:40:28
Aquí el código. Tienes un comentario en la zona del "error" para que identifiques qué estabas haciendo mal.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
program exit;
uses crt;
var
opcion:char;
begin
  writeln('¿Cuantos atomos de hidrogeno tiene el agua?');
  writeln('A) 1');
  writeln('B) 2');(**)
  writeln('C) 3');
  writeln('D) 4');
  write('Seleccione opcion: ');
  readln(opcion);
  if (opcion='B') or (opcion='b') then
  begin
    writeln('Correcto');
  end
  else
  begin {Aquí estaba el error. Faltaba "begin..end" en el else y se salía fuera cual fuera la respuesta}
    writeln('Incorrecto');
    writeln('Presione una tecla para finalizar el programa');
    readkey;
    halt;(*Termina el programa, si la opción es incorrecta*)
  end;
  writeln('¿Cuantos ceros tiene 10 elevado a 5?');
  writeln('A) 5');  (**)
  writeln('B) 6');
  writeln('C) 4');
  writeln('D) 7');
  write('Seleccione una opcion: ');
  readln(opcion);
  if (opcion='A') or (opcion='a') then
  begin
    writeln('Correcto');
  end
  else
  writeln('Incorrecto');
  writeln('Presione una tecla para finalizar el programa');
  readkey;
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar