La página de Yoryi Alexander Marte | Trabajos | Informática | Algoritmos y Programas |
Un algoritmo es un método para resolver un problema. Para la creación de un programa (resolver un problema) en un lenguaje de programación hay que sobrepasar al menos cuatro pasos a saber:
§
Definición o análisis del problema.
§
Diseño del algoritmo.
§
Transformación del algoritmo en un programa.
§
Ejecución y validación del programa.
Definición o análisis del problema: Consiste en
conocer a detalle de lo que se va a tratar, es decir, antes de dar el paso
siguiente es necesario saber cuál es el problema y como enfrentarlo, buscar las
posibles soluciones y escoger la más fiable y/o menos costosa.
Diseño del algoritmo: que describe la secuencia
ordenada de pasos – sin ambigüedades – que conduzcan a la solución de un
problema dado.
Expresar el algoritmo como un
programa en un lenguaje de programación adecuado.
Ejecución y
validación del programa por la computadora.
Para llegar a la
realización de un programa es necesario el diseño previo de un algoritmo, de
modo que sin algoritmo no puede existir un programa. Los algoritmos son independientes tanto del lenguaje de
programación en que se expresan como de la computadora que los ejecuta. Sus características fundamentales son:
a) Debe ser preciso
e indicar el orden de realización de cada paso.
b) Debe estar
definido. Si se sigue un algoritmo dos
veces, se debe obtener el mismo resultado cada vez.
c) Debe se
finito. Si se sigue un algoritmo, se
debe terminar en algún momento; o sea debe tener un número finito de pasos.
d) Ha de cumplir
tres partes: Entrada – Proceso – Salida.
§
Lenguaje de máquina.
§
Lenguaje de bajo nivel (ensamblador).
§
Lenguaje de alto nivel.
Los diferentes
pasos o acciones de un algoritmo se expresan en os programas como instrucciones, sentencias o proposiciones. Por consiguiente, un programa consta de una
secuencia de instrucciones cada una de las cuales especifica ciertas
operaciones que debe ejecutar la computadora.
Existen sin embargo, determinados tipos de instrucciones: Instrucciones
de Entrada/Salida, aritmético-lógicas, selectivas y repetitivas.
Lenguaje
de bajo nivel : Son más fáciles de utilizar que los lenguaje de máquina, pero
dependen de la máquina en particular.
El lenguaje de bajo nivel por excelencia es el ensamblador. Las
instrucciones en lenguaje ensamblador son instrucciones conocidas como mnemotécnicos (mnemonics). Un programa
escrito en lenguaje ensamblador no puede ser ejecutado directamente por la
computadora – en esto se diferencia esencialmente del lenguaje máquina, sino
que requiere una fase de traducción al lenguaje máquina. El programa original se denomina programa fuente y el programa traducido
en lenguaje máquina se llama programa
objeto. El traductor de programas
fuente a objeto es un programa llamado ensamblador
(assembler) y existe en casi todas las computadoras.
Compiladores : Es un programa que traduce
los programas fuentes escritos en lenguaje de alto nivel a lenguaje de
máquina. El programa objeto obtenido de
la compilación no ha sido traducido normalmente a código máquina sino a
ensamblador. Para obtener el programa
máquina real se utiliza un programa llamado enlazador (linker). El
proceso de enlazamiento conduce a un programa en lenguaje máquina directamente
ejecutable.
Datos, Tipos de Datos y Operaciones Primitivas : El primer
objetivo de toda computadora es el manejo de la información o datos. Un dato es la expresión general que describe
los objetos con los cuales opera una computadora. Existen dos tipos de datos: simples (sin estructuras) y
compuestos (estructurados), los datos compuestos son conjuntos de partidas de
datos simples con relaciones definidas entre ellos. Los datos simples son: numéricos, lógicos y carácter.
Expresiones aritméticas : Las
expresiones son análogas a las formulas matemáticas. Las variables y constantes son numéricas y las operaciones son la
suma, resta, multiplicación, división, etc.
Reglas de prioridad :
a)
Las operaciones que están encerradas entre paréntesis se evalúan primero. Si existen diferentes paréntesis anidados,
las expresiones mas internas se evalúan primero.
b)
Las operaciones aritméticas dentro de una expresión suelen seguir el siguiente
orden de prioridad.
1.-
exponencial
2.-
multiplicación y división
3.-
suma y resta
4.-
multiplicación entera y residuo
En
caso de coincidir varios operadores de igual prioridad en una expresión o
subexpresión encerrada entre paréntesis, el orden de prioridad en este caso es
de izquierda a derecha.
Expresiones lógicas (booleanas) : Es
una expresión que solo puede tener uno de dos valores, verdadero o falso. Se forman combinando constantes lógicas,
variables lógicas y otras expresiones lógicas utilizando los operadores lógicos
and, or, not y los operadores relacionales =, <, >, <=, >= y
<>.
Operadores de relación : Permiten
realizar comparaciones de valores de tipo numérico o carácter. Los operadores de relación sirven para
expresar las condiciones en los algoritmos.
Operadores lógicos : Los
operadores lógicos son not, and y or.
Not es la negación de una proposición en tanto que los valores de and
(y) y or (o) se recogen en la tabla de verdad.
En las expresiones lógicas se pueden mezclar operadores de relación y
lógicos.
Funciones internas : Es
un número determinado de operaciones especiales que se requieren habitualmente
en los programas y que están incorporadas en los lenguajes de
programación. Pertenecen a estas funciones
las raíces cuadradas y las funciones trigonométricas entre otras.
Operación de asignación : La
operación de asignación es el modo de darle valores a una variable. La acción de asignar es destructiva, ya que
l valor que tuviera la variable antes de la asignación se pierde y se reemplaza
por el nuevo valor.
Entrada y salida de información : Los
cálculos que realizan las computadoras requieren para ser útiles la entrada de
los datos necesarios para ejecutar las operaciones que posteriormente se convertirán
en resultados, es decir, salida.
Las
operaciones de entrada permiten leer valores y asignarlos a determinadas
variables. Esta entrada se conoce como operación de lectura (read). La operación de salida se denomina escritura
(write).