Académique Documents
Professionnel Documents
Culture Documents
M. en C.
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
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:
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)
Finitud: El algoritmo, independientemente de la complejidad del mismo, siempre debe tener longitud finita
Diseo de algoritmos
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.
Lectura/escritura de datos
Conector
Proceso
Toma de decisin
<> o != o
Diferente de Asignacin
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
Ejemplos
Calcular el rea de un trangulo. Se recibe como entrada la base y la ltura
Inicio
base, altura
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
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
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
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.
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:
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.