Sei sulla pagina 1di 24

ELEMENTOS Y FUNDAMENTOS BÁSICOS DE

LA PROGRAMACIÓN

Algoritmo
Definición de programa
Características de los programas
Lenguaje de programación
Ciclo de vida de un programa
ALGORITMO

Es una lista bien definida, ordenada y finita de operaciones que permite


hallar la solución a un problema.
Características:
1- Finito.
2- Preciso (determinista).
3- Posee una relación entradas-salidas.
4- Eficiente.

Algoritmo  Programa
Conjunto de pasos (operaciones, Conjunto de operaciones aplicadas a
instrucciones, órdenes) para la un lenguaje de programación y para un
solución de un problema. computador determinado.
ALGORITMO
Características de un algoritmo
Knuth definió las propiedades que son ampliamente aceptadas:

1- Carácter finito: Debe terminar después de un número finito de pasos.


Cada paso debe estar claramente definido con operaciones
2- Preciso:
rigurosas y no-ambiguas.
La entradas son tomadas de conjuntos específicos de objetos.
3- Relación Existen algoritmos con cero entradas.
Entrada-Salida: Las salidas son cantidades que tienen una relación específica
con las entradas.
El consumo de tiempo y memoria debe estar cercano o ser el
4- Eficiente:
menor posible.
ALGORITMO
Partes de un algoritmo

Se suministran al algoritmo los datos a partir de los


1- Entrada:
cuales se desean obtener unos resultados.

Esos datos son modificados mediante las


2- Proceso:
instrucciones que contiene.
Debe suministrar esa información procesada al
3- Salida:
usuario o a otro programa que haga uso de ella.
ALGORITMO
Ejemplos de algoritmo
Ejemplos de la vida ordinaria:
1- Instructivos
Lego Mindstorms
2- Manuales de usuario
iPhone - Manual del usuario
Wii - Manual del usuario
3- Instrucciones de un trabajador a un subalterno
4- Métodos matemáticos
Método para calcular el cociente de dos números.
Algoritmo de Euclides (calcular el máximo común divisor
de dos enteros positivos).
Método de Gauss (Resolver un sistema lineal de ecuaciones).
ALGORITMO
Medios de expresión de un algoritmo

Descripción no-formal, tienden a ser ambiguas y


Lenguaje natural:
extensas.
1- Textual: Descripción de un algoritmo que asemeja a un
Pseudocódigo: lenguaje de programación pero con algunas
convenciones del lenguaje natural.
Uso de símbolos conectados con flechas para
indicar la secuencia de instrucciones, según
2- Gráfica: Diagrama de flujo:
normas ISO.
Son de construcción es laboriosa.
ALGORITMO
Pseudocódigo
Es la representación narrativa de los pasos que debe seguir un algoritmo
para dar solución a un problema determinado. El pseudocódigo utiliza
palabras que indican el proceso a realizar.

Asignación Operaciones
aritméticas

Estructuras Estructuras Estructuras


secuenciales selectivas iterativas
ALGORITMO
Estructura del diseño de un algoritmo en pseudocódigo
algoritmo <NombreDelAlgoritmo>
constantes [Opcional]
<TipoDeDato>: Lista nombre constantes

<TipoDeDato>: Lista nombre constantes Espacio para declarar
variables variables
<TipoDeDato>: Lista nombre variables

<TipoDeDato>: Lista nombre variables
inicio
<Instruccion 1> Indica que inicia un conjunto
de instrucciones

<Instruccion n> Indica que termina el
fin algoritmo o módulo
ALGORITMO
Palabras reservadas para la creación de pseudocódigos

Si
Fin si
Sino
Entonces
Mientras
Hacer
Fin mientras
Para
Hasta
Paso
Fin para
Repita
ALGORITMO
Diagrama de flujo

Son la representación
gráfica de la solución
algorítmica de un problema.
Esta representación gráfica
se da cuando varios
símbolos se relacionan
entre si mediante líneas que
indican el orden en que se
deben ejecutar los
procesos.
ALGORITMO
Ejemplo medios de expresión de un algoritmo
Pseudocódigo: Diagrama de flujo:
inicio
muestre (“introduzca el largo”)
lea (largo)
muestre (“introduzca el ancho”)
lea (ancho)
perimetro = largo*2 + ancho*2
area = largo * ancho
muestre (“El perímetro es: ”)
imprimir (perimetro)
muestre (“El área es: ”, area)
fin
DEFINICIÓN DE PROGRAMA

Algoritmo escrito en un lenguaje de programación y para un computador


determinado (Sistema Operativo, memoria en disco, memoria RAM, bits...).

Conjunto de líneas de texto que son las instrucciones que


debe seguir la computadora para ejecutar dicho programa.
Escrito por un programador en algún lenguaje de
1- Programa fuente:
programación, no es directamente ejecutable por la
computadora, debe ser traducido a otro lenguaje (lenguaje
máquina o programa objeto).

2- Programa objeto: Resulta de la compilación del código fuente.


LENGUAJE DE PROGRAMACIÓN
Conjunto de símbolos, caracteres y reglas (programas) que permiten a las
personas comunicarse con la computadora.

Conjunto de instrucciones que permiten realizar operaciones de:

1- Entrada/Salida.
2- Cálculo.
3- Manipulación de textos.
4- Lógica/Comparación.
5- Almacenamiento/Recuperación.
LENGUAJE DE PROGRAMACIÓN
Lenguaje Principal área de aplicación Compilado/Interpretado
ADA Tiempo real Lenguaje compilado
BASIC Programación para fines educativos Lenguaje interpretado
C Programación de sistema Lenguaje compilado
C++ Prog. de sistema orientado a objeto Lenguaje compilado
Cobol Administración Lenguaje compilado
Fortran Cálculo Lenguaje compilado
Java Programación orientada a Internet Lenguaje intermediario
MATLAB Cálculos matemáticos Lenguaje interpretado
Cálculos matemáticos Cálculos matemáticos Lenguaje interpretado
LISP Inteligencia artificial Lenguaje intermediario
Pascal Educación Lenguaje compilado
PHP Desarrollo de sitios web dinámicos Lenguaje interpretado
Inteligencia artificial Inteligencia artificial Lenguaje interpretado
Perl Procesamiento de cadenas de caracteres Lenguaje interpretado
LENGUAJE DE PROGRAMACIÓN
Compilador
Es un programa que permite traducir el código fuente de un programa en
lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente
lenguaje de máquina).
Un programador puede diseñar un programa en un lenguaje mucho más
cercano a como piensa un ser humano, para luego compilarlo a un
programa más manejable por una computadora.
LENGUAJE DE PROGRAMACIÓN
CARACTERÍSTICAS DE LOS PROGRAMAS
1- Operatividad. Lo mínimo que debe hacer un programa es producir los
resultados esperados independientemente de cualquier otra característica.
2- Legibilidad. Se obtiene dándole cierto formato al código, utilizando la
identación para reflejar las estructuras de control del programa, e
insertando espacios o tabuladores. Es conveniente diseñar reglas propias
para darle uniformidad a todos los programas.
3- Portabilidad. Es la ejecución en otro entorno sin hacer modificaciones
importantes. Mientras menos modificaciones se hagan será más portable,
así que es conveniente no utilizar características especiales del hardware
ni “facilidades” especiales del software.
4- Claridad. Se refiere a la facilidad con que el texto del programa comunica
las ideas subyacentes. El programa debe indicar claramente lo que el
programador desea.
CARACTERÍSTICAS DE LOS PROGRAMAS
5- Modularidad. Dividir el programa en un número de módulos pequeños y
fáciles de comprender puede ser la contribución más importante a la
calidad del mismo. Cada módulo debe realizar sólo una tarea específica, y
no más. Los módulos tienen la virtud de minimizar la cantidad de código
que el programador debe comprender a la vez.

6- Eficiencia. El consumo de tiempo y memoria debe estar cercano o ser el


menor posible.

7- Modificabilidad. Debe permitir realizar modificaciones sin generar


grandes consecuencias en la totalidad del programa.

8- Estructuración. Debe contar con un alto grado de organización.


CICLO DE VIDA DE UN PROGRAMA

1- Análisis del problema:


- Comprender el problema.
- Definir información suministrada (datos de entrada).
- Determinar la información de se desea producir (datos de salida).
-Establecer los métodos y fórmulas necesarios para procesar los datos.

Problema: Encontrar el total de la suma de dos números


Entradas: Número 1 y Número 2
Salida: Resultado
Fórmulas: Resultado = Número 1 + Número 2
CICLO DE VIDA DE UN PROGRAMA

Punto de partida: Conocer los números de


entrada
Flexible: Que sirva para números naturales,
2- Diseño del Algoritmo (pesudocódigo): enteros, racionales,
- Establecer el punto de partida. reales y complejos
Inicio
- Evitar ambigüedades (doble
muestre (“ingrese el valor de X”)
interpretación). lea (X)
- Flexible (cubrir todos los casos). muestre (“ingrese el valor de Y”)
-Debe ser finito en tamaño y tiempo de lea (Y)
ejecución. R=X+Y
escribir (“El resultado es: “, R)
fin
CICLO DE VIDA DE UN PROGRAMA

3- Implementación (codificación)
Es la operación de escribir la solución del problema (de acuerdo al
pseudocódigo) en un determinado leguaje de programación (escritura de
código fuente).

X = input('Ingrese el valor de X:');


Y = input('Ingrese el valor de Y:');
R = X + Y;
fprintf('El resultado es: %g\n', R)
CICLO DE VIDA DE UN PROGRAMA

4- Verificación y prueba
Es el proceso de identificar y eliminar errores (lógicos, conceptuales, de
sintaxis, etc...)
5- Puesta en marcha
Instalar el programa en el equipo final, ejecutarlo y obtener los
resultados esperados.

>> Ingrese el valor de X:2


>> Ingrese el valor de Y:3
>> El resultado es: 5
CICLO DE VIDA DE UN PROGRAMA

6- Documentación
Ayuda a usar un programa y a facilitar futuras modificaciones.
-Documentación interna: comentarios que se añaden al código fuente para hacer
mas claro el algoritmo.
- Manual de usuario: describe paso a paso la forma como debe ser ejecutado el
programa.

% Definición de valores ingresado por el usuario


X = input('Ingrese el valor de X:');
Y = input('Ingrese el valor de Y:');
% Operación y cálculo de resultado
R = X + Y;
% Presentación del resultado
fprintf('El resultado es: %g\n', R)
CICLO DE VIDA DE UN PROGRAMA

7- Mantenimiento
Es el proceso para realizar cualquier cambio, ajuste o complementación
al programa.