You are on page 1of 7

Introducción a la programación

Contenidos

1. Definición de algoritmo
2. Técnicas de representación
3. Algoritmos de ejemplo

© 2002 Juan J. Martínez <jjm@usebox.net>


Se permite la copia textual y distribución de este documento en su totalidad, por cualquier medio, siempre y
cuando se mantenga esta nota de copyright.

1. Definición de algoritmo

Un programa es un algoritmo que emplea una estructura de datos.

Algoritmo: Descripción precisa de una sucesión ordenada de instrucciones no


ambiguas que permiten resolver un problema.

Los algoritmos son independientes del lenguaje de programación y de la máquina


en la que se ejecuta.

El desarrollo de un programa se puede dividir en fases:

1. Análisis del problema


2. Diseño del algoritmo
3. Implementación

Los programas deben estar escritos en un lenguaje comprensible por la máquina,


ya sea:

a. Lenguaje máquina
b. Código comprensible por un intérprete (que traduce el programa a la máquina).

Lenguaje máquina

Para obtener el código que comprende la máquina (ceros y unos) es necesario


someter al código fuente, código comprensible por el ser humano, a un proceso
de traducción:

1. Compilar: analizar sintaxis, conversión a código objeto.


2. Enlazado (o linkado): unir el código objeto a las librerías y datos necesarios
para que el sistema operativo sepa ejecutar el programa y convertirlo en un
proceso (programa en ejecución).

Ejemplo de lenguajes habitualmente compilables: Pascal, C, C++, Ada, ASM.


Código interpretable

El código comprensible por el ser humano es convertido en tiempo de ejecución


(equivalente a una traducción simultánea) a código comprensible por la máquina.

Se diferencia del código compilado en que:

a. Es más lento (necesita traducirse en cada ejecución).


b. Es más fácil de mantener (modificar, corregir errores), ya que siempre es
comprensible por el ser humano.
c. Es más flexible ya que los lenguajes interpretados permiten mayores
abstracciones que los lenguajes compilados.
d. Es portable a cualquier plataforma que posea un intérprete. El programa
compilado solo funciona en la plataforma para la que fue compilado.

Ejemplo de lenguaje habitualmente interpretado: Perl, VBS, Basic, Javascript,


PHP.

Existen soluciones intermedias al código compilado o interpretado. Ejemplo: Java,


posee bytecodes que es código compilado intermedio que requiere ser
interpretado parcialmente.

2. Técnicas de representación

Existen diferentes técnicas de representación de algoritmos:

a. Pseudocódigo.
b. Diagrama de flujo de datos.
b. Diagrama de cajas (o de Chapín).

Pseudocódigo

Se trata de un lenguaje informal que describe el proceso.

Ejemplo:

repetir 5 veces:

lee un dato numérico (di)

sumar di para i desde 1 hasta 5 (resultado)


mostrar resultado

No existe reglas que definan al pseudocódigo. Básicamente debe ser: claro,


inequívoco e informal (empleando lenguaje natural).
Diagrama de flujo de datos

Se trata de un diagrama visual con una serie limitada de elementos con


significado que permiten formalizar de forma gráfica un algoritmo.

Los diagramas de flujo definen el concepto de flujo de datos, que nos indica la
dirección que siguen los datos en el proceso (de arriba hacia abajo, como si se
tratara de líquido que fluye de arriba abajo).

Los elementos de un diagrama de flujo son:


Ejemplo de diagrama de flujo:

Diagrama de Cajas

Los diagramas de cajas proponen una representación alternativa a la del


diagrama de flujo.

Nos vamos a centrar en el pseudocódigo y los diagrámas de flujo de datos.


3. Algoritmos de Ejemplo

a. media aritmética

media: entrada a y b
resultado de dividir entre 2 la suma de a y b
fin

b. desarrollo de un programa

desarrollo:
estudiar el problema
realizar el algoritmo en pseudocódigo
realizar diagrama flujo de datos
elección del lenguaje para la implementación
implementación
fin

c. Amuentar o no plazas para un curso

Inicializar variables.
Inicializar los aprobados (aprobados) en 0
Inicializar los suspensos (suspensos) en 0
Inicializar el número de estudiantes (estudiantes) en 0
Introducir las primeras 10 calificaciones y contar los aprobados y los suspensos.
Mientras (while) el contador estudiantes es menor o igual que 10 entonces
Introducir el siguiente resultado de examen
Si el estudiante aprobó
Sumar 1 a aprobados
Si no
Sumar 1 a suspensos
FinSi
Sumar 1 al contador estudiantes
FinMientras
Imprimir un resumen de los resultados de exámenes y decidir si se debe aumentar o no las
plazas.
Imprimir el número de aprobados
Imprimir el número de suspensos
Si estudiantes es más 8 entonces
Imprimir "Aumentar plazas".
FinSi
d. Comprobación de contraseña

e. Cálculo de una nómina


Ejercicios

a. Enumerar las diferencias entre un lenguaje compilado y un lenguaje


interpretado.

b. Clasificar entre lenguaje compilado y lenguaje interpretado (emplear Internet


para buscar información en caso de ser necesario). Justifica tu respuesta.

− Pascal
−C
− ADA
− COBOL
− Python
− BASH

c. Diseñar un diagrama de flujo para ’desarrollo de un programa’.

d. Escribir el pseudocódigo y el diagrama de flujo para resolver los siguientes


problemas:

d.1. Un video club necesita un programa para gestionar los alquileres. El


programa consta de diferentes módulos y se nos ha encargado diseñar el
referente a la introducción de nuevos clientes.

d.2. En un proceso industrial es necesario un sistema tolerante a fallos. El


proceso consiste en llenar botellas de de un refresco mediante el uso de un robot
que emplea una pipeta. Es posible que el robot falle y la pipeta no se introduzca
adecuadamente, con lo que hay que repetir la operación de introducir la pipeta.
En determinados casos la pipeta se rompe y hay que detener el proceso y llamar
al servicio técnico.

d.3. Un cliente desea un sistema de mensajería para sus empleados en las


distintas sedes alrededor del mundo. En el momento que un empleado recibe un
mensaje, éste es almacenado hasta que el destinatario consulta su buzón. En
determinados casos el mensaje es urgente y debe enviarse un mensaje SMS al
móvil del empleado. A veces un mensaje se extravía (el nombre del destinatario
no coincide con ninguno almacenado en la base de datos), en esos casos es
necesario enviar el mensaje de vuelta al remitente. Describir el proceso a seguir
para tratar los mensajes.

d.4. Describir el proceso a seguir para descargar una película empleando


edonkey. Tener en cuenta que no disponemos del programa (pero sí de conexión
a internet), que es posible que la película no esté disponible en el primer servidor
al que conectamos e incluso que la película no esté disponible en ningún servidor
(se advierte del problema y el proceso falla).

Última modificación: 8/02/03

You might also like