PRACTICA 8 (1)

30
Jueves 13 de Octubre del 2011 Universidad Nacional Autónoma de México Facultad de Ingeniería Computación para Ingenieros INGENIERÍA MECÁTRONICA 2012-1 EQUIPO # 6 P R Á C T I C A 8 PARTE II “Diseño de programas” Objetivo: Emplear algoritmos que permitan resolver un problema, practicando con distintos ejemplos para poder tener una mejor comprensión en distintos casos. Introducción: De forma más sencilla, podemos decir que un algoritmo es un conjunto de pasos que nos permite obtener un dato. Además debe cumplir estas condiciones. Características: Finitud: el algoritmo debe acabar tras un número finito de pasos. Es más, es casi fundamental que sea en un número razonable de pasos. Definibilidad: el algoritmo debe definirse de forma precisa para cada paso, es decir, hay que evitar toda ambigüedad al definir cada paso. Puesto que el lenguaje humano es impreciso, los algoritmos se expresan mediante un lenguaje formal, ya sea matemático o de programación para un computador. Entrada: el algoritmo tendrá cero o más entradas, es decir, cantidades dadas antes de empezar el algoritmo. Estas cantidades pertenecen además a conjuntos especificados de objetos. Por ejemplo, pueden ser cadenas de caracteres, enteros, naturales, fraccionarios, etc. Se trata siempre de cantidades representativas del mundo real expresadas de tal forma que sean aptas para su interpretación por el computador. Salida: el algoritmo tiene una o más salidas, en relación con las entradas. • Efectividad: se entiende por esto que una persona sea capaz de realizar el algoritmo de modo exacto y sin ayuda de una máquina en un lapso de tiempo finito. A menudo los algoritmos requieren una organización bastante compleja de los datos, y es por tanto necesario un estudio previo de las estructuras de datos fundamentales. Dichas estructuras pueden implementarse de diferentes maneras, y es más, existen algoritmos para implementar dichas estructuras. El uso de estructuras de datos adecuadas pueden hacer trivial el diseño de un algoritmo, o un algoritmo muy complejo puede usar estructuras de datos muy simples.

Transcript of PRACTICA 8 (1)

Page 1: PRACTICA 8 (1)

Jueves 13 de Octubre del 2011

Universidad Nacional Autónoma de México

Facultad de Ingeniería Computación para Ingenieros

INGENIERÍA MECÁTRONICA 2012-1

EQUIPO # 6

P R Á C T I C A 8

PARTE II

“Diseño de programas”

Objetivo:

Emplear algoritmos que permitan resolver un problema,

practicando con distintos ejemplos para poder tener una mejor

comprensión en distintos casos.

Introducción:

De forma más sencilla, podemos decir que un algoritmo es un conjunto

de pasos que nos permite obtener un dato. Además debe cumplir estas

condiciones.

Características:

• Finitud: el algoritmo debe acabar tras un número finito de pasos. Es más, es casi fundamental que sea en un número razonable de pasos.

• Definibilidad: el algoritmo debe definirse de forma precisa para cada paso, es decir, hay que evitar toda ambigüedad al definir cada paso. Puesto que el lenguaje humano es impreciso, los algoritmos se expresan mediante un lenguaje formal, ya sea matemático o de programación para un computador.

• Entrada: el algoritmo tendrá cero o más entradas, es decir, cantidades dadas antes de empezar el algoritmo. Estas cantidades pertenecen además a conjuntos especificados de objetos. Por ejemplo, pueden ser cadenas de caracteres, enteros, naturales, fraccionarios, etc. Se trata siempre de cantidades representativas del mundo real expresadas de tal forma que sean aptas para su interpretación por el computador.

• Salida: el algoritmo tiene una o más salidas, en relación con las entradas.

• Efectividad: se entiende por esto que una persona sea capaz de realizar el algoritmo de modo exacto y sin ayuda de una máquina en un lapso de tiempo finito.

A menudo los algoritmos requieren una organización bastante compleja de los datos, y es por tanto necesario un estudio previo de las estructuras de datos fundamentales. Dichas estructuras pueden implementarse de diferentes maneras, y es más, existen algoritmos para implementar dichas estructuras. El uso de estructuras de datos adecuadas pueden hacer trivial el diseño de un algoritmo, o un algoritmo muy complejo puede usar estructuras de datos muy simples.

Page 2: PRACTICA 8 (1)

MATLAB

Es un lenguaje de computación técnica de alto nivel y un entorno interactivo para desarrollo de algoritmos, visualización de datos, análisis de datos y cálculo numérico.

Con MATLAB, podrá resolver problemas de cálculo técnico más

rápidamente que con lenguajes de programación tradicionales, tales

como C, C++ y FORTRAN.

Ejemplos de DFD

Page 3: PRACTICA 8 (1)

Ejercicios propuestos:

2)Calcular el n-esimo numero de Fibonacci

(1) Leemos N, supongamos N=4.

(2) ¿N<2? -> NO

(3) A=1

(4) B=1

(5) C=A+B=1+1=2

(6) A=B=1

(7) B=C=2

(8) N=N-1=4-1=3

(9) ¿N=2? - NO (5) C=A+B=1+2=3 Leer N

Inicio

N<=2

SI NO

B=1

A=1

C=A+B

A=B

N=N-1

B=C

N=2

Escribir 1 Escribir B

Fin

SI

NO

(6) A=B=2

(7) B=C=3

(8) N=N-1=3-1=2

(9) ¿N=2? ® SI

(10) Escribimos B, es decir 3.

Page 4: PRACTICA 8 (1)

4)Calcular el cociente de la división entera de dos números naturales

Inicio Leer A, B C = A/B Imprimir C Fin

Inicio Dados A=10, B=5 C = 10/5 Imprimir 2 Fin

Page 5: PRACTICA 8 (1)

6)Calcular la suma de los dígitos pares de un numero natural

Inicio Variables n, b, Leer número n, Revisar los dígitos b = n/10 Mientras el Residuo de B/2 sea par Escoger los pares Sumar todos los pares Incremento n=n/10 Escribir resultado Fin

Inicio Dados N= 4 Revisar B=4/2 = 2 B= 2/2 =1 Escogiendo los par= 4 y 2 C= 4 + 2 = 6 Mostrar c = 6 Fin

Page 6: PRACTICA 8 (1)

8)Calcular la longitud de una circunferencia a partir de su radio (Usar la formula C=2(pi)(r)

Inicio Leer R R>0 Si es mayor que 0 entonces: Realizar operación C= 2*(3.14159265)*R Imprimir resultado de C Fin Si es menor que 0 entonces: Fin

Inicio Dado R = 8 8>0 Si es mayor que 0 entonces: Realizar operación C= 2*(3.14159265)*8 C = 50.265482 Fin

Page 7: PRACTICA 8 (1)

10)Dado un numero natural, devolver el numero resultante de invertir el orden de sus dígitos

Inicio Leer n invertido←0 Mientras n>0 Hacer

r←n mod 10 n←n div 10 invertido←invertido + r * (10 ^ digitos) digitos←digitos - 1 Fin Mientras Escribir "El numero invertido es:", invertido Dado n = 1234 r = 1234 mod 10 = 4 invertido = 0 + 4 * 10^4 = 4 * 1000 = 4000 n = 1234 div 10 = 123 digitos = 3 - 1 = 2 n = 123 r = 123 mod 10 = 3 invertido = 4000 + 3 * 10^2 = 4000 + 3*100 = 4300 n = 12 r = 12 mod 10 = 2 invertido = 4300 + 2 * 10^1 = 4300 + 2*10 = 4320 n=1 r = 1 mod 10 = 1 invertido = 4320 + 1 * 10^0 = 4320 + 1*1 = 4321

Page 8: PRACTICA 8 (1)

12) Determinar si un numero natural representa un numero binario, es decir está compuesto por 0’s y 1’s.

Page 9: PRACTICA 8 (1)

14)Calcular el área de un rectángulo a partir de su base y su altura Emplear A=ba

Inicio Datos: Variables base Numérico Entero altura Numérico Entero Área Numérico Real perimetro Numérico Real Algoritmo: Leer base, altura Área = base * altura Perímetro = base*(2) + altura*(2) Escribir “Área = “, area Escribir “Perímetro = “, perimetro Fin

Inicio Dados: base = 8 altura=5 Área = 8 * 5 Perímetro = 8*(2) + 5*(2) Área = 40 Perímetro = 26 Fin

Page 10: PRACTICA 8 (1)

16)Calcular el volumen de un cilindro a partir del radio de la base y su Altura. Hacer uso de la formula V=(pi)(r)^2(h)

1. Inicio 2. Declaración de variables: R = 0, H = 0 3. Leer el valor de Radio (R) y Altura (H) 4. Calcular el Volumen aplicando la fórmula 5. Calcular el valor del área aplicando la Fórmula respectiva 6. Escribir el valor del Área y del Volumen 7. Fin

1. Inicio 2. Dados: R = 2, H = 3 3. Calcular el Volumen aplicando la fórmula 4. Area = pi*2^2 5.-Volumen = 4pi*3 6. Área= 4pi y Volumen = 12pi 7. Fin

Page 11: PRACTICA 8 (1)

18)Calcular la distancia entre dos puntos

hacer uso de

Inicio Variables Escribir “Introduzca X del punto 1:” A1 Escribir “Introduzca Y del punto 1:” B1 Escribir “Introduzca X del punto 2:” A2 Escribir “Introduzca Y del punto 2:” B2 Resta1 <- A1 - A2 Resta2 <- B1 - B2 Pot1 <- Resta1 * Resta1 Pot2 <- Resta2 * Resta2 Num <- Pot1 + Pot2 D <- sqrt(num) Escribir “La distancia entre los dos puntos es : “, D; Fin Inicio Dados A1 = 2 B1 = 3 A2 = 5 B2 = 2 Resta1 <- 2 - 2 Resta2 <- 3 - 2 Pot1 <- 0 * 0 Pot2 <- 1 * 1 Num <- 0 + 1 D <- sqrt(1) Escribir “La distancia entre los dos puntos es : 1“; Fin

Page 12: PRACTICA 8 (1)

20)Imprimir el primer digito de un numero: p.e. 645 imprime 6

Inicio Variables num Numérico Entero Escribir “Introduzca número:” Leer num Dig num (num/10)*10 Escribir “Primera cifra: “, num mod 10 Fin Incio Dados N= 100 Num= 100/100 C=1 numero mod Fin

Page 13: PRACTICA 8 (1)

22)Imprime el ultimo digito de un numero: p.e 546 imprime 6

Inicio Datos: Variables num Numérico Entero Algoritmo: Escribir “Introduzca número:” Leer num Escribir “Última cifra: “, num mod 10 Fin Inicio Dado N=entero N= 101 C= Mod 101= 1 C=1 Fin

Page 14: PRACTICA 8 (1)

24)Leer un números y verificar si el primero es múltiplo de 3

Inicio Pedir Número: N Si el residuo de dividir N/3 =0 Si es Si entonces Escribir: “N es múltiplo de 3” Si es No entonces Escribir: “N no es múltiplo de 3” Fin

Inicio Dado: N=4 Si el residuo de dividir 4/3 = 0 Si es No entonces Escribir: “4 no es múltiplo de 3” Fin

Page 15: PRACTICA 8 (1)

26) Dadas 2 fechas, expresadas como 3 numeros naturales, determinar si la primera es cronológicamente menor que la segunda.

Inicio Pedir Fechas: D1, M1, A1, D2, M2, A2, SI A2 > A1 ENTONCES SI M2 > M1 ENTONCES SI D2 > D1 ENTONCES Imprimir “Fecha 1 es menor que Fecha2” SINO D2 > D1 ENTONCES Imprimir “Fecha 2 es menor que Fecha1” SINO M2 > M1 ENTONCES Imprimir “Fecha 2 es menor que Fecha1” SINO ENTONCES Imprimir “Fecha 2 es menor que Fecha1” Fin Inicio Dados D1= 1 M1=3 A1=2007 D2=3 M2=4 A2=2010 2010>2007 entones f2 es mayor a f1 02>04 entonces f2 es mayor a f1 03>01 entonces f2 es mayor a f1 Mostrar 03-04-2010 fin

Page 16: PRACTICA 8 (1)

28) Leer un numero y verificar si es positivo, negativo o neutro.

Inicio Leer A A>=0 Si A es mayor igual que 0 entonces: Si A es igual a 0 entonces: Imprimir neutro Si a es mayor que 0 entonces: Imprimir positivo Fin Si A es menor a 0 entonces: Imprimir negativo Fin Inicio Dado A=9 9>=0 Si 9 es mayor igual que 0 entonces: Si 9 es mayor que 0 entonces: Positivo Fin

Page 17: PRACTICA 8 (1)

30) Devolver el digito mas significativo de un numero natural

Page 18: PRACTICA 8 (1)

32) Dado un numero natural y un digito, devolver el numero resultante de añadir el digito al numero, como digito mas significativo.

Page 19: PRACTICA 8 (1)

34) Leer un numero y verificar si es par o impar.

1. Inicio 2. Declaración de variables: N 3. Leer un número 4. Asignarlo a la variable N 5. Si el residuo de dividir a N entre 2 es igual a cero 6. Si es Si: Entonces: Escribir “ Es par” 7. Sino: Escribir “Es impar” 8. Fin_Si 9. Fin

1. Inicio 2. Dado: N=6 5. Si el residuo de dividir a 6 entre 2 es igual a cero “ Es par” 9. Fin

Page 20: PRACTICA 8 (1)

36) Calcular las soluciones de un polinomio de segundo grado

Page 21: PRACTICA 8 (1)

Inicio Leer a, b, c, Calcular X1 = (-b+√a^2-(4*a*c) / 2*a) X2 = (-b-√a^2-(4*a*c) / 2*a) imprimir x1, x2 Fin

Inicio Dado a=1, b=2, c=4, Calcular X1 = (-2+√1^2-(4*1*4) / 2*1) X2 = (-2-√1^2-(4*1*4) / 2*1) x1= -1-i√3 x2= -1+i√3 Fin

Page 22: PRACTICA 8 (1)

38) Leer 3 numeros A.B y C (A<C) y verificar si C se encuentra entre A y B.

Inicio Leer A, B, C, SI C > A y C < B o C > B y C < A ENTONCES Imprimir “El número C se encuentra entre A y B” SINO ENTONCES Imprimir “El número C no se encuentra entre A y B” FIN Inicio Dado A=2 B=3 C=4 SI 4 > 2 y 4 < 3 o 4 > 3 y 4 < 2 ENTONCES Imprimir “El número 4 no se encuentra entre 2 y 3” FIN

Page 23: PRACTICA 8 (1)

40)Leer 3 numeros e imprimir el mayor.

Inicio Leer A, B, C SI A > B y A > C ENTONCES Imprimir A SINO ENTONCES SI B > A y B > C ENTONCES Imprimir B SINO ENTONCES SI C > A y C > B ENTONCES Imprimir C Fin

Inicio Dados A=3, B=5, C=4 SI 3 > 5 y 3 > 4 SINO SI 5 > 3 y 5 > 4 ENTONCES Imprimir 5 Fin

Page 24: PRACTICA 8 (1)

42) Leer 3 numeros y mostrarlos en orden ascendente.

Inicio Leer números a, b, c, SI a < b < c ENTONCES Imprimir a, b, c SINO ENTONCES SI b < c < a ENTONCES Imprimir b, c, a SINO ENTONCES SI c < a < b ENTONCES Imprimir c, a, b SINO ENTONCES SI a < c > b ENTONCES Imprimir a, c, b SINO ENTONCES SI b < a > c ENTONCES Imprimir b, a, c SINO ENTONCES c < b > a Imprimir c, b, a FIN Inicio Dados a=5, b=2, c=1, SI 5 < 2 < 1 SINO ENTONCES SI 2 < 1 < 5 ENTONCES Imprimir 5, 2, 1 FIN

Page 25: PRACTICA 8 (1)

44)Leer dos números e imprimir el menor menos el mayor

Inicio Leer números a, b, SI a < b ENTONCES Resta <- a – b SINO a < b ENTONCES Resta <- b – a FINSI Imprimir Resta; FIN Inicio Dados a=5, b=3, SI 5 < 3 SINO 5 < 3 ENTONCES Resta <- 3 – 5 FINSI Imprimir -2; FIN

Page 26: PRACTICA 8 (1)

46)Leer dos números e indicar si son divisibles, o el resultado no existe o son infinitos

Inicio Pedir números a, b, Dividir a/b SI el residuo de a/b =0 o b/a = 0 ENTONCES Escribir: “a y b son divisibles” SINO ENTONCES Escribir: “El resultado es infinito” SI a = 1 y b=0 ó a = 0 y b = 1 ENTONCES Escribir: “El resultado no existe” Fin Inicio Dados a=6, b=3, Dividir 6/3 SI el residuo de a/b =0 o b/a = 0 ENTONCES Escribir: “6 y 3 son divisibles” Fin

Page 27: PRACTICA 8 (1)

Un poco de historia sobre los algoritmos

Definición de Lenguajes Algorítmicos.

Los algoritmos pueden describirse utilizando diversos lenguajes. Cada uno de estos lenguajes permiten describir los pasos con mayor o menor detalle.

La clasificación de los lenguajes para algoritmos puede enunciarse de la siguiente manera :

Lenguaje Natural.

Lenguaje de Diagrama de Flujo.

Lenguaje Natural de Programación.

Lenguaje de Programación de Algoritmos.

Lenguaje Natural.

Es aquél que describe en español, para nuestro caso, los pasos a seguir utilizando un vocabulario cotidiano. Se le conoce como lenguaje jerga cuando se utilizan términos especializados de una determinada ciencia,

profesión o grupo.

Lenguaje de Diagrama de Flujo.

Es aquél que se vale de diversos símbolos para representar las ideas o acciones a desarrollar. Es útil para organizar las acciones o

pasos de un algoritmo pero requiere de etapas posteriores para implementarse en un sistema de cómputo.

Lenguaje Natural de Programación.

Son aquéllos que están orientados a la solución de problemas que se definen de una manera precisa. Generalmente son aplicados para la elaboración de fórmulas o métodos científicos.

El lenguaje natural tiene las siguientes características :

Evita la ambigüedad (algo confuso que se puede interpretar de varias maneras).

Son precisos y bien definidos.

Utilizan términos familiares al sentido común.

Elimina instrucciones innecesarias.

Lenguaje de Programación de Algoritmos.

Es aquél que se utiliza para introducir en la computadora un algoritmo específico. Se les conoce también como Lenguaje de Programación.

Lenguaje de Programación :

Es un conjunto de palabras, símbolos y reglas sintácticas mediante los cuales puede indicarse a la computadora los pasos a seguir para resolver un problema.

Los lenguajes de programación pueden clasificarse por diversos criterios, siendo el más común su nivel de semejanza con el

Page 28: PRACTICA 8 (1)

lenguaje natural, y su capacidad de manejo de niveles internos de la máquina.

Los principales tipos de lenguajes utilizados son tres :

Lenguaje Máquina.

Lenguaje de bajo Nivel (ensamblador).

Lenguajes de Alto Nivel.

Lenguaje Máquina.

Son aquéllos que están escritos en lenguajes directamente inteligibles por la máquina (computadora), ya que sus instrucciones son cadenas binarias (cadenas o series de caracteres de dígitos 0 y 1) que especifican una operación y las posiciones (dirección) de memoria implicadas en la operación se denominan instrucciones de máquina o código máquina. El código máquina es el conocido código binario.

Ventajas del Lenguaje Máquina

Posibilidad de cargar (transferir un programa a la memoria) sin necesidad de traducción posterior, lo que supone una velocidad de ejecución superior a cualquier otro lenguaje de programación.

Desventajas del Lenguaje Máquina

Dificultad y lentitud en la codificación.

Poca fiabilidad.

Gran dificultad para verificar y poner a punto los programas.

Los programas solo son ejecutables en el mismo procesador (CPU).

En la actualidad, las desventajas superan a las ventajas, lo que hace prácticamente no recomendables a los lenguajes máquinas.

Lenguajes de Bajo Nivel.

Son más fáciles de utilizar que los lenguajes máquina, pero al igual que ellos, dependen de la máquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador. Las instrucciones en lenguaje ensamblador son instrucciones conocidas como nemotécnicos. Por ejemplo, nemotécnicos típicos de operaciones aritméticas son : en inglés : ADD, SUB, DIV, etc. ; en español : SUM, RES, DIV, etc.

Conclusión:

En conclusión un algoritmo es una serie de pasos con cierta

orden, para poder llegar a la solución de un problema.

Cuando un algoritmo resuelve un problema para la creación de

un software decimos que es un algoritmo computacional.

Después de crear un algoritmo pasamos a la parte deponer en

prueba el algoritmo, resolviéndolo en algún lenguaje de

programación. Y al final el programa va la depuración.

Page 29: PRACTICA 8 (1)

Otra duda es que no podemos hacer bien las pruebas de escritorio, ya q sentimos que algunas están mal, pero esperamos y Juan nos pueda resolver la duda, otra de las cuales que es eso de el numero más significativo

Mesografía:

http://es.scribd.com/doc/907309/Algoritmos-diagramas-de-flujo-y-ejercicios-

en-Excel

http://www.taringa.net/posts/info/5578852/Pseudocodigo-_-

ejercicios-_ejercicios-resueltos-_-pseint.html

http://ocw.usal.es/ensenanzas-tecnicas/informatica-ingeniero-tecnico-en-obras-

publicas/contenidos/course_files/Extras/Anexo%201%20-%20Diagramas%20de%20Flujo.PDF

http://mis-algoritmos.com/

http://www.eduteka.org/pdfdir/AlgoritmosProgramacion.pdf

Visualizacion de un algoritmo

Tecnicas de diseño de algoritmos en JAVA

Page 30: PRACTICA 8 (1)