Autor |
Mensaje |
El hombre de la estrella
Nivel 1
Registrado: 17 Abr 2009
Mensajes: 2
|
|
HOLA ESTABA HACIENDO DOS PROBLEMAS CON EL TURBO PASCAL BIEN FACILES DE PASCAL Y RESULTA QUE ME FALLAN EN LA EJECUCION, CUANDO LO COMPILO NO HAY PROBLEMAS.
EL PRIMERO ME DICE QUE TENGO QUE DECIR SI UN NUMERO ES MAYOR,MENOR O IGUAL QUE 100. CUANDO LO EJECUTO PRUEBO CON EL NUMERO 4 Y ME DICE PRIMERO QUE ES MAYOR QUE 100 Y DESPUES QUE ES IGUAL A 100. LES PAS EL CODIGO A VER QUE ESTA MAL:
PROGRAM CIEN;
USES CRT;
VAR X:REAL;
BEGIN; CLRSCR;
WRITELN('INGRESE UN NUMERO REAL');
READLN(X);
IF (X>0) THEN WRITELN('EL NUMERO INGRESADO ES MAYOR QUE 100');
IF (X<0) THEN WRITELN('EL NUMERO INGRESADO ES MENOR QUE 100')
ELSE WRITELN('EL NUMERO INGRESADO ES IGUAL A 100');
READKEY;
END.
EL OTRO ES EL QUE TENES QUE PONER UN NUMERO DEL 1 AL 7 Y TE TIENE QUE ESCRIBIR EL DIA DE LA SEMANA CORRESPONDIENTE. CUANDO LO EJECUTO ESCRIBO EL NUMERO PONGO ENTER Y ME VUELVE A LA PANTALLA DEL CODIGO SIN DECISME NADA:
PROGRAM SEMANA;
USES CRT;
VAR X: INTEGER;
BEGIN;
CLRSCR;
WRITELN('INGRESE NUMERO DE 1 A 7');
READLN(X);
CASE X OF
1: WRITELN('EL DIA ES LUNES');
2: WRITELN('EL DIA ES MARTES');
3: WRITELN('EL DIA ES MIERCOLES');
4: WRITELN('EL DIA ES JUEVES');
5: WRITELN('EL DIA ES VIERNES');
6: WRITELN('EL DIA ES SABADO');
7: WRITELN('EL DIA ES DOMINGO')
ELSE;
WRITELN('ERROR');
READKEY;
END;
END.
SALUDOS SI PUEDEN AYUDARME LES AGRADEZCO.
|
|
|
|
|
|
|
|
|
Gualicho
Nivel 8
Edad: 35
Registrado: 18 Sep 2007
Mensajes: 715
Ubicación: En el templo de Momo...
Carrera: Informática
|
|
No lei muy bien el codigo, pero me da toda la impresion que el problema pasa por otro lado. Fijate si el error que te tira es "Runtime Error 200". En caso de serlo tenes que bajarte un patch. Si no es, postea el error que te tira.
Saludos.
|
|
|
|
_________________ "Por eso te pido (amigo desconocido), si ves a mi rock perdido, lo traigas por aqui!"
|
|
|
|
|
facundo.olano
Nivel 8
Edad: 36
Registrado: 10 Ago 2006
Mensajes: 808
Ubicación: encadenado al ánima
Carrera: Informática
|
|
El hombre de la estrella escribió:
|
IF (X>0) THEN WRITELN('EL NUMERO INGRESADO ES MAYOR QUE 100');
IF (X<0) THEN WRITELN('EL NUMERO INGRESADO ES MENOR QUE 100')
|
Estás comparando con 0 en vez de con 100.
En cuanto al otro, probá agrgando un par de readkeys más al final(o un readline mejor); capaz que ejecuta bien pero se cierra la pantalla en cuanto finaliza el programa.
|
|
|
|
_________________
|
|
|
|
|
Sid Bernard
Nivel 9
Edad: 35
Registrado: 20 Jul 2008
Mensajes: 1287
Ubicación: Al lado del Sub Esp. $ = <(TT,0,2+3i)(3,18,4)(0,0,e)>
Carrera: Electrónica y Informática
|
|
[quote="El hombre de la estrella"]HOLA ESTABA HACIENDO DOS PROBLEMAS CON EL TURBO PASCAL BIEN FACILES DE PASCAL Y RESULTA QUE ME FALLAN EN LA EJECUCION, CUANDO LO COMPILO NO HAY PROBLEMAS.
EL PRIMERO ME DICE QUE TENGO QUE DECIR SI UN NUMERO ES MAYOR,MENOR O IGUAL QUE 100. CUANDO LO EJECUTO PRUEBO CON EL NUMERO 4 Y ME DICE PRIMERO QUE ES MAYOR QUE 100 Y DESPUES QUE ES IGUAL A 100. LES PAS EL CODIGO A VER QUE ESTA MAL:
[code]PROGRAM CIEN;
USES CRT;
VAR X:REAL;
BEGIN; CLRSCR;
WRITELN('INGRESE UN NUMERO REAL');
READLN(X);
IF (X>0) THEN WRITELN('EL NUMERO INGRESADO ES MAYOR QUE 100');
IF (X<0>0) THEN WRITELN('EL NUMERO INGRESADO ES MAYOR QUE 100');
IF (X<0> 0 es obvio q hasta el 1 te va a decir q es mayor a 100...
entonces a los if los tenes q cambiar de esta manera
[code]PROGRAM CIEN;
USES CRT;
VAR X:REAL;
BEGIN; CLRSCR;
WRITELN('INGRESE UN NUMERO REAL');
READLN(X);
IF (X>100) THEN WRITELN('EL NUMERO INGRESADO ES MAYOR QUE 100');
IF (X<100) THEN WRITELN('EL NUMERO INGRESADO ES MENOR QUE 100');
IF (X = 100)WRITELN('EL NUMERO INGRESADO ES IGUAL A 100');
READKEY;
END.[/code]
con respecto al segundo esta bien lo q pasa es q tenes q hacer una ligera modificacion,
vos tenes esto
[code]PROGRAM SEMANA;
USES CRT;
VAR X: INTEGER;
BEGIN;
CLRSCR;
WRITELN('INGRESE NUMERO DE 1 A 7');
READLN(X);
CASE X OF
1: WRITELN('EL DIA ES LUNES');
2: WRITELN('EL DIA ES MARTES');
3: WRITELN('EL DIA ES MIERCOLES');
4: WRITELN('EL DIA ES JUEVES');
5: WRITELN('EL DIA ES VIERNES');
6: WRITELN('EL DIA ES SABADO');
7: WRITELN('EL DIA ES DOMINGO')
ELSE;
WRITELN('ERROR');
READKEY;
END;
END.[/code]
lo q pasa aca es como ubicaste el Readkey al final, lo q hace q cuando opera el soft se cierre automaticamente, vos lo tenes de esta manera:
[code].................
WRITELN('ERROR');
READKEY;
END;
END.[/code]
fijate q el readkey lo lee, pero como q no le da importancia xq entre el END; y el END. no tenes nada, entonces es como q ese READKEY nunca lo pusiste.
Por lo tanto cambialo de lugar de esta manera:
[code].................
WRITELN('ERROR');
END;
READKEY;
END.[/code]
y ahi vas a ver q el programa va a funcionar lo mas bien y tu codigo final quedaria asi...
[code]PROGRAM SEMANA;
USES CRT;
VAR X: INTEGER;
BEGIN;
CLRSCR;
WRITELN('INGRESE NUMERO DE 1 A 7');
READLN(X);
CASE X OF
1: WRITELN('EL DIA ES LUNES');
2: WRITELN('EL DIA ES MARTES');
3: WRITELN('EL DIA ES MIERCOLES');
4: WRITELN('EL DIA ES JUEVES');
5: WRITELN('EL DIA ES VIERNES');
6: WRITELN('EL DIA ES SABADO');
7: WRITELN('EL DIA ES DOMINGO')
ELSE;
WRITELN('ERROR');
END;
READKEY;
END.[/code]
Espero q hayas entendido...
Saludos!
|
|
|
|
_________________
SOY ACERISTA Y QUE!!!!!
|
|
|
|
|
Freddy
Nivel 8
Edad: 34
Registrado: 29 Oct 2008
Mensajes: 630
Ubicación: Lanús
Carrera: Sistemas
|
|
Mira, en el primer programa esta pasando lo siguiente:
En la parte de los if, pusiste dos estructuras selectivas independientes. El primer if evalua que el numero sea mayor a 100. El segundo if evalua que el numero sea menor a 100. Pero si no es menor a 100 (o sea, si es mayor o igual) te dice que es igual. Ademas, estas comparando con 0, no con 100
Lo que te conviene poner en lugar de eso es:
If (x>100) then
writeln ('El numero es mayor a 100')
else if (x<100) then
writeln ('El numero es menor a 100')
else
writeln ('El numero es igual a 100');
Así tendria que funcar sin problema.
En el segundo programa:
PROGRAM SEMANA;
USES CRT;
VAR X: INTEGER;
BEGIN;
CLRSCR;
WRITELN('INGRESE NUMERO DE 1 A 7');
READLN(X);
CASE X OF
1: WRITELN('EL DIA ES LUNES');
2: WRITELN('EL DIA ES MARTES');
3: WRITELN('EL DIA ES MIERCOLES');
4: WRITELN('EL DIA ES JUEVES');
5: WRITELN('EL DIA ES VIERNES');
6: WRITELN('EL DIA ES SABADO');
7: WRITELN('EL DIA ES DOMINGO')
ELSE;
WRITELN('ERROR');
READKEY;
END;
END.
Ahi donde te marque hay un error en la sintaxis y en el orden de las cosas.
despues del 7: ------ iría
Else (sin punto y coma)
writeln ('Error');
End; (termina el case)
Readkey;
End.
Si pones despues de un if o un else una instruccion con ; te compila unicamente esta instruccion perteneciente al if o al else. El resto lo compila como parte del programa. Para eso pone todo entre begin y end.
Despues, el readkey va afuera de toda estructura, antes de poner el end.
Si pones el readkey dentro del else, la pantalla solo permanece estatica si no ingresaste un numero entre 1 y 7. Si no, vuelve de una al codigo tan rapido que no ves nada.
|
|
|
|
|
|
|
|
|
|
|
Ver tema siguiente
Ver tema anterior
Podés publicar nuevos temas en este foro No podés responder a temas en este foro No podés editar tus mensajes en este foro No podés borrar tus mensajes en este foro No podés votar en encuestas en este foro No Podéspostear archivos en este foro No Podés bajar archivos de este foro
|
Todas las horas son ART, ARST (GMT - 3, GMT - 2 Horas)
Protected by CBACK CrackerTracker365 Attacks blocked.
|
|
[ Tiempo: 0.2117s ][ Pedidos: 20 (0.1658s) ] |