Вы находитесь на странице: 1из 18

Facultad de Ingeniera

Diseo de Algoritmos

ALGORITMOS Y ESTRUCTURAS BSICAS.

2.1. Algoritmos. Un algoritmo es un conjunto de pasos, instrucciones o reglas secuenciales, que describen el mtodo de solucin de un problema y que cumple con las siguientes cinco caractersticas: 1) Finitud: Debe tener un nmero finito de pasos. 2) Definicin: Cada paso en un algoritmo debe estar definido de manera precisa. Eje. Un algoritmo descrito en un lenguaje como ingls o espaol, en el cual una misma palabra puede significar varias cosas, puede no cumplir con este punto. Es por eso que se han definido los lenguajes de programacin o lenguajes de computacin para especificar algoritmos, ya que en ellos el significado de cada palabra es uno y slo uno. 3) Entrada: Un algoritmo cuenta con una entrada, una entrada es el conjunto de datos o informacin requerida para resolver un problema. 4) Salida: La salida hace referencia las respuestas que obtenemos del algoritmo. 5) Efectividad: Las operaciones que indica el algoritmo, deben ser lo suficientemente simples para que en principio, se puedan ejecutar con papel y lpiz y luego para que el procesador pueda realizarlas de modo exacto y en tiempo finito.

2.1.1.

Diagrama

de

flujo.

Un

Diagrama

de

Flujo

representa

la

esquematizacin grfica de un algoritmo, indica grficamente los pasos o procesos a seguir para alcanzar la solucin de un problema. Su elaboracin es muy importante porque, sirve de gua para escribir un programa en algn Lenguaje de Programacin. Un Diagrama de Flujo completo y correcto permite que el paso del mismo a un Lenguaje de Programacin sea simple y directo. Es importante resaltar que el Diagrama de Flujo muestra lugares de origen y destino de los datos,
1

transformaciones a las que son sometidos los datos, lugares en los que se almacenan los datos dentro del sistema, los canales por donde circulan los datos. Un diagrama de flujo consta de smbolos interconectados secuencialmente. En todo diagrama de flujo podemos encontrar los siguientes elementos: a) Inicio de proceso. b) Especificacin de la alimentacin de datos para efectuar el proceso. c) Acciones aplicables a los datos. d) Obtencin de resultados. e) Fin del proceso. Para cada una de estas actividades existen smbolos especficos que denotan los elementos o acciones que se tomarn en el proceso.

Ing. Karim Ivette Cruzado Villar Docente del curso.

2.1.2.

Reglas Bsicas de un algoritmo:

1. Todos los smbolos han de estar conectados. 2. A un smbolo de proceso pueden llegarle varias lneas. 3. A un smbolo de decisin pueden llegarle varias lneas, pero slo saldrn dos. 4. A un smbolo de inicio nunca le llegan lneas. 5. De un smbolo de fin no parte ninguna lnea. 2.1.3. Diagrama de Flujo Genrico

Ing. Karim Ivette Cruzado Villar Docente del curso.

2.1.4.

Variables y Operaciones.

o Variables: Numricas: Enteros y punto flotante. Alfanumricas: Carcter y Cadena de Caracteres.

o Operaciones: Asignacin: =. Comparacin: =? Aritmticas: +, -, *, /, ** (potenciacin). Lgicas: >,<,=,,,

2.2.

Estructuras bsicas.

Cualquier programa con un solo punto de entrada y un solo punto de salida puede resolverse con tres tipos de estructuras bsicas de control: Secuencial, alternativa y repetitiva. 2.2.1. Secuencial Es aquella que ejecuta las acciones sucesivamente unas a continuacin de otras sin posibilidad de omitir ninguna, y naturalmente sin bifurcaciones (saltos a subrutinas). Todas estas estructuras tendrn una entrada y una salida. Este tipo de estructura se basa en las 5 fases de que consta todo algoritmo o programa: a. Definicin de variables (Declaracin) b. Inicializacin de variables. c. Lectura de datos d. Clculo e. Salida
Ing. Karim Ivette Cruzado Villar Docente del curso.

Ejemplo: Tengo un telfono y necesito llamar a alguien pero no s como hacerlo.

El anterior ejemplo es el algoritmo de un problema cotidiano, donde la solucin muestra secuencia entre las acciones. Ahora veremos los componentes de un algoritmo secuencial: Asignacin. La asignacin consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona ser reconocida con el nombre de la variable que recibe el valor. La asignacin se puede clasificar de la siguiente forma: Simples: Consiste en pasar un valor constante a una variable (a 15) Contador: Consiste en usarla como un verificador del numero de veces que se realiza un proceso (a a + 1) a + b) Acumulador: Consiste en usarla como un sumador en un proceso (a

De trabajo: Donde puede recibir el resultado de una operacin matemtica que involucre muchas variables (a c + b*2/4). En general el formato a utilizar es el siguiente: < Variable > El smbolo <valor o expresin > debe leerse asigne.

Ing. Karim Ivette Cruzado Villar Docente del curso.

Escritura o salida de datos Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora) un resultado o mensaje. Esta instruccin presenta en pantalla el mensaje escrito entre comillas o el contenido de la variable. Este proceso se representa as como sigue:

Lectura o entrada de datos La lectura o entrada de datos consiste en recibir desde un dispositivo de entrada (p.ej. el teclado) un valor o dato. Este dato va a ser almacenado en la variable que aparece a continuacin de la instruccin. Esta operacin se representa as:

Definicin de variables y constantes. La declaracin de variables consiste en listar al principio del algoritmo todas las variables que se usarn, para ello debemos colocar el nombre de la variable y el tipo de datos que almacenar. Contador: ENTERO Edad I: ENTERO Direccin: CADENA_DE_CARACTERES Salario_Bsico: REAL Opcin : CARCTER En la anterior declaracin de variables Contador, Edad I son declaradas de tipo entero; Salario_Basico es una variable de tipo real, Opcin es de tipo carcter y la variable Direccin est declarada como una variable alfanumrica de cadena de caracteres.

Ing. Karim Ivette Cruzado Villar Docente del curso.

Se declarar constantes indicando que lo es y colocando su valor respectivo . CONSTANTE Pi 3.14159 CONSTANTE Msg Presione una tecla y continue. CONSTANTE ALTURA 40. Cuando se trabaja con algoritmos por lo general no se acostumbra a declarar variables ni tampoco constantes. Sin embargo lo haremos para todos los algoritmos que realicemos, con esto logramos hacerlos ms entendibles y organizados y de paso no acostumbramos a declararlas ya que la mayora de los lenguajes de programacin es necesario declara las variables del programa.

Componente de Asignacin. La asignacin consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona ser reconocida con el nombre de la variable que recibe el valor. La asignacin se puede clasificar de la siguiente forma: Simples: Consiste en pasar un valor constante a una variable (a 15)

Contador: Consiste en usarla como un verificador del numero de veces que se realiza un proceso (a = a + 1) Acumulador: Consiste en usarla como un sumador en un proceso (a= a + b) De trabajo: Donde puede recibir el resultado de una operacin matemtica que involucre muchas variables (a=c + b*2/4).

En general el formato a utilizar es el siguiente: < Variable > El smbolo <valor o expresin > debe leerse asigne.

Veamos algunos ejemplos donde se aplique todo lo que hemos visto hasta el momento sobre algoritmos:

Ing. Karim Ivette Cruzado Villar Docente del curso.

Ejemplo 1: Escriba un algoritmo que pregunte por dos nmeros y muestre como resultado la suma de estos. Use Pseudocdigo y diagrama de flujos.

Ejemplo 2. Escriba un algoritmo que permita conocer el rea de un tringulo a partir de la base y la altura. Exprese el algoritmo usando Pseudocdigo y diagrama de flujos.

Ing. Karim Ivette Cruzado Villar Docente del curso.

Ejemplo 3. Se desea encontrar la longitud y el rea de un crculo de radio 5. Solucin. El objetivo del ejercicio es encontrar la longitud y el rea de un crculo con un radio conocido y de valor 5. Las salidas sern entonces la longitud y el rea. (Fase 5 del algoritmo) Sabemos que la longitud de un crculo viene dada por la frmula 2 * pi * radio y que el rea viene dada por pi * radio al cuadrado. (Fase 4 del algoritmo) Si definimos las variables como: (fase 1 del algoritmo) L = Longitud A = rea R = radio pi = 3.1416 hagamos el algoritmo:

Inicio Pi <- 3.1416 (definicin de un valor constante) R <- 5 (radio constante ya que es conocido su valor) A <- pi * R ^ (asignacin del valor del rea) L <- 2 * pi * R (asignacin del valor de la longitud) Escribir (A, L) (salida del algoritmo) Fin

Representacin en Diagrama de Flujo para el ejemplo:


En este ejercicio no existen datos de entrada ya que para calcular el rea y la longitud necesitamos nicamente el radio y el valor de Pi los cuales ya son dados en el problema. Ing. Karim Ivette Cruzado Villar Docente del curso.

Ejemplo 4. Modificar el problema anterior para que sea capaz de calcular el rea y la longitud de un crculo de cualquier radio requerido. Solucin. El problema es el mismo con la variante de que ahora ya existe un dato de entrada, puesto que el radio puede ser cualquiera y ser necesario que el usuario sea quien lo introduzca de teclado. Usando las misma definicin de variables tenemos: Algoritmo: Inicio pi <- 3.1416 (fase de inicializacin) Leer (R) (fase de lectura) A <- pi * R ^ (fase de clculos) L <- 2 * pi * R Escribir (A, L) (fase de salida) Fin Note que la instruccin de asignacin fue cambiada por la instruccin leer. En el flujograma debern cambiarse tambin los smbolos que los representan:

Ejemplo 5. Leer el sueldo de tres empleados y aplicarles un aumento del 10, 12 y 15% respectivamente. Desplegar el resultado. Planteamiento del Problema Salidas: Sueldos finales Entradas: Salarios de los empleados Datos adicionales: aumentos del 10, 12 y 15% Clculos: Sueldo final = sueldo inicial + aumento Aumento = sueldo inicial * porcentaje/100 Definicin de variables: Sf1, Sf2, Sf3 = los sueldos finales S1, S2, S3 = salarios de los empleados Aum1, aum2, aum3 = aumentos Ing. Karim Ivette Cruzado Villar Docente del curso.

ALGORITMO Pseudocdigo. Inicio Leer (S1,S2,S3) Aum1 <- S1 * 0.10 Aum2 <- S2 * 0.12 Aum3 <- S3 * 0.15 Sf1 <- S1 + Aum1 Sf2 <- S2 + Aum2 Sf3 <- S3 + Aum3 Escribir (SF1,SF2,SF3) Fin Diagrama de Flujo.

Ing. Karim Ivette Cruzado Villar Docente del curso.

Ejercicios para resolver: Para cada ejercicio escriba su algoritmo en pseudocdigo y su diagrama de flujo. 1. Escribe un programa que calcule el rea de un crculo de cualquier radio. 2. Escribe un programa que lea una cantidad depositada en un banco y que calcule la cantidad final despus de aplicarle un 20% de inters. 3. Un maestro desea saber que porcentaje de hombres y que porcentaje de mujeres hay en un grupo de estudiantes. 4. Un alumno desea saber cual ser su calificacin final en la materia de Lgica Computacional. Dicha calificacin se compone de tres exmenes parciales cuya ponderacin es de 30%, 30% y 40% 5. Una farmacia aplica al precio de los remedios el 10% de descuento. Hacer un programa que ingresado el costo de los medicamentos calcule el descuento y el precio final

2.2.2. Estructura secuencial alternativa. Es aquella en la que se debe ejecutar una accin basada en el cumplimiento nicamente se tiene una alternativa dependiendo del valor de una determinada condicin o predicado. Las estructuras alternativas tambin llamadas

condicionales pueden ser de tres tipos: Simple, doble o mltiple

A. Alternativa simple: Las estructuras simples se identifican porque estn compuestos nicamente de una condicin. La estructura si entonces evala la condicin y en tal caso. Si la condicin es verdadera, entonces ejecuta la accin de lo contrario el programa finaliza.

Ing. Karim Ivette Cruzado Villar Docente del curso.

Ejemplo 1. Construir un algoritmo tal, que dado como dato la calificacin de un alumno, en un examen, escribe Aprobado en caso que esa calificacin fuese mayor que 10.5. Planteamiento del problema. Entrada: Calificacin Salidas. Mensaje de aprobado si se cumple la condicin. Condicin: Un alumno aprueba si la calificacin es mayor que 10.5. Variables. Cal=calificacin. Algoritmo. Pseudocodigo. Inicio Leer (cal) Si cal>10.5 entonces Escribir (aprobado) Fin_si. Fin.

Ing. Karim Ivette Cruzado Villar Docente del curso.

Alternativa doble Es aquella que permite la eleccin entre dos acciones o tratamientos en funcin de que se cumpla o no determinada condicin.

Ejemplo. Para el ejercicio anterior, si la calificacin es 10.5 entonces mostrar aprobado de lo contrario mostrar desaprobado

C10.5

Desaprobado

Aprobado

Ing. Karim Ivette Cruzado Villar Docente del curso.

Alternativa Compuesta. En la solucin de problemas encontramos numerosos casos en los que luego de tomar una decisin y marcar el camino correspondiente a seguir, es necesario tomar otra decisin. Dicho proceso puede repetirse numerosas veces. En aquellos problemas en donde un bloque condicional incluye otro bloque condicional se dice que un bloque est anidado dentro del otro.

Ejemplo 1. Determinar la cantidad de dinero que recibir un trabajador por concepto de las horas extras trabajadas en una empresa, sabiendo que cuando las horas de trabajo exceden de 40, el resto se consideran horas extras y que stas se pagan al doble de una hora normal cuando no exceden de 8; si las horas extras exceden de 8 se pagan las primeras 8 al doble de lo que se paga por una hora normal y el resto al triple. Solucin. Lo primero que hay que determinar es si el trabajador trabaj horas extras o no. Encontrar las horas extras de la siguiente forma: Horas extras = horas trabajadas - 40 En caso que s trabaj horas extras: Si horas extras > 8 entonces a horas extras excedentes de 8 = horas extras -8 y pago por horas extras = pago por hora normal * 2 * 8 + pago por hora normal * 3 * horas extras excedentes de 8 De otra forma (solo horas al doble) pago por horas extras = pago por hora normal * 2 * horas extras. Finalmente, pago total que recibir el trabajador ser: Pago = pago * hora normal * 40 + pago por horas extras. Si no trabaj horas extras tendremos: Pago = pago por hora normal * horas trabajadas. Datos de salida: Pago. Datos de entrada: nmero de horas trabajadas y pago por hora normal. Definicin de variables:

Ing. Karim Ivette Cruzado Villar Docente del curso.

ht = horas trabajadas het = horas extras que exceden de 8 ph = pago por hora normal phe = pago por horas extras he = horas extras pt = pago que recibe el trabajador Algoritmo: Pseudocodigo. Inicio Leer (ht, ph) Si ht >40 entonces He ht - 40 Si he > 8 entonces Het he - 8 Phe ph * 2 * 8 + ph * 3 * het Sino Phe ph * 2 * he Fin_si Pt ph * 40 + phe Sino Pt ph * ht Fin_si Escribir (pt) Fin

Ejemplo 2. Dados los datos A, B y C que representan nmeros enteros diferentes, construir un algoritmo para escribir estos nmeros en forma descendente. Este es un ejemplo de los algoritmos conocidos como de Lgica Pura, ya que poseen muchas decisiones y muchas bifurcaciones. Salida: A, B y C ordenados descendentemente. Entradas: A, B y C.

Ing. Karim Ivette Cruzado Villar Docente del curso.

La dinmica del problema es comparar dos nmeros a la vez para conocer cul es el mayor.

Ing. Karim Ivette Cruzado Villar Docente del curso.

BIBLIOGRAFA.

APPLEBY, Doris LENGUAJES DE PROGRAMACIN. Paradigma y Prctica. Tr. De Efrn A. Miguel . Mxico, Ed. INTEREMERICANA - McGRAW-HILL, 1998 (c 1997). 493p.

AULA Curso de orientacin escolar INFORMATICA. CULTURAL, 1995 . 325p.

. Espaa, Madrid, Ed.

WEBGRAFIA
http://www.mailxmail.com/curso-aprende-programar/tipos-estructurasselectivas-estructura-simple Wikipedia.

Ing. Karim Ivette Cruzado Villar Docente del curso.