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
ezequiel.grillo
Nivel 4



Registrado: 11 Abr 2011
Mensajes: 74

Carrera: Informática y Sistemas
argentina.gif
MensajePublicado: Mie Oct 05, 2011 4:22 pm  Asunto:  Problema Pascal Responder citandoFin de la PáginaVolver arriba

Buenas, tengo problemas con el tp1 de la catedra guarna

El codigo q me genera problema es este(es una parte de todo):

Cita:
tcaracImgPBM=record
ID:byte;
nombre:string[30];
dimAncho:byte;
dimAlto:byte;
imagenFinal:timagenFinal; {array de una matriz}
end;

tvtotImgs= array [MIN_CANT_IMG..MAX_CANT_IMG] of tcaracImgPBM;

Procedure ingresoNombreImg (var totImgs:tvtotImgs; cantImgs:byte);
Begin
clrscr;
writeln('Ingrese el nombre de la imagen');
readln(totImgs[cantImgs].nombre);
End;


El problema es que nose porque se muere el programa cuando quiere cargar la posicion "nombre" en el registro.
cantImgs es una variable que la voy incrementando para ir cargando todo el array. Y este procedure lo llamo desde otro proced. que llena los otros campos de la misma manera.

La verdad que no veo cual es el problema :S y lo tengo que entregar mañana.....toy al horno pero bue algo tengo q salvar


PD: Me van a cagar a puteadas porque meti el codigo asi nomas pero no se usar latex....perdon


   OfflineGalería Personal de ezequiel.grilloVer perfil de usuarioEnviar mensaje privadoMSN Messenger
Symbolic
Nivel 6


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

Para mi el procedimiento esta bien hecho. ¿Podrias poner la parte del código en donde lo usas? xD

EDIT: no habia leido bien el comentario que se te moria en tiempo de ejecucion :P


Geminis Género:Masculino Caballo OcultoGalería Personal de SymbolicVer perfil de usuarioEnviar mensaje privado
ezequiel.grillo
Nivel 4



Registrado: 11 Abr 2011
Mensajes: 74

Carrera: Informática y Sistemas
argentina.gif
MensajePublicado: Mie Oct 05, 2011 5:28 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Por las dudas aca esta el codigo donde uso ese procedimiento

Cita:
Procedure ingresoImagen(var totImgs:tvtotImgs; var cantImgs:byte);
var
j,k:byte;
Begin
ingresoNombreImg(totImgs,cantImgs);
ingresoDim(totImgs,cantImgs);
ingresoID(totImgs,cantImgs);
For j:=1 to (totImgs[cantImgs].dimAlto) do
For k:=1 to (totImgs[cantImgs].dimAncho) do
Begin
write('[',j,',',k,'], Ingrese el valor 1/0: ');
readln(totImgs[cantImgs].imagenFinal[j,k]);
End;
inc(cantImgs);
End;


Cuando se muere me pone este mensaje "exited with exitcode=201".

De paso para que vean probe tambien llamando primero al proced. "ingresoID" y tmb se cuelga, el codigo de ingresoID es este

Cita:
Procedure ingresoID (var totImgs:tvtotImgs; var cantImgs:byte);
Begin
totImgs[cantImgs].id:=cantImgs;
End;


   OfflineGalería Personal de ezequiel.grilloVer perfil de usuarioEnviar mensaje privadoMSN Messenger
Amadeo
Nivel 9



Registrado: 20 Oct 2008
Mensajes: 1436

Carrera: No especificada
blank.gif
MensajePublicado: Mie Oct 05, 2011 5:32 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

http://community.freepascal.org:10000/bboards/message?message_id=269043&forum_id=24094


 Género:Masculino  OcultoGalería Personal de AmadeoVer perfil de usuarioEnviar mensaje privado
ezequiel.grillo
Nivel 4



Registrado: 11 Abr 2011
Mensajes: 74

Carrera: Informática y Sistemas
argentina.gif
MensajePublicado: Mie Oct 05, 2011 5:49 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Gracias por el link....pascal me decia algo de range error, el tema es q no entiendo donde esta el problema con el rango porque canImgs lo inicializo en 1 y el array lo defino con las constante q van de 1 a 10.
Ademas haciendo debuggin segui la variable cantImgs y llega con el valor 1 asi q no tendria que haber problemas :S


   OfflineGalería Personal de ezequiel.grilloVer perfil de usuarioEnviar mensaje privadoMSN Messenger
Amadeo
Nivel 9



Registrado: 20 Oct 2008
Mensajes: 1436

Carrera: No especificada
blank.gif
MensajePublicado: Mie Oct 05, 2011 5:55 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

ezequiel.grillo escribió:
Ademas haciendo debuggin segui la variable cantImgs y llega con el valor 1 asi q no tendria que haber problemas :S


Si, pero por ahí se pasa de largo del 10. Fijate eso.


 Género:Masculino  OcultoGalería Personal de AmadeoVer 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: Mie Oct 05, 2011 6:03 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Che pero en pascal si lo definis el rango con un tipo constante, despues podes usar byte? Yo recuerdo que usaba integer para acceder aunque nunca se me ocurrio preguntar si habia problema con byte.


Geminis Género:Masculino Caballo OcultoGalería Personal de SymbolicVer perfil de usuarioEnviar mensaje privado
ezequiel.grillo
Nivel 4



Registrado: 11 Abr 2011
Mensajes: 74

Carrera: Informática y Sistemas
argentina.gif
MensajePublicado: Mie Oct 05, 2011 6:03 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Ya esta soy un boludo, no estaba pasando cantImgs por referencia en la firma del proced. en la que creo el menu principal y cantImgs lo inicializaba antes.

Graciass..


   OfflineGalería Personal de ezequiel.grilloVer perfil de usuarioEnviar mensaje privadoMSN Messenger
ezequiel.grillo
Nivel 4



Registrado: 11 Abr 2011
Mensajes: 74

Carrera: Informática y Sistemas
argentina.gif
MensajePublicado: Mie Oct 05, 2011 9:41 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Muchachos tengo otra duda

No me permiten hacer hardcodeo y lo q tenia que guardar eran unos strings que guarden nombres de procesos para estas imagenes.
Lo que hice fue guardar estos strings en un proceso i desp con un readln lei el proceso que se ingreso por teclado y compare lo guardado en el registro con lo ingresado por teclado.
El problema es q pascal me los toma como distintos y siempre me entra a un if que puse para q escriba "proceso incorrecto".

Aka les dejo la carga del regsitro:
Cita:
Procedure cargaRegProc (var proc:tprocesos);
Begin
proc.INV:='#INV';
proc.ROT90:='#ROT90';
proc.DEL:='#DEL';
End;


Y aca esta el codigo cuando comparo:
Cita:
Begin
if ((procesoElegido <> proc.INV) or (procesoElegido <> proc.ROT90) or (procesoElegido <> proc.DEL)) then
Begin
writeln('ERROR: Proceso Incorrecto');
writeln();
writeln('Por favor reingrese el proceso a efectuar');
readkey();
End
else if (procesoElegido = proc.INV) then
Begin
vproc[cantProc].tipo_proc:=1;
inc(cantProc);
End
else if (procesoElegido = proc.ROT90) then
Begin
vproc[cantProc].tipo_proc:=2;
inc(cantProc);
End
else if (procesoElegido = proc.DEL) then
Begin
vproc[cantProc].tipo_proc:=3;
inc(cantProc);
End;
End


Lo que tendria que hacer es entrar en el if que le corresponda con lo ingresado, pero siempre entra en el primer if :S


   OfflineGalería Personal de ezequiel.grilloVer perfil de usuarioEnviar mensaje privadoMSN Messenger
Symbolic
Nivel 6


Edad: 33
Registrado: 25 Ago 2011
Mensajes: 204
Ubicación: Avellaneda
Carrera: Informática
CARRERA.informatica.3.jpg
MensajePublicado: Mie Oct 05, 2011 9:52 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Fijate que no es or es and. Con or con tal que uno sea verdadero entra al modulo.


Geminis Género:Masculino Caballo OcultoGalería Personal de SymbolicVer perfil de usuarioEnviar mensaje privado
ezequiel.grillo
Nivel 4



Registrado: 11 Abr 2011
Mensajes: 74

Carrera: Informática y Sistemas
argentina.gif
MensajePublicado: Mie Oct 05, 2011 11:15 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Listo....q salame jajaj

Gracias Symbolic Wink


   OfflineGalería Personal de ezequiel.grilloVer perfil de usuarioEnviar mensaje privadoMSN Messenger
ezequiel.grillo
Nivel 4



Registrado: 11 Abr 2011
Mensajes: 74

Carrera: Informática y Sistemas
argentina.gif
MensajePublicado: Jue Oct 06, 2011 8:10 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Ultima pregunta muchachos (lo ultimo que me queda para terminar)....tengo que hacer un proceso me que me gire una matriz 90 grados

Por ejemplo:

Cita:
0 0 0 1 0 0 0
0 0 1 1 ==> 1 0 0
0 1 1 1 1 1 0
1 1 1


La idea del algoritmo seria ir recorriendo la 1° matriz por columnas e ir asignando por filas pero de atras para adelante

Este es el codigo que escribi:
Cita:
Function rotarMat90 (var reg:tvtotImgs; imagenElegida:byte):timagenFinal;
var
k,j,aux:byte;
Begin
For k:=1 to (reg[imagenElegida].dimAncho) do
Begin
aux:=0;
For j:=1 to (reg[imagenElegida].dimAlto) do
Begin
reg[imagenElegida].imagenFinal[j,k]:= reg[imagenElegida].imagenFinal[k,(reg[imagenElegida].dimAlto - aux)];
inc(aux);
End;
End;

rotarMat90:=reg[imagenElegida].imagenFinal;
End;


Ya lo repase un monton de veces el codigo i me parece q funciona pero no me devuelve la matriz rotada
Ven que haya algo mal??

Tal vez sea error de otra parte del codigo pero revisando me parece q esta todo bien y quiero sacarme la duda de q este algoritmo este bien.

Saluds


   OfflineGalería Personal de ezequiel.grilloVer perfil de usuarioEnviar mensaje privadoMSN Messenger
ezequiel.grillo
Nivel 4



Registrado: 11 Abr 2011
Mensajes: 74

Carrera: Informática y Sistemas
argentina.gif
MensajePublicado: Jue Oct 06, 2011 8:13 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Perdon el ejemplo es este

0 0 0 1---------------- 0 0 0
0 0 1 1-----==>------1 0 0
0 1 1 1-----------------1 1 0
-------------------------1 1 1


   OfflineGalería Personal de ezequiel.grilloVer perfil de usuarioEnviar mensaje privadoMSN Messenger
Huey 7
Nivel 6



Registrado: 03 Mar 2010
Mensajes: 267

Carrera: Electrónica
CARRERA.electronica.5.gif
MensajePublicado: Jue Oct 06, 2011 10:34 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

ezequiel.grillo escribió:
Ya lo repase un monton de veces el codigo i me parece q funciona pero no me devuelve la matriz rotada
Ven que haya algo mal??

Dos problemas. Esto:

ezequiel.grillo escribió:
La idea del algoritmo seria ir recorriendo la 1° matriz por columnas e ir asignando por filas pero de atras para adelante

está bien pensado, pero esta línea:

Código:

reg[imagenElegida].imagenFinal[j,k]:= reg[imagenElegida].imagenFinal[k,(reg[imagenElegida].dimAlto - aux)];


a) No hace lo que estás proponiendo (¿error de mareo? Wink).
b) Escribe en la misma matriz que lee, así que vas "pisando" valores en posiciones que tenés que leer en iteraciones posteriores, perdiendo los valores originales.

_________________
Comisión de Estudiantes de Ingeniería Electrónica (ComElec)
Lista de correo - Página Web - Facebook

 Género:Masculino  OfflineGalería Personal de Huey 7Ver perfil de usuarioEnviar mensaje privado
ezequiel.grillo
Nivel 4



Registrado: 11 Abr 2011
Mensajes: 74

Carrera: Informática y Sistemas
argentina.gif
MensajePublicado: Jue Oct 06, 2011 11:17 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Recien me acabo de dar cuenta de eso i ahora veo q me lo aclaraaste aca.....:S no pego una

Otra pregunta como tendria que poner para q se escriba en otra matriz....si pongo un reg2 estaria bien o tendria q usar otro espacio de la matriz imagenFinal?


   OfflineGalería Personal de ezequiel.grilloVer perfil de usuarioEnviar mensaje privadoMSN Messenger
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.5034s ][ Pedidos: 20 (0.3779s) ]