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
Duda Teoria Algoritmos
Autor Mensaje
diegocuervo Sin conexión
Secretario de la SAE
Invisible
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 466
Agradecimientos dados: 15
Agradecimientos: 13 en 10 posts
Registro en: Aug 2010
Mensaje: #16
RE: Duda Teoria Algoritmos
ok, tanto en la pregunta 1 como en la 2 que hice, ambas me estan especificando como armar la estructura, en la pregunta 1, me tiran de hacer una lista con sublista, en la 2 de armar un array de 4000bytes y otro aparte de 6bytes. pero que no aparesca de esa forma, no significa que no pueda hacerlo o que no se resuelva asi. es asi?
por otro lado, entonces si una variable la pienso usar fuera de ese modulo, y usarla en otro, la declaro y pongo var en el procedure?
27-02-2012 14:47
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
nanuiit Ausente
♫ I'm Blue ...
... Da ba dee, da ba da ♫
**********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 8.871
Agradecimientos dados: 216
Agradecimientos: 626 en 210 posts
Registro en: Aug 2010
Mensaje: #17
RE: Duda Teoria Algoritmos
Sobre lo primero que preguntás: Vos disponés de eso que te dan pero digamos que en realidad las restricciones actuan como de sugerencia de cómo deberias armar la estructura (es una ayuda grande...)
A veces no especifican que quieren una lista con sublista, pero la solución más efectiva es esa. Cuando te están dando a entender algo, es relativamente conveniente que te atengas a eso...

En cuanto a lo otro: La tenés que declarar. Que sea o no VAR no depende de que la uses o no en otros lados sino que dicho parámetro se modifique a lo largo del algoritmo. Si vos pasás un valor fijo (cosa que no se suele hacer, pero es solo a modo ejemplo) entonces se declara pero no va con VAR, de hecho, sería un CONST.

Un ejemplo re pavo:

Genero un vector (como el que te conté en el otro post) donde no sé cuantos registros voy a cargar pero necesito saber cuántos son, entonces en mi procedimiento "Generar_Vector" declaro:

VAR M: tipo_dato_de_M

Ahora, más adelante en otro módulo, yo necesito ir leyendo cíclicamente los registros de mi array (o sea, for I to M). En ese procedimiento, declaro:

M: tipo_dato_de_M (SIN EL VAR)

Me explico?

Cualquier cosa chiflá, intento redactarlo lo mejor posible!

ALGORITMOS

Apuntes: Mem. Dinámica - Mem. Estática - Proc. y Funciones || Guías: Módulos + 83 Ejercicios || Finales: 2004-2013


[Imagen: digitalizartransparent.png]

[Imagen: firmananiv2.png]
(Este mensaje fue modificado por última vez en: 27-02-2012 16:18 por nanuiit.)
27-02-2012 16:16
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
diegocuervo Sin conexión
Secretario de la SAE
Invisible
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 466
Agradecimientos dados: 15
Agradecimientos: 13 en 10 posts
Registro en: Aug 2010
Mensaje: #18
RE: Duda Teoria Algoritmos
(27-02-2012 16:16)nanuiit escribió:  Sobre lo primero que preguntás: Vos disponés de eso que te dan pero digamos que en realidad las restricciones actuan como de sugerencia de cómo deberias armar la estructura (es una ayuda grande...)
A veces no especifican que quieren una lista con sublista, pero la solución más efectiva es esa. Cuando te están dando a entender algo, es relativamente conveniente que te atengas a eso...

En cuanto a lo otro: La tenés que declarar. Que sea o no VAR no depende de que la uses o no en otros lados sino que dicho parámetro se modifique a lo largo del algoritmo. Si vos pasás un valor fijo (cosa que no se suele hacer, pero es solo a modo ejemplo) entonces se declara pero no va con VAR, de hecho, sería un CONST.

Un ejemplo re pavo:

Genero un vector (como el que te conté en el otro post) donde no sé cuantos registros voy a cargar pero necesito saber cuántos son, entonces en mi procedimiento "Generar_Vector" declaro:

VAR M: tipo_dato_de_M

Ahora, más adelante en otro módulo, yo necesito ir leyendo cíclicamente los registros de mi array (o sea, for I to M). En ese procedimiento, declaro:

M: tipo_dato_de_M (SIN EL VAR)

Me explico?

Cualquier cosa chiflá, intento redactarlo lo mejor posible!

Joya, creo que lo entendi mejor. Osea va var si el parametro se modifica DENTRO del procedimiento no? Si dentro del procedimiento no se modifica, como vos recien pusistes en el segundo casi, no iria var. Despues lo que pase fuera del procedimiento no importa? Digamos con que haya una asignacion a esa variable dentro del procedimiento, cosa que va a cambiar su valor, iria var?
(Este mensaje fue modificado por última vez en: 27-02-2012 16:53 por diegocuervo.)
27-02-2012 16:47
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: #19
RE: Duda Teoria Algoritmos
supongamos que vos tenes en tu programa

var
cantidad: integer;
parametro: byte;
.
.
.
.
parametro := funcionLoca(cantidad);
.
.
.
.
.
End.

y arriba de todo vas a tener desarrollada funcionLoca. Puede ser de 2 formas:

Forma 1: El parametro cantidad se va a modificar:
funcionLoca (var cantidad: integer): byte
begin
cantidad:=1;
funcionLoca:=0;
end;


Forma 2: El parametro cantidad no se va a modificar:
funcionLoca(cantidad: integer): byte
var a:byte;
begin
a:= cantidad + 1;
funcionLoca:=a;
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: 27-02-2012 17:53 por el pibe.)
27-02-2012 17:52
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
diegocuervo Sin conexión
Secretario de la SAE
Invisible
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 466
Agradecimientos dados: 15
Agradecimientos: 13 en 10 posts
Registro en: Aug 2010
Mensaje: #20
RE: Duda Teoria Algoritmos
(27-02-2012 17:52)el pibe escribió:  supongamos que vos tenes en tu programa

var
cantidad: integer;
parametro: byte;
.
.
.
.
parametro := funcionLoca(cantidad);
.
.
.
.
.
End.

y arriba de todo vas a tener desarrollada funcionLoca. Puede ser de 2 formas:

Forma 1: El parametro cantidad se va a modificar:
funcionLoca (var cantidad: integer): byte
begin
cantidad:=1;
funcionLoca:=0;
end;


Forma 2: El parametro cantidad no se va a modificar:
funcionLoca(cantidad: integer): byte
var a:byte;
begin
a:= cantidad + 1;
funcionLoca:=a;
end;
Jaja perfecto, entendi. Como decia antes es entonces. Ya que estamos, cuando invoco al procedimiento pongo las variables con las que me manejo en el programa, pero cuando desarrollo el procedure aparte pongo unas genericas que sean del mismo tipo que las que entran en el programa? Por ejemplo, tengo una matriz donde cada campo es un puntero que apunta a una lista, entonces M(i,j) es un un puntero, en el programa principal pongo como variable de la invocacion al procedimiento inserta nodo M(i,j), pero cuando desarrollo el procedure aparte puedo poner: procedure inserta nodo, var lista: tipo puntero(mismo dato que M(i,j)). Esto es asi? Esta bien?
27-02-2012 18:29
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
nanuiit Ausente
♫ I'm Blue ...
... Da ba dee, da ba da ♫
**********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 8.871
Agradecimientos dados: 216
Agradecimientos: 626 en 210 posts
Registro en: Aug 2010
Mensaje: #21
RE: Duda Teoria Algoritmos
(27-02-2012 16:47)diegocuervo escribió:  Joya, creo que lo entendi mejor. Osea va var si el parametro se modifica DENTRO del procedimiento no? Si dentro del procedimiento no se modifica, como vos recien pusistes en el segundo casi, no iria var. Despues lo que pase fuera del procedimiento no importa? Digamos con que haya una asignacion a esa variable dentro del procedimiento, cosa que va a cambiar su valor, iria var?

Siempre que el valor del parámetro se modifique, es con VAR
Ahí igual te respondieron asi que es al cuete explayarme

ALGORITMOS

Apuntes: Mem. Dinámica - Mem. Estática - Proc. y Funciones || Guías: Módulos + 83 Ejercicios || Finales: 2004-2013


[Imagen: digitalizartransparent.png]

[Imagen: firmananiv2.png]
27-02-2012 18:52
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: #22
RE: Duda Teoria Algoritmos
(27-02-2012 18:29)diegocuervo escribió:  
(27-02-2012 17:52)el pibe escribió:  supongamos que vos tenes en tu programa

var
cantidad: integer;
parametro: byte;
.
.
.
.
parametro := funcionLoca(cantidad);
.
.
.
.
.
End.

y arriba de todo vas a tener desarrollada funcionLoca. Puede ser de 2 formas:

Forma 1: El parametro cantidad se va a modificar:
funcionLoca (var cantidad: integer): byte
begin
cantidad:=1;
funcionLoca:=0;
end;


Forma 2: El parametro cantidad no se va a modificar:
funcionLoca(cantidad: integer): byte
var a:byte;
begin
a:= cantidad + 1;
funcionLoca:=a;
end;
Jaja perfecto, entendi. Como decia antes es entonces. Ya que estamos, cuando invoco al procedimiento pongo las variables con las que me manejo en el programa, pero cuando desarrollo el procedure aparte pongo unas genericas que sean del mismo tipo que las que entran en el programa? Por ejemplo, tengo una matriz donde cada campo es un puntero que apunta a una lista, entonces M(i,j) es un un puntero, en el programa principal pongo como variable de la invocacion al procedimiento inserta nodo M(i,j), pero cuando desarrollo el procedure aparte puedo poner: procedure inserta nodo, var lista: tipo puntero(mismo dato que M(i,j)). Esto es asi? Esta bien?

Si el puntero es del mismo tipo si. masomenos seria algo asi ?

var
puntero: ^tipoPuntero;
begin
procedimientoLimado (puntero);
end.

y arriba tendrias:
procedure procedimientoLimadoo (var puntero: ^tipoPuntero) // los punteros SIEMPRE se pasan con var
var puntero2: ^tipoPuntero;
begin
lalala();
end;


Es decir, podes crear punteros del mismo tipo de dato en cualquier funcion o procedimiento

[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]
27-02-2012 19:02
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
diegocuervo Sin conexión
Secretario de la SAE
Invisible
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 466
Agradecimientos dados: 15
Agradecimientos: 13 en 10 posts
Registro en: Aug 2010
Mensaje: #23
RE: Duda Teoria Algoritmos
Si el puntero es del mismo tipo si. masomenos seria algo asi ?

var
puntero: ^tipoPuntero;
begin
procedimientoLimado (puntero);
end.

y arriba tendrias:
procedure procedimientoLimadoo (var puntero: ^tipoPuntero) // los punteros SIEMPRE se pasan con var
var puntero2: ^tipoPuntero;
begin
lalala();
end;


Es decir, podes crear punteros del mismo tipo de dato en cualquier funcion o procedimiento
[/quote]
Pero vos ahi justo le estas poniendo el mismo nombre al puntero del programa principal y al del procedimiento, ponele, se puede asi:
var puntero: ^tipoPuntero;
begin
procedimientoLimado (puntero);
end.

y arriba tendrias:
procedure procedimientoLimadoo (var Lista: ^tipoPuntero)
(todo el procedimiento)
27-02-2012 19:12
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: #24
RE: Duda Teoria Algoritmos
claro claro.

si bien para el que te corrige le conviene que mantengas los nombres, para que le sea mas facil. Eso se puede hacer tranquilamente y sin ningun problema. Porque lo que importa es el orden de los parametros.
ponele
var
a: integer;
b: float;
proc (a,b);


y lo desarrollas como:
procedure proc (entero: integer, flotante: float)

Resumiendo, no importa el nombre, pero si el orden

[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]
27-02-2012 20:34
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
diegocuervo Sin conexión
Secretario de la SAE
Invisible
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 466
Agradecimientos dados: 15
Agradecimientos: 13 en 10 posts
Registro en: Aug 2010
Mensaje: #25
RE: Duda Teoria Algoritmos
Perfecto, igual siempre que pueda mantengo el nombre.
27-02-2012 20:47
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
diegocuervo Sin conexión
Secretario de la SAE
Invisible
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 466
Agradecimientos dados: 15
Agradecimientos: 13 en 10 posts
Registro en: Aug 2010
Mensaje: #26
RE: Duda Teoria Algoritmos
Che si tengo un archivo con orden desendente, pero quiero armar una estructura enlazada con esos datos del archivo pero con orden ascendente, tendria que hacer una pila? que me invierte el orden? Pero el problema es que despues quiero recorrerla. Puedo usar procedure meter(cargo como pila) pero con nombre de variable lista, asi despues uso function buscar para buscar en la lista cargada como pila? esta bien esto?
Tambien se me ocurrio usar el procedimiento para cargar una lista ordenada por 2 campos. Ambas formas estan bien?
28-02-2012 15:12
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
CarooLina Sin conexión
Colaborador

********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 3.743
Agradecimientos dados: 1.496
Agradecimientos: 1.683 en 547 posts
Registro en: Sep 2010
Mensaje: #27
RE: Duda Teoria Algoritmos
tocas fondo! a vos te lo dan de forma desendente.. armas los registros y los metes en la lista directamente de forma ascendente por algun campo que se te ocurra por que seguro dps vas a necesitar buscar osea alguna referencia, no tenes necesidad de usar la pila.. osea mal no va a estar pero va a estar alpedo=)
28-02-2012 15:46
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
diegocuervo Sin conexión
Secretario de la SAE
Invisible
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 466
Agradecimientos dados: 15
Agradecimientos: 13 en 10 posts
Registro en: Aug 2010
Mensaje: #28
RE: Duda Teoria Algoritmos
Ok, me habia olvidado aclarar que el archivo esta ordenado por dos campos, entonces uso el inserta ordenado por 2 campos, para que me quede de forma ascendente por ambos campos(asi lo pedia el final), y despues tengo que usar la function buscar, para agregar una sub lista a cada nodo.
PD: no le encuentro mucha utilidad a las colas y pilas, salvo en las colas por si tengo que mantener el orden para guardar la posicion y luego hacer un seek.
28-02-2012 15:55
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
CarooLina Sin conexión
Colaborador

********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 3.743
Agradecimientos dados: 1.496
Agradecimientos: 1.683 en 547 posts
Registro en: Sep 2010
Mensaje: #29
RE: Duda Teoria Algoritmos
nunca use colas, no entiendo para que sirven y los finales que hice no las necesite. Pasa que vos decis: okey el archvio esta ordenado por dos campos.. pero eso tambien se podria solucionar con un vector de listas, si sabes la cantidad exacta de uno de loscampos..(ejemplo: ordenado por sexo y edad el vec tiene 2 y son dos listas, una para mujeres y otra para hombres. Como esta ordenado le encajas un corte de control y se termino el problema) ¿se entiende a que me refiero? Podes ordenar la lista por los dos campos, tendrias que modificarlo el procedimiento que el profe da que por lo general es por uno o dentro de la misma lista usar una sub lista. Pero a mi crterio, ya es algo que depende de los requisitos del problema en cuestion.

Solo una vez hice como diez, me paso algo asi como vos decis... pero en la lista que yo use como que eso dps terminaba sin darle importancia, por que creo que metia un corte de control o algo asi. La cuestion es depende el entorno del problema..

Capas te da la capacidad para un vec de listas, para lista y sub lista o para lista solo
28-02-2012 16: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: #30
RE: Duda Teoria Algoritmos
Las colas las usas cuando tenes que ordenar por orden de llegada en "tiempo real"


Hubo un final de camiones del ACA creo, ese era con colas porque te decia que el que estaba libre era enviado y podia llegar otro, pero si no era del msimo sector no iba o algo asi.

La cosa es que usando una cola (o varias) caia barbaro. De todas formas, recorda, que las pilas y colas son en escencia... listas normales !

[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]
28-02-2012 16:50
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)