Pascal/Turbo Pascal - AYUDA modificar bucle

 
Vista:
sin imagen de perfil
Val: 6
Ha aumentado su posición en 2 puestos en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

AYUDA modificar bucle

Publicado por oscar (64 intervenciones) el 29/10/2012 20:46:48
Modifique este código, que es uno de los ejemplos usados en el tema, para que en lugar de usar un bucle repeat-until se use un bucle while-do. Recuerde que la ejecución deberá ser idéntica.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
repeat
write('Introduzca el primer operando: ');
readln(a);
write('Introduzca el segundo operando: ');
readln(b);
writeln(' Opciones: S(sumar), R(restar), M(multiplicar), D(dividir)');
readln(opcion);
case (opcion) of
'S','s' : res:= a+b;
'R','r' : res:= a-b;
'M','m' : res:= a*b;
'D','d' : res:= a/b;
end;
writeln(' El resultado es ', res);
write(' Terminar (S/N)?: ');
readln(opcion);
until ((opcion ='S') or (opcion ='s')) ;


ni siquiera se como empezarlo
gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder

AYUDA modificar bucle

Publicado por ramon (2158 intervenciones) el 29/10/2012 21:43:09
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{Mira quedaría así}
 
{repeat} while (opcion <> 'S') and (opcion <> 's') do
  begin
write('Introduzca el primer operando: ');
readln(a);
write('Introduzca el segundo operando: ');
readln(b);
writeln(' Opciones: S(sumar), R(restar), M(multiplicar), D(dividir)');
readln(opcion);
case (opcion) of
'S','s' : res:= a+b;
'R','r' : res:= a-b;
'M','m' : res:= a*b;
'D','d' : res:= a/b;
end;
writeln(' El resultado es ', res);
write(' Terminar (S/N)?: ');
readln(opcion);
{until ((opcion ='S') or (opcion ='s'))} 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
sin imagen de perfil
Val: 6
Ha aumentado su posición en 2 puestos en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

AYUDA modificar bucle

Publicado por oscar (64 intervenciones) el 29/10/2012 21:47:38
Ramon y esto de donde sale
{repeat} while (opcion <> 'S') and (opcion <> 's') do me refiero a lo q esta entre parentesis que significa? .
solo habria q cambiar el repeat por un while do y el until de abajo de todo q esta en una llamda se suprime?
si trato de compilarlo me da el siguiente en (1,15)error syntax error, "begin" expected but while found lo compile tal cual...habria q poner lo de las variables (var)? q lio....
gracias
lo puse asi
Program:bucle;
uses:crt;
var: ?
{repeat} while (opcion <> 'S') and (opcion <> 's') do
begin
write('Introduzca el primer operando: ');
readln(a);
write('Introduzca el segundo operando: ');
readln(b);
writeln(' Opciones: S(sumar), R(restar), M(multiplicar), D(dividir)');
readln(opcion);
case (opcion) of
'S','s' : res:= a+b;
'R','r' : res:= a-b;
'M','m' : res:= a*b;
'D','d' : res:= a/b;
end;
writeln(' El resultado es ', res);
write(' Terminar (S/N)?: ');
readln(opcion);
{until ((opcion ='S') or (opcion ='s'))} end;

las variables no se cuales serian....
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

AYUDA modificar bucle

Publicado por ramon (2158 intervenciones) el 29/10/2012 22:10:49
Eso es lo tuyo anulado lo que esta { }

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var
 opcion : char;
  s, b, res : real:
 
 begin
   while (opcion <> 'S') and (opcion <> 's') do
begin
write('Introduzca el primer operando: ');
readln(a);
write('Introduzca el segundo operando: ');
readln(b);
writeln(' Opciones: S(sumar), R(restar), M(multiplicar), D(dividir)');
readln(opcion);
case (opcion) of
'S','s' : res:= a+b;
'R','r' : res:= a-b;
'M','m' : res:= a*b;
'D','d' : res:= a/b;
end;
writeln(' El resultado es ', res);
write(' Terminar (S/N)?: ');
readln(opcion);
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
0
Comentar
sin imagen de perfil
Val: 6
Ha aumentado su posición en 2 puestos en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

AYUDA modificar bucle

Publicado por oscar (64 intervenciones) el 29/10/2012 22:17:02
pero en var q tendria q poner, a ,b,opcion?
a y b serian string y opcion ?
no entiendo nada...
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

AYUDA modificar bucle

Publicado por ramon (2158 intervenciones) el 29/10/2012 22:20:12
Hay lo tienes todo ejecutalo
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
Val: 6
Ha aumentado su posición en 2 puestos en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

AYUDA modificar bucle

Publicado por oscar (64 intervenciones) el 29/10/2012 22:24:30
syntax error en (1,8) "indentifier" expected but ":" found

esto es lo q puse

Program:bucle;
uses:crt;
var: opcion : char;
s, b, res : real;

begin
while (opcion <> 'S') and (opcion <> 's') do
begin
write('Introduzca el primer operando: ');
readln(a);
write('Introduzca el segundo operando: ');
readln(b);
writeln(' Opciones: S(sumar), R(restar), M(multiplicar), D(dividir)');
readln(opcion);
case (opcion) of
'S','s' : res:= a+b;
'R','r' : res:= a-b;
'M','m' : res:= a*b;
'D','d' : res:= a/b;
end;
writeln(' El resultado es ', res);
write(' Terminar (S/N)?: ');
readln(opcion);
end;
end

perdona por marearte....pero al poner las variables tp se pq no se pone a y si b...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

AYUDA modificar bucle

Publicado por ramon (2158 intervenciones) el 29/10/2012 22:29:34
Program:bucle;

Error Program bucle;
no lleva los puntos

en end final falta el punto revisarlo bien esta privado.
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
Val: 6
Ha aumentado su posición en 2 puestos en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

AYUDA modificar bucle

Publicado por oscar (64 intervenciones) el 29/10/2012 22:36:17
OK he podido resolver tb otros errores, gracias ramon y perdona por hacerte perder el tiempo , de verdad q ya lo ultimo...en las variables..tb tengo q poner a? pq sino no entiendo q se ponga b
gracias
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

AYUDA modificar bucle

Publicado por ramon (2158 intervenciones) el 29/10/2012 22:39:30
Disculpado y suerte

s, b, res : real;

error mio disculpa son
a, b, res : real;

son las variables de entrada de datos para las operaciones que realizas
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
Val: 35
Ha disminuido 1 puesto en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

AYUDA modificar bucle

Publicado por Enrique Martin (15 intervenciones) el 03/02/2019 13:38:32
Aquí dejo otra solución, esta vez comentada por si le sirve a alguien:

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
Program Calc1;
 
Var
 opcion:      char;	 (* Para comprobar si desea continuar el usuario *)
 a:	          real;	 (* Primer operando *)
 b:	          real;	 (* Segundo operadno *)
 Res:         real;	 (* Resultado final *)
 
begin
 (*Cabecera visual del programa*)
 writeln;
 writeln('                            ##Calculadora basica##');
 writeln;
 
  (*Pedimos opcion desde el teclado*)
 write('Comenzamos (S/N)?: ');
 readln(opcion);
 writeln;
 
 (*Se evalua la condicion para continuar o terminar*)
 while ((opcion ='s') or (opcion ='S')) do
  begin
   write('>Introduzca el primer operando: ');
   readln(a);
   writeln;
   write('>Introduzca el segundo operando: ');
   readln(b);
   writeln;
   write('>Opciones: S(sumar), R(restar), M(multiplicar), D(dividir):  ');
   readln(opcion);
   writeln;
 
   (*Una vez introducidos los datos de los operandos y la operación
     a realizar, evaluamos la variable opcion para iniciar el calculo*)
 
   case (opcion) of
		'S','s' : res:= a+b;
		'R','r' : res:= a-b;
		'M','m' : res:= a*b;
		'D','d' : res:= a/b;
   end;
 
   (*Finalmente mostramos los resultados con los decimales seleccionados*)
 
   writeln('>> El resultado es ', res :10:2);
   writeln;
 
   (*Nuevamente preguntamos la opcion de seguir o finalizar, la variable opcion
     será evaluada en while*)
 
   write('Seguimos (S/N)?: ');
   readln(opcion);
   writeln;
  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