DFD, clase12 – ejercicios de aplicacion V

Hola a todos/as,

Vamos a hacer algunos ejercicos con el nuevo ciclo que vimos ( clase11 ).

16.) Hacer un algoritmo que pida 10 numeros y luego indique cuantos fueron pares y cuantos impares.

Bien, aqui como nos dice que pidamos 10 numeros lo mas ortodoxo por hacer es usar el ciclo «para..» por lo mismo que es un controlador, es decir controlaremos que ingresemos 10 numeros, porque no tiene sentido almacenar 10 variables diferentes y pedir 10 veces el numero con cada variable, seria una perdida de tiempo ademas de algo tedioso.. Entonces vamos a ello:

– Abrimos DFD

– Mostramos el detalle del ejercicio

img1ampliar imagen

– Declaramos las variables que usaremos, en éste caso 4 variables:

pares = la cantidad de numeros pares que se ingresaron

impares = la cantidad de numeros impares que se ingresaron

ciclo = el nombre de la variable controladora que usaremos en el ciclo

num = numero que vamos a ingresar ( 10 en total )

img2ampliar imagen

img3ampliar imagen

– Comenzamos con el «ciclo para..«, para pedir 10 numeros.

img4ampliar imagen

EXPLICACION: la variable «ciclo» nos va a servir de controlador, osea que va a controlar que se pida 10 veces el numero, porque segun la estructura del simbolo «para..» hemos colocado que comienze en 1 hasta 10 , osea que va a pedir el dato desde la primera vez hasta la decima vez. y lo va a a ir pidiendo de uno en uno, porque el incremento le hemos colocado 1.

Recomendacion: ver la clase11 , porque ahi tratamos la estructura del simbolo «para..»

– Bien, ahora colocamos el simbolo de «lectura» para que el usuario/a pueda ingresar el dato, y se almacene en la variable «num«

img5ampliar imagen

– Ahora calcularemos si el numero que ingresó es par o impar para irlo contando y almacenando en la variable respectiva:

pares ( si al dividirlo para 2 su residuo es cero )

impares ( si al dividirlo para 2 su residuo es diferente que cero )

img6ampliar imagen

Y ésto lo analizará el programa en cada reiteracion, es decir en cada ocacion que pida el numero, va a calcular si es par o impar. Porque la operacion de calcularlo está dentro del ciclo para. Todo lo que se encuentre dentro de algun ciclo forma parte de él.

– En caso de que el residuo sea cero (0), es decir el lado verdadero:

img7ampliar imagen

EXPLICACION: éso que ven arriba es un «contador«, esa es la tipica estructura que lleva un contador, pero cabe recalcar que:

¿ Qué es un contador y para que sirve ?

Pues, un contador es una manera de ir sumando o restando valores a una variable, en nuestro caso a la variable «pares«

Para dejarlo más claro, veamos por partes:

pares = 0 ( cuando declaramos las variables )

entonces eso quiere decir que nuestra variable «pares» vale cero.

¿ Y qué queriamos almacenar en ella ?

queriamos almacenar una cantidad, es decir un numero por ejemplo 1,6,8 porque queremos que ahi se almacene cuantos numeros pares ingresó el usuario/a. Pero como vale cero por defecto, quedamos con algo asi en el contador:

Esto:

pares = pares + 1

Equivale a decir esto en éste momento:

0 = 0 + 1

eso quiere decir que a la variable «pares» se le asignará el valor de la misma variable  «pares» ( que va a ir cambiando en cada reiteracion ) + 1.

Simplificadamente tenemos al comienzo que, por ejemplo el usuario ingresó los siguientes 10 numeros:

1 – 3 – 5 – 7 – 9 – 11 – 13 – 20 – 10 – 2

Subrayé con azul los impares ( no los tomaremos en cuenta porque estamos en el lado verdadero, es decir haciendo el contador de los pares ingresados ), y vemos que el usuario ingreso de los 10 numeros, solamente 3 numeros pares, el 20, el 10, y por ultimo el 2

entonces el contador viene con ésta funcion:

pares = pares + 1

Equivalente a:

0 = 0 + 1

entonces decimos que en la octava reiteracion dice: ( octava porque estamos imaginando que el usuario/a ingreso en el orden de arriba esos numeros: 1 – 3 – 5 – 7 – 9 – 11 – 13 – 20 – 10 – 2 )

20 es par, entonces:

pares = pares + 1  ——> 0 = 0 + 1  ——1

Pueden ver que ahora la variable «pares» vale 1, porque es un contador y ya contó que hubo un numero par ingresado 😉

Despues..

10 es par, entonces:

pares = pares + 1  ——> 1 = 1 + 1  ——2

Ahora no es 0=0+1 porque desde que encontró que 20 era par, la variable «pares» ya no valia cero si no uno (1)

Despues..

2 es par, entonces:

pares = pares + 1  ——> 2 = 2 + 1  ——3

Y ahi acabarian los 10 numeros, y el programa mostraria que se encontraron 3 numeros pares 😉

– Bien, el mismo funcionamiento va con el lado contrario solo que en cambio acá es con la variable «impares«.

img8ampliar imagen

– Ahora ya tenemos los 10 numeros, tenemos calculados y almacenados cuantos fueron pares y cuantos fueron impares, solo nos resta mostrar ese dato. Vamos a ello:

– Pero debemos mostrar el resulatado despues del ciclo, porque si no nos mostraria el resultado cada reiteracion. Es decir nos mostraria 10 veces, una vez por numero ingresado. Por eso debemos mostrarlo al final del ciclo. Así:

img9ampliar imagen

img10ampliar imagen

17.) Hacer un algoritmo que permita ingresar N numeros y que luego calcule la suma y el promedio de los numeros ingresados.

Bien, lo primero que debemos aclararnos es:

¿ Qué es eso de ingresar N numeros ?

osea que el ejercicio no nos pide que hagamos un algoritmo que pida 1,2,3,4, etc.. numeros, si no que pida N numeros, siendo N una variable es decir que el programa va a pedir tantos numeros como quiera el usuario, para ello el usuario/a debera  ingresar esa cantidad, por ejemplo. Si dice que 6, pues seis numeros le van  a pedir , si dice que 10 pues 10 numeros le van a pedir 😉

Bien, vamos a ello:

– Abrimos DFD

– Colocamos el detalle del ejercicio

img1ampliar imagen

– Declaramos las variables, en éste caso 5 que son:

N = numero que nos dirá cuantos numeros desea ingresar el usuario

sum = suma de los numeros ingresados

prom = el promedio de los numeros ingresados

ciclo = la variale controladora para el ciclo: «para..»

numero = variable donde se almacenará el valor en cada vez que pida el numero el algoritmo

img2ampliar imagen

img3ampliar imagen

– Ahora comenzariamos yá con el ciclo «para..» pero ésta vez no nos dice el problema cuantos numeros debemos pedir, si no que pidamos los numeros dependiendo de cuantos numeros desea ingresar el usuario, por lo tanto debemos preguntarle al usuario: ¿ Cuantos numeros desea ingresar ?, para que con ese valor poder realizar el ciclo

img4ampliar imagen

img5ampliar imagen

NOTA: como N fué declarada con mayuscula, pues debemos pedirla asi mismo y si vamos a hacer una operacion pues asi mismo en mayuscula, porque se respeta de como fué declarada (reglas para la declaracion de variables )

– Bien, ahora que nos ha dado el valor de N, por ejemplo que haya sido 5 pues nosotros pediremos 5 numeros, pero cada vez que ejecuten el programa cambiara de valor ya no será 5 si no 9 , etc.. por lo tanto usaremos la variable N para asignarle un tope a nuestro ciclo «para..» diremos que vaya desde 1 hasta N con un intervalo de 1 en 1 , asi el algoritmo pedirá numeros una vez hasta el numero de veces que haya querido el usuario/a, ya que N tiene en su interior un numero ( el que pedimos al comienzo ) y ese será nuestro valor final o tope ( ver estructura del ciclo «para..» ), Así:

img6ampliar imagen

– Luego vamos a insertar lo que va dentro del ciclo «para..» , es decir lo que se va a ejecutar N numero de veces, dependiendo de cuanto fue el numero que ingresó el usuairo/a. Aqui como ya estamos en el dentro del ciclo, vamos a pedir el numero, para eso declaramos nuestra variable «numero«, entonces vamos a hacerle una especie de confirmacion de «cuanto fue lo que ingresó» y por eso se van a pedir «tantos» numeros, Así:

img7ampliar imagen

NOTA: asi como escribi en la captura, el mensaje debe ir antes del ciclo porque si lo ponemos dentro se va a repetir por cada vez que pida un numero, y eso seria molesto para el usuario/a que va a ingresar las cantidades 😉

– Bien ya hemos colocado el mensaje de confirmacion de cuantos numeros se van a pedir, ahora solo nos falta pedirlos. Para ello usamos el signo de «lectura» que ya lo conocemos al revez y al derecho 😆

img8ampliar imagen

– Ahora en cada reiteracion, es decir las N veces que se ingresarán los numeros van a ir ingresando numeros distintos y el ejercicio pide que calculemos la suma y el promedio de los numeros. Por lo tanto en cada reiteracion debemos ir sumando los numeros ingresados, para ello usaremos la variable «sum«, con el siguiente formato:

sum = sum + numero

Lo que quiere decir, que en cada reiteracion sum va a ser igual a el mismo valor que tiene sum ( al principio cero ) más el numero ingresado. Veamos un ejemplo:

Primera vez,

( el usuario/a ingresó el valor de 15 ):

sum = sum + numero  ——> 0 = 0 + 15  ——15

Segunda vez,

( el usuario/a ingresó el valor de 22 ):

sum = sum + numero  ——> 15 = 15 + 22  ——37

Tercera vez,

( el usuario/a ingresó el valor de 100 ):

sum = sum + numero  ——> 37 = 37 + 100  ——137

Y así sucesivamente,hasta llegar a las N veces.

img9ampliar imagen

– Y así como lo explique arriba en cada reintento para ingresar un numero, se va a ir sumando los numeros ingresados, en el ejemplo se ingresaron las cantidades de: 15,22,100

Lo cual nos dice que 15 + 22 + 100 = 137 ( lo mismo que terminó valiendo la variable sum ) 😉

– Ya ingresados los N numeros y calculada la suma de los N numeros ingresados, nos falta calcular el promedio y luego mostrar los resultados. Como sabemos..

» El promedio de algunas cantidades es igual a la suma de sus cantidades dividido para el numero total de las cantidades sumadas. «

Entonces por ejemplo, si yo tengo 7 valores ( cantidades ), el promedio seria la suam de los 7 valores dividio para el numero de total de los valores sumados, osea 7. Así:

Tenemos 7 cantidades: 1,2,3,4,5,6,7

Queremos calcular el promedio, para ello vamos a la regla que dice:

» es igual a la suma de sus cantidades «

entonces: 1+2+3+4+5+6+7 = 28

Seguimos con la regla que dice:

» dividido para el numero total de las cantidades sumadas »

¿ cuantos numeros totalmente sumé ? , 7 por lo tanto..

28 / 7 = 4

Donde 4 es el promedio de aquellos digitos 😉

img10ampliar imagen

– Bien, ya tenemos calculado la suma y el promedio. Solo nos resta mostrar los resultados obtenidos tal y como lo dice el enunciado del problema.

– Para la suma:

img11ampliar imagen

– Para el primedio:

img12ampliar imagen

Saludos 😉


36 respuestas

  1. Por fin lo pillo!!!!!!!!!! :D:D:D:D:D:D:D:D:D:D dios!!!!! me costo mucho entender lo de 0=0+1 xDDD pero bueno, cada uno entiende a su tiempo… gracias de nuevo por los tutoriales 😀

  2. Exelente!!!! mejor explicado que en clase.Gracias

    • Hola «mudo», bienvenido al blog 😀
      Me alegra enormemente que te haya servido la explicacion compa’, hago lo mejor posible para que las entradas sean claras y didacticas. Saludos 😉

  3. muy bien explicado profe Eddy, gracias.

  4. holas
    atodos y como hallo la suma de 10 numeros inpares

    • Hola Paul, bienvenido!
      El ejercicio que has propuesto, pues ya hemos resuelto sumas con anterioridad y he enseñado a validar cuando un numero es par o impar, lo podrias hacer; pero te voy a dar una mano y subiré el ejercicio, quedó como ultimo por ahora en la seccion de «miscelanea de ejercicios«, especificamente como el ejercicio «44». Espero te sirva, saludos!

  5. Hola Eddy !

    En primer lugar, tus tutoriales son muy buenos, y yo soy bueno en esto, pero pues quiero aprender mas sobre todo lo de DFD, quisiera contactarte para preguntarte algunas inquietudes que tengo con el programa, puesto que apenas estoy empezando mi carrera de ing de sistemas !

    Gracias !

    • Pues la gran parte de mis conocimientos en DFD los he plasmado en mi blog, aqui puedes encontrar respuestas
      a muchas inquietudes, he tratado de hacer ejercicios diversos con cada operacion / operadores / funciones ..
      Pero si deseas resolver alguna inquetud, siempre y cuando esté a mi alcance la puedes hacer aqui mismo
      yo con gusto trataré de ayudarte lo más pronto posible. Saludos!

  6. hola eddy gracias por tu pagina me fue muy util para pasar el parcial de la u ,te queria hacer una pregunta sera que no tienes un tutorial para poder comprender mejor la parte de arreglos es que siempres es complicada gracias……….

    • Hola Freddy, bienvenido!
      Pues mira aqui no tengo por ahora esa parte en DFD pero vamos quiero hacerla, más no cuento de mucho tiempo pero apenas pueda agrego unas cuantas cosas sobre vectores ( arreglos ) en DFD ok

  7. ok eddy creo que los vectores es lo que sigue en dfd tu pagina es muy interactiva y espero que saques tiempo para poder seguir con esta gran pagina y tomate tu tiempo la idea es hacerlo bien gracias.=)

  8. EXELENTE¡¡¡¡ por fa enseñate sobre VECTORES muy buena la página yo aprendi muchisimo con estos tutoriales

    saludosss¡¡¡¡

    • Hola Jonathan, bienvenido!
      Pues si estoy en eso, solo que como ya termine el capitulo de DFD
      y estaba mas concentrado en seguir el orden, pues debo sacar tiempo
      extra para hacer esa entrada de vectores en DFD, pero no te preocupes
      la haré..
      Saludos y gracias!

  9. hola
    gracias por las explicaciones
    sabes de textos o tutoriales donde pueda profundizar mas en el cilco mientras y el ciclo para
    es que me han dejado un taller con ejercicios bastantes complicados( sumatorias, integrales, hallar el seno, coseno,tangente para ciertos angulos, etc) .
    graciass

    • Hola Sebastian, bienvenido!
      Pues no sé de libros, o tutoriales que hable sobre esos temas en especifico; pero vamos que para que te manden
      ejercicios de esa magnitud, es porque ya tienen cierto dominio en el uso de los ciclos, y en conceptos matemáticos
      recuerda que para sentarte a hacer un problema, primero debes entender de que va el problema, sin la idea de como
      resolverlo no se puede proseguir, puedes hacerlo poco a poco en papel y luego pasarlo a un algoritmo en DFD
      ya si necesitas algún consejo de como hacer algo, con gusto puedo ayudarte, saludos!

  10. hola eddy estoy batallando con un diagrama de flujo que dice: hacer un d-f que leea 3 calificaciones de cada alumno en un grupo de 10 alumnos e indique cuantos alumnos reprobaron, cuantos reprobaron y cuantos tienen 10.

    podrias ayudarme por favor, no tengo muy claro esto de los ciclos paray tengo examen porfa.

    • Hola Daniel, vamos a ver..
      en si debes tener 3 variables para las calificaciones, despues de sacar el promedio ( como te lo hayan indicado, sino por el metodo comun se suman las tres notas y se las divide para el numero de notas; en tu caso 3 mismo ), luego de sumarlas internatmente ( la suma debe ir en otra variable, por ejemplo la variable «suma» va a tener nota1+nota2+nota3 ). Una vez que ya tienes la suma puedes en otra variable «promedio» hacer: suma/3. Eso ya te daria el promedio sin problemas, de ahi debes tambien tener contadores ya que dices que necesitas saber «cuantos» en diferentes circunstancias, entonces puedes crearte unos contadores que podrian ser estos: «contador_aproba -> 0», «contador_reproba -> 0», «contador_tienenDiez -> 0» ( todos inicializados con cero ).
      Luego ya vamos con lo ultimo que seria validar ese promedio que sacamos hace un momento, haciendo con el simbolo de decision la siguiente pregunta:
      ¿ El promedio es menor a tanto ?, el contador_reproba se incrementa en 1
      ¿ El promedio es mayor a tanto ?, el contador_aproba se incrementa en 1
      ¿ El promedio es igual a 10 ?, el contador_tienenDiez se incrementa en 1
      Ya despues de todo esto, solo queda mostrar los contadores por separado. Saludos!

  11. es cuantos aprobaron,cuantos reprobaron y cuantos sacaron 10

  12. Eddy me confunde lo de los contadores creo que no he visto eso en clase, el profesor que me pidio que hiciera este d-f con una funcion llamada CICLO PARA no se si te estas refiriendo a eso?

    • Calma no te confundas Daniel, debes usar contadores pues me estás diciendo que el diagrama debe mostrar cuantos tienen reprobado cuantos tienen aprobado y cuantos tienen 10. Para eso son los contadores ( para contar, si no; ¿como pretendes saber cuantos hubo?, no hay manera ). Y sobre lo del ciclo para, eso es porque tu profesor habrá dicho de cuantos alumnos hay entonces el ciclo iria desde 1 hasta el numero de alumnos que te haya dicho el profesor. Cualquier cosa por aqui seguimos, saludos!

  13. Empezare de nuevo. El problema dice asi: hacer un diagrama de flujo que lea 3 calificaciones de cada alumno en un grupo de 10 e indique cuantos reprobaron,cuantos aprobaron y cuntos tienen 10.

    lo primero que hago es indicar sobre lo que trata, despues declaro variables( aprobado, reprobado,excelente para quellos que saquen 10)aparte tengo que declar dos variables que me serviran como controladores en el ciclo para(alumno,nota) un ciclo lo pongo del 1 al 10 con un uncremento de 1 en el caso de los 10 alumnosy el siguente del 1 al 3 con un cremento 1 en las notas,aparte declaro una variable denominada calificacion.

    bueno ya hecho esto coloco un simbolo de entrada el cual me señalara el el numero de alumno y el numero de nota luego coloco un simbolo de lectura en el que introdusco la variable calificacion para que el programa se la pida al usuario.

    ahora tendria que sacar el promedio de la forma normal la suma de las notas entre el numero de ellas. es ahy donde no comprendo me pides que declare una variable suma con n1+n2+n3/3 y una promedio=suma/3

    ya comprendi lo de los contadores lo explicas en una de tus clases.

    • Daniel, la suma debe tener como su nombre lo indica la suma de las tres notas ( nota1+nota2+nota3 ). Y la variable promedio debe tener la suma dividida para el numero de notas, en tu caso 3 mismo. Entonces promedio = suma/3. Para que se vea mas claro, pero lo puedes hacer directo haciendo una variable «resultado» y poniendole -> ((nota1+nota2+nota3)/3). Saludos!

  14. grax Eddy, ahora si podre hacer mejor mi tarea 😉
    muy buen sitio, supr bn explikdo todo.

  15. Hola amigo buenos ejemplos…….:)…tengo una duda …me piden un algoritmo que imprima empresa que mas vendio y mes que mas vendio …….si me dan que el numero de empresas es 5 y el numero de meses es dinamico es decir cuaquier valor que uno quiera …….mi duda es para determinar que mes vendio mas :s como hago esa parte :s

    • Hola Julian, bienvenido!
      Pues con el ejercicio que me dices, no tiene sentido que te den «empresa 5» a no ser que sea de la «empresa 5» a la que le vas a sacar cuanto vendió. Lo que debes hacer es si tienes 5 empresas, pues cada una debe tener sus ingresos por mes de Enero a Diciembre, entonces lo que harías es pedirle que ingrese cuanto vendió por ejemplo en Enero la empresa 1,2,3,4,5 y después ver quien de las 5 vendió mas tan solo comparando los valores que se ingresaron y están almacenados en Enero de cada empresa por ejemplo: si enero de empresa1 es mayor a todos los eneros de las demás empresas, pues la empresa1 es la que mas vendió en Enero y así sucesivamente. Saludos!

      • osea me dan ke cierta persona tiene 5 empresas y tengo que hacer un algoritmo que imprima que empresa de las 5 vendio mas y en que mes vendio mas…….pero los meses son dinamicos pueden ser 4 ,10, 15 los ke el profesor quiera….mi duda es al comprar los meses …..como los comparo si no se el numero de meses :s… si pudiera enviarte el ejercicio para que lo vieras :s

  16. hola eddy me piden que aga un diagrama que saque cuantos numeros fueron pares,impares la suma y el promedio de los numeros pares y delos pares como le ago aaaaaaaa y muy buen post

  17. hola eddy tengo que hacer lo siguiente haber si me ayudas:

    escribir un programa que pida una nota e imprima por pantalla la calificación en formato “apto” o “no apto” según si la nota es mayor o menor que 5

  18. necesito un dfd que haga seno y coseno por favor..

  19. Hola tengo duda sobre cómo realizar diagramas de flujo con los ciclos MIENTRAS y PARA. Tal vez me podrían explicar cómo hacer el siguiente ejercicio!
    Realizar un programa que lea N números, y muetre el promedio de esos N números, luego preguntar al usuario si desea ingresar mas números. Utilizar el ciclo MIENTRAS!

  20. Alguien Me Puede Ayudar Con Este Ejercicio Los Mas Rapido Posible PorFavor
    Elaborr un DFD que permita almacenar las edades de n estudiantes de logica y algoritmos. el DFD debe generar los siguientes informes
    TOTAL MAYORES DE EDAD (resuelto)
    TOTAL MENORES DE EDAD (resuelto)
    LA MAYOR DE EDAD (no e podido con este)
    EL MENOR DE EDAD (no e podido con este)
    PROMEDIO DE EDADES (resuelto)
    gracias si me pueden ayudar

  21. como puedo hacer el DFD de este problema?.Cada equipo de la liga canadiense de futbol tiene un cuadro de 33 jugadores. Supón que cada equipo de la liga tiene los datos de cada uno de los jugadores, los cuales son nombre, peso y edad. Una vez recabados los datos de cada uno de los nueve equipos, se envían a la sede central para que los analicen. Diseña un programa que calcule los pesos y las edades de cada uno de los equipos, así como el peso y la edad promedio de todos los jugadores.

  22. hola como esta, eh estado mirando y su pagina esta excelente, muchas gracias por brindarnos esa informacion.Queria pedirle un favor, lo que pasa es que tengo que hacer un DF en dfd, del calculo del seno, y del coseno, y pues me estoy guiando de la estructura que se hace en el exponencial, pero ps nose, como plantearlo bien, le agradezco si me puede orientar como hacerlo, gracias.

  23. un favor necesito ayuda por favor

Replica a Daniel ochoa Cancelar la respuesta