Foros-FIUBA Foros HostingPortal
 FAQ  •  Buscar  •  Wiki  •  Apuntes  •  Planet  •  Mapa  •  Eyeon  •  Chat
Preferencias  •  Grupos de Usuarios
Registrarse  •  Perfil  •  Entrá para ver tus mensajes privados  •  Login
Ver tema siguiente
Ver tema anterior

Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente
Autor Mensaje
mafalda
Nivel 4


Edad: 33
Registrado: 15 Dic 2011
Mensajes: 114

Carrera: Informática
argentina.gif
MensajePublicado: Dom Feb 19, 2012 5:09 pm  Asunto: Oooh ! Ayudita con procedimiento Responder citandoFin de la PáginaVolver arriba

Buenas, Estoy luchando con un programa y este procedimiento no me funciona. Alguien tiene una idea o ve algun error que no vi???
Gracias!!
Smile

Function Encontrado_padron(var fa:TARCHIVOALUMNO):boolean; {me dice si encuentra o no al padron solamente}


var
alu:alumno;
padron2:longint;

begin
writeln('ingrese nuevamente el padron del alumno');
readln(padron2);
reset(fa);
encontrado_padron:=false;
while (not eof) and (not encontrado_padron) do
begin
read(fa,alu);
if (alu.padron = padron2) then
encontrado_padron:= true

else
writeln('no se encuentra el cpadron del alumno,alumno no existente');

end;
close(fa);
end;

Function aprobado(var fc:TARCHIVOCURSADA; VAR fa:TARCHIVOALUMNO; var fm:TARCHIVOMATERIA): boolean;
var
padron:longint;
acta:actacursada;
mat:materia;

begin
reset(fc);
writeln('ingrese padron del alumno');
readln(padron);
Encontrado_padron(fa);
while(acta.notafinal >= 4) and(acta.notafinal<=10) do
begin
aprobado:=true;
writeln(acta.cod_materia);
writeln(mat.nombre);
writeln(acta.cod_acta);
writeln(acta.anio);
end;


end;



Gracias!!


Aries Género:Femenino Cabra OfflineGalería Personal de mafaldaVer perfil de usuarioEnviar mensaje privado
Symbolic
Nivel 6


Edad: 33
Registrado: 25 Ago 2011
Mensajes: 204
Ubicación: Avellaneda
Carrera: Informática
CARRERA.informatica.3.jpg
MensajePublicado: Dom Feb 19, 2012 5:14 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

No me acuerdo mucho de Pascal, pero en esta parte Encontrado_padron(fa); te olvidaste de asignarle eso a una variable boolean.


Geminis Género:Masculino Caballo OcultoGalería Personal de SymbolicVer perfil de usuarioEnviar mensaje privado
Franzl
Nivel 7


Edad: 33
Registrado: 23 Ago 2011
Mensajes: 384

Carrera: Mecánica
austria.gif
MensajePublicado: Dom Feb 19, 2012 5:15 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

No tendría que ser Procedure?


Capricornio Género:Masculino Caballo OcultoGalería Personal de FranzlVer perfil de usuarioEnviar mensaje privado
mafalda
Nivel 4


Edad: 33
Registrado: 15 Dic 2011
Mensajes: 114

Carrera: Informática
argentina.gif
MensajePublicado: Dom Feb 19, 2012 5:19 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Cita:
No me acuerdo mucho de Pascal, pero en esta parte Encontrado_padron(fa); te olvidaste de asignarle eso a una variable boolean.


lo llama al procedimiento de arriba, por eso no le asigne nada...

Cita:
No tendría que ser Procedure?

El primero queriamos saber solo si lo encontraba o no, por eso lo hicimos como funcion..
el segundo lo cambie, pero igual no me funciona, me sale algo como la matrix pero en pascal xD


Aries Género:Femenino Cabra OfflineGalería Personal de mafaldaVer perfil de usuarioEnviar mensaje privado
Symbolic
Nivel 6


Edad: 33
Registrado: 25 Ago 2011
Mensajes: 204
Ubicación: Avellaneda
Carrera: Informática
CARRERA.informatica.3.jpg
MensajePublicado: Dom Feb 19, 2012 5:23 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Me refiero a que lo declaraste asi Function Encontrado_padron(var fa:TARCHIVOALUMNO):boolean;
Y abajo lo llamaste como un procedimiento.


Geminis Género:Masculino Caballo OcultoGalería Personal de SymbolicVer perfil de usuarioEnviar mensaje privado
Franzl
Nivel 7


Edad: 33
Registrado: 23 Ago 2011
Mensajes: 384

Carrera: Mecánica
austria.gif
MensajePublicado: Dom Feb 19, 2012 5:28 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Podrías indentar el código para facilitar su lectura??

lo podés hacer encerrándolo con

Código:
[code][/code]


EDIT: ortografía




Última edición por Franzl el Dom Feb 19, 2012 5:35 pm, editado 1 vez
Capricornio Género:Masculino Caballo OcultoGalería Personal de FranzlVer perfil de usuarioEnviar mensaje privado
csebas
Nivel 9


Edad: 71
Registrado: 16 Feb 2009
Mensajes: 1634

Carrera: No especificada
estonia.gif
MensajePublicado: Dom Feb 19, 2012 5:33 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Podrias ser mas especifico cuando decis "no me funciona", que hace, te tira error, se cuelga, tira fruta...

_________________
━━━━━┓ \\
┓┓┓┓┓┃
┓┓┓┓┓┃ ヽ○ノ
┓┓┓┓┓┃  /
┓┓┓┓┓┃ ノ)
┓┓┓┓┓┃
┓┓┓┓┓┃
▒▒▒▒▒▒▒▒▒▒▒▒▒▒

Leo Género:Masculino Dragón OcultoGalería Personal de csebasVer perfil de usuarioEnviar mensaje privado
mafalda
Nivel 4


Edad: 33
Registrado: 15 Dic 2011
Mensajes: 114

Carrera: Informática
argentina.gif
MensajePublicado: Dom Feb 19, 2012 5:34 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Cita:
Me refiero a que lo declaraste asi Function Encontrado_padron(var fa:TARCHIVOALUMNO):boolean;
Y abajo lo llamaste como un procedimiento.


es la idea de que sea un procedimiento.
Código:
Function Encontrado_padron(var fa:TARCHIVOALUMNO):boolean; {me dice si encuentra o no al padron solamente}


var
alu:alumno;
padron2:longint;

begin
writeln('ingrese nuevamente el padron del alumno');
readln(padron2);
reset(fa);
encontrado_padron:=false;
while (not eof) and (not encontrado_padron) do
begin
read(fa,alu);
if (alu.padron = padron2) then
encontrado_padron:= true

else
writeln('no se encuentra el cpadron del alumno,alumno no existente');

end;
close(fa);
end;

Function aprobado(var fc:TARCHIVOCURSADA; VAR fa:TARCHIVOALUMNO; var fm:TARCHIVOMATERIA): boolean;
var
padron:longint;
acta:actacursada;
mat:materia;

begin
reset(fc);
writeln('ingrese padron del alumno');
readln(padron);
Encontrado_padron(fa);
while(acta.notafinal >= 4) and(acta.notafinal<=10) do
begin
aprobado:=true;
writeln(acta.cod_materia);
writeln(mat.nombre);
writeln(acta.cod_acta);
writeln(acta.anio);
end;


end;


Gracias Franzl


Aries Género:Femenino Cabra OfflineGalería Personal de mafaldaVer perfil de usuarioEnviar mensaje privado
mafalda
Nivel 4


Edad: 33
Registrado: 15 Dic 2011
Mensajes: 114

Carrera: Informática
argentina.gif
MensajePublicado: Dom Feb 19, 2012 5:36 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Es como si fuera un ciclo de repeat infinito y nunca se termina... compila, pero cuando ejecuta pasa eso.


Aries Género:Femenino Cabra OfflineGalería Personal de mafaldaVer perfil de usuarioEnviar mensaje privado
Franzl
Nivel 7


Edad: 33
Registrado: 23 Ago 2011
Mensajes: 384

Carrera: Mecánica
austria.gif
MensajePublicado: Dom Feb 19, 2012 5:37 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

No hay de qué, pero me refería a esto:

Identación

¬¬


Capricornio Género:Masculino Caballo OcultoGalería Personal de FranzlVer perfil de usuarioEnviar mensaje privado
csebas
Nivel 9


Edad: 71
Registrado: 16 Feb 2009
Mensajes: 1634

Carrera: No especificada
estonia.gif
MensajePublicado: Dom Feb 19, 2012 5:38 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

2 errores que encontre:

1ro que todo, escribis "no se encuentra padron", en cada iteracion del while.
2do estas escribiendo "aprobado:=true" y aprobado es una funcion, no recuerdo pascal, pero me parece que esta mal.

Edit: Lo tachado esta bien, asi era pascal xD


Leo Género:Masculino Dragón OcultoGalería Personal de csebasVer perfil de usuarioEnviar mensaje privado
Symbolic
Nivel 6


Edad: 33
Registrado: 25 Ago 2011
Mensajes: 204
Ubicación: Avellaneda
Carrera: Informática
CARRERA.informatica.3.jpg
MensajePublicado: Dom Feb 19, 2012 5:44 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

O sea vos queres hacer un procedimiento y no una funcion? xq si lo dejas asi no estas guardando en ningun lugar el booleano que te tiene que devolver Encontrado_padron, entonces como vas a saber cual padron existe y cual no?

EDIT: otra cosa es que te pedis leer el padron 2 veces, uno en aprobado y otro en encontrado_padron




Última edición por Symbolic el Dom Feb 19, 2012 5:48 pm, editado 1 vez
Geminis Género:Masculino Caballo OcultoGalería Personal de SymbolicVer perfil de usuarioEnviar mensaje privado
mafalda
Nivel 4


Edad: 33
Registrado: 15 Dic 2011
Mensajes: 114

Carrera: Informática
argentina.gif
MensajePublicado: Dom Feb 19, 2012 5:45 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

cuando escribi " no se encuentra padron" lo puse por el if que viene despues del while.


Aries Género:Femenino Cabra OfflineGalería Personal de mafaldaVer perfil de usuarioEnviar mensaje privado
mafalda
Nivel 4


Edad: 33
Registrado: 15 Dic 2011
Mensajes: 114

Carrera: Informática
argentina.gif
MensajePublicado: Dom Feb 19, 2012 5:52 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Cita:
O sea vos queres hacer un procedimiento y no una funcion? xq si lo dejas asi no estas guardando en ningun lugar el booleano que te tiene que devolver Encontrado_padron, entonces como vas a saber cual padron existe y cual no?


cuando uso el encontrado_padron hago q se ejecute solo esa opcion, no la uso como variable, igual me voy a fijar ese detalle bien


Aries Género:Femenino Cabra OfflineGalería Personal de mafaldaVer perfil de usuarioEnviar mensaje privado
csebas
Nivel 9


Edad: 71
Registrado: 16 Feb 2009
Mensajes: 1634

Carrera: No especificada
estonia.gif
MensajePublicado: Dom Feb 19, 2012 6:09 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Código:
encontrado_padron:=false;
while (not eof) and (not encontrado_padron) do
      begin
           read(fa,alu);
            if (alu.padron = padron2) then
                encontrado_padron:= true
                else writeln('no se encuentra el cpadron del alumno,alumno no existente');
      end;

seguimiento escribió:

Supongamos un archivo de 3 registros en el cual el 3ro es el que buscas.

entra al while
lee el registro
pregunta "es igual", da falso, entra el else,
escribe "no se encuentra padron"

Vuelve al while, y entra porque padron sigue falso y no es fin de archivo
lee registro
pregunta "es igual", da falso, entra el else,
escribe "no se encuentra padron".

vuelve al while porque neuvamente padron sigue falso y no es fin de archivo,
lee el registro
pregunta "es igual", da true, salis del while.


Capaz me equivoque porque hace mucho tiempo que vi pascal, pero pareceria que hace eso.
Afuera del while va un if ( encontrado_padron=false) writeln("no se encuentra padron")


Leo Género:Masculino Dragón OcultoGalería Personal de csebasVer perfil de usuarioEnviar mensaje privado
Mostrar mensajes de anteriores:      
Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente

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 CrackerTracker
365 Attacks blocked.

Powered by phpBB2 Plus, phpBB Styles and Kostenloses Forum based on phpBB © 2001/6 phpBB Group :: FI Theme :: Mods y Créditos

Foros-FIUBA está hosteado en Neolo.com Cloud Hosting

[ Tiempo: 0.3710s ][ Pedidos: 18 (0.2801s) ]