Pascal/Turbo Pascal - Case of (Duda)

 
Vista:

Case of (Duda)

Publicado por wind (26 intervenciones) el 08/04/2014 21:42:17
Saludos cordiales.

Este es mi segundo programa usando el case of, la idea es unificar los cuatro programa que he hecho por separado,
Sin embargo no lo puedo compilar. He revizado el código, y me gustaría saber cuales son mis errores.


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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
program menu;
uses crt;
var
n:char;
C,F,R,K:real;
begin
  textcolor(white);
 
  writeln('Convertidor de temperatura');
 
  writeln('Programa creado por Benjamin C.');
 
  writeln('Opciones');
 
  writeln('1.Transformar Celcius a Fahrenheit,Rankine, Kelvin');
  writeln('2.Transformar Fahrenheit a Celcius, Rankine, Kelvin');
  writeln('3.Transformar Rankine a Fahrenheit, Celcius, Kelvin');
  writeln('4.Trasnformar Kelvin a Rankine, Fahrenheit, Celcius');
 
  write('Seleccione opcion numerica:');
  read(n);
 
  case n of
  (*Si el usuario ingresa la opcion 1*)
  1:begin
 
  write('Ingrese un numero en grados Celcius: ');
  readln(C);
  F:=1.8*C+32;
  R:=F+459.67;
  K:=C+273.15;
  writeln('La temperatura en grados Fahrenheit es:',F:2:2);
  writeln('La temperatura en grados Rankine es:',R:2:2);
  writeln('La temperatura en grados Kelvin es:',K:2:2);
  end;
  (*Si el usuario ingresa la opcion 2*)
  2:begin
 
  write('Ingrese un numero en grados Fahrenheit: ');
  readln(F);
  C:=(F-32)/1.8;
  K:=C+273.15;
  R:=F+459.67;
  writeln('La temperatura en grados Celcius es: ',C:2:2);
  writeln('La temperatura en grados Kelvin es: ',K:2:2);
  writeln('La temperatura en grados Rankine es: ',R:2:2);
  end;
  (*Si el usuario ingresa la opcion 3*)
  3:begin
 
  writeln('Ingrese un numero en grados Rankine: ');
  readln(R);
  F:=R-459.67;
  C:=(5/9)*(R-491.67);
  K:=(5/9)*R;
  writeln('La temperatura en grados Fahrenheit es: ',F:2:2);
  writeln('La temperatura en grados Celcius es: ',C:2:2);
  writeln('La temperatura en grados Kelvin es: ',K:2:2);
  end;
  (*Si el usuario ingresa la opcion 4*)
  4:begin
 
  writeln('Ingrese un numero en grados Kelvin: ');
  readln(K);
  C:=K-273.15;
  F:=K*1.8-459.67;
  R:=K*1.8;
  writeln('La temperatura en grados Celcius es: ',C:2:2);
  writeln('La temperatura en grados Fahrenheit es: ',F:2:2);
  writeln('La temperatura en grados Rankine es: ',R:2:2);
  end;
  end;
  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
sin imagen de perfil

Case of (Duda)

Publicado por Diego (98 intervenciones) el 09/04/2014 03:16:07
El problema es que el número de la opcion es un char, porlo anto en los casos deberian tener la comilla para indicar que es un tipo char, de lo contrario lo toma como un integer.
Probá cambiando el n a tipo integer o longword; o agregá las comillas a las opciones del case para no cambiar el tipo de dato que es n..
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

Case of (Duda)

Publicado por ramon (2158 intervenciones) el 09/04/2014 11:49:41
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
{fíjate como esta diego tiene razón mira el fallo}
 
program menu;
uses crt;
var
n:char;
C,F,R,K:real;
begin
  clrscr;
  textcolor(white);
 
  writeln('Convertidor de temperatura');
 
  writeln('Programa creado por Benjamin C.');
 
  writeln('Opciones');
 
  writeln('1.Transformar Celcius a Fahrenheit,Rankine, Kelvin');
  writeln('2.Transformar Fahrenheit a Celcius, Rankine, Kelvin');
  writeln('3.Transformar Rankine a Fahrenheit, Celcius, Kelvin');
  writeln('4.Trasnformar Kelvin a Rankine, Fahrenheit, Celcius');
 
  write('Seleccione opcion numerica:');
  read(n);
 
  case n of
  (*Si el usuario ingresa la opcion 1*)
  '1':begin
 
  write('Ingrese un numero en grados Celcius: ');
  readln(C);
  F:=1.8*C+32;
  R:=F+459.67;
  K:=C+273.15;
  writeln('La temperatura en grados Fahrenheit es:',F:2:2);
  writeln('La temperatura en grados Rankine es:',R:2:2);
  writeln('La temperatura en grados Kelvin es:',K:2:2);
  end;
  (*Si el usuario ingresa la opcion 2*)
  '2':begin
 
  write('Ingrese un numero en grados Fahrenheit: ');
  readln(F);
  C:=(F-32)/1.8;
  K:=C+273.15;
  R:=F+459.67;
  writeln('La temperatura en grados Celcius es: ',C:2:2);
  writeln('La temperatura en grados Kelvin es: ',K:2:2);
  writeln('La temperatura en grados Rankine es: ',R:2:2);
  end;
  (*Si el usuario ingresa la opcion 3*)
  '3':begin
 
  writeln('Ingrese un numero en grados Rankine: ');
  readln(R);
  F:=R-459.67;
  C:=(5/9)*(R-491.67);
  K:=(5/9)*R;
  writeln('La temperatura en grados Fahrenheit es: ',F:2:2);
  writeln('La temperatura en grados Celcius es: ',C:2:2);
  writeln('La temperatura en grados Kelvin es: ',K:2:2);
  end;
  (*Si el usuario ingresa la opcion 4*)
  '4':begin
 
  writeln('Ingrese un numero en grados Kelvin: ');
  readln(K);
  C:=K-273.15;
  F:=K*1.8-459.67;
  R:=K*1.8;
  writeln('La temperatura en grados Celcius es: ',C:2:2);
  writeln('La temperatura en grados Fahrenheit es: ',F:2:2);
  writeln('La temperatura en grados Rankine es: ',R:2:2);
  end;
  end;
  writeln('Pulse Una Tecla');
  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

Case of (Duda)

Publicado por wind (26 intervenciones) el 09/04/2014 16:17:19
Gracias por ambas respuesta.
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

Case of (Duda)

Publicado por wind (26 intervenciones) el 09/04/2014 19:41:03
Lo siento por publicar de nuevo, En efecto la compilación fue un éxito.
Me surge la siguiente duda, mi intención es agregar un else. ('opcion incorrecta') (si has presionado otros caracteres)
sin embargo no me resulta.
Como debería quedar finalmente el código.
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
sin imagen de perfil

Case of (Duda)

Publicado por Diego (98 intervenciones) el 09/04/2014 22:50:17
Si querés agregar un else(si no es ninguna de la opciones); entonces luego de declarar y cerrar cada caso; al final colocás un else luego colocar un begin end(pero sin ; "punto y coma" ya que es otro case luego cerras el case con un ; y listo.
case variable of
--opcion 1
-----begin
-----end
--opcion n
------begin
------end
--else
------begin
------end
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Case of (Duda)

Publicado por wind (26 intervenciones) el 10/04/2014 00:02:24
thanks! funciona!
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