Está en la página 1de 22

ALGORITMOS DE PROGRAMACIÓN

PARA INGENIERÍA
Introducción a los algoritmos y estructura de datos

Sesión N°3 y 4

MTR. ING. ALVARO E. CHÁVEZ ZUBIETA


Algoritmo y programa

 Definiremos algoritmo como un conjunto finito de


pasos y acciones que especifican de forma clara
y concisa (sin ambiguedades) la secuencia de
operaciones a realizar para procesar
adecuadamente unos datos con un determinado
objetivo.
 Llamaremos programa a la plasmación
(implementación) de un algoritmo de forma que
pueda ser entendido y ejecutado por un
ordenador, mediante un lenguaje comprendido
por este.
Lenguaje de Programación
 Unlenguaje de programación es un conjunto
controlado de palabras con una sintaxis y una
semántica asociadas que permiten describir
algoritmos de forma que puedan ser ejecutados
por un ordenador.
 Todo lenguaje de programación deberá tener:
 Un vocabulario limitado (palabras reservadas).
 Una sintaxis rígida y sin excepciones y con pocas
variaciones.
 Una semántica estricta y sin ambigüedades.
Tipos de lenguajes

 Según su nivel de abstracción:


 Lenguajes de bajo nivel: Son lenguajes maquina o
cercanos a la maquina.
➔ Código maquina o ensamblador.
 Lenguajes de alto nivel: Son lenguajes cercanos
al usuario o al problema y tienen un alto nivel de
abstracción.
➔ C, C++, Pascal, Fortran, etc.
Tipos de lenguajes
 Según el tipo de ejecución:
 Interpretados:Cada instrucción se traduce al lenguaje
maquina durante el tiempo de ejecución. El programa
que realiza esta tarea se denomina interprete. Ej: Basic o
Perl.
➔ Mas fácil de escribir los programas y encontrar errores.
➔ Ejecución mas lenta y hay que tener disponible el traductor.
 Compilados: El programa fuente completo se traduce a
código maquina directamente ejecutable por parte de
la maquina. Ej: C, Pascal.
➔ Una vez traducido, la ejecución es mas rápida.
Tipos de lenguaje

 Según su propósito:
 De proposito general: BASIC, C, Pascal, Java,...
 De ensenanza: Logo, Pascal…
 De calculo cientifico: Algol, Fortran, Matlab…
 De gestion: Cobol, Modula.
 De gestion de bases de datos: Informix, SQL,
dBASE, Oracle.
 Usados en Inteligencia Artificial: Prolog, Lisp…
Tipos de lenguajes
Según su paradigma de programación:
 Lenguajes procedurales/procedimentales o imperativos (p. ej. C, Pascal, BASIC):
➔ Un programa es una secuencia de acciones que se ejecutan en un orden controlado.
➔ PROGRAMA = PROCEDIMIENTOS + ESTRUCT_DATOS.
 Lenguajes declarativos (p. ej. Prolog):
➔ Un programa es un conjunto de hechos y relaciones entre estos. No existe una
secuencia definida de ejecución.
➔ PROGRAMA = DEF_ELEMENTOS + RELACIONES.
 Lenguajes orientados a objetos (p. ej. C++, Java):
➔ Un programa esta constituido por un conjunto de objetos que intercambian mensajes
entre si.
➔ Cada objeto es una entidad que agrupa una información (su estado) y una serie de
mecanismos para consultar o manipular dicho estado, sus métodos
➔ PROGRAMA = OBJETOS + METODOS + MENSAJES.
Tipos de lenguajes

Según la gestión de memoria:


 De gestión estática de memoria (Fortran):
 ➔Se calcula la memoria cuando se realiza la
traducción
 De gestión dinámica de memoria (Basic, Prolog):
 ➔Se reserva la memoria en ejecución a medida que
van apareciendo variables.
 Memoria de pilas (C, Pascal...):
 ➔Se guarda la información en pilas, apilando y
desapilando información
Proceso de programación
… en un lenguaje de alto nivel:
Proceso de programación...
… en un lenguaje de alto nivel compilado:
 Edición: Escribir el programa fuente en un
editor de textos. Este programa puede
constar de uno o mas modulos.
 Compilación: Usar un compilador para
realizar un analisis lexico y sintáctico del
programa fuente. El resultado sera un
modulo objeto por cada modulo fuente.
 Enlazado (linkado): Los distintos modulos
objeto obtenidos en la compilación se
enlazan para formar un programa binario
ejecutable.
 Ejecución: Carga del programa
ejecutable en memoria y puesta en
funcionamiento.
… en un lenguaje de alto nivel compilado:

Editor de Entorno de programación DEV C++ Linker o


texto enlazad
compilador or Cargador
S.O.

Montar, Cargar en
compilación linkar o memoria
Programa Programa Programa Programa
fuente Objeto enlazar ejecutable ejecución

Modulo 1 Objeto 1

Modulo 2 Objeto 2 Ejecutable Ejecución


… …
Modulo n Objeto n
LABORATORIO N°2
LA RESOLUCIÓN DE PROBLEMAS
CON COMPUTADORA
El proceso de resolución de un problema con una computadora conduce a la escritura de
un programa y a sus ejecuciones la misma. Aunque el proceso de diseñar programas
esencialmente un proceso creativo, se puede considerar una serie de fases o pasos
comunes que generalmente deben seguir todos los programadores.

Las fases de resolución de un problema con computadora son:


1. Análisis del problema
2. Diseño del problema
3. Codificación
4. Compilación y ejecución
5. Verificación
6. Depuración
7. documentación
1. ANÁLISIS DEL PROBLEMA
Es preciso realizarse las siguientes preguntas Ejemplo: Determina el mayor de 3 números
para poder definir bien un problema
¿Qué entradas se requieren (tipo y
cantidad)?
¿Cuál es la salida deseada (tipo y cantidad)?
¿Qué método produce la salida deseada?
2. DISEÑO DEL ALGORITMO
 En esta etapa se determina como
hace el programa la tarea
solicitada. Los métodos mas
eficaces para el proceso de diseño
se basan en la división del problema
en subproblemas y a continuación
dividir estos problemas en otros de
nivel mas bajo, este diseño se
conoce como diseño descendente
(top down) o modular.
 Cada subproblema es resuelto
mediante un modulo
(subprograma) que tiene un solo
punto de entrada y un solo de
salida
a. Diagrama de flujos
Representan gráficamente en un algoritmo

Inicio y Término de Preparación de información


programa o subprograma. (Inicializar variables, ciclos
iterativos controlados).
Proceso Elemental

Entrada o Salida de
Información Comentarios

Condición (Dirección Sentido del Flujo


del flujo de control)

Conectores dentro y fuera


de página. Proceso predefinido
(subprograma).
Acciones básicas
b. Pseudocodigo
Herramienta de 1.- Entrada de datos:

programación en la que 


LEER(variable)
LEER(lista_variables)
las instrucciones se Observación: lista_variables es una secuencia de variables
separadas por (,).
escriben en palabras
similares al ingles o 2.- Salida de datos:
MOSTRAR(variable)
español, que facilitan 

 MOSTRAR(lista_variable)
tanto la escritura como la  MOSTRAR(“Mensaje”)

lectura de programas Observación: Se permite combinaciones en los argumentos. Por


ejemplo:

MOSTRAR(“Esto es un ejemplo”, variable)

3.- Asignación:
 variable  valor
 variable  expresión
ALGORITMO Comparar 3 números
1
DECLARACIONES NUM1, NUM2, MUM3, mayor:
Real
Mayor>=N3 INICIO_ALGORITMO

inicio Leer (NUM1, NUM2, NUM3)


Mayor
N1, N2, N3 y mayor =N3
son reales
Si (NUM1 > NUM2) entonces
Imprime mayor mayor  NUM1
Leer (N1, N2 y SINO
N3 ) Fin mayor  NUM2

N1>=N2 SI (mayor > NUM3) ENTONCES


mayor  NUM3
Mayor =N2
Mayor =N1
MOSTRAR(“El numero mayor es:”, mayor)
1
FIN_ALGORITMO
Transformar una temperatura de grados
celsius a grados farenheit:

ALGORITMO transformar_celsius_a_farenheit
DECLARACIONES celsius, farenheit: REAL
INICIO_ALGORITMO
LEER(celsius)
farenheit  celsius * (9/5) + 32
MOSTRAR(“Grados Farenheit
equivalentes:”, farenheit)
FIN_ALGORITMO
3. CODIFICACION DE UN PROGRAMA 4.- COMPILACIÓN Y EJECUCIÓN DE UN
PROGRAMA
Es la escritura en un lenguaje de
 La codificación se debe realizar sobre un
programación de la representación del
programa editor, posteriormente el programa
algoritmo desarrollado en las etapas fuente se convierte en u archivo de programa
precedentes que se guarda en disco
 El programa fuente debe ser traducido a
lenguaje maquina este proceso se realiza con
el compilador y el sistema operativo que se
encarga prácticamente de la compilación.
 El proceso de compilación determina un
programa objeto que todavía no es
ejecutable directamente. Suponiendo que no
existe errores en el programa fuente , se
instruye al S.O. para que realice la fase de
Lenguaje c++ enlace (LINK) , carga del programa objeto
con las librerías del programa del compilador
para producir un programa ejecutable.

DEV C++
5. VERIFICACIÓN Y DEPURACIÓN DE UN
PROGRAMA los tipos de errores son:

La verificación o compilación de un Errores de compilación:


programa es la ejecución del programa con
una amplia variedad de datos de entrada,
 Uso incorrecto de las reglas del lenguaje
o prueba, que determina si el programa Errores de ejecución
tiene errores (“bugs”)
 ejem. división entre 0
La depuración es el proceso de encontrar
Errores lógicos:
los errores del programa y corregir o eliminar
dichos errores.  Son difíciles de detectar generalmente es
en la lógica del algoritmo
6.- DOCUMENTACIÓN Y MANTENIMIENTO
Consta de describir los pasos a dar en la
resolución de un problema. La documentación
puede ser interna o externa. La documentación
interna es la contenida en líneas de comentarios.
La documentación externa incluye análisis,
diagrama de flujo y/o pseudocodigos , manuales
de usuario con instrucciones para ejecutar el
programa y para interpretar los resultados.