Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

LÓGICA DE LA PROGRAMACIÓN (II Bimestre Abril Agosto 2011)

9,905 views

Published on

Universidad Técnica Particular de Loja
Ciclo Académico Abril Agosto 2011
Carrera: Ciencias de la Computación
Docente: Ing. Marco Patricio Abad Espinoza
Ciclo: Primero
Bimestre: Segundo

Published in: Education, Travel, News & Politics
  • Be the first to comment

LÓGICA DE LA PROGRAMACIÓN (II Bimestre Abril Agosto 2011)

  1. 1. Lógica de la Programación<br />Escuela de Ciencias de la Computación<br />ESCUELA:<br />BIMESTRE:<br />Segundo<br />NOMBRES:<br />Ing. Patricio Abad Espinoza<br />ABRIL AGOSTO 2011<br />
  2. 2. SECCIÓN 1<br />Algoritmos orientados a datos y miniespecificaciones<br />2<br />
  3. 3. Aspectos clave<br />Un algoritmo orientado a datos especifica las operaciones que se debe realizar con los datos.<br />Es necesario convertir el algoritmo del análisis a su versión orientada a datos.<br />Un algoritmo orientado a datos puede traducirse a miniespecificación.<br />3<br />
  4. 4. Aspectos clave (2)<br />Los programas están formados por dos secciones: declaraciones y bloque de sentencias.<br />En la sección de declaraciones se especifican TODAS la variables con sus tipos de datos.<br />En el bloque de programa se ubican las instrucciones del algoritmo.<br />4<br />
  5. 5. Ejemplo<br />Se desea construir un programa para calcular el sueldo de una persona en función de las horas trabajadas y el valor de la hora.<br />5<br />
  6. 6. Algoritmo del análisis<br />Inicio<br />Se pregunta el total de horas trabajadas.<br />Se pregunta el costo por hora.<br />Se calcula el valor a pagar multiplicando las horas trabajadas por el costo hora.<br />Se muestra el valor a pagar.<br />Fin<br />6<br />
  7. 7. Traducción a orientado a datos<br />Inicio<br />Se pregunta las horas trabajadas(totalHoras,i[1-n])<br />Se pregunta el costo horas (cHora,i[1-n])<br />Se calcula el total (total, i[1-n]) multiplicando el costo por las horas.<br />Se muestra el total<br />Fin.<br />7<br />
  8. 8. Traducción a mini especificación<br />Inicio<br />(Horas,i[1-n])<br />(cHora,i[1-n])<br />(total,i[1-n])<br /><< “Indique el total de horas trabajo”<br />>> Horas<br /><< “Indique el costo hora”<br />>> cHora<br />8<br />
  9. 9. Traducción a mini especificación (2)<br />9. Total  Horas * cHora<br />10. << “Debe pagar “ + Total<br />11. Fin<br />9<br />
  10. 10. SECCIÓN 2<br />Estructuras de control<br />Selectivas<br />Bucles<br />10<br />
  11. 11. Aspectos clave<br />Las estructuras de control permiten alterar el flujo del programa.<br />Las estructuras condicionales pueden ser simples y compuestas.<br />Los bucles son de comparación al inicio y de comparación al final.<br />Los bucles de comparación al inicio se ejecutan si la condición de entrada es verdadera.<br />11<br />
  12. 12. Aspectos clave (2)<br />Los bucles de comparación al final se ejecutan si la condición es falsa.<br />Una estructura anidada es aquella que se encuentra dentro de otra estructura de control.<br />Se debe usar las estructuras de control según sea necesario.<br />Las pruebas de escritorio permiten verificar el funcionamiento correcto del algoritmo.<br />12<br />
  13. 13. Aspectos clave (3)<br />Las variables enteras pueden usarse como acumuladores o como contadores.<br />Los contadores ayudan a establecer el numero de ocurrencias de un evento e incrementan de 1 en 1.<br />Los acumuladores guardan valores de varias corridas y permiten hacer cálculos globales.<br />13<br />
  14. 14. Ejercicio<br />El mcd de dos números es el mayor número que puede dividir exactamente a ambos. Desarrolle una diagrama de flujo que le permita obtener este número, los números se ingresan por teclado.<br />14<br />
  15. 15. Miniespecificación<br />Inicio<br /> (mcd, i[1-n])<br /> (num1,i[1-n])<br /> (num2, i[1-n])<br /> << “Numero 1”<br /> >> num1<br /> << “Numero 2”<br /> >> num2<br />15<br />
  16. 16. Miniespecificación<br /> Fin mientras.<br /> << “El mcd es” + mcd.<br /> Fin<br />Corrida manual<br />16<br />
  17. 17. Miniespecificación<br />9. Si num1 < num2<br />10. mcd  num1<br />11. Caso Contrario<br /> mcd  num2<br /> Fin Si<br /> Mientras (num1 % mcd != 0) and<br /> (num2 % mcd != 0)<br /> mcd  mcd – 1 <br />17<br />
  18. 18. SECCIÓN 3<br />Diagramas de flujo<br />18<br />
  19. 19. Aspectos clave<br />Ayudan a visualizar la lógica del programa.<br />Facilitan la comunicación con otras personas.<br />Existen equivalencias entre los símbolos y las operaciones de un algoritmo.<br />19<br />
  20. 20. Ejemplo<br />20<br />
  21. 21. Practiquemos con preguntas<br />21<br />
  22. 22. Pregunta 1<br />Las siguientes son sentencias en miniespecificación. ¿Cuál declara establece una la variable v1 como entera con valores del 1 al 1000, excepto los múltiplos de 5?<br /> a. (v1, i[1-n])<br /> b. (v1, i[1-1000])<br /> c. (v1, i[{1-1000}, !{5,10,15,..}])<br /> d.(v1,b[{1-1000}, !{5,10,15,..}])<br />22<br />
  23. 23. Pregunta 2<br />¿Cuántas veces se ejecuta el código dentro del siguiente bucle? Siendo N = 3<br /> Mientras (N < 2)<br /> << “Este es un bucle”<br /> Fin mientras<br /> a.2<br />b.0<br />c. 1<br />d. Infinito<br />23<br />
  24. 24. Pregunta 3<br />En un bucle de comparación al inicio es posible que:<br />a.Se ejecutan al menos una vez.<br /> b.No se ejecuten las sentencias nunca.<br />c. Solo ciertas sentencias se ejecuten.<br /> d. Se ejecuten secuencialmente.<br />24<br />
  25. 25. Pregunta 4<br />¿Cuál sentencia se ejecuta si lado vale 2?<br />Si lado >=1 Entonces<br /> AreaCuadrado  lado^2<br /> De lo contrario<br /> << “El lado no puede ser menor a uno”<br />Fin si<br />25<br />
  26. 26. Pregunta 4<br />a. << “El lado no puede ser menor a uno”<br />b. >> “El lado no puede ser menor a uno”<br />c. AreaCuadrado  lado^2<br />d.Ninguna.<br />26<br />
  27. 27. Pregunta 5<br />Siendo x una variable entera ¿Cuál de las siguientes sentencias permite su uso como acumulador?<br /> a. x = x ^ 2<br /> b. x = x *y<br /> c. x = x – y<br /> d. x = x + 3<br />27<br />
  28. 28. Pregunta 6<br />¿Qué tipo de sentencia representa el siguiente diagrama?<br />a. Flujo secuencial<br />b. Una flujo condicional<br />c. Un bucle de comp. al inicio.<br />d. Un bucle de comp. al final.<br />28<br />
  29. 29.
  30. 30. GUIÓN DE PRESENTACIÓN <br />PROGRAMA: Tutoría Lógica de la Programación Carrera: Informática<br />Fecha: 24 de junio de 2011<br />Docente: Ing. Patricio Abad Espinoza<br />Hora Inicio: 19:00 Hora Final: 20:00<br />

×