Buenas, hice el codigo de la parte "a" y solo me funciona como en la parte b, no entiendo que tendria que hacer para que funcione con todos los datos juntos.
En respuesta a Juan Manuel Mengen Sarasua
Re: practico 5 ejercicio 8
tendria que hacer un if por cada numero, por ejemplo if numero = ('1') then h = 1
hola juan,
no entiendo la situación.
cuando ingresas "4+3/2*8-4=", qué sucede?
cuando ingresas "4 + 3/ 2 * 8- 4 =", qué sucede?
saludos
luis
no entiendo la situación.
cuando ingresas "4+3/2*8-4=", qué sucede?
cuando ingresas "4 + 3/ 2 * 8- 4 =", qué sucede?
saludos
luis
Hice el código pensando que iba a funcionar para "4x4/2=" pero funciona para "4 x 4 / 2 =" incluso con números mayores a 9. El tema es que me da error al ingresar los números juntos
hola juan,
¿podés compartir tu código y una ejecución que muestre el error que se genera?
saludos
luis
¿podés compartir tu código y una ejecución que muestre el error que se genera?
saludos
luis
program primoonoprimo;
var numero, total: integer;
var operacion: char;
begin
writeln ('ingresa la operacion que deseas realizar');
read (numero);
total:= numero;
read (operacion);
while operacion <> ('=') do
begin
if operacion = ('+') then
begin
read (numero);
total:= (total+numero);
end;
if operacion = ('*') then
begin
read (numero);
total:= (total*numero);
end;
if operacion = ('-') then
begin
read (numero);
total := (total-numero);
end;
if operacion = ('/') then
begin
read (numero);
total:= (total div numero);
end;
read (operacion);
end;
writeln (total)
end.
var numero, total: integer;
var operacion: char;
begin
writeln ('ingresa la operacion que deseas realizar');
read (numero);
total:= numero;
read (operacion);
while operacion <> ('=') do
begin
if operacion = ('+') then
begin
read (numero);
total:= (total+numero);
end;
if operacion = ('*') then
begin
read (numero);
total:= (total*numero);
end;
if operacion = ('-') then
begin
read (numero);
total := (total-numero);
end;
if operacion = ('/') then
begin
read (numero);
total:= (total div numero);
end;
read (operacion);
end;
writeln (total)
end.
En respuesta a Juan Manuel Mengen Sarasua
Re: practico 5 ejercicio 8
ya lo hice con (ord), nose si es asi la solucion que se buscaba pero funciona.
program primoonoprimo;
var numero ,total: integer;
var operacion, numero1: char;
begin
writeln ('ingresa la operacion que deseas realizar');
read (numero1);
numero:= ord (numero1);
numero:= numero - 48;
total:= numero;
read (operacion);
while operacion <> ('=') do
begin
read (numero1);
numero:= ord (numero1);
numero:= numero - 48;
if operacion = ('+') then
begin
total:= (total+numero);
end;
if operacion = ('*') then
begin
total:= (total*numero);
end;
if operacion = ('-') then
begin
total := (total-numero);
end;
if operacion = ('/') then
begin
total:= (total div numero);
end;
read (operacion);
end;
writeln (total)
end.
hola juan manuel,
buen trabajo. ahora, intenta dos cosas:
1. en vez de usar esos cuatro IFs, usar un CASE.
2. tu propuesta solamente lee números que tengan un dígito. cambia el tipo de numero1 por integer (o elimina directamente esa variable) y permite escribir líneas como "43/2*84=" y "43 / 2 * 84 ="
saludos
luis
buen trabajo. ahora, intenta dos cosas:
1. en vez de usar esos cuatro IFs, usar un CASE.
2. tu propuesta solamente lee números que tengan un dígito. cambia el tipo de numero1 por integer (o elimina directamente esa variable) y permite escribir líneas como "43/2*84=" y "43 / 2 * 84 ="
saludos
luis
hola alexis,
en la sección Laboratorio tienes un enlace a la Descripción de errores en tiempo de ejecución provista por free pascal. allí puedes leer:
106 Invalid numeric format
Reported when a non-numeric value is read from a text file, and a numeric value was expected.
al ejecutar debe aparecer, junto al código de error, la línea en la que ocurre ese error. supongo que no estás compilando con las opciones que indicamos en el curso. compila con las opciones adecuadas, y podrás ver dónde ocurrió ese error.
acostúmbrate a extraer toda la info posible de los mensajes de error. en este caso, ya sabrías dónde y por qué fue el error.
recompila y vuelve a ejecutar. con la nueva información recogida intenta resolver la situación, y vuelve a preguntar si no puedes.
saludos
luis
en la sección Laboratorio tienes un enlace a la Descripción de errores en tiempo de ejecución provista por free pascal. allí puedes leer:
106 Invalid numeric format
Reported when a non-numeric value is read from a text file, and a numeric value was expected.
al ejecutar debe aparecer, junto al código de error, la línea en la que ocurre ese error. supongo que no estás compilando con las opciones que indicamos en el curso. compila con las opciones adecuadas, y podrás ver dónde ocurrió ese error.
acostúmbrate a extraer toda la info posible de los mensajes de error. en este caso, ya sabrías dónde y por qué fue el error.
recompila y vuelve a ejecutar. con la nueva información recogida intenta resolver la situación, y vuelve a preguntar si no puedes.
saludos
luis
además...
observo que la compilación indica 31 líneas compiladas, pero el archivo tiene 33. supongo que estás compilando un archivo diferente.
saludos
luis
observo que la compilación indica 31 líneas compiladas, pero el archivo tiene 33. supongo que estás compilando un archivo diferente.
saludos
luis