DFD, clase9 – ciclo: mientras que..

Hola a todos/as,

Ya considerablemente avanzados con los algoritmos, ahora veremos el ciclo mientras que.. y su uso 😉

¿ Que es exactamene ?

Pues como su nombre lo indica es un ciclo, que funciona con condicion tambien, la condicion no es como el de «decision» que vimos en la clase7 si no que trata de » hacer algo mientras que esto este pasando «.

Donde declaramos lo que queremos «hacer esto«… y tambien declaramos el tope, es decir cuando va a culminar, eso es en la parte «mientras que» esto tengamos – esto este pasando – esto valga tanto – etc..

El simbolo que usaremos ya está declarado hace tiempo, puedes ver los simbolos: AQUI

Bien, comenzaremos con un ejercicio para ver como va la cosa 😉

12.) Hacer un algoritmo que permita ingresar un numero hasta el cual se mostrarán los numeros impartes que le anteponian, ejemplo:

usuario ingresa: 15

algoritmo muestra: 1,3,5,7,9,11,13

Bien, dice el ejercicio que pedimos un numero y ese será el tope de muestra, pero mostraremos solo los numeros impares que estubieron antes de el, vamos a ello:

– Abrimos DFD

– Insertamos de que trata el algoritmo

img1ampliar imagen

– Declaramos las variables que vamos a usar, en éste caso serán dos:

num = numero que va a ingresar el usuario/a

ref = referencia que vamos a tener, a partir de la cantidad que le asignemos a ésta variable comenzaremos a mostrar los impares hasta el numero que ingresaron osea, num

– Bien, declaramos las variables entonces:

img2ampliar imagen

EXPLICACION: bien, vemos que num=0 y ref=1, ahora les digo por qué:

num=0 porque a ésta variable se le asignara el valor que ingrese el usuario/a, y por lo tanto debe estar vacia.

ref=1 porque ésta va a ser la referencia que tomaremos, es el numero de donde vamos a arrancar a contar, y como sabemos el cero (0) no cuenta 😉 , entonces debemos comenzar con el uno (1)

– Ok, ahora pedimos hasta que numero desea generar los impares el usuario/a

img3ampliar imagen

img4ampliar imagen

– Como ya tenemos el numero que va a servir de tope para generar los numeros impares, queda ahora generarlos, para ello usaremos el ciclo mientras que

img5ampliar imgen

EXPLICACION: el ciclo mientras que sirve para hacer algo siempre y cuando cumpla la condicion, por ejemplo en éste ejercicio supongamos que el usuario ingreso el numero 9, entonces ése será el tope. Es decir que hasta ese numero se generaran los numeros impares, osea el algortimo deberá mostrar del 1 al 9 😉

Si el usuario hubiera ingresado la cantidad de cero (0) por ejemplo, el programa no mostraria ninguna cantidad porque no cumple con la condicion, la cual dice que 1 debe ser menor al numero que ingreso el usuario.

En el caso anterior:

¿ 1 era menor que 9 ? , Si entonces mostraba los impares del 1 al 9

En el nuevo caso:

¿ 1 era menor que 0 ? , No entonces no mostrara nada, porque no cumple la condicion expuesta 😉

– Ahora colocamos dentro de la condicon de mientras que lo que vamos a hacer mientras que se cumpla ref < num

img6ampliar imagen

– Ahi vemos que hemos colocado que, mientras ref < num el algoritmo mostrará ref, osea mostrara el valor que contiene, es decir: 1

– Pero si lo dejamos ahi lo que va a hacer es que mostrara el valor 1 que es lo que contiene la variable ref un numero infinito de veces porque el ciclo dice: si ref < num, pero como siempre 1 va a ser menor a 15 ( el ejemplo que supusimos arriba ), entonces nunca acabará el ciclo. Ademas de que esa no es la finalidad, lo que pedia el ejercicio es que mostremos los impares hasta llegar al numero, 15 por ejemplo.

– Entonces le debemos ir sumando valor a ref para que ya no valga 1 si no que tenga un nuevo valor que será el siguientee numero impar que le sigue, es decir 3 , y despues 5 , 7 , … asi sucesivamente. Para ello hay que sumarle un valor de 2 en cada reiteracion del ciclo. Así:

img7ampliar imagen

– Le sumamos el valor de dos (2) porque un numero impar mas dos (2) siempre va a dar un numero impar, por ejemplo:

1 + 2 = 3

3 + 2 = 5

5 + 2 = 7

– Bien, ahora cada vez que pase por el ciclo se mostrara ref que al comienzo valdrá uno (1), despues valdra tres (3), y asi sucesivamente hasta llegar al numero que ingreso el usuario/a.

– Si el usuario no ingresó un numero mayor a ref, es decir que ref no es menor a num, por ejemplo

ref = 1

num = 0

Como ref no es menor a num, entonces no entra al ciclo y de inmediato se salta al final. En nuestro caso mostrando el mensaje de: FIN

img8ampliar imagen

Saludos 😉



118 respuestas

  1. En este me tuve que poner a pensar un poquito xDD.

    • jajaja, si tienes alguna duda dimela nomas, para eso estamos 😉

      Saludos 😀

      • buenas es para ver si alguien me puede colaborar con un diagrama de flujo en dfd para ordenar 4 numeros de mayor a menor o viceversa.
        gracias espero me puedan colaborar.

      • eddy, tus clases muy buenas, pero necesito saber como hago para crear un DFD q despues de una repeticion (q ya lo tengo hecho) me ordene los datos de mayor a menor, le he cacharreado pero no doy

      • hola que tal , me parese muy bien la ayuda que tu nos ofrece por este medio gracias, para mi es de muchisima ayuda

      • como sacar el cociente entero de una division en freedfd

      • Hola, he intentado hacer un ejercicio que me pida un número y que determine si es par o impar, pero mi profesora me pidió eso con un ciclo mientras y ahí es donde no sé como hacerlo, lo mismo un ejercicio que calcule la velocidad. Agradezco si me pueden colaborar. Gracias

      • hola amigo quiero saber como ingresar valores por el escritorio y que me imprima esos valores al final

    • Excelente profe muy incisivo su ejemplo muchas gracias…

  2. men la verdad no me salio lo que queria esto para que es que era porque me enrrede todo.

    • Hola Daniel,
      pero vamos dime que parte no has entendido, porque no me vas a decir todo, si esta todo bien detallado ._. , pero si quieres dime la partecita en donde te enredaste que yo tratare de aclarartela sin problemas 😉

  3. Hola Muy buena tu forma de explicar
    jejeje gracias me salvas porque mañana tengo examen y habia faltado a clases el dia que explicaron el ciclo mq

    gracias men si quieres pongo en mi pagina esto, claro si me autorizas

    • Hola Cesar,
      Un gusto ayudarte para tu examen 😉

      P.D. Mis clases no pueden ser copiadas por la licencia, solo son producidas unicamente para éste blog. Saludos.

    • tengo un ejercico ayudaaaaa
      hace un programa que calcule el ganador de la votacion de 2 candidatos teniendo en cuenta ke son solo 5 votos en total ylos 5 son validos no hay nulos pero si en blanco graciasssss

  4. wuaaa-! q bn. este ejemplo me aclaro muchas dudas q tenia sobre el «ciclo mientras» uff-! graciias-!

  5. buena explicacion,logica suavecita pero convincente .gracias!! saludos…ah! esta buenisimo todo esto.

    • Hola yiye, bienvenido al blog 😀
      Gracias por el comentario, para mi es un placer haberte ayudado compañero. Suerte en todo, saludos! 😉

  6. disculpa cual es el nombre de el programa que usas para ir haciendo los diagramas? y donde lo puedo encontrar? gracias

    • Hola Gabriel, bienvenido al blog 😀
      Pues el nombre del programa como has de observar en el apartado de la izquierda del blog donde dice «Categorias disponibles» está el DFD y el Dev-C++ . El DFD es el que preguntas, osea el software dedicado a realizar diagramas de flujo / algoritmos. Lo puedes bajar aqui mismo en mi blog, te recomiendo que lo hagas asi pues está libre de virus y protegido por contraseña para evitar cualquier problema, te recomiendo que mires [ AQUI ] ahi veras que lo puedes descargar, tambien te recomiendo que pases por la seccion de ayuda [ AQUI ], en donde verás en orden cronologico las clases que he ido subiendo tanto en DFD como en Dev-C++ par que vayas practicando y aprendiendo Gabriel, en fin mucha suerte y saludos 😉

  7. hola amigo eddy necesito un dfd que desconponga una cantidad dada y luego la muestre sus digitos y la suma de estos gracias .

  8. super buena esa explicacion muchas gracias me sirvio mucho

    • Hola Eliza 😀
      Mucho gusto, que bueno que te haya servido mi explicacion siempre trato de hacerlo lo más entendible posible teniendo en cuenta que la programacion en si es dificil de aprenderla, peor aun explicarla y mas cuando es asi por este medio, gracias Eliza por el comentario. Saludos!

  9. oye pana… verdaderamente… magistral tu curso… no te imaginas cuanta ayuda me resultastes… mil gracias Sr. Eddy… por hacer que algo tan conplicado como lo es la programacion sea comprendido facilmente por nosotros… la gente como usted, le facilita las cosas a muchas personas… siga asi…

    • Muchas gracias Renzo para mi es un enorme placer, muchas gracias en verdad por apreciar mi trabajo. Un saludo afectuoso y buena suerte, por aqui estamos 😉

  10. pana no entiendo a la hora de imprimir por pantalla no me sale lo que estoy buscando

    • Hola Trish, bienvenido!
      Podrias ser mas claro, es que no entiendo bien tu duda ( en los 3 comentarios que dejaste ), dime en que parte especificamente no entiendes, y como es posible que no sale lo que estas buscando si el ejercicio esta comprobado?. Hasta pronto!

  11. es q me explicaron q cuando utilizamos mientras debemos generar un incremento desps de haber impreso el resultado pero en tu explicacion no veo q lo utilices y ps el problema es q necesito declarar dos variables pero al guiarme por tu proceso no veo la forma de q salga bn

    el problema dice:
    Dada las horas trabajadas de una persona y el valor por hora. Calcular su salario e imprimirlo.

    • Y para que proceso usas el mientras ahi ? , ese ejercicio desde mi punto de vista no necesita mientras. Al menos que vayas a validar cuantas horas extras pueden aplicar los trabajadores ya que el valor por hora es constante, eso no lo deberia ingresar el usuario. De ahi no veo para que necesitas el mientras en ese ejercicio. Tampoco sé sobre un incremento en el «ciclo mientras», pues el incremento es en el «ciclo para»; porque mientras se usa cuando no se sabe cuantas veces va a pasar algo, puede pasar infinitas veces, y que hará ese incremento del que hablas?, pues incrementara infinitas veces, no tiene sentido me captas?.

  12. vale gracias es q tenia esa duda de una explicacion por ahora esta entendido todo creo q volveremos a hablar en otra ocasion

  13. Como puedo dado un numero determinar la suma de sus digitos.

  14. gracias por las tutorias son de gran ayuda a los que estamos despistados con la programacion.

  15. quisiera pedir colaboracion , me piden hacer un reloj que muestre los segundos , los minutos , las horas (militar), a punta de mientras , gracias por cualquier aporte.

  16. ese ejercicio ya lo diseñe (el del reloj)mira lees N q seria la variable, luego declaras las variables q serian s,m,h luego dics q a m la haga =0 esdecir m=0
    luego lo mismo con s.
    pones luego una condicion con un si o un if como quieras llamarlo q dic h>0 haga
    habres otro if q dic h<=24 haga luego pones un MQ q dice s<=60 Haga escribir h,m,n luego s=s+1
    luego otro if q dic s=60 haga m=m+1 luego le decimos q a s lo iguale a 0 s=0
    otro if q dic m=60 haga h=h+1
    luego q m =0cierras el if luego cierras el otro if luego dics en otro if h=24 haga h=0 luego cierras ese if cierras el MQ cierras el otro if y cierras el otro if y fin del programa ahi esta el ejercico espero q te haya servido y si no me avisas por mail

  17. hacer un algoritmo que sume dos tiempos dados en minutos y segundos sin uyilizar mod 60 me trabe en este porfa una ayudita eddy

    • Hola Trish, primero agradecerte por ayudarlo al usuario «Andrey», es bienvenida la ayuda de cualquier lector y me parece bueno que se ayuden entre ustedes tambien ( lastimosamente yo no le entendi a lo que se referia en el ejercicio y no cuento de mucho tiempo para realizar los ejercicios que me proponen por lo general ); sobre tu tema hoy me saque un tiempito para ayudarte lo he subido en la seccion miscelanea de ejercicios en DFD [ AQUI ], por ahora está como ultimo en el puesto 46. Saludos!

  18. vale no te preocupes mientras yo pueda colaborar lo hare con gusto es para mi un gusto poder ayudar a otros y de esa forma tambn practiko para ser mejor y te agradesco por el ejercicio q propuse me sirvio de mucho

  19. hola q tal quisiera saber ejeplo si termino mi programa y quiero que pregunte si desea hacerlo otra vz si de nuevo no fin… nose como hacerlo

    • Hola Alexis, bienvenido!
      Pues mira eso se hace con la instruccion de repeticion do – while, en éste caso como son diagramas de flujo en DFD usas el simbolo MQ ( mientras que ); la forma es que declaras una variable que va a ser la indicadora de si el usuario quiere seguir o no ejecutando el programa, por ejemplo; variable «x» y validas: que mientras «x» sea un numero que tu decidas por ejemplo 5 signfica que el usuario acepta seguir ejecutando el programa, si es cualquier otro numero que finalice la aplicacion. Recuerda «x» debes pedirle al usuario pero internamente, debe estar validado que si es 5 siga ejecutando, caso contrario ( cualquier otro numero 0,1,-5,300… ) finalice la aplicacion.
      Asi funciona, saludos!

  20. oye eddy un fa me podrias dar un ejemplo del manejo de la condicion do-while la vdd q de confundido no entendi bn, osea comprendi para q sirve la condicion mas no como se ejecuta podrias colaborarme gracias

    • Osea los ejemplos los puedes encontrar aqui en el Blog Trish, sobre lo que dices vamos..
      A) Bien sabes para que sirve
      B) Ahora reforcemos como se ejecuta:
      El ciclo MQ ( mientras que ) sirve para hacer algo un numero ilimitado de veces hasta que se cumpla
      un parametro que nosotros le podemos dar, por ejemplo si decimos:
      » MQ num < 0 » , entonces » pida de nuevo el numero »
      Entonces si ves ? , ese ciclo se repetirá infinitas veces hasta que el numero que ingrese el usuario/a sea mayor que cero, porque la condicion dice que haga eso mientras que sea menor que cero, siendo el numero mayor que cero se rompe la condicion y terminaria el programa ( fin del MQ )… Tambien recuerda en esa imagen yo solo coloqué la parte que necesitabas para entender, si quieres que ese sea un «ejemplo» y hacerlo, pues debes declara primero la variable num porque no la reconocerá el ciclo MQ si no la has declarado.
      Saludos!

      • ps la vdd el MQ lo se manejar pero mi pregunta era como se utiliza el do-while o si es lo mismo q el MQ??
        de resto ps por ahora lo maejo y me defiendo de todas formas gracias

      • Es lo mismo trish,
        1) «mientras que» en DFD es: «MQ»
        2) «mientras que» en C++ es: «Do-While»
        Y tu la pregunta me la hiciste en la secccion DFD por eso te respondo en DFD.
        Ahora en C++ puedes ver todo sobre aquello [ en su respectiva clase ]
        Saludos!

  21. oye eddy un fa he intentado hacer un algoritmo q me muestre la sucesion fibonacci y no he podido me podrias hechar una manito?? y ps q imprima cada digito de su sucesion

    • Hola Trish, pues mira he conseguido un tiempito para darte una mano recurda que tengo un horario agotador asi que demorare un poco en responder por lo general. Puedes revisarlo en la miscelanea de ejercicios en DFD [ AQUI ] y por ahora está como ultimo en la posicion 48. Saludos!

  22. Muy Buenas Tardes
    Veo interesante las clases, encontre esta web y fijate que ya me llamo la atencion que me puse a practicar lo que se detalla en ella.

    Desde ya mis felicitaciones por este esfuerzo tan grande que realizas y espero continue con este clases.

    • Hola Jorge, bienvenido!
      Muchisimas gracias de verdad y espero ayudarte en lo que pueda con mis clases. Un gusto y por aqui estamos. Saludos!

  23. eddy un fa mira necesito hacer una secuencia exponencial como la realizo??

  24. mira tengo q decirle al programa en pocas palabras esto cuanto es 2 a la 5 y pues tener q la base sea la misma pero el esponente vaya incrementando de 1 hasta 5

    • Pues ahi deberias usar el ciclo para porque sabras hasta cuando se incrementará el exponente, asi como dices de 1 a 5… Y dentro de ese «ciclo para», hacer la operacion exponencial que es multiplicar el mismo numero unas x veces ( que tu sabras dependiendo del ciclo para que va incrementando de 1 en 1 ), asi comenzó con 2^1,2^2…2^5.

      • vale osea q declr q se incrementa la variable q lleva el exponente q interesante

  25. oye y en cuanto al de fibonacci no entendi me perdi

    • Pues habias dicho que estabas intentando hacerla y que te de una mano, si estabas intentando ya deberias saber mas o menos como vá eso del fibonacci
      mira es sumar los dos numeros anteriores y ese te da el posterior, entonces para saber el termino 10, debes saber el termino 8 y 9 porque al sumar el termino
      8 y el termino 9 de ahi sale el termino 10 en fibonacci, lo unico que se conoce es que el primer y segundo termino son 0 y 1 respectivamente.

      • vale ya entendi ya lo pude sacar osea sumar los dos primero el resultado q me da debe ser el tercer numero
        luego digo q el primero es igual al segundo y q el segundo es igual al tercerio y asi sucesivamente vdd??

      • exacto

  26. entendido el ciclo mientras, solo me falta el ciclo hasta me gustaria que lo explicaras buen trabajo el tuyo. gracias. hasta luego.

    • Hola Daniel, bienvenido!
      Pues mira el «ciclo hasta» del cual hablas supongo que será el «ciclo para», el cual si lo tengo tanto en DFD como en C++ , puedes acceder a ellos desde el mapa de sitio en la pestaña de [ AYUDA ]

  27. buenas muy completo el programa felicitaciones, estoy intentando desarrollar un ejercicio : en una bodega se tiene informacion sobre las cantidades de vino producidas a lo largo de los ultimos años(informacion ke nosotros la damos ) hacer un diagrama que imprima y calcule lo siguiente.
    el total producido de cada tipo de vino son 5 tipos a lo largo de n años
    el total producido de vino por año
    el año en que se produjo la mayor cantidad de litros de vino del tipo 2 imprimir la cantidad de litros
    verificar si hubo algun año el cual no se produjo el vino tipo 3 y si existe el año imprimir.

    agardesco su atencion cualquier ayuda estaria muy agradecido

    • Hola David, bienvenido!
      Pues vamos, que ahi todo lo ingresas x lo general.. debes calcular el total producido de cada tipo de vino
      a lo largo del año, y el total producido.. entonces saca promedios cuantos meses tiene el año? 12
      entonces ingresa un promedio de cuantos se realizan por mes y ahi sacarás cuantos fueron al año.
      Y asi con cada tipo, debes saber que siempre hay un tipo de vino q se produce mas que otros por
      cuestion de costo,materia prima disponible, precio, etc..
      PD: yo no hago sus trabajos, puedo darles una mano eso si. Saludos!

  28. sera q me pueden ayudae a hacer un programa que calcule el cociente y el residuo de una division utilizando solo el operador resta … gracias

    • Hola Yuri, bienvenid@!
      Pues mira a ese metodo se le llama restas susesivas, ya que para aumentar en cierta cantidad se multiplica por cierta cantidad, si quieres disminuir se divide para cierta cantidad hasta cuando lo desees, en tu caso habra que restar susesivamente hasta cuando el residuo sea si es que quieres hacer divisiones sucesivas con 2
      numero=cociente –> para que en numero quede lo que sacaste enantes
      y eso hacerlo un numero indeterminado de veces (usando entonces el ciclo «mientras que» porque no sabes cuantas veces será)
      hasta que llegue a <=1 entonces, dirias que haga eso mientras que cociente es <=1.
      Algo asi deberias aplicar, esa es la idea. Saludos!

  29. 20) Se dice que un entero positivo N es un número primo si los únicos enteros positivos que lo dividen son exactamente 1 y N. Diseñe un diagrama de flujo que lea un número M, y obtenga y cuente todos los números primos menores a M.
    se los pido por favor denme una guia no se ni por odnde empezar

    • Hola Joan, bienvenido!
      Pues si para saber si un numero es primo debe ser divisible unicamente para si mismo y para 1.
      El truco de este ejercicio es usar «ciclos para» donde hagas pasadas (barridos)
      asi:
      – Si el numero que ingreso fue 11 (es primo, pero debemos calcularlo)
      un barrido con un for que vaya de 1 hasta el numero y pregunte
      ¿es 11 mod 1 = 0? –> en castellano: «¿al dividir 11 con 1 el residuo es cero?»
      si es cierto entonces son divisibles entonces ya tenemos que 11 es divisible para la unidad (osea 1)
      falta saber si es divisible para si mismo (pero tambien ver si es divisible para otro numero, ya que
      si es divisible para otro numero ya no es primo porque seria divisible para 1,para si mismo y para otro numero
      y eso ya no es primo), entonces seguiria el «ciclo para haciendo»:
      ¿es 11 mod 2 = 0? , ¿es 11 mod 3 = 0? , ¿es 11 mod 4 = 0? , ¿es 11 mod 5 = 0? ,
      ¿es 11 mod 6 = 0? , ……….. ¿es 11 mod 10 = 0? , ¿es 11 mod 11 = 0? —> Si, entocnes fueron solamente 2.
      Entonces decimos «11 es primo». Esa es la idea, saludos!

  30. 43) En un arreglo unidimensional se ha almacenado el número total de toneladas de cereales cosechadas durante cada mes del año anterior. Construya un diagrama de flujo que proporcione la siguiente información:
    a) El promedio anual de toneladas cosechadas
    b) ¿Cuántos meses tuvieron una cosecha superior al promedio anual?
    c) ¿Cuántos meses tuvieron una cosecha inferior al promedio anual?
    d) ¿Cuál fue el mes en el que se produjeron mayor número de toneladas?

  31. YA logre sacar el promedio anual peor no puedo sacar el promedio por meses y mostrar el mes de mas produccion

    • Como dice el problema, «se ha ingresado el total de toneladas cosechadas durante cada mes del año pasado».
      Entonces debe haber 12 valores ingresados (12 meses), solo debes evaluar en comparacion:
      yo de ti haria un temporal y haria esto:
      » Primeo: si el mes enero tiene mas produccion que el mes febrero, entonces temporal=mes enero; sino temporal= mes febrero »
      » Luego: si temporal es mayor que el mes q le sigue entonces el mes que le sigue se va a temporal y asi sucesivamente…»
      hasta hacer una pasada a todos los meses, asi sabrias en que mes se hizo mas cocecha. Y segun veo seria mejor tener dos temporales
      temporal_superior, temporal_inferior -> Los cuales al final de toda la comparacion tendran el menor y el mayor.
      Saludos!

  32. perdon cuando hasblas de temporal hablas de condicional SI, NO? por que como yo lo hice fue que utilize un ciclo PARA, para determinar que era un dato a la vez, y luego un ciclo mientras que condicona la entrada de los 12 datos, luego se dividen por 12 y se saca el promedio anual. de ahi a determinar cuantos meses produjeron mas y cuales menos me tiene frenado, y aque todos los 12 datos los ingrese bajo una misma varible, ya que ingresar 12 variables me pareia inncecesario, o no lo es????

    • no no.. temporal es una variable a parte que se usa siempre en la programación cuando se trata de ordenar, validar un elemento con otro, etc.. no es mas que una variable vacia donde almacenarias un dato que si es editado no alteraria el original. Lo del ciclo para y ciclo mientras esta bien, eso ni lo dije porque como dijiste que ya habias sacado el promedio anual supuse que eso ya estaba hecho, ahora para sacar un promedio anual debes tener un total y para tener un total en tu caso debiste sumar 12 meses, esos 12 meses individualmente tuvieron produccion ¿donde la ingresaste?, en fin, 12 variables no es recomendable, porque existen los arreglos, vectores que en una puedes tener las «n» variables que quieras. Saludos.

  33. tengo una duda, el profesor nos dijo que, ademas de mientras y para, existe repeat.
    y no puedo encontrar en dfd algún ciclo que diga repeat
    ¿cómo se hace?

    • Hola Manuel, bienvenido!
      Pues el «repeat» del que has oido, sirve para lo mismo que el «mientras que»
      con la unica diferencia que el mientras que se hace a partir de que algo fue falso.
      El repeat se hace asi haya sido verdadero o falso algo, es decir lo hace una vez minimo.
      es como en el lenguaje c++ con el «while» y el «do-while»
      el while -> entra aqui solo si fue falso inicialmente
      el do – while -> es asi: DO (hacer) { …..esto….. } WHILE (pase esto)
      pero como la pregunta está al final, el proceso «esto» ya lo hizo una vez por lo menos.
      Saludos!

  34. EDDY, gracias por la aclaracion, me deja tranquilo que «voy» por buen camino, los doce datos los guarde en un acumulador de iteraciones, el dato que se ingresa se va sumando hasta completar los 12 datos, la cuestion es que cuando trato de hacer que esos datos se cuenten individualmente creando otra varible como me dijiste, por alguan razon que no entiendo muestra el valor inical de la variable o el valor final de la varible de iteraciones.

    • Hola Joan, si mira es que como tu dices eso es un «acumulador», eso no debes usar en mi punto de vista ya que ese va reemplazando el valor que tenia antes por la suma que viene y asi sucesivamente, ya cuando quieres ver un valor anterior no podra ser posible. Como te decia debes usar arreglos, un arreglo basta y sobra pues en uno solo puedes contener las 12 variables que necesitas, es decir esos 12 meses y a cada uno le ingresaras la produccion que hizo mensualmente y al final solo sumas todos esos meses y divides para 12 y deberas tener de igual forma el anual, a diferencia que ahora SI podras acceder a los datos del mes 1,2,3.. hasta el 12 cosa que no podias hacer con el acumulador.
      La idea es declarar un arreglo que se llame por ejemplo mes e indexarla en 12 posiciones, es decir mes 1, mes 2, etc..
      para hacer esa declaracion debes usar el simbolo de asignacion como ya sabes y poner:
      mes(12) <- 0
      como puedes ver los parentesis dicen cuantos meses queremos por asi decirlo.
      Luego en un ciclo para, pides cada mes de esta manera:
      para x=1 hasta x menor que 12 de 1 en 1
      pides: mes(x)
      entonces va a pedir: mes(1),mes(2),mes(3)…
      cuando salga del ciclo debes hacer el calculo, en una variable aparte por ejemplo "suma"
      haces suma=mes(1)+mes(2)+…
      luego la suma la divides para 12 y tienes el promedio anual.
      Despues debes hacer asi mismo otro ciclo para, y validar mes(1) con mes(2) a ver cual tiene mas
      produccion si es mes(1) entonces ese valor se lo asignas a temporal_mayor, sino se lo asignas a temporal_menor
      y asi vas con el siguiente mes(1) con mes(3) si mes 1 sigue siendo mayor, pues se lo volveras a asignar a temporal_mayor
      y asi sucesivamente hasta q alguien sea mayor que mes(1), entonces ese quedara en temporal_mayor hasta que otro lo saque
      y asi sucesivamente. Saludos!

  35. Ola me pueden ayudar kon este problema:

    Elaborar un programa que lea números y termine cuando pongamos el numero 0 (Cero). Luego el programa debe mostrar un mensaje si los números han sido ingresados de menor a mayor o de mayor a menor. Cuando los números han sido ingresados de menor a mayor el mensaje debe decir ASCENDENTE y si los números han sido ingresados de mayor a menor el mensaje debe decir DESCENDENTE. En caso no se cumplan ninguna de las dos reglas anteriores el mensaje debe decir NO PRECISA ORDEN.
    Ejemplo:
    Si ingresamos 12 19 31 34 78 89 0 -> El mensaje debe decir ASCENDENTE
    Si ingresamos 89 34 6 4 3 2 1 0 -> El programa debe decir DESCENDENTE
    Pero si ingresamos 9 7 2 5 19 7 3 0 -> El programa debe decir NO PRECISA ORDEN

    • Hola Manuel, bienvenido!
      en cuanto pueda te hecho una mano, revisa periódicamente la sección de miscelánea de ejercicios DFD; ya que en caso de hacer tu ejercicio, la subiré ahí. Saludos!

  36. buena me salvastes la vida tenia un trabjo pero con numeros pares tendras ejemplos pero en C# igual a este a si es posibleme los mandas ami correo Gracias

  37. Gracias, q bnas explicaciones! Espero seguir utilizando esta pagina! 😉 y q me ayuden ….

  38. Hola amigo, tu blog esta barbaro, y me estas salvando el pellejo, hoy tengo examen de dfd, ayer no sabia nada, y en unas cuantas horas he llegado hasta aqui, esta todo muy bien explicado amigo , muchas gracias y ojala tmb me puedes aydar con el visual basic xD q es lo q se me viene, muchas gracias man¡¡¡

  39. buenaa amigo felicidades por tu blog muchas gracias tengo examen en 4 dias mas y la verdad es q no sabia mucho del ciclo para y mientras. aunque igual estos estan faciles comparados con los q me haran te puedo preguntar alguno de los q yo tenga?saludos y excelent pagina.

  40. Eddy como esta? me puede colaborar con el siguiente algoritmo en dfd
    Con la sentencia PARA (FOR) y la sentencia SI (IF), realizar un algoritmo que determine si un número ingresado es número perfecto, abundante o deficiente.
    Un número PERFECTO, es un número natural que es igual a la suma de sus divisores, sin incluirse él mismo.
    Ejemplo: el número 28 es perfecto porque sus divisores 1, 2, 4, 7 y 14 suman 28 Un número es ABUNDANTE, cuando la suma de sus divisores, sin incluirse el mismo, es mayor que él.
    Ejemplo: El número 12 es abundante porque sus divisores, 1, 2, 3, 4 y 6 suman 16 que es mayor que 12.
    Un número es DEFICIENTE, cuando la suma de sus divisores es menor que él.
    Ejemplo: El número 10 es deficiente porque sus divisores, 1, 2 y 5 suman 8 que es menor que 10.

  41. alguien me pude decir la funcion del ciclo para, y el ciclo mientras?
    gracias. 🙂

  42. quiero saber el tema arreglos por favor, no entiendo nada ese tema

  43. NECESITO AYUDA
    tngo que hacer este ejercicio
    Imprimir la suma de los números impares menores o iguales que n.

  44. Hola, en la U estoy empezando hasta ahora a manejar programcion y la verdad entiendo mas por aqui, gracias,
    me preguntaba si esos numeros podrian salir en una lista en vez de que sagan uno por uno.
    gracias.

  45. Hola Eddy, antes que nada te felicito por tu blog, esta todo lo que necesito,GRACIAS ;); pero hay algo que no entendi muy bien en esta clase, mira…
    siguiendo el proceso que mensionas, en este ejercicio no se detiene, en la parte de arriba dices que se pide el numero hasta el cual quisieramos que se dieran los resultados, pero solo haces que lo «lea» por ende no se detiene ahi, funciona todo bien, pues hace lo que se le pide, pero no se detiene en el numero ingresado, me podrias indicar si estoy mal o si tengo razon, y que tengo que hacer para que se detenga…

    saludos.
    gracias por tu respuesta.

    • Hola Milton, bienvenido!
      Podrias ser mas explicito amigo, es decir cuentame en que parte tienes el problema, con que numero tienes el problema para revisar posterior a eso pues todos los programas que subo estan comprobados que funcionan bien y estan hechos por mi y explicados paso a paso por mi, pero se me puede escapar algo de igual manera; asi que con mucho gusto te despejaria la duda si me eres mas explicito con el problema que tienes, hasta pronto hermano!

  46. Amigo me podrias ayudar con la exolicacionde este ejercicio:

    Desarrolle un programa que calcule el promedio y la desviación estándar de N números que el usuario valla introduciendo. La idea es que el programa le pregunte al usuario el primer número y luego si desea continuar, luego el segundo número y si desea continuar, hasta que el usuario no desee introducir más números.

  47. Gracias, fue de mucha ayuda tu explicación en lenguaje sencillo, que bueno que trasmitas tus conocimientos..Vas a llegar muy lejos

  48. se requiere un diagrama de flujo en dfd que permita liquidar el salario de n empleados sabiendo la hora normal se paga a $4800 y la hora extra a $ 5100 supongase 240 horas al mes se debe ademas decir el numero de horas extras totales y el promedio del salario de los empleados

  49. POR FAVOR ESTOY EN EL EXAMEN Y NECESITO RESPONDERLO EN ESTE MOMENTO

  50. QUIEN ME PUEDE AYUDAR

  51. estuvo muy chido pero komo pongos los ecponentes a la ora de ralizar la operacion???

    • si no me equivoco, según mi maestra no se puede poner exponentes, por ejemplo si quieres elevar 1 al cuadrado no puedes poner 1^2, tienes que hacer lo siguiente: 1*1.

      Igualmente con el ejemplo: 1^3 (1 elevado al cubo) no se puede hacer, tienes que hacer esto: 1*1*1.

      • Acabo de comprobar que mi maestra es una mentirosa, jaja si se puede elevar a cualquier potencia usando el signo ‘ ^ ‘

  52. necesito tu ayuda 🙂
    ejercicio del ciclo mientras que
    Imprimir la suma de los números del 1 al 10, la impresión debe quedar así:
    0+1=1
    2+1=3
    3+3=6
    4+6=10
    5+10=15

    la suma final debe dar 45

  53. brother estoy trabajando dfd en la u y tengo que entregar un sudoku como proyecto usando ciclos para y while para el menu la verdad necesito ayuda
    thanks!!!

  54. Excelente explicación, me he ganado un punto extra en mi calificación de la escuela gracias a esta expicación tuya, solo una cosa, ¿cómo quedaría en algoritmo? si se puede saber 😉

  55. Ayuda necesito hacer un problema en DFD:
    Hallar el mayor divisor de un número “N” exceptuando al mismo (“N”) y el cociente sea un numero entero (para resolver use: ciclo mientras que:…)

  56. muy buena explicacion brother muy buena te doy un 100

  57. Oye men, para seguir una secuencia dado un numero cualquiera que llegue hasta 1000, lo uso con el ciclo «mientras» o «para»?

  58. Se que ya has respondido muchas preguntas pero podrias responderme esta pregunta:
    Entendí casi todo excepto que en la parte de la condición de mq cuando es verdadera suma el numero base + 2 y asi se genera el numero primo, pero como es que dfd relaciona el limite (num), es decir que conecta el num con con la operacion ref+2 cuando se cumple la condición?
    Y otra cosa que observe fue que si colocas que muestre ref despues de la asignación ref+2 mustra los numeros primos excepto el uno y si colocas que muestre ref entre la asignación y mq (como lo hiciste ahi) si muetra el uno, entonces ¿como es que tiene sentido esto o por que sale asi?

    • Algo mas, si quiero que muestre todos los numeros primos y aparte el numero introducido (siempre y cuando sea primo) como se haria eso?

  59. oye gracias por ayudar a muchos de nosotros!!!!!….tengo una pregunta porque tengo que imprimir ref , o mejor por que pongo en una salida ref después del ciclo mientras ??

  60. Eddy tengo un problema porfavor si podrias ayudarme mira soy estudiante y necesito me ayudes con esto:
    Ejercicio propuesto.-Todos los lunes, miércoles y viernes, una persona corre la misma ruta y cronometra los tiempos obtenidos. Determinar el tiempo promedio que la persona tarda en recorrer la ruta en una semana cualquiera.

    el detalle es que no puedo o no me sale sacarle los segundos exactos ya que se me pasa a .8 (punto ocho) como centecimas porfa una ayyudadita gracias

  61. como creo un algoritmo en el que tenga que dar un valor en segundos y me diga cuanto es en horas, minutos y segundos

  62. hola soy julian no puedo hacer este ejrcicio apenas empece quiero que me lo esplique Se desea leer las calificaciones de una clase de informática y contar el
    número total de aprobados (una asignatura se aprueba con una nota mayor
    o igual a 3)

  63. ayud nesecito hacer un algoritmo leer un saldo de 2500 cuentas y determinar cuál es la que posee mayor y menor cantidad de dinero

  64. tengo un examen de tarea asi que ayudame tengo el siguiente ejercicio
    1.hacer un diagrama de flujo que lea 10 datos compuestos por nombre del empleado y su sueldo neto mensual, obtiene e imprime el nombre y sueldo de la persona que mas cobra y de la que menos cobra.si hay varias se imprime la primera de la secuencia de entrada

  65. amigo este ejer esta exelente pero si antes debo d hacer una suma y si el resultado es impar q lo imprima de lo cntrario no cmo seria?

Replica a Santiago Uribe Cancelar la respuesta