Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: SXF en 17 Enero 2011, 18:05 pm



Título: problema con programa en Pascal
Publicado por: SXF en 17 Enero 2011, 18:05 pm
Buenas tengo un problemilla con un programa en pascal este es el algoritmo:

Código
  1. program ejemplo2;
  2.  
  3. var
  4.  nota:integer;
  5.  
  6. begin
  7.  
  8. read(nota);
  9.  
  10.    case nota of
  11.      '20': writeln('M. honor');
  12.       '19','18': writeln('Sobresaliete');
  13.       '17','16': writeln<'Notable');
  14.       '15','14': writeln('Aprobado');
  15.    else writeln('Suspenso');
  16.  
  17.    end
  18.  
  19.   end.

no se por que me tira error , lo que hace es sencillo comparar notas () utilizo el frepascal.


Título: Re: problema con programa en Pascal
Publicado por: Garfield07 en 17 Enero 2011, 19:11 pm
      '17','16': writeln<'Notable');


no se por que me tira error , lo que hace es sencillo comparar notas () utilizo el frepascal.

1) Por que no usas esto:
Código
  1.        '17','16': writeln('Notable');
como en los demas?
2) Podrias explicar  tu error, al menos..


Título: Re: problema con programa en Pascal
Publicado por: SXF en 17 Enero 2011, 19:26 pm
me tira muchos errores  (http://s2.subirimagenes.com/otros/previo/thump_5807050sin-ttulo.jpg) Nose creo que el analisis de casos esta mal..lo que quiero hacer es compara las notas si es 20 (sobresaliente ) si es 19 o tal ... y asi...


Título: Re: problema con programa en Pascal
Publicado por: Garfield07 en 17 Enero 2011, 19:42 pm
Postea los errores, no una foto. No se ve nada bien...


Título: Re: problema con programa en Pascal
Publicado por: Khronos14 en 17 Enero 2011, 20:38 pm
Así a simple vista, ya te digo yo que te faltan los "uses". Además, con read() estás leyendo un integer y en el case..of estás haciendo las comparaciones como si fuera una cadena.

Saludos.


Título: Re: problema con programa en Pascal
Publicado por: SXF en 18 Enero 2011, 11:49 am
gracias a todos ,el error estaba en que no hay que poner '' con numeros pero si con letras..las librerias no hace falta usarlas aki..


Título: Re: problema con programa en Pascal
Publicado por: skapunky en 18 Enero 2011, 22:28 pm
Bieeeeen una pregunta de pascal, allá va, prueba lo siguiente:

Código
  1. program ejemplo2;
  2. uses crt;
  3. var
  4.  nota:integer;
  5.  
  6. begin
  7.  
  8. read(nota);
  9.  
  10.    case nota of
  11.       '20': writeln('M. honor');
  12.       '18'..'19': writeln('Sobresaliete');
  13.       '16'..'17': writeln<'Notable');
  14.       '14'..'15': writeln('Aprobado');
  15.    else
  16.       writeln('Suspenso');
  17.     end
  18. end.

No tengo el compilador en este ordenador, pero el codigo debería funcionar.


Título: Re: problema con programa en Pascal
Publicado por: Khronos14 en 18 Enero 2011, 22:44 pm
skapunky, SFX ya dijo que lo solucionó. Además tu código está mal.

Código
  1. program ejemplo2;
  2.  
  3. uses crt;
  4.  
  5. var
  6.  nota: integer;
  7. begin
  8.  
  9. read(nota);
  10.  
  11.    case nota of
  12.       20: writeln('M. honor');
  13.       18,19: writeln('Sobresaliete');
  14.       16,17: writeln('Notable');
  15.       14,15: writeln('Aprobado');
  16.    else
  17.       writeln('Suspenso');
  18.     end;
  19. end.


Título: Re: problema con programa en Pascal
Publicado por: skapunky en 19 Enero 2011, 11:52 am
Cierto, se me colaron las comas al copiar el codigo original, pero en turbo pascal se puede poner un rango de numero de la siguiente manera:

1..n

Lo he probado y funciona en delphi 6 enterprise.