Anda di halaman 1dari 25

Unidad 2.

Algoritmos
Fundamentos de programacin

ndice temtico

2.1 Anlisis de problemas. 2.2 Representacin de algoritmos: grfica y pseudocdigo. 2.3 Diseo de algoritmos aplicados a problemas 2.4 Diseo algortmico de funciones

Algoritmo
Segn la RAE : Conjunto ordenado y finito de operaciones que permite hallar la solucin de un problema.
Un algoritmo es un mtodo para resolver un problema. Aunque la popularizacin del trmino ha llegado con l advenimiento de la era informtica algoritmo proviene de Mohammed al-KhoWrizmi, matemtico persa que vivi durante el siglo IX y alcanz gran reputacin por el enunciado de las reglas paso a paso para sumar, restar, multiplicar y dividir nmeros decimales; la traduccin al latn del apellido en la palabra Algorismus, deriv posteriormente en algoritmo.

Euclides, el gran matemtico griego (del siglo IV AC), que invent un mtodo para encontrar el mximo comn divisor de dos nmeros se considera con al-KhoWrizmi, el otro gran padre de la algoritmia (Ciencia que trata de los algoritmos).

Anlisis de los problemas


La resolucin de un problema exige el diseo de un algoritmo, que resuelva el problema propuesto.

Problema

Diseo de algoritmo

Programa de computadora

Resolucin de un problema

Anlisis de los problemas


Los pasos para la resolucin de un problema son: 1. Diseo del algoritmo, que describe la secuencia ordenada de pasos - sin ambigedades que conducen a la solucin de un problema dado (anlisis del problema y desarrollo del algoritmo). 2. Expresar el algoritmo como un programa en un lenguaje de programacin adecuado (fase de codificacin). 3. Ejecucin y validacin del programa por la computadora

Caractersticas de los algoritmos


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 bien 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 nmero finito de pasos

Anlisis del problema


La definicin de un algoritmo debe describir tres partes:
Ingredientes y utensilios empleados
Entrada

Elaboracin de la receta en la cocina


Proceso

Terminacin del plato


Salida

Anlisis del problema: Solicitud de Pedidos a una fbrica


Un cliente ejecuta un pedido a una fbrica, la fabrica examina en su banco de datos, la ficha del cliente, si el cliente es solvente, entonces la empresa acepta el pedido; en caso contrario, rechazar el pedido.

Anlisis del problema: Solicitud de Pedidos a una fbrica

Leer el pedido
Entrada

Proceso

Examinar la ficha del cliente Si el cliente es solvente aceptar pedido; en caso contrario, rechazar pedido

Aceptar pedido o rechazo del pedido


Salida

Anlisis del problema: Solicitud de Pedidos a una fbrica


Los pasos del algoritmo del ejemplo anterior son:
1. 2. 3. 4. 5. Inicio Leer el pedido Examinar la ficha del cliente Si el cliente es solvente aceptar pedido; en caso contrario, rechazar pedido Fin

Anlisis del problema: Ejercicios


1. 2. Dados dos nmeros verificar cual es mayor (considerar la igualdad) Hacer una tabla de la funcin f(x)=1/x, con once valores, comenzando con a y terminando en a, los valores de x deben estar igualmente espaciados, note que la serie pasar por x=0 3. 4. 5. Determine si un nmero z es par o impar Generar los primeros n nmeros pares Dados X y Y, verificar si X es divisible por Y
Salida Entrada

Proceso

6. Sumar los primeros N nmeros naturales

Actividades
Resolver por lo menos tres ejercicios expuestos anteriormente Realizar el siguiente proceso: Armar un cubo utilizando papiroflexia, detallar el anlisis del problema

Segunda sesin
Orden del da
Demostracin del proceso de elaboracin de cubo Exposicin de anlisis de problema. (sesin anterior). Representacin de algoritmos: grfica y pseudocdigo. Diseo de algoritmos aplicados

Representacin de algoritmos grfica y pseudocdigo


Para representar un algoritmo se debe utilizar algn mtodo que permita independizar dicho algoritmo del lenguaje de programacin elegido. Los mtodos usuales para representar un algoritmo son:
Diagrama de flujo Diagrama N-S Lenguaje de especificacin de algoritmos: pseudocdigo Lenguaje espaol, ingls.. Etc. Frmulas

Representacin de algoritmos: Pseudocdigo y diagrama de flujo


Pseudocdigo: Es un lenguaje de especificacin (descripcin) de algoritmos. El uso de tal lenguaje hace el paso de codificacin final relativamente fcil. El pseudocdigo original utiliza para representar las acciones sucesivas palabras reservadas en ingls, tales como start, end, stop, if-then-else, while-end, repeat-until. La escritura de pseudocdigo exige normalmente la indentacin (sangra en el margen izquierdo) de diferentes lneas.

Representacin de algoritmos: Pseudocdigo y diagrama de flujo


Ejemplo: start //clculo de impuestos y salarios read nombre, horas, precio salario <- horas * precio tasas <- 0.25 * salario salario_neto <- salario tasas write nombre, salario, tasas, salario_neto end

Nombre, horas, precio Entrada Salario = horas * precio Tasas = .25 * salario Proceso Salario_neto = salario-tasas Nombre, salario, tasas, salario_neto

Salida

Representacin de algoritmos: Pseudocdigo y diagrama de flujo


Un diagrama de flujo (flowchart) es una de las tcnicas de representacin de algoritmos, es un diagrama que utiliza los smbolos (cajas) estndar, y que tiene los pasos del algoritmo escritos en estas cajas unidas por flechas, denominadas lneas de flujo, que indican la secuencia en que se debe ejecutar.

Representacin de algoritmos: Pseudocdigo y diagrama de flujo


Nombre Terminal Smbolo Funcin Terminal. Representa Inicio y Fin de un programa.

Smbolos del diagrama de flujo.

Entrada / salida

Entrada / Salida. Cualquier tipo de introduccin de datos en la memoria desde los perifricos. Proceso. Cualquier tipo de operacin que pueda originar cambio de valor, formato o posicin de la informacin almacenada en memoria, operaciones aritmticas, de transferencia, etc.

Proceso

Decisin

Decisin. Indica operaciones lgicas o de comparacin entre datos (normalmente dos) y en funcin del resultado de la misma determina cual de los distintos caminos alternativos del programa se debe seguir.

Conector Misma Pgina Indicador de direccin o lnea de flujo

Sirve para enlazar dos partes cualesquiera de un diagrama a travs de un conector en la salida y otro conector en la entrada. Se refiere a la conexin en la misma pagina del diagrama. Indica el sentido de la ejecucin de las operaciones

Representacin de algoritmos: Pseudocdigo y diagrama de flujo


Utilizar PSeInt
Proceso calculo_salario_neto Leer nombre, horas, precio; salario<-horas*precio; tasas<-0.25*salario; salario_neto<-salario-tasas; Escribir nombre, salario, tasas, salario_neto; FinProceso

Ejemplo 1: Calcular el I.V.A a un producto X


Anlisis del problema Desarrollarlo en PSeInt
Generar el programa en pseudocdigo Diagrama de flujo Ejecucin del programa

Ejemplo 2: Calcular el permetro y rea de un crculo


Anlisis del problema Desarrollarlo en PSeInt
Generar el programa en pseudocdigo Diagrama de flujo Ejecucin del programa

Un crculo de radio r , tendr un rea: A= * r 2


El permetro de un crculo es una circunferencia y su ecuacin es: P = 2r*

Ejemplo 3. Aumento de impuestos


Problema: Leer el sueldo de tres empleados y aplicarles un aumento del 10, 12 y 15% respectivamente.

Ejemplo 4. Calificacin final


Problema: Un alumno desea saber cual ser su calificacin final en la materia de Fundamentos de programacin. Dicha calificacin se compone de tres exmenes parciales cuya ponderacin es de 30%, 30% y 40%

Ejemplo 5: Medicamentos
Problema: Una farmacia aplica al precio de los medicamentos el 10% de descuento. Hacer un programa que ingresado el costo de los medicamentos calcule el descuento y el precio final.

Actividad 4. Subir Moodle en un documento Word los siguientes ejercicios, elaborando 1. Anlisis del problema, 2. Desarrollo en PSeInt (Pseudocdigo, Diagrama de flujo, Ejecucin)
1. Mostrar su Nombre y su Apellido 2. Mostrar el Nombre y Apellido de cualquier persona de quien se introduzcan los datos. 3. Sumar 2 + 2 y mostrar el resultado (por pantalla, por impresora, por pantalla e impresora) 4. Sumar 2 nmeros cualesquiera. 5. Dados los coeficientes de una Ecuacin de 2do Grado, calcular y mostrar x1 y x2. 6. Calcular la edad
1. 2. 3. fcil: al introducir slo el ao de nacimiento mediano: al introducir el mes y ao de nacimiento complejo: al introducir el da, mes y ao de nacimiento