Está en la página 1de 9

Jueves 29 de Septiembre del 2011

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

EQUIPO # 6
P R C T I C A 7

Diseo de programas

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. 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.

Objetivo: Emplear algoritmos que permitan resolver un problema de ingeniera sencillo, practicando con distintos ejemplos para poder tener una mejor comprensin al desarrollar uno de mayor grado de dificultad.
Introduccin:

Una definicin informal (no se considera aqu una definicin formal, aunque existe): conjunto finito de reglas que dan una secuencia de operaciones para resolver todos los problemas de un tipo dado. 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: 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.

Caractersticas:
Las caractersticas fundamentales que debe cumplir todo algoritmo son: Un algoritmo debe ser preciso e indicar el orden de realizacin de cada paso. Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez. Un algoritmo debe ser finito. Si se sigue un algoritmo se debe terminar en algn momento; o sea, debe tener un numero finito de pasos. La definicin de un algoritmo debe definir tres partes: Entrada, Proceso y Salida. En el algoritmo de receta de cocina citado anteriormente se tendr: Entrada: ingrediente y utensilios empleados. Proceso: elaboracin de la receta en la cocina. Salida: terminacin del plato (por ejemplo, cordero).

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.

Ejemplo de Algoritmo: Un cliente ejecuta un pedido a una fbrica. Esta examina en su banco de datos la ficha del cliente; si el cliente es solvente entonces la empresa acepta el pedido; en caso contrario rechazara el pedido.

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

Ejercicios propuestos: Realizar el algoritmo que resuelva el problema dado: 1) Calculo de los salarios mensuales de los empleados de una empresa sabiendo que estos se calculan con base en las horas semanales trabajadas y de acuerdo a un precio especificado por horas. Si se pasan de 40 horas semanales, las horas extraordinarias se pagaran a razn de 1.5 veces la hora ordinaria. 1.-Inicio 2.-Pedir horas, pedir nombre, pedir horas trabajadas y cuota por hora (N, H, C) 3.-Multiplicar el numero de horas trabajadas por la cuota por hora (S=H*C) 4.-Mostrar resultados (S) 5.-Fin 2) Calcular la longitud de una circunferencia a partir de su radio. (Usar la formula C=2(PI) (r). Inicio Pi = 3.1416 (fase de inicializacin) Leer(R)(fase de lectura) Area = pi * R ^ (fase de calculo) L = 2 * pi * R (asignacin del valor de la longitud) Escribir (A, L) (fase de salida) Fin 3) Calcular el rea de un crculo a partir de su radio. (Usar A=PI(r)^2) Inicio Pi = 3.1416 (fase de inicializacion) Leer(R)(fase de lectura) Area = pi * R ^ (fase de clculo) L = 2 * pi * R (asignacin del valor de la longitud) Escribir (A, L) (fase de salida) Fin

4) 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 5) Calcular la superficie de un cilindro a partir del radio de la base y la altura. (Hacer uso de la formula S=2(PI)(r)(h)+2(PI)(r)^2). Pi es 3.1416 Variables Obtener el radio(r) Obtener la altura(h) Calcular el rea de la base (r^2 x Pi ) Calcular longitud circunferencia base (2 x R x Pi) Calcular rea lateral (long. circunf base x H) Calcular superficie (rea lateral + 2(rea base)) 6) Calcular el volumen de un cilindro a partir del radio de la base y la 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 7) Dado un valor de velocidad medido en kilmetros/hora convertirlo a metros/seg. Inicio Variables Pedir velocidad en kilmetros/hora : N N* (1000/3600): conversin Escribir: Su resultado es:, conversin Fin 8) Dado un valor de temperatura, medida en grados centgrados, convertirlo a grados Fahrenheit. (Emplear: f=32+ (9/5) C). 1.-inicio 2.- pedir la temperatura en grados centgrados (C) 3.- multiplicar la temperatura dada por 9/5+32 (F=9/5C+32) 4.- mostrar resultados 5.- fin

9) Calcular la distancia entre dos puntos. Sea P1 (A1, B1) y P2 (A2, B2), hacer uso de D=raz ((A1-A2)^2+(B1-B2)^2). 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 10) Resolver la siguiente operacin: R=(A+B)*B^2. Inicio Variables Escribir Introduzca nmero: A Escribir Introduzca nmero: B Suma <- A+B Pot <- B*B R <- Suma * Pot Escribir R es igual a: , R; Fin 11) 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 12) Leer 5 nmeros dados e imprimir la suma del primero y el quinto, la resta del segundo con el cuarto, la multiplicacin de los 5. Inicio Variables Escribir Introduzca primer nmero: A

Escribir Introduzca segundo nmero: B Escribir Introduzca tercer nmero: C Escribir Introduzca cuarto nmero: D Escribir Introduzca quinto nmero: E Suma <- A+E Resta <- B-D Mult <- A*B*C*D*E Escribir La suma del primero y el quinto es igual a: , Suma; Escribir La resta del segundo y el cuarto es igual a: , Resta; Escribir La multiplicacin de todos es: , Mult; Fin 13) Imprime el ltimo digito de un nmero: p.e. 456, imprime 6. Inicio Datos: Variables num Numrico Entero Algoritmo: Escribir Introduzca nmero: Leer num Escribir ltima cifra: , num mod 10 Fin 14) Leer 2 nmeros e imprimir las 4 operaciones fundamentales entre los dos, usando solo una variable auxiliar. (En todo ejercicio solo debe usar 3 variables). Proceso Area_Circulo Escribir "Superficie del circulo" Escribir "Ingrese la medida del Dimetro"; Leer dimetro; radio<-diametro/2; area<-3.1416*radio*radio; Escribir "El rea del Circulo es: ",area; FinProceso

15) Leer dos nmeros y verificar si el primero es mltiplo del segundo. Inicio Pedir Primer Nmero: A Pedir Segundo nmero: B Si el residuo de dividir B/A =0 Si es Si entonces: A es mltiplo de B Si es No entonces: A no es mltiplo de B Fin 16) Leer un nmero y determinar si este 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 17) Dadas 2 fechas, expresadas como tres nmeros 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

18) Leer un nmero y verificar si es o no positivo. Inicio Pedir nmero n Pos <- 0 Neg <- 0 SI n > 0 ENTONCES: Escribir "El nmero es positivo"; SINO Escribir "El nmero no es positivo"; Fin 19) Leer un nmero y verificar si es positivo, negativo o neutro. Inicio Pedir nmero n SI n > 0 ENTONCES: Escribir "El nmero es positivo"; SINO Escribir "El nmero no es positivo"; SI n = 0 Escribir El nmero es neutro; Fin 20) Leer un nmero 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 21) Leer 5 nmeros e imprimir solo los pares. Inicio Leer 5 nmeros Par <- 0 Impar <- 0 PARA x <- 1 hasta 5 HACER Leer n SI n / 2 = 0 ENTONCES Par <- par + 1 SINO Impar <- impar + 1 FINSI FINPARA IMPRIMIR Par, Impar FIN 22) Calcular las soluciones de un polinomio de segundo grado. Ax^2+bx+c=0 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 23) Leer un nmero y verificar si se encuentra entre 10 y 20. Inicio Leer n SI n > 10 y n < 20 ENTONCES Imprimir El nmero se encuentra entre 10 y 20 SINO ENTONCES Imprimir El nmero no se encuentra entre 10 y 20 FIN

24) Leer 3 nmeros A, B y C(A<C) y verificar si C se encuentra entre A y B. Inicio Leer A (A < C), B, C, SI C < B ENTONCES Imprimir C se encuentra entre A y B SINO C < B ENTONCES Imprimir C no se encuentra entre A y B Fin 25) Leer 2 nmeros e imprimir el menor. Inicio Leer A, B, SI A > B ENTONCES Imprimir B SINO A > B ENTONCES Imprimir A Fin 26) Leer 3 nmeros 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 27) Calcular las soluciones de un polinomio de tercer grado. Inicio Forma: ax3 + bx2 + cx + d = 0 Leer a, b, c, d, Calcular X1 = -b/(3*a) - (2^(1/3)*(-b^2 + 3*a*c))/(3*a*(-2*b^3 + 9*a*b*c - 27*a^2*d + Sqrt[4*(-b^2 + 3*a*c)^3 + (-2*b^3 + 9*a*b*c 27*a^2*d)^2])^(1/3)) + (-2*b^3 + 9*a*b*c - 27*a^2*d + Sqrt[4*(-b^2 + 3*a*c)^3 + (-2*b^3 + 9*a*b*c - 27*a^2*d)^2])^(1/3)/(3*2^(1/3)*a)

Calcular X2 = -b/(3*a) + ((1 + i*Sqrt[3])*(-b^2 + 3*a*c))/(3*2^(2/3)*a*(2*b^3 + 9*a*b*c - 27*a^2*d + Sqrt[4*(-b^2 + 3*a*c)^3 + (-2*b^3 + 9*a*b*c - 27*a^2*d)^2])^(1/3)) - (1 - i*Sqrt[3])*(-2*b^3 + 9*a*b*c 27*a^2*d + Sqrt[4*(-b^2 + 3*a*c)^3 + (-2*b^3 + 9*a*b*c 27*a^2*d)^2])^(1/3)/(6*2^(1/3)*a) Calcular X3 = -b/(3*a) + ((1 - i*Sqrt[3])*(-b^2 + 3*a*c))/(3*2^(2/3)*a*(2*b^3 + 9*a*b*c - 27*a^2*d + Sqrt[4*(-b^2 + 3*a*c)^3 + (-2*b^3 + 9*a*b*c - 27*a^2*d)^2])^(1/3)) - (1 + i*Sqrt[3])*(-2*b^3 + 9*a*b*c 27*a^2*d + Sqrt[4*(-b^2 + 3*a*c)^3 + (-2*b^3 + 9*a*b*c 27*a^2*d)^2])^(1/3)/(6*2^(1/3)*a) Imprimir X1, X2, X3, Fin 28) Leer 3 nmeros 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

29) Leer 2 nmeros y mostrar la resta del menor menos el mayor. Inicio Leer nmeros a, b, SI a < b ENTONCES Imprimir b a SINO a < b ENTONCES Imprimir a b FIN 30) Leer 2 nmeros e imprimir el menor menos el mayor. Inicio Leer nmeros a, b, SI a < b ENTONCES Resta <- b a SINO a < b ENTONCES Resta <- a b FINSI Imprimir Resta; FIN 31) Determinar si un carcter es una vocal o no. Inicio Leer carcter A SI A = a A =e A = i A = o A = u ENTONCES Imprimir El caracter es vocal SINO ENTONCES Imprimir El caracter no es vocal Fin

32) Leer 2 nmeros y verificar si son divisibles, o el resultado no existe, o es infinito. 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 33) Leer 10 nmeros e imprimir solo los positivos. Inicio Leer 10 nmeros Pos <- 0 Neg <- 0 PARA x <- 1 hasta 50 HACER Leer n SI n > 0 ENTONCES Pos <- pos + 1 Neg <- neg + 1 FINSI FINPARA ESCRIBIR pos, neg Fin

Un poco de historia sobre los algoritmos Bueno en este tema hablaremos sobre lo que es un algoritmo el cual es un conjunto pre-escrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien lo ejecute.

Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solucin. Por tanto, un algoritmo es el conjunto de operaciones y procedimientos que deben seguirse para resolver un problema. La palabra "algoritmo" deriva del nombre latinizado del gran matemtico rabe Mohamed Ibn Moussa Al Kow Rizmi, el cual escribi sobre entre los aos 800 y 825 su obra Quitab Al Jabr Al Mugabala, donde se recoga el sistema de numeracin hind y el concepto del cero. Fue Fibonacci, el que tradujo su obra al latn y la inici con las palabras: Algoritmi dicit. El origen del trmino "algoritmo" se remonta al siglo IX y se le atribuye su invencin al matemtico rabe Abu Jafar Muhammad ibn Musa al-Khwarizmi La palabra algoritmo se refera originalmente slo a las reglas de la aritmtica con nmeros arbigos. Recin en el siglo XVIII se expandi su significado para abarcar en su definicin a toda clase de procedimientos utilizados con el propsito de resolver problemas o realizar determinadas tareas. El primer caso de un algoritmo escrito para una computadora se considera que son las notas escritas por Ada Byron en 1842 para el motor analtico de Charles Babbage. Por esta razn, se considera a Ada Byron como la primera programadora de la historia. Sin embargo, dado que Babbage nunca termin su motor analtico, el algoritmo jams lleg a implementarse. Una forma de clasificar los algoritmos consiste en diferenciarlos por su metodologa de diseo. 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.

Dudas: En algunos algoritmos tuvimos problemas para desarrollarlos debido a que era necesario tener bien definidas las instrucciones que queramos dar a entender y que simplemente fuera lo ms sencillo posible.

Mesografa:
http://mis-algoritmos.com/ http://www.eduteka.org/pdfdir/AlgoritmosProgramacion.pdf 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

También podría gustarte