Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes
Probaste el SIGA Helper?

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[Algoritmos] Ayuda con TP
Autor Mensaje
Nikod11 Sin conexión
Secretario General
Sin estado :(
*******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 791
Agradecimientos dados: 85
Agradecimientos: 473 en 57 posts
Registro en: Mar 2011
Mensaje: #1
[Algoritmos] Ayuda con TP Dudas y recomendaciones Algoritmos y Estructuras de Datos
Ya tengo el programa andando lo mas bien, pero no me acuerdo como hacer funciones JAJAJA, alguien me puede dar una mano?


if (not eof(actf)) then begin
read(actf,ractas);
flag:=false;
end else begin
flag:=true;
end;



Esa funcion la usaria para hacer un while (not flag) y ir accediendo a los registros, si lo hago 'asi nomas' no me agarra el ultimo registro.
Ademas uso corto de control, y usaria 2 veces la misma funcion =P

Gracias =D
Otros adjuntos en este tema
.jpg  enunciado.JPG ( 49,34 KB / 532) por Nikod11
03-10-2011 20:09
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
el pibe Sin conexión
Presidente del CEIT
Benderista
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.235
Agradecimientos dados: 5
Agradecimientos: 115 en 32 posts
Registro en: May 2011
YouTube
Mensaje: #2
RE: [Algoritmos] Ayuda con TP
no entiendo lo que queres hacer, pero si cual puede ser el problema

tenes un corte de control y de seguro lees al final el while, por lo que no lees el ultimo registro por la siguiente razon:
vos al leer moves el puntero del archivo a la posicion siguiente, por lo que en el caso del ultimo registro, al leerlo pasaria a apuntar a eof, es por eso que cuando volves a la condicion del while pregunta si es eof y dice que si, porque apunta a eof.

hay miles de formas de solucionar eso, llamados parches.
la mas optima, o al menos, una de las mas optimas, es hacer una funcion que se fije si es eof y que devuelva el registro leido.

conocida como la funcion "leer". tiene todo el polimorfismo.

en fin, si el problema es ese, avisa que te tiro un codigo copado

[Imagen: tolivi10.jpg]
2 Veces congresista por eArgentina
13 Veces congresista por eBolivia
1 Vez Emperador por eBolivia
Ex-Ministro de Salud eArgentino

[Imagen: Necromancer616.png]
03-10-2011 20:19
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Nikod11 Sin conexión
Secretario General
Sin estado :(
*******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 791
Agradecimientos dados: 85
Agradecimientos: 473 en 57 posts
Registro en: Mar 2011
Mensaje: #3
RE: [Algoritmos] Ayuda con TP
Ese seria el 'problema', mira te tiro el enunciado y el codigo


Program TP2;
uses crt;

type
ts20=string[20];
tracta=record
libro,codm,fecha,leg:longint;
folio:word;
nota:byte;
nomape:ts20;
end;

trtot=record
libro:longint;
folio:word;
tai,tau,taa,tad:byte;
end;

taactf=file of tracta;
tatotal=file of trtot;

var
actf:taactf;
total:tatotal;
ractas:tracta;
rtotal:trtot;
libroant:longint;
folioant:word;
flag:boolean;

Begin
clrscr;
assign(actf,'C:\actas.txt');
reset(actf);
assign(total,'C:\totales.txt');
rewrite(total);

if (not eof(actf)) then begin
read(actf,ractas);
flag:=false;
end else begin
flag:=true;
end;


while(not flag) do begin
libroant:=ractas.libro;
folioant:=ractas.folio;
rtotal.tai:=0;
rtotal.tau:=0;
rtotal.taa:=0;
rtotal.tad:=0;
while(not flag) AND (folioant=ractas.folio) AND (libroant=ractas.libro)do begin
rtotal.tai:=rtotal.tai+1;
case ractas.nota of
0: rtotal.tau:=rtotal.tau+1;
1: rtotal.tad:=rtotal.tad+1;
2: rtotal.tad:=rtotal.tad+1;
3: rtotal.tad:=rtotal.tad+1;
else
rtotal.taa:=rtotal.taa+1;
end;

if (not eof(actf)) then begin
read(actf,ractas);
flag:=false;
end else begin
flag:=true;
end;


end;
rtotal.folio:=folioant;
rtotal.libro:=libroant;
write(total,rtotal);
end;

//Lectura de totales desde disco

reset(total);
writeln('Libro, Folio, Ins., Aus., Apr., Des.');
while(not Eof(total)) do begin
read(total,rtotal);
writeln(rtotal.libro,' ',rtotal.folio,' ',rtotal.tai,' ',rtotal.tau,' ', rtotal.taa,' ',rtotal.tad);
end;

close(actf);
close(total);
writeln('Presione ENTER para salir...');
readkey;
end.



A eso me referia, creo que ahi se entiende mucho mejor =P


Archivo(s) adjuntos Imagen(es)
   
03-10-2011 20:34
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
el pibe Sin conexión
Presidente del CEIT
Benderista
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.235
Agradecimientos dados: 5
Agradecimientos: 115 en 32 posts
Registro en: May 2011
YouTube
Mensaje: #4
RE: [Algoritmos] Ayuda con TP
vos lo que queres es meter el codigo de tu primer comentario en una funcion ?

seria asi, en tu programa principal pones:


flag:=finArchivo(archivo,registro);



y arriba de todo, abajo de la seccion type pones:


function finArchivo(var actf: tipoArchivo, var ractas: tipoRegistro):boolean
begin
if (not eof(actf)) then begin
read(actf,ractas);
finArchivo:=false;
end else begin
finArchivo:=true;
end;
end;



si no es eso, no entiendo que precisas xD



edit: me comi un end;

[Imagen: tolivi10.jpg]
2 Veces congresista por eArgentina
13 Veces congresista por eBolivia
1 Vez Emperador por eBolivia
Ex-Ministro de Salud eArgentino

[Imagen: Necromancer616.png]
(Este mensaje fue modificado por última vez en: 03-10-2011 20:49 por el pibe.)
03-10-2011 20:48
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Nikod11 Sin conexión
Secretario General
Sin estado :(
*******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 791
Agradecimientos dados: 85
Agradecimientos: 473 en 57 posts
Registro en: Mar 2011
Mensaje: #5
RE: [Algoritmos] Ayuda con TP
Eso es lo que necesitaba =D Lastima que tiro:
Syntax error, ) expected but , found

function finArchivo(var actf: tipoArchivo, var ractas: tipoRegistro):boolean



Capaz porque no se pasan los registros en las funciones? xD Algo asi escuche que dijo el profe
03-10-2011 21:18
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
el pibe Sin conexión
Presidente del CEIT
Benderista
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.235
Agradecimientos dados: 5
Agradecimientos: 115 en 32 posts
Registro en: May 2011
YouTube
Mensaje: #6
RE: [Algoritmos] Ayuda con TP
capaz es ; y no ,

eso no me lo acuerdo

[Imagen: tolivi10.jpg]
2 Veces congresista por eArgentina
13 Veces congresista por eBolivia
1 Vez Emperador por eBolivia
Ex-Ministro de Salud eArgentino

[Imagen: Necromancer616.png]
03-10-2011 21:40
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Nikod11 Sin conexión
Secretario General
Sin estado :(
*******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 791
Agradecimientos dados: 85
Agradecimientos: 473 en 57 posts
Registro en: Mar 2011
Mensaje: #7
RE: [Algoritmos] Ayuda con TP
jajaja era eso nomas, muchas gracias che, ahi te tiro repu =P
03-10-2011 21:42
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
el pibe Sin conexión
Presidente del CEIT
Benderista
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.235
Agradecimientos dados: 5
Agradecimientos: 115 en 32 posts
Registro en: May 2011
YouTube
Mensaje: #8
RE: [Algoritmos] Ayuda con TP
de nada

tambien tenes los procedimientos, que al contrario de las funciones, no tienen devolucion

la sintaxis es relativamente igual

procedure elProcedimiento (parametros)
begin

end;

y se invoca

begin
codigo chorizo

elProcedimiento(parametros);

mas codigo chorizo
end.


saludos

[Imagen: tolivi10.jpg]
2 Veces congresista por eArgentina
13 Veces congresista por eBolivia
1 Vez Emperador por eBolivia
Ex-Ministro de Salud eArgentino

[Imagen: Necromancer616.png]
03-10-2011 21:47
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Nikod11 Sin conexión
Secretario General
Sin estado :(
*******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 791
Agradecimientos dados: 85
Agradecimientos: 473 en 57 posts
Registro en: Mar 2011
Mensaje: #9
RE: [Algoritmos] Ayuda con TP
Use varios procedimientos pero funciones 1 o 2 ponele xD
Sabes que con la funcion me anda mal :/ pero a lo cabeza sigue andando 10 puntos (? Y no creo que la funcion tenga algun error...
03-10-2011 21:57
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
el pibe Sin conexión
Presidente del CEIT
Benderista
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.235
Agradecimientos dados: 5
Agradecimientos: 115 en 32 posts
Registro en: May 2011
YouTube
Mensaje: #10
RE: [Algoritmos] Ayuda con TP
que es lo que anda mal ?

[Imagen: tolivi10.jpg]
2 Veces congresista por eArgentina
13 Veces congresista por eBolivia
1 Vez Emperador por eBolivia
Ex-Ministro de Salud eArgentino

[Imagen: Necromancer616.png]
03-10-2011 23:17
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
is-iedh Sin conexión
Campeon del cubo Rubik
No creo en los finales felices...
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 169
Agradecimientos dados: 1
Agradecimientos: 19 en 4 posts
Registro en: Feb 2011
Mensaje: #11
RE: [Algoritmos] Ayuda con TP
(03-10-2011 21:47)el pibe escribió:  de nada

tambien tenes los procedimientos, que al contrario de las funciones, no tienen devolucion

la sintaxis es relativamente igual

procedure elProcedimiento (parametros)
begin

end;

y se invoca

begin
codigo chorizo

elProcedimiento(parametros);

mas codigo chorizo
end.


saludos

Estas seguro que los procedures de Algoritmos y Pascal no devuelven nada??? la curse hace como 3 años y sinceramente ahora vivo en C por Sistemas Operativos, pero me parece q La diferencia entre Funcion y Procedimiento es que el primero solo devuelve 1 Valor y un Procedimiento podia devolver un monton (o sea 2,3 o 4).


of-topic:
Vos sos elpibe de er? yo era maguilla, me ubicas? mi acc ahora la usa un amigo asi q no me contactes por ahi.

=======================================
“Any fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction."
04-10-2011 02:03
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
el pibe Sin conexión
Presidente del CEIT
Benderista
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.235
Agradecimientos dados: 5
Agradecimientos: 115 en 32 posts
Registro en: May 2011
YouTube
Mensaje: #12
RE: [Algoritmos] Ayuda con TP
los procedimientos no devuelven, las funciones devuelven un valor.

en AMBOS casos, le podes pasar parametros por referencia, y modificar su valor dentro de la funcion o procedimiento.

fijate que en el caso de finArchivo, la funcion devuelve un flag, modifica el puntero del archivo y carga en la estructura ractas los datos del archivo.



Off-topic:
si, soy el de eR. Te recuerdo, te tenia como "amigo" ingame, pero ultimamente y hace mucho, ya no entro muy seguido al foro, como tampoco hago un seguimiento


saludos

[Imagen: tolivi10.jpg]
2 Veces congresista por eArgentina
13 Veces congresista por eBolivia
1 Vez Emperador por eBolivia
Ex-Ministro de Salud eArgentino

[Imagen: Necromancer616.png]
04-10-2011 06:47
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Nikod11 Sin conexión
Secretario General
Sin estado :(
*******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 791
Agradecimientos dados: 85
Agradecimientos: 473 en 57 posts
Registro en: Mar 2011
Mensaje: #13
RE: [Algoritmos] Ayuda con TP
Obvio que hice eso, lo raro es que me devuelve false. Es mas, me lee todos los registros si lo pongo la primera vez, pero con Folio=0 y Libro=0 Confused

Te dejo el codigo una vez mas y no te jodo mas =P


Program TP2;
uses crt;

type
ts20=string[20];
tracta=record
libro,codm,fecha,leg:longint;
folio:word;
nota:byte;
nomape:ts20;
end;

trtot=record
libro:longint;
folio:word;
tai,tau,taa,tad:byte;
end;

taactf=file of tracta;
tatotal=file of trtot;

function finArchivo(var actf: taactf; ractas: tracta): boolean;
begin
if (not eof(actf)) then begin
read(actf,ractas);
finArchivo:=false;
end else begin
finArchivo:=true;
end;
end;

var
actf:taactf;
total:tatotal;
ractas:tracta;
rtotal:trtot;
libroant:longint;
folioant:word;
flag:boolean;

Begin
clrscr;
assign(actf,'C:\actas.txt');
reset(actf);
assign(total,'C:\totales.txt');
rewrite(total);

//Aca usaria
//flag:=finArchivo(actf,ractas);

if (not eof(actf)) then begin
read(actf,ractas);
flag:=false;
end else begin
flag:=true;
end;

while(not flag) do begin
libroant:=ractas.libro;
folioant:=ractas.folio;
rtotal.tai:=0;
rtotal.tau:=0;
rtotal.taa:=0;
rtotal.tad:=0;
while(not flag) AND (folioant=ractas.folio) AND (libroant=ractas.libro)do begin
rtotal.tai:=rtotal.tai+1;
case ractas.nota of
0: rtotal.tau:=rtotal.tau+1;
1: rtotal.tad:=rtotal.tad+1;
2: rtotal.tad:=rtotal.tad+1;
3: rtotal.tad:=rtotal.tad+1;
else
rtotal.taa:=rtotal.taa+1;
end;

//Aca usaria
//flag:=finArchivo(actf,ractas);

if (not eof(actf)) then begin
read(actf,ractas);
flag:=false;
end else begin
flag:=true;
end;

end;
rtotal.folio:=folioant;
rtotal.libro:=libroant;
write(total,rtotal);
end;

//Lectura de totales desde disco

reset(total);
writeln('Libro, Folio, Ins., Aus., Apr., Des.');
while(not Eof(total)) do begin
read(total,rtotal);
writeln(rtotal.libro,' ',rtotal.folio,' ',rtotal.tai,' ',rtotal.tau,' ', rtotal.taa,' ',rtotal.tad);
end;

close(actf);
close(total);
writeln('Presione ENTER para salir...');
readkey;
end.


04-10-2011 12:43
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
el pibe Sin conexión
Presidente del CEIT
Benderista
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.235
Agradecimientos dados: 5
Agradecimientos: 115 en 32 posts
Registro en: May 2011
YouTube
Mensaje: #14
RE: [Algoritmos] Ayuda con TP
te falto var ractas

function finArchivo(var actf: taactf; var ractas: tracta): boolean;

[Imagen: tolivi10.jpg]
2 Veces congresista por eArgentina
13 Veces congresista por eBolivia
1 Vez Emperador por eBolivia
Ex-Ministro de Salud eArgentino

[Imagen: Necromancer616.png]
04-10-2011 14:06
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Nikod11 Sin conexión
Secretario General
Sin estado :(
*******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 791
Agradecimientos dados: 85
Agradecimientos: 473 en 57 posts
Registro en: Mar 2011
Mensaje: #15
RE: [Algoritmos] Ayuda con TP
Muchas gracias =D Tengo errores boludos por despistado nomas jajaja ya pueden cerrar el topic
04-10-2011 19:15
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)