Buenas,
Para la parte b del ejercicio 8, logre escribir un codigo que me detecta cuando se ingresan los espacios en blancos y cuando no, le problema es que solo me funciona si ingreso numeros de una cifra, no logro hacer que me funcione con numeros de mas de 2 cifras. El codigo que escribi es el siguiente:
program Ejercicio8b;
var
num, numfinal, result : integer;
operacion, espacio : char;
begin
(*leer numero ingresado*)
read(num);
repeat
read(espacio)
until espacio <> ' ';
operacion := espacio;
repeat
(*leemos siguiente entrada del usuario*)
read(espacio);
(*detectar si la variable espacio es un espacio en blanco o un numero entero y actuar en consecuencia para asignarle un valor a la variable numfinal*)
if espacio <> ' ' then
numfinal := ord(espacio) - ord('0')
else
begin
repeat
read(espacio)
until espacio <> ' ';
numfinal := ord(espacio) - ord('0');
end;
(*ejecturar operacion*)
case operacion of
'+' : result := num + numfinal;
'-' : result := num - numfinal;
'*' : result := num*numfinal;
'/' : result := num div numfinal;
end;
(*guardar el resultado de la operacion*)
num := result;
(*leer la siguiente entrada del usuario y detectar si ingreso un espacio en blanco o no*)
repeat
read(espacio)
until espacio <> ' ';
(*si lo que ingreso el usuario fue distinto a un espacio en blanco, suponiendo que el usuario ingreso una operacion, asignamos esa operacion a la variable operacion*)
operacion := espacio;
until operacion = '=';
writeln;
write(result);
end.
Por lo que entiendo, el problema estaria en el uso de la funcion ord(x), ya que no funciona para numeros de 2 cifras. Agradeceria mucho un consejo para encarar este problema. Desde ya, muchas gracias!