Vous êtes sur la page 1sur 34

Algoritmia y Programacin Estructurada

M. en C.

Daniel Cruz Garca

Bibliografa
Osvaldo Cair, Funcamentos de Programacin, Piensa en C, 1ra edicin, Editorial Prentice Hall.
H. M Deitel y P.J. Deitel, Como Programar en C/C++, 2da edicin, Editorial Prentice Hall. F. Rolando Menchaca, Fundamentos de Programacin en Lenguaje C, 2da edicin, Editorial Instituto Politcnico Nacional.

Problemas y algoritmos

Definicin de algoritmo: es un conjunto de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema.

Es una tarea cotidiana que realiza el ser humano para la resolucin de problemas. Todos los das aplicamos una serie de pasos, procedimientos o acciones para realizar tareas como: baarnos, conducir un automvil, preparar un sndwich, etc.

Generalmente en la resolucin de problemas cotidianos no somos consientes del formalismo requerido para alcanzar el objetivo

Algoritmo
Un algoritmo es univoco, lo que implica que si se ejecuta varias veces el mismo algoritmo sobre un conjunto de datos de entrada, siempre se obtiene la misma solucin a la salida. Adems, el resultado debe generarse en un tiempo finito.
Los mtodos que utilizan algoritmos se denominan mtodos algortmicos, en oposicin a los que implican algn juicio o interpretacin, que se denominan heursticos. Los mtodos algortmicos se pueden implementar fcilmente en computadoras; sin embargo los mtodos heursticos no, adems de que no aseguran obtener la misma salida siempre ante las mismas entradas.

Ejemplo de un algoritmo
Algoritmo para preparar una taza de caf instantneo
1. Inicio

2. Poner a calentar agua


3. Si el agua ya hirvi verterla en una taza, si no volver al paso 2

4. Agregar las cucharadas de cafe deseadas


5. Agregar las cucharadas de azucar deseadas 6. Fin

Secciones de un algoritmo
Un algoritmo consta de tres secciones o mdulos principales.
Impresin de resultados

Datos de la entrada

Procesamiento

En general un programa escrito en cualquier lenguaje de programacin consta de los siguientes procedimientos:

Etapas para solucionar un problema


Problema

Anlisis del problema


Etapa 1

Construccin del algortimo


Etapa 2

Verificacin del algoritmo


Etapa 3

Etapas para solucionar un problema

Anlisis del problema:


El desarrollador comprende la naturaleza del problema Se especifica concretamente los datos de entrada y salida

Construccin del algoritmo


Se indica la forma o sucesin de pasos de cmo se va a resolver el problema

Verificacin del algoritmo


Se prueba el algoritmo utilizando distintos datos de entrada

En el proceso de verificacin se realiza un seguimiento paso a paso de las operaciones realizadas, as como de la salida resultante (pruebas de escritorio)

Caractersticas de los algoritmos

Precisin: Los pasos a seguir en el algoritmo se deben precisar claramente


Determinismo: El algoritmo, dado un conjunto de entrada idntico, siempre debe arrojar los mismos resultados

Finitud: El algoritmo, independientemente de la complejidad del mismo, siempre debe tener longitud finita

Caractersticas de los algoritmos


Los algoritmos son independientes tanto del lenguaje de programacin en que se implementen como de la computadora en la que se ejecutan
Los algoritmos se puede implementar en un lenguaje de programacin diferente y ejecutarse en una computadora distinta, sin embargo, el algoritmo siempre arrojar el mismo resultado.

Diseo de algoritmos

Herramientas para el diseo de algoritmos

Existen varias herramientas que apoyan al diseo de algoritmos


Los mtodos ms usuales para representar un algoritmo son:
Diagramas de flujo

Pseudocdigo
Diagramas Nassi-Shneiderman

Diagramas de flujo

Es la representacin grfica de un algoritmo Muestra los pasos o procesos a seguir para alcanzar la solucin de un problema
Utilizan smbolos (cajas) estndar y tienen los pasos del algoritmo escritos en estas cajas unidas por flechas La secuencia del algoritmo esta determinado por el flujo de la flechas.

Smbolos utilizados en los diagramas de flujo


Inicio y Fin Mostrar (salida) de datos

Lectura/escritura de datos

Conector

Proceso

Flujo del diagrama

Toma de decisin

Smbolos utilizados en los diagramas de flujo


+ * / = > < Sumar Menos Multiplicacin Divisin Mas o menos Equivalencia Mayor que Menor que Mayor o igual que Menor o igual que

<> o != o

Diferente de Asignacin

La definicin de datos se da por supuesta, principalmente para variables sencillas

Reglas para la construccin de diagramas de flujo


1. Todo diagrama de flujo debe tener un inicio y un fin
2. Las lneas utilizadas para indicar la direccin del flujo del diagrama deber ser rectas: verticales u horizontales

3. Todas las lneas utilizadas para indicar la direccin del flujo del diagrama deben estar conectadas mediante algn smbolo 4. El diagrama de flujo debe construirse de arriba hacia abajo y de izquierda a derecha

Reglas para la construccin de diagramas de flujo


5. La notacin utilizada en el diagrama de flujo debe ser independiente del lenguaje de programacin
6. Si la construccin del diagrama de flujo requiere ms de una hoja se deben utilizar los conectores adecuados

Ejemplos
Calcular el rea de un trangulo. Se recibe como entrada la base y la ltura
Inicio

base, altura

area (base * altura) / 2

Imprimir rea

Fin

Ejemplo
Construir un diagrama de flujo que, al recibir como entrada la clave del empleado y los seis primeros sueldos del ao, calcule el ingreso total semestral y el promedio mensual, e imprima la clave del empleado, el ingreso total y el promedio mensual

Inicio

clave, su1, su2, su3, su4, su5, su6

ingreso su1 + su2 + su3 + su4 + su5 + su6 promedio ingreso / 6 Imprimir clave, ingreso, promedio

Fin

Ejemplo
Calcular la media de una serie de nmeros positivos, suponiendo que los datos se leen de una terminal. Un valor de cero como entrada indicar que se ha alcanzado el final de la serie de nmeros positivos

Inicio

dato 0 numdatos 0 aux 0

media aux / numdatos Dame dato Imprimir media

dato
Fin numdatos numdatos + 1 aux aux + dato

si

no

dato <> 0

Ejercicios
1. Hacer un diagrama de flujo que imprima los nmeros del 1 al 100
2. Construir un diagrama de flujo que reciba como datos de entrada cinco nmeros y los imprima en orden inverso

Pseudocdigo

Es un falso lenguaje que descripcin de un algoritmo.

representa la

Emplea una mezcla del lenguaje natural con algunas convenciones sintcticas propias de los lenguajes de programacin, como asignaciones, ciclos y condicionales. Es utilizado para describir algoritmos en libros y publicaciones.

Est pensado para facilitar a las personas el entendimiento de un algoritmo.

Pseudocdigo

Es independiente programacin.

del

lenguaje

de

La definicin de datos se da por supuesta, principalmente para variables sencillas, pero si se emplea variable ms complejas, por ejemplo pilas, colas, vectores, etc., se pueden definir en la cabecera del algoritmo. Cada autor usa su propio pseudocdigo con sus respectivas convenciones

Pseudocdigo
Asignacin:

Variables declaradas por el desarrollador

Pseudocdigo

Estructuras de control
Secuencial

Selectivas

Simple Doble

Pseudocdigo

Estructuras de control
Selectivas

Mltiple

Pseudocdigo

Estructuras de control
Iterativas

Mientras

Repetir

Mientras Repetir

Pseudocdigo

Estructuras de control
Iterativas

Para

Para mientras

Pseudocdigo
Anidamiento

Pseudocdigo
Ejemplo:
1. Hacer algoritmo que imprima los nmeros del 1 al 100.
En versin diagrama de flujo y pseudocdigo

Pseudocdigo
Ejemplo:
2. Hacer un algoritmo que imprima los nmeros pares entre 0 y 100.
En versin diagrama de flujo y pseudocdigo

Tarea
1.
2.

Hacer algoritmo que imprima la suma de los 100 primeros nmeros.


Hacer algoritmo que imprima los nmeros impares hasta el 100 y que imprima cuantos impares hay.
En versin diagrama de flujo y pseudocdigo

Vous aimerez peut-être aussi