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] Máximos y Mínimos
Autor Mensaje
dyvakrrillo Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 164
Agradecimientos dados: 167
Agradecimientos: 110 en 14 posts
Registro en: Aug 2011
Mensaje: #1
Thumbs Up [Algoritmos] Máximos y Mínimos Ejercicios Algoritmos y Estructuras de Datos
Hola a todos!!

Necesito ayuda con el siguiente ejercicio:

Se dispone de un lote de valores enteros positivos que finaliza con un número negativo.
El lote está dividido en sublotes por medio de valores cero. Desarrollar un programa que determine e informe:
a) por cada sublote el promedio de valores
b) el total de sublotes procesados
c) el valor máximo del conjunto, indicando en que sublote se encontró y la posición relativa del mismo dentro del sublote
d) valor mínimo de cada sublote
Nota: el lote puede estar vacío (primer valor negativo), o puede haber uno, varios o todos los sublotes vacíos (ceros consecutivos)



Traté de diagramarlo pero no se cómo hacerlo bien para tener coherencia en los sublotes. Lo empecé así:

[Imagen: diagramami23.jpg]
Diagrama

El problema es que creo que así me leería solo un lote... si no es que está mal hecho... La verdad tengo un nudo en la cabeza... y no sé cómo seguir o cómo rehacerlo.

Les agradecería la ayuda.

Saludos
Otros adjuntos en este tema
.jpg  EjercicioLotes0001.jpg ( 554,51 KB / 3586) por nanuiit
.jpg  EjercicioLotes0002.jpg ( 509,87 KB / 3398) por nanuiit
(Este mensaje fue modificado por última vez en: 02-05-2012 13:27 por dyvakrrillo.)
02-05-2012 13:26
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: #2
RE: [Algoritmos] Máximos y Mínimos
Hasta parece que falta parte del algoritmo.

1) Los nombres algunos son horribles, que es : subLote, sumCantidadInterna, cantInterna, V ,

Pones todo en cero y entras es un repeat untill que la condicion es que V sea negativo .¿Pero que es V?

nose es horrible para comprender, deja en claro bien que es cada cosa y con gusto te voy a ayudar. Dps el sublote es un XXX y tiene algo adentro? no entiendo nada la verdad =)

Vs as max le asignas v, pero v recien lo ingresas dps... es raro Confused

love
(Este mensaje fue modificado por última vez en: 02-05-2012 17:17 por CarooLina.)
02-05-2012 17:13
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: #3
RE: [Algoritmos] Máximos y Mínimos
lo tengo hecho en pascal, te paso el codigo:


procedure pro (n:integer;var cont:byte;var acum:word;var min:word;var max:word;i:byte;var pos:byte;var va:boolean);
begin
cont:=cont+1;
acum:=acum +n;
va:=true;
if (n<min) then
min:=n;
if (n>max) then begin
max:=n;
pos:=i+1;
end;

end;

procedure mos(var acum:word;var cont:byte;min:word;va:boolean);
begin
if (va) then
writeln ('Prom: ',(acum/cont):0:2);

cont:=0; acum:=0;
writeln ('El minimo del sublote es: ',min);

end;

var
acum,min,max:word;
n:integer;
i,cont,pos,flag:byte;
va:boolean;


begin

cont:=0; acum:=0; i:=0; flag:=0;

write ('Ingrese un numero: ');
read (n);
min:=n;
max:=n;
if (n>0) then begin
i:=1;
flag:=1;
pos:=i;
end;
repeat

va:=false;

while (n>0) do begin

pro(n,cont,acum,min,max,i,pos,va);
write ('Ingrese un numero: ');
read (n);
if (n<1) and (flag=0)then begin
i:=i+1;
flag:=0;
end;

end;

mos(acum,cont,min,va);

if(n>=0)then begin
write ('Ingrese un numero: ');
read (n);
min:=n;
end;
if (n>0) then
flag:=0;

until (n<0);

writeln ('');
writeln ('La cantidad de sublotes es: ',i);
writeln ('El maximo es: ',max,' y esta en el sublote numero ',pos);

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]
02-05-2012 17:23
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: #4
RE: [Algoritmos] Máximos y Mínimos
Uy, escribi la biblia y lo perdí. Ahora vuelvo a postear la respuesta
(02-05-2012 17:13)CarooLina escribió:  Hasta parece que falta parte del algoritmo.

Dijo que lo empezó así. O sea, no está terminado.

(02-05-2012 17:13)CarooLina escribió:  1) Los nombres algunos son horribles, que es : subLote, sumCantidadInterna, cantInterna, V ,

Poner "V" no es feliz, y es más, no sé si en instancia de examen se debería bajar puntos por eso [no estoy tan adentrada en el tema]. Los nombres tienen que ser explicativos. Los otros tres nombres se entienden perfectamente y no están mal. Podrían ser un poco más cortos, por ejemplo: sumCantInt. Sublote lo dejaría así porque "subl" remite más al término de sub-lista.

Por otro lado, si me das un rato te paso los diagramas correspondientes (no sé en qué curso estarás y con quién, pero muchos cursos no tocaron código aún)

Una cosita nomás (lo único que miré, después te reviso el diagrama si querés.. ahora no me siento muy bien)

Vos por ejemplo, mandás a imprimir:

'El promedio de cada sublote es:', sumCantInterna/cantInterna

Quedaría más feliz si eso lo pusieras en una variable. Calculá el promedio primero:

PROM <- sumCantInterna/cantInterna

Y después imprimi: 'El promedio de cada sublote es', PROM

Saludos!!

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: 02-05-2012 19:40 por nanuiit.)
02-05-2012 19:32
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
dyvakrrillo Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 164
Agradecimientos dados: 167
Agradecimientos: 110 en 14 posts
Registro en: Aug 2011
Mensaje: #5
RE: [Algoritmos] Máximos y Mínimos
(02-05-2012 17:13)CarooLina escribió:  Hasta parece que falta parte del algoritmo.

1) Los nombres algunos son horribles, que es : subLote, sumCantidadInterna, cantInterna, V ,

Pones todo en cero y entras es un repeat untill que la condicion es que V sea negativo .¿Pero que es V?

nose es horrible para comprender, deja en claro bien que es cada cosa y con gusto te voy a ayudar. Dps el sublote es un XXX y tiene algo adentro? no entiendo nada la verdad =)

Vs as max le asignas v, pero v recien lo ingresas dps... es raro Confused

Falta parte porque justamente no supe terminarlo...
Los nombres los usé tratando de resumir a qué se refieren:

V sería el valor a ingresar.
subLote es el contador de los sublotes que hay.
cantidadInterna es la cantidad de valores que hay en cada sublote.
sumCantidadInterna es la suma de los valores de cada sublote para luego usar esa suma y calcular el promedio.

El until (V<0) lo puse porque dice que el lote acaba con un valor negativo

Bueno.. eso es mas o menos lo que traté de representar.
(02-05-2012 19:32)nanuiit escribió:  Uy, escribi la biblia y lo perdí. Ahora vuelvo a postear la respuesta
(02-05-2012 17:13)CarooLina escribió:  Hasta parece que falta parte del algoritmo.

Dijo que lo empezó así. O sea, no está terminado.

(02-05-2012 17:13)CarooLina escribió:  1) Los nombres algunos son horribles, que es : subLote, sumCantidadInterna, cantInterna, V ,

Poner "V" no es feliz, y es más, no sé si en instancia de examen se debería bajar puntos por eso [no estoy tan adentrada en el tema]. Los nombres tienen que ser explicativos. Los otros tres nombres se entienden perfectamente y no están mal. Podrían ser un poco más cortos, por ejemplo: sumCantInt. Sublote lo dejaría así porque "subl" remite más al término de sub-lista.

Por otro lado, si me das un rato te paso los diagramas correspondientes (no sé en qué curso estarás y con quién, pero muchos cursos no tocaron código aún)

Una cosita nomás (lo único que miré, después te reviso el diagrama si querés.. ahora no me siento muy bien)

Vos por ejemplo, mandás a imprimir:

'El promedio de cada sublote es:', sumCantInterna/cantInterna

Quedaría más feliz si eso lo pusieras en una variable. Calculá el promedio primero:

PROM <- sumCantInterna/cantInterna

Y después imprimi: 'El promedio de cada sublote es', PROM

Saludos!!

El nombre V es el valor a ingresar... quería poner "valor" pero tengo a Pablo Sznedleder de profesor y hasa ahora le asignó una letra a los valores... tipo... ('Ingrese un numero: ' - N) y todo asi.. pero si me dices que pueden llegar a bajar puntos, lo corrijo =)

Si me pasas los diagramas -cuando te sientas bien =) - me vendrían genial así entiendo mejor como se trabaja todo el codigo.

GRACIAS!!!! =)
(02-05-2012 17:23)el pibe escribió:  lo tengo hecho en pascal, te paso el codigo:


procedure pro (n:integer;var cont:byte;var acum:word;var min:word;var max:word;i:byte;var pos:byte;var va:boolean);
begin
cont:=cont+1;
acum:=acum +n;
va:=true;
if (n<min) then
min:=n;
if (n>max) then begin
max:=n;
pos:=i+1;
end;

end;

procedure mos(var acum:word;var cont:byte;min:word;va:boolean);
begin
if (va) then
writeln ('Prom: ',(acum/cont):0:2);

cont:=0; acum:=0;
writeln ('El minimo del sublote es: ',min);

end;

var
acum,min,max:word;
n:integer;
i,cont,pos,flag:byte;
va:boolean;


begin

cont:=0; acum:=0; i:=0; flag:=0;

write ('Ingrese un numero: ');
read (n);
min:=n;
max:=n;
if (n>0) then begin
i:=1;
flag:=1;
pos:=i;
end;
repeat

va:=false;

while (n>0) do begin

pro(n,cont,acum,min,max,i,pos,va);
write ('Ingrese un numero: ');
read (n);
if (n<1) and (flag=0)then begin
i:=i+1;
flag:=0;
end;

end;

mos(acum,cont,min,va);

if(n>=0)then begin
write ('Ingrese un numero: ');
read (n);
min:=n;
end;
if (n>0) then
flag:=0;

until (n<0);

writeln ('');
writeln ('La cantidad de sublotes es: ',i);
writeln ('El maximo es: ',max,' y esta en el sublote numero ',pos);

end.


Ay muchas gracias!! Lo voy a probar y tratar de entender cómo va!! =)

Saludos ;)
(02-05-2012 17:23)el pibe escribió:  lo tengo hecho en pascal, te paso el codigo:


procedure pro (n:integer;var cont:byte;var acum:word;var min:word;var max:word;i:byte;var pos:byte;var va:boolean);
begin
cont:=cont+1;
acum:=acum +n;
va:=true;
if (n<min) then
min:=n;
if (n>max) then begin
max:=n;
pos:=i+1;
end;

end;

procedure mos(var acum:word;var cont:byte;min:word;va:boolean);
begin
if (va) then
writeln ('Prom: ',(acum/cont):0:2);

cont:=0; acum:=0;
writeln ('El minimo del sublote es: ',min);

end;

var
acum,min,max:word;
n:integer;
i,cont,pos,flag:byte;
va:boolean;


begin

cont:=0; acum:=0; i:=0; flag:=0;

write ('Ingrese un numero: ');
read (n);
min:=n;
max:=n;
if (n>0) then begin
i:=1;
flag:=1;
pos:=i;
end;
repeat

va:=false;

while (n>0) do begin

pro(n,cont,acum,min,max,i,pos,va);
write ('Ingrese un numero: ');
read (n);
if (n<1) and (flag=0)then begin
i:=i+1;
flag:=0;
end;

end;

mos(acum,cont,min,va);

if(n>=0)then begin
write ('Ingrese un numero: ');
read (n);
min:=n;
end;
if (n>0) then
flag:=0;

until (n<0);

writeln ('');
writeln ('La cantidad de sublotes es: ',i);
writeln ('El maximo es: ',max,' y esta en el sublote numero ',pos);

end.


Me podrias decir a qué se refiere (flag, va, acum, cont) ?? Porque no sé si son lo que creo, por eso pregunto para confirmar =)
(Este mensaje fue modificado por última vez en: 02-05-2012 21:26 por dyvakrrillo.)
02-05-2012 20:47
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: #6
RE: [Algoritmos] Máximos y Mínimos
Ya te hablé un poco de Pablo por MP

Acá va el ejercicio (era justo en una mitad de hoja y mitad en otra):

   
   

Si no se entiende, avisame! Te va a servir más que el código creo yo

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]
02-05-2012 21:46
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: #7
RE: [Algoritmos] Máximos y Mínimos
A genial =) No se si te bajan puntos, pero en los finales en la parte de abajo de las restricciones dice algo como "usar nombres alevosos, para entender mejor". Después de todo es para tu bien, si volves loco al que corrige el final y se pone garca...capaz influye.

-Vos definiste "V" como valor a ingresar, los ingresas por teclado... Pero vos pones max <-- V(ANTES DE INGRESAR) . V es un valor que todavia no ingresaste pero ya se lo estas asignando a max, error.
Lo que se puede hacer, pero nose si te especifica que tipos de valores tenes en el lote.. entonces. Ponele que te dicen se reciben numero tipo byte, el maximo es 256 (?creo jaja). Entonces vos decis max <-- -1, es OVBIOOOOO que todos los numeros van a ser mayores a -1, entonces el primero va a ser el mayor seguro (" sublote se me ocurre subir 2 9 6" ) osea dos, dps leo "9" que pasa, 9 es mayor a 2... 9 pasa a ser el maximo, ahora leo 6 pero 6 es menor que 9.. asique 9 sigue siendo el maximo. Lo mismo se puede hacer con el minimo, pero esta vez elegirias min = 257!(caso particular eh) y ES OVBIO que el primero va a ser menor a eso.. y asi seguis!

-cantidadInterna es la cantidad de valores que hay en cada sublote. (si no me equivoco) ¿Un sublote se me ocurre subir 2 3 9 6 entonces cant es 4, si dps subo 2 3 cantinterna es 2? Cada uno de estos sublotes se diferencian por que se ingresa un numero negativo... ENTONCES. La cantidad interna de cada uno puede ser igual, diferente, mayor menor... con esto te quiero decir que, no esta mal como esta puesta "cantidadInterna"<-- 0 , el problema es que esta mal puesto el lugar. Por que cambia el sublote y ese que tenia 4(lease primer ejemplo) debe volver SI O SI a cero.

- Si yo pruebo eso, Solo me va a dejar meter un sublote, el otro ya no! Entonces propongo:

que

Sublote <-- 0


Entra un while que diga mientras (alguna condicion) entonces..

Lo que queda que pusiste vos, le sacaria eso de min<--V pq si pones eso cuando preguntes V<min siempre pero SIEMPRE te tira false
a lo ultimoantes de terminar agregaria alguna condicion para agregar al while primero, cualquier cosa... no termino de entender si dice algo que diferencie que nose agreguen mas lotes. PEro eso ya es un detalle!!

-detalle : canInterna <--- canInterna + 1, tambien se puede escribir como Inc (canInterna) Es lo mismo, inc incrementa de a uno pero es fundamental que empieze desde cero la variable.

-Por que posInterna = cantInterna -1 si la posicion es justo el numero que ingresaste cuando es maximo.. ose me ahce ruido.


Che espero no haber flashado con anda y que me hayas entendido =)

love
02-05-2012 21:46
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: #8
RE: [Algoritmos] Máximos y Mínimos
Referencias:

MPR: posicion relativa (está en el imprimir, se entiende)
NSL: Numero sublote
KSL: cantidad de sublotes
PSL: promedio sublotes

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]
02-05-2012 21:52
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
dyvakrrillo Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 164
Agradecimientos dados: 167
Agradecimientos: 110 en 14 posts
Registro en: Aug 2011
Mensaje: #9
RE: [Algoritmos] Máximos y Mínimos
(02-05-2012 21:52)nanuiit escribió:  Referencias:

MPR: posicion relativa (está en el imprimir, se entiende)
NSL: Numero sublote
KSL: cantidad de sublotes
PSL: promedio sublotes

Ahh perfecto!! Ahora si se entiende mejor. Me voy a poner a leerlo cuidadosamente a ver si entiendo todo =)
02-05-2012 21:58
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: #10
RE: [Algoritmos] Máximos y Mínimos
Mirá Caro, yo supongo que si un final/parcial está muy bien hecho (como para sacarte 10), pero los nombres son medio desastre, un puntito se puede bajar. Más que nada porque es código, la idea es que otro lo mire y lo pueda entender.
Pablo Sz a veces hace las cosas muy "a su modo", y si ponen simplemente "V" capaz no les dice nada porque él lo hace así...

Byte es de 0 a 255

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]
02-05-2012 22:04
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
dyvakrrillo Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 164
Agradecimientos dados: 167
Agradecimientos: 110 en 14 posts
Registro en: Aug 2011
Mensaje: #11
RE: [Algoritmos] Máximos y Mínimos
(02-05-2012 21:46)CarooLina escribió:  A genial =) No se si te bajan puntos, pero en los finales en la parte de abajo de las restricciones dice algo como "usar nombres alevosos, para entender mejor". Después de todo es para tu bien, si volves loco al que corrige el final y se pone garca...capaz influye.

-Vos definiste "V" como valor a ingresar, los ingresas por teclado... Pero vos pones max <-- V(ANTES DE INGRESAR) . V es un valor que todavia no ingresaste pero ya se lo estas asignando a max, error.
Lo que se puede hacer, pero nose si te especifica que tipos de valores tenes en el lote.. entonces. Ponele que te dicen se reciben numero tipo byte, el maximo es 256 (?creo jaja). Entonces vos decis max <-- -1, es OVBIOOOOO que todos los numeros van a ser mayores a -1, entonces el primero va a ser el mayor seguro (" sublote se me ocurre subir 2 9 6" ) osea dos, dps leo "9" que pasa, 9 es mayor a 2... 9 pasa a ser el maximo, ahora leo 6 pero 6 es menor que 9.. asique 9 sigue siendo el maximo. Lo mismo se puede hacer con el minimo, pero esta vez elegirias min = 257!(caso particular eh) y ES OVBIO que el primero va a ser menor a eso.. y asi seguis!

-cantidadInterna es la cantidad de valores que hay en cada sublote. (si no me equivoco) ¿Un sublote se me ocurre subir 2 3 9 6 entonces cant es 4, si dps subo 2 3 cantinterna es 2? Cada uno de estos sublotes se diferencian por que se ingresa un numero negativo... ENTONCES. La cantidad interna de cada uno puede ser igual, diferente, mayor menor... con esto te quiero decir que, no esta mal como esta puesta "cantidadInterna"<-- 0 , el problema es que esta mal puesto el lugar. Por que cambia el sublote y ese que tenia 4(lease primer ejemplo) debe volver SI O SI a cero.

- Si yo pruebo eso, Solo me va a dejar meter un sublote, el otro ya no! Entonces propongo:

que

Sublote <-- 0


Entra un while que diga mientras (alguna condicion) entonces..

Lo que queda que pusiste vos, le sacaria eso de min<--V pq si pones eso cuando preguntes V<min siempre pero SIEMPRE te tira false
a lo ultimoantes de terminar agregaria alguna condicion para agregar al while primero, cualquier cosa... no termino de entender si dice algo que diferencie que nose agreguen mas lotes. PEro eso ya es un detalle!!

-detalle : canInterna <--- canInterna + 1, tambien se puede escribir como Inc (canInterna) Es lo mismo, inc incrementa de a uno pero es fundamental que empieze desde cero la variable.

-Por que posInterna = cantInterna -1 si la posicion es justo el numero que ingresaste cuando es maximo.. ose me ahce ruido.


Che espero no haber flashado con anda y que me hayas entendido =)

Gracias Caro!!!! =) Me explicaste super bien. Ya teniendo el codigo, el diagrama y tu explicacion seguro que me va a salir bien ahora =)
Saludos! =D
02-05-2012 22:23
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] Máximos y Mínimos
(02-05-2012 20:47)dyvakrrillo escribió:  
(02-05-2012 17:23)el pibe escribió:  lo tengo hecho en pascal, te paso el codigo:


procedure pro (n:integer;var cont:byte;var acum:word;var min:word;var max:word;i:byte;var pos:byte;var va:boolean);
begin
cont:=cont+1;
acum:=acum +n;
va:=true;
if (n<min) then
min:=n;
if (n>max) then begin
max:=n;
pos:=i+1;
end;

end;

procedure mos(var acum:word;var cont:byte;min:word;va:boolean);
begin
if (va) then
writeln ('Prom: ',(acum/cont):0:2);

cont:=0; acum:=0;
writeln ('El minimo del sublote es: ',min);

end;

var
acum,min,max:word;
n:integer;
i,cont,pos,flag:byte;
va:boolean;


begin

cont:=0; acum:=0; i:=0; flag:=0;

write ('Ingrese un numero: ');
read (n);
min:=n;
max:=n;
if (n>0) then begin
i:=1;
flag:=1;
pos:=i;
end;
repeat

va:=false;

while (n>0) do begin

pro(n,cont,acum,min,max,i,pos,va);
write ('Ingrese un numero: ');
read (n);
if (n<1) and (flag=0)then begin
i:=i+1;
flag:=0;
end;

end;

mos(acum,cont,min,va);

if(n>=0)then begin
write ('Ingrese un numero: ');
read (n);
min:=n;
end;
if (n>0) then
flag:=0;

until (n<0);

writeln ('');
writeln ('La cantidad de sublotes es: ',i);
writeln ('El maximo es: ',max,' y esta en el sublote numero ',pos);

end.


Ay muchas gracias!! Lo voy a probar y tratar de entender cómo va!! =)

Saludos ;)
(02-05-2012 17:23)el pibe escribió:  lo tengo hecho en pascal, te paso el codigo:


procedure pro (n:integer;var cont:byte;var acum:word;var min:word;var max:word;i:byte;var pos:byte;var va:boolean);
begin
cont:=cont+1;
acum:=acum +n;
va:=true;
if (n<min) then
min:=n;
if (n>max) then begin
max:=n;
pos:=i+1;
end;

end;

procedure mos(var acum:word;var cont:byte;min:word;va:boolean);
begin
if (va) then
writeln ('Prom: ',(acum/cont):0:2);

cont:=0; acum:=0;
writeln ('El minimo del sublote es: ',min);

end;

var
acum,min,max:word;
n:integer;
i,cont,pos,flag:byte;
va:boolean;


begin

cont:=0; acum:=0; i:=0; flag:=0;

write ('Ingrese un numero: ');
read (n);
min:=n;
max:=n;
if (n>0) then begin
i:=1;
flag:=1;
pos:=i;
end;
repeat

va:=false;

while (n>0) do begin

pro(n,cont,acum,min,max,i,pos,va);
write ('Ingrese un numero: ');
read (n);
if (n<1) and (flag=0)then begin
i:=i+1;
flag:=0;
end;

end;

mos(acum,cont,min,va);

if(n>=0)then begin
write ('Ingrese un numero: ');
read (n);
min:=n;
end;
if (n>0) then
flag:=0;

until (n<0);

writeln ('');
writeln ('La cantidad de sublotes es: ',i);
writeln ('El maximo es: ',max,' y esta en el sublote numero ',pos);

end.


Me podrias decir a qué se refiere (flag, va, acum, cont) ?? Porque no sé si son lo que creo, por eso pregunto para confirmar =)

flag y va son variables bandera, las utilizo para marcar cambios de estado (ejemplo, hay un 0 y significa que cambia el sublote)
acum es un acumulador, necesario para calcular el promedio, es la suma de los valores
cont es el contador, necesario para calcular el promedio, es la cantidad de valores.

[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]
02-05-2012 23:44
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
dyvakrrillo Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 164
Agradecimientos dados: 167
Agradecimientos: 110 en 14 posts
Registro en: Aug 2011
Mensaje: #13
RE: [Algoritmos] Máximos y Mínimos
(02-05-2012 21:52)nanuiit escribió:  Referencias:

MPR: posicion relativa (está en el imprimir, se entiende)
NSL: Numero sublote
KSL: cantidad de sublotes
PSL: promedio sublotes

A qué le llamas "inc" porque como no esta dentro de ninguna figurita y luego pones alguna variable entre parentesis, no entiendo.
03-05-2012 12:12
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: #14
RE: [Algoritmos] Máximos y Mínimos
Ah, gran detalle

INC(variable) es una función de Pascal que incrementa en 1 una unidad a una variable que vos le pases

Por ejemplo, es lo mismo decir:

N <- N + 1;

que

Inc(N)

A mi profe le gustaba hacer eso, y ese ejercicio lo copié del pizarrón en su momento.
Tambien hay otras (conocidas por saber matemática) que son

sin(variable)
cos(variable)
abs(variable)

Están por defecto!

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: 03-05-2012 12:21 por nanuiit.)
03-05-2012 12:20
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
dyvakrrillo Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 164
Agradecimientos dados: 167
Agradecimientos: 110 en 14 posts
Registro en: Aug 2011
Mensaje: #15
RE: [Algoritmos] Máximos y Mínimos
(03-05-2012 12:20)nanuiit escribió:  Ah, gran detalle

INC(variable) es una función de Pascal que incrementa en 1 una unidad a una variable que vos le pases

Por ejemplo, es lo mismo decir:

N <- N + 1;

que

Inc(N)

A mi profe le gustaba hacer eso, y ese ejercicio lo copié del pizarrón en su momento.
Tambien hay otras (conocidas por saber matemática) que son

sin(variable)
cos(variable)
abs(variable)

Están por defecto!

Ahhhh eso esta GENIAL!!!!! AHORA LO VOY A USAR DE AQUI EN ADELANTE !!! thumbup3


En el primer IF del diagrama (valor>max) le asignas a MSL<-- NSL .. entiendo que es el Max numero del sublote... y luego a MPR <-- KSL ... sería máxima posicion relativa... ESTOY EN LO CORRECTO??
(03-05-2012 12:20)nanuiit escribió:  Ah, gran detalle

INC(variable) es una función de Pascal que incrementa en 1 una unidad a una variable que vos le pases

Por ejemplo, es lo mismo decir:

N <- N + 1;

que

Inc(N)

A mi profe le gustaba hacer eso, y ese ejercicio lo copié del pizarrón en su momento.
Tambien hay otras (conocidas por saber matemática) que son

sin(variable)
cos(variable)
abs(variable)

Están por defecto!

Dos dudas más...

1) por qué a máximo lo inicias en -18?...
Yo lo que habria hecho en "Inicializar" sería... IF valor>0 then; max:=valor; ..... así no me aparecería el -18 en caso de que el lote este vacio ingresando el primer valor en negativo... no?

2) qué diferencia hay entre [If (...) then] y [If (...) then begin]... se usan para distintas cosas?
(Este mensaje fue modificado por última vez en: 03-05-2012 12:57 por dyvakrrillo.)
03-05-2012 12:22
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)