Vous êtes sur la page 1sur 30

Jueves 13 de Octubre del 2011

Universidad Nacional Autnoma de Mxico Facultad de Ingeniera Computacin para Ingenieros INGENIERA MECTRONICA 2012-1

Caractersticas:
Finitud: el algoritmo debe acabar tras un nmero finito de pasos. Es ms, es casi fundamental que sea en un nmero razonable de pasos. Definibilidad: el algoritmo debe definirse de forma precisa para cada paso, es decir, hay que evitar toda ambigedad al definir cada paso. Puesto que el lenguaje humano es impreciso, los algoritmos se expresan mediante un lenguaje formal, ya sea matemtico o de programacin para un computador. Entrada: el algoritmo tendr cero o ms entradas, es decir, cantidades dadas antes de empezar el algoritmo. Estas cantidades pertenecen adems 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 interpretacin por el computador.

EQUIPO # 6
P R C T I C A PARTE II 8

Diseo de programas

Objetivo: Emplear algoritmos que permitan resolver un problema, practicando con distintos ejemplos para poder tener una mejor comprensin en distintos casos.
Introduccin: De forma ms sencilla, podemos decir que un algoritmo es un conjunto de pasos que nos permite obtener un dato. Adems debe cumplir estas condiciones.

Salida: el algoritmo tiene una o ms salidas, en relacin 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 mquina en un lapso de tiempo finito. A menudo los algoritmos requieren una organizacin 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 ms, existen algoritmos para implementar dichas estructuras. El uso de estructuras de datos adecuadas pueden hacer trivial el diseo de un algoritmo, o un algoritmo muy complejo puede usar estructuras de datos muy simples.

Con MATLAB, podr resolver problemas de clculo tcnico ms rpidamente que con lenguajes de programacin tradicionales, tales como C, C++ y FORTRAN.

MATLAB Es un lenguaje de computacin tcnica de alto nivel y un entorno interactivo para desarrollo de algoritmos, visualizacin de datos, anlisis de datos y clculo numrico.

Ejemplos de DFD

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.

4)Calcular el cociente de la divisin entera de dos nmeros naturales

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

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

6)Calcular la suma de los dgitos pares de un numero natural


Inicio Variables n, b, Leer nmero n, Revisar los dgitos 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

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 operacin 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 operacin C= 2*(3.14159265)*8 C = 50.265482 Fin

10)Dado un numero natural, devolver el numero resultante de invertir el orden de sus dgitos

Inicio Leer n
invertido0

Mientras n>0 Hacer


rn mod 10 nn div 10 invertidoinvertido + r * (10 ^ digitos) digitosdigitos - 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

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

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

Inicio Datos: Variables base Numrico Entero altura Numrico Entero rea Numrico Real perimetro Numrico Real Algoritmo: Leer base, altura rea = base * altura Permetro = base*(2) + altura*(2) Escribir rea = , area Escribir Permetro = , perimetro Fin

Inicio Dados: base = 8 altura=5 rea = 8 * 5 Permetro = 8*(2) + 5*(2) rea = 40 Permetro = 26 Fin

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. Declaracin de variables: R = 0, H = 0 3. Leer el valor de Radio (R) y Altura (H) 4. Calcular el Volumen aplicando la frmula 5. Calcular el valor del rea aplicando la Frmula 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 frmula 4. Area = pi*2^2 5.-Volumen = 4pi*3 6. rea= 4pi y Volumen = 12pi 7. Fin

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

20)Imprimir el primer digito de un numero: p.e. 645 imprime 6 Inicio Variables num Numrico Entero Escribir Introduzca nmero: 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

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

Inicio Datos: Variables num Numrico Entero Algoritmo: Escribir Introduzca nmero: Leer num Escribir ltima cifra: , num mod 10 Fin

Inicio Dado N=entero N= 101 C= Mod 101= 1 C=1 Fin

24)Leer un nmeros y verificar si el primero es mltiplo de 3

Inicio Pedir Nmero: N Si el residuo de dividir N/3 =0 Si es Si entonces Escribir: N es mltiplo de 3 Si es No entonces Escribir: N no es mltiplo de 3 Fin

Inicio Dado: N=4 Si el residuo de dividir 4/3 = 0 Si es No entonces Escribir: 4 no es mltiplo de 3 Fin

26) Dadas 2 fechas, expresadas como 3 numeros naturales, determinar si la primera es cronolgicamente 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

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

30) Devolver el digito mas significativo de un numero natural

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

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

1. Inicio 2. Declaracin de variables: N 3. Leer un nmero 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

36) Calcular las soluciones de un polinomio de segundo grado

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-i3 x2= -1+i3 Fin

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 nmero C se encuentra entre A y B SINO ENTONCES Imprimir El nmero 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 nmero 4 no se encuentra entre 2 y 3 FIN

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

42) Leer 3 numeros y mostrarlos en orden ascendente. Inicio Leer nmeros 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

44)Leer dos nmeros e imprimir el menor menos el mayor

Inicio Leer nmeros 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

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

Inicio Pedir nmeros 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

pasos de un algoritmo pero requiere de etapas posteriores para implementarse en un sistema de cmputo. Un poco de historia sobre los algoritmos Definicin de Lenguajes Algortmicos. Los algoritmos pueden describirse utilizando diversos lenguajes. Cada uno de estos lenguajes permiten describir los pasos con mayor o menor detalle. La clasificacin de los lenguajes para algoritmos puede enunciarse de la siguiente manera :

Lenguaje Natural de Programacin. Son aqullos que estn orientados a la solucin de problemas que se definen de una manera precisa. Generalmente son aplicados para la elaboracin de frmulas o mtodos cientficos. El lenguaje natural tiene las siguientes caractersticas :

Evita la ambigedad (algo confuso que se puede interpretar de varias maneras). Son precisos y bien definidos. Utilizan trminos familiares al sentido comn. Elimina instrucciones innecesarias.

Lenguaje Natural. Lenguaje de Diagrama de Flujo. Lenguaje Natural de Programacin. Lenguaje de Programacin de Algoritmos.

Lenguaje de Programacin de Algoritmos. Es aqul que se utiliza para introducir en la computadora un algoritmo especfico. Se les conoce tambin como Lenguaje de Programacin. Lenguaje de Programacin : Es un conjunto de palabras, smbolos y reglas sintcticas mediante los cuales puede indicarse a la computadora los pasos a seguir para resolver un problema. Los lenguajes de programacin pueden clasificarse por diversos criterios, siendo el ms comn su nivel de semejanza con el

Lenguaje Natural. Es aqul que describe en espaol, para nuestro caso, los pasos a seguir utilizando un vocabulario cotidiano. Se le conoce como lenguaje jerga cuando se utilizan trminos especializados de una determinada ciencia, profesin o grupo. Lenguaje de Diagrama de Flujo. Es aqul que se vale de diversos smbolos para representar las ideas o acciones a desarrollar. Es til para organizar las acciones o

lenguaje natural, y su capacidad de manejo de niveles internos de la mquina. Los principales tipos de lenguajes utilizados son tres :

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 prcticamente no recomendables a los lenguajes mquinas.

Lenguaje Mquina.

Lenguaje de bajo Nivel (ensamblador). Lenguajes de Alto Nivel.

Lenguajes de Bajo Nivel. Lenguaje Mquina. Son aqullos que estn escritos en lenguajes directamente inteligibles por la mquina (computadora), ya que sus instrucciones son cadenas binarias (cadenas o series de caracteres de dgitos 0 y 1) que especifican una operacin y las posiciones (direccin) de memoria implicadas en la operacin se denominan instrucciones de mquina o cdigo mquina. El cdigo mquina es el conocido cdigo binario. Ventajas del Lenguaje Mquina Posibilidad de cargar (transferir un programa a la memoria) sin necesidad de traduccin posterior, lo que supone una velocidad de ejecucin superior a cualquier otro lenguaje de programacin. Desventajas del Lenguaje Mquina

Son ms fciles de utilizar que los lenguajes mquina, pero al igual que ellos, dependen de la mquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador. Las instrucciones en lenguaje ensamblador son instrucciones conocidas como nemotcnicos. Por ejemplo, nemotcnicos tpicos de operaciones aritmticas son : en ingls : ADD, SUB, DIV, etc. ; en espaol : SUM, RES, DIV, etc.

Conclusin:
En conclusin un algoritmo es una serie de pasos con cierta orden, para poder llegar a la solucin de un problema. Cuando un algoritmo resuelve un problema para la creacin de un software decimos que es un algoritmo computacional. Despus de crear un algoritmo pasamos a la parte deponer en prueba el algoritmo, resolvindolo en algn lenguaje de programacin. Y al final el programa va la depuracin.

Dificultad y lentitud en la codificacin. Poca fiabilidad.

http://mis-algoritmos.com/ http://www.eduteka.org/pdfdir/AlgoritmosProgramacion.pdf

Visualizacion de un algoritmo

Otra duda es que no podemos hacer bien las pruebas de escritorio, ya q sentimos que algunas estn mal, pero esperamos y Juan nos pueda resolver la duda, otra de las cuales que es eso de el numero ms significativo Mesografa:
http://es.scribd.com/doc/907309/Algoritmos-diagramas-de-flujo-y-ejerciciosen-Excel http://www.taringa.net/posts/info/5578852/Pseudocodigo-_ejercicios-_ejercicios-resueltos-_-pseint.html

Tecnicas de diseo de algoritmos en JAVA

http://ocw.usal.es/ensenanzas-tecnicas/informatica-ingenierotecnico-en-obraspublicas/contenidos/course_files/Extras/Anexo%201%20%20Diagramas%20de%20Flujo.PDF

Vous aimerez peut-être aussi