Donar $20 Donar $50 Donar $100 Donar mensualmente
 


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
Ayuda con Algoritmos
Autor Mensaje
Vizka Sin conexión
Militante
.
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 82
Agradecimientos dados: 38
Agradecimientos: 5 en 5 posts
Registro en: Nov 2012
Mensaje: #1
Ayuda con Algoritmos Parciales Algoritmos y Estructuras de Datos
Necesito que me ayuden con el tema de Repetir PARA y Repetir Mientras, no entiendo esta herramienta , se usar variables, decision, condicion, pero las estructuras de repeticion no me salen (Repetir PARA y Repetir Mientras). Osea en un ejercicio nose cuando poner estas cosas
15-06-2013 20:39
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
mercevico Sin conexión
Empleado de Fotocopiadora
Que los sueños, no sean sólo...
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 34
Agradecimientos dados: 23
Agradecimientos: 8 en 7 posts
Registro en: May 2013
Mensaje: #2
RE: Ayuda con Algoritmos
El "Repetir para" o comunmente conocido como For, sirve para repetir una cantidad de veces determinadas, cuando conoces cuántas veces se va a ejecutar, por ejemplo, un ejemplo medio tonto, queres mostrar los primeros 10 números, haces un for de 1 a 10, y sólo imprimis la variable que toma el valor:
for x:= 1 to 10 do
begin
writeln(x);
end;

El "Repetir mientras" o while, sirve para repetir mientras se cumpla una determinada condicion, esta es la que más se usa para recorrer archivos porque no sabes cuántas lineas tenes, entonces usas el comando EOF, mientras que no sea fin de archivo..

Espero que te sirva de ayuda... Saludos!!
15-06-2013 20:56
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] mercevico recibio 2 Gracias por este post
Vizka (20-06-2013), gonnza (20-06-2013)
Arshak Sin conexión
Profesor del Modulo A
2do año de 20
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 314
Agradecimientos dados: 70
Agradecimientos: 55 en 24 posts
Registro en: Feb 2012
Mensaje: #3
RE: Ayuda con Algoritmos
For y While son dos estructuras de control de la progarmación estructurada que sirve para iterar n cantidad de veces, en otras palabras, son algoritmos de repetición.

estructura del for:

For (condición)
{"lo que queres que se repita
}

estructura While

While (condicion)
{"lo que queres que se repita
}


Parecen lo mismo, pero la principal diferencia, y como dijo Mercevico, radica en que el For nos pide saber la cantidad de veces que queremos que algo se repita, mientras que el while nos pide una condición para que se detenga la repetición.

Cualquier algoritmo For se puede escribir como un while, no cualquier While puede ser abordado como For. Entonces, para qué es el For? es una manera más compacta y legible de repetir cierta acción, además es más eficiente en ciertos casos.

Para simplificar, si queres repetir algo y sabes la cantidad de veces exacta que se va repetir, utiliza una instrucción For, si queres repetir algo que no sabes cuántas veces va iterar, entonces tienes que utilizar un While.

Ejemplos:
+Se ingresan DIEZ (10) números enteros y se requiere calcular la suma de todos los numeros ingresados.
int n;
n=0;

For (i=0, i<10, i++)
{ scan(n);
n=n+n
}

creo que la sintaxis de c es asi, apenas me acuerdo


+Se ingresan valores enteros DIFERENTES de 0, calcule la suma de todos los números.

En este ejemplo no sé cuántos números se van a ingresar, pero sé que se van a ingresar hasta que uno de los números sea 0


int n;
n=0;

scan(n);

While (n!=0)
{ n = n+n;
scan(n);
}




En las instrucciones For no hay que tener muchas precauciones más que saber las veces que hay que ciclar, pero la instrucción WHile es algo más susceptible a error. Si en una instrucción while, la condición no es lógicamente correcto, se puede crear un ciclo infinito que no termina hasta que se cierra el programa, la causa de que pase eso es que la condición nunca se cumple. Por ejemplo si la condición fuera (n!=1,5) ya que nunca se va ingresar 1,5 porque no es un número entero.

"No soy un pesimista, soy un optimista bien informado"
José Saramago

Spoiler: Mostrar
[Imagen: grafico+es2g.png]
(Este mensaje fue modificado por última vez en: 15-06-2013 21:32 por Arshak.)
15-06-2013 21:23
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Arshak recibio 1 Gracias por este post
Vizka (20-06-2013)
rob. Sin conexión
Presidente del CEIT
Smile!
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.149
Agradecimientos dados: 126
Agradecimientos: 83 en 64 posts
Registro en: Dec 2010
Mensaje: #4
RE: Ayuda con Algoritmos
"Repetir para"?

Para que no te confundas, yo lo cambiaría por repetición exacta, ya que la cantidad de iteraciones la especificás vos a diferencia del "repetir mientras" (originalmente repeat until), donde iterará cuantas veces sea necesario hasta que no satisfaga la condición, la cual podés conocer como una de las dos clases de repeticiones indefinidas.

(15-06-2013 20:56)mercevico escribió:  El "Repetir para" o comunmente conocido como For, sirve para repetir una cantidad de veces determinadas, cuando conoces cuántas veces se va a ejecutar, por ejemplo, un ejemplo medio tonto, queres mostrar los primeros 10 números, haces un for de 1 a 10, y sólo imprimis la variable que toma el valor:
for x:= 1 to 10 do
begin
writeln(x);
end;

El "Repetir mientras" o while, sirve para repetir mientras se cumpla una determinada condicion, esta es la que más se usa para recorrer archivos porque no sabes cuántas lineas tenes, entonces usas el comando EOF, mientras que no sea fin de archivo..

Espero que te sirva de ayuda... Saludos!!

En realidad para el caso de leer archivos mientras no sea fin de archivo (aquí "NOT EOF(A)"), deberías usar un while/mientras, ya que en el último registro estarías trabajando con un EOF, y el while interrumpe eso a tiempo antes de que el algoritmo explote.


Naturalmente es cuestión de práctica, sólo que hay que tener en cuenta que hay un ciclo definido (for), y dos ciclos indefinidos: uno precondicional (while) y otro postcondicional (repeat until). En el momento de practicar olvidá lo de antes y recordá esto último, ya que tanto en código como algoritmicamente trabajarás con algo como eso.

wake me up when september ends!
(Este mensaje fue modificado por última vez en: 15-06-2013 21:50 por rob..)
15-06-2013 21:40
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] rob. recibio 1 Gracias por este post
Vizka (20-06-2013)
nanuiit Ausente
♫ I'm Blue ...
... Da ba dee, da ba da ♫
**********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 8.880
Agradecimientos dados: 216
Agradecimientos: 574 en 201 posts
Registro en: Aug 2010
Mensaje: #5
RE: Ayuda con Algoritmos
(15-06-2013 21:40)rob. escribió:  "Repetir para"?

Para que no te confundas, yo lo cambiaría por repetición exacta, ya que la cantidad de iteraciones la especificás vos a diferencia del "repetir mientras" (originalmente repeat until), donde iterará cuantas veces sea necesario hasta que no satisfaga la condición, la cual podés conocer como una de las dos clases de repeticiones indefinidas.

Repeat until es "repetir hasta que", que no es lo mismo que "mientras".

Vos tenés tres sentencias de iteración:

- For: Realiza un ciclo FINITO, es decir, de 1 a N, siendo N un valor conocido. Ejemplo: Necesito imprimir los primeros 50 registros de mi archivo, entonces hacés un:

FOR I := 1 to 50
(el resto del código)

- While: Realiza un ciclo que no sabés cuantas iteraciones va a tener, tampoco vas a saber si mínimamente ejecuta una vez. Ejemplo: de un archivo tengo que imprimir las personas mayores a 20 años... entonces realizás un WHILE, usando la condición "edad > 20"

- Repeat until: También es un ciclo indefinido, pero por la implementación que tiene, sí o sí la condición se cumple una vez. El repeat until no se suele usar mucho.

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]
16-06-2013 00:08
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] nanuiit recibio 1 Gracias por este post
Vizka (20-06-2013)
Anirus Sin conexión
Super Moderador
Sin estado :)
*********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.163
Agradecimientos dados: 77
Agradecimientos: 195 en 69 posts
Registro en: Nov 2009
Mensaje: #6
RE: Ayuda con Algoritmos
Estás con pascal o con C++? Voy a suponer C++.

Un for es:

for( accionInicial; condición; acciónFinalVuelta){

sentenciasARepetir;
}



Eso en un while equivaldría a:


accionInicial;
while(condición){

sentenciasARepetir;
acciónFinalVuelta;

}



Si quiero hacer algo 10 veces:

Con while:


int i=0;
while(i<10){
algo;
i++;
}


Con for:


for(int i=0; i<10; i++){
algo;
}

16-06-2013 19:55
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Anirus recibio 1 Gracias por este post
Vizka (20-06-2013)
nanuiit Ausente
♫ I'm Blue ...
... Da ba dee, da ba da ♫
**********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 8.880
Agradecimientos dados: 216
Agradecimientos: 574 en 201 posts
Registro en: Aug 2010
Mensaje: #7
RE: Ayuda con Algoritmos
Pero guarda que eso lo confunde (el tema del while finito). Lo que importa (en algoritmos) es que el while es un ciclo indefinido y el for es un ciclo de N cantidad de repeticiones. Se los toma como conceptos cerrados, si bien existe esa posibilidad de forzar una cantidad.

Nada, eso.

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]
17-06-2013 00:29
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] nanuiit recibio 1 Gracias por este post
Vizka (20-06-2013)
Vizka Sin conexión
Militante
.
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 82
Agradecimientos dados: 38
Agradecimientos: 5 en 5 posts
Registro en: Nov 2012
Mensaje: #8
RE: Ayuda con Algoritmos
Muchas Gracias a todos! en realidad hablaba de Pseudocodigo.

estos dos ejercicios son una boludes para ustedes pero no me sale, es de repeticion incondicional .

1) Implementar un programa que lea dos numeros M y N e iprima la suma de las primeras N potencias de M, contando desde la potencia 0.

2) Implementar un programa que lea tres números P, Q, R e imprima las potencias de P empezando desde la que esta en la posicion Q hasta la R.


ME AYUDANNNNNNN , GRACIAS!!!!!!!!!!
20-06-2013 17:07
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Maik Sin conexión
Presidente del CEIT
.
********

Otra
Otra

Mensajes: 5.297
Agradecimientos dados: 47
Agradecimientos: 190 en 136 posts
Registro en: Sep 2011
Mensaje: #9
RE: Ayuda con Algoritmos
yo tenia entendido que son diferentes porque el for, se ejecuta al menos una vez, siempre. mientras que el while no.

por ejemplo.


Cita:Si quiero hacer algo 10 veces:

Con while:


int i=0;
while(i<10){
algo;
i++;
}


Con for:


for(int i=0; i<10; i++){
algo;
}


ahi se ve que el while, primero pregunta "tal cosa, es cierta?" y luego ejecuta lo que tiene adentro.

el for, en cambio, primero ejecuta el codigo y luego, se pregunta "tal cosa, es cierta?"

tanto un while como un for pueden ser infinitos o no. ambos son muy parecidos dependiendo de la estructura, pero la diferencia es que el while primero pregunta la condicion, y luego ejecuta o no el codigo. el for por otro lado siempre va a entrar al menos una vez.


int i=10;
while(i<10){
algo;
i++;
}


Con for:


int i=10;
for(; i<10; i++){
algo;
}


ahi se ve una diferencia.

@ontopic:

esos dos programas que proponen la intuicion te dice que deberia hacer con un for cada uno, ya que los ciclos que va a tener son valores conocidos.

MODS
[Imagen: 2r5t075.jpg]
(Este mensaje fue modificado por última vez en: 20-06-2013 17:29 por Maik.)
20-06-2013 17:26
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Vizka Sin conexión
Militante
.
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 82
Agradecimientos dados: 38
Agradecimientos: 5 en 5 posts
Registro en: Nov 2012
Mensaje: #10
RE: Ayuda con Algoritmos
(20-06-2013 17:26)Maik escribió:  yo tenia entendido que son diferentes porque el for, se ejecuta al menos una vez, siempre. mientras que el while no.

por ejemplo.


Cita:Si quiero hacer algo 10 veces:

Con while:


int i=0;
while(i<10){
algo;
i++;
}


Con for:


for(int i=0; i<10; i++){
algo;
}


ahi se ve que el while, primero pregunta "tal cosa, es cierta?" y luego ejecuta lo que tiene adentro.

el for, en cambio, primero ejecuta el codigo y luego, se pregunta "tal cosa, es cierta?"

tanto un while como un for pueden ser infinitos o no. ambos son muy parecidos dependiendo de la estructura, pero la diferencia es que el while primero pregunta la condicion, y luego ejecuta o no el codigo. el for por otro lado siempre va a entrar al menos una vez.


int i=10;
while(i<10){
algo;
i++;
}


Con for:


int i=10;
for(; i<10; i++){
algo;
}


ahi se ve una diferencia.

@ontopic:

esos dos programas que proponen la intuicion te dice que deberia hacer con un for cada uno, ya que los ciclos que va a tener son valores conocidos.

igual no vi pascal todavia, lo quiero hacer en PSEUDOCODIGO jaja gracias!
20-06-2013 17:33
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Maik Sin conexión
Presidente del CEIT
.
********

Otra
Otra

Mensajes: 5.297
Agradecimientos dados: 47
Agradecimientos: 190 en 136 posts
Registro en: Sep 2011
Mensaje: #11
RE: Ayuda con Algoritmos
el for y el while van a ser asi en la mayoria de los lenguajes tengo entendido, y esa es su diferencia.

ahora, ni idea lo que es el pseudocodigo Yaoming

MODS
[Imagen: 2r5t075.jpg]
20-06-2013 17:38
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Maik recibio 1 Gracias por este post
Vizka (20-06-2013)
rob. Sin conexión
Presidente del CEIT
Smile!
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.149
Agradecimientos dados: 126
Agradecimientos: 83 en 64 posts
Registro en: Dec 2010
Mensaje: #12
RE: Ayuda con Algoritmos
El pseudocódigo es explicar la forma de crear un código verdadero, pero en un lenguaje más criollo. Generalmente el pseudocódigo es una boludez que no se pide y mucho menos en Algoritmos, pero a veces te puede ayudar a entender la lógica.

Vamos por partes:
1) Los puntos suspensivos son una suerte de indentación para que lo puedas entender bien. Pueda que esté mal, lo hice medio a lo apurado.

leer m
leer n
sumatoria vale 1 // caso base de la potencia 0 ya contemplada
para i=1 a n hacer
... subsumatoria vale 1 // para que arroje un resultado
... para j=1 a i hacer
... ... a subsumatoria multiplico por m
... fin para
... a sumatoria le sumo subsumatoria
fin para


Algo parecido deberías pensar en el punto 2, no lo hago yo porque estoy un poco apurado; es un poco más engorroso pero con ésta idea podés pensar algo. Pero como ves, el pseudocódigo te permite pensar esto para hacerlo simple en Pascal, C++ o donde quieras, ya que enuncia la lógica del enunciado, y no el modelo terminado.
Si hay algo mal chiflen, lo mismo si hay alguna duda.

Hasta luego!

wake me up when september ends!
(Este mensaje fue modificado por última vez en: 21-06-2013 00:00 por rob..)
20-06-2013 19:16
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.880
Agradecimientos dados: 216
Agradecimientos: 574 en 201 posts
Registro en: Aug 2010
Mensaje: #13
RE: Ayuda con Algoritmos
(20-06-2013 17:07)Vizka escribió:  Muchas Gracias a todos! en realidad hablaba de Pseudocodigo.

estos dos ejercicios son una boludes para ustedes pero no me sale, es de repeticion incondicional .

1) Implementar un programa que lea dos numeros M y N e iprima la suma de las primeras N potencias de M, contando desde la potencia 0.

2) Implementar un programa que lea tres números P, Q, R e imprima las potencias de P empezando desde la que esta en la posicion Q hasta la R.


ME AYUDANNNNNNN , GRACIAS!!!!!!!!!!

Vos preguntaste por los conceptos, lo que pasa que para ejemplificar había que tirar código o pseudocódigo.
Sabés redactar en pseudocódigo? A partir de lo que más o menos te explicó cada uno, deberías poder plantear los ejercicios, porque lo que vos no entendias era iteraciones, no pseudocódigo.
Si tenés dudas de cómo plantearlo en pseudocódigo, justo arriba de mi post está explicado.
Pero jamás te van a tomar pseudocódigo, así que no hagas mucho foco en eso. Qué lenguaje están viendo? Deberías hacer foco en aprender estas cosas en diagramas (que es lo que toman en parcial y final) y código (que toman en el tp)

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]
20-06-2013 19:34
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
rob. Sin conexión
Presidente del CEIT
Smile!
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.149
Agradecimientos dados: 126
Agradecimientos: 83 en 64 posts
Registro en: Dec 2010
Mensaje: #14
Re: Ayuda con Algoritmos
En resumen: ¿con quién tenés Algoritmos?

Enviado desde mi SK17a usando Tapatalk 2

wake me up when september ends!
(Este mensaje fue modificado por última vez en: 20-06-2013 22:33 por rob..)
20-06-2013 22:33
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Dem0 Sin conexión
( ͡° ͜ʖ ͡°)
._.
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 4.984
Agradecimientos dados: 9
Agradecimientos: 148 en 64 posts
Registro en: Apr 2008
Mensaje: #15
RE: Ayuda con Algoritmos
La diferencia que busca no debe ser entre for y while, sino la diferencia más significativa entre while y until.

El for es un "patrón" del while que lo agregaron como feature, "matemáticamente" no hay diferencia.
20-06-2013 23:47
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)



    This forum uses Lukasz Tkacz MyBB addons.