Translate

UNIDAD I: CONCEPTOS BÁSICOS


Introducción
Los problemas que se plantean en la vida diaria suelen ser resueltos mediante el uso de la capacidad intelectual y la habilidad manual del ser humano. La utilización de la computadora en la resolución de problemas aporta grandes ventajas, como son la rapidez de ejecución y la confiabilidad de los resultados obtenidos.
En la actualidad los sistemas de computadoras consisten en un enorme conjunto de elementos de circuitos (hardware) y programación (software), que se han diseñado para proporcionar a la computación un ambiente productivo y agradable.
Muchos de los problemas acarrean complicados cálculos, así como la utilización de grandes cantidades de datos; esto nos causa muchos problemas ya que el riesgo de equivocarse es muy grande, y también con la utilización de grandes cantidades de datos el trabajo se convierte en pesado y rutinario. Mediante la computadora se eliminan estos problemas, pues su capacidad se basa en la rapidez, la precisión y memoria.
Sin embargo la computadora no puede hacer todo por si sola. Es preciso que se le describa con detalle y en su lenguaje, todos los pasos que tiene que realizar para la resolución del problema.
Esta descripción es lo que se conoce como programa de computadora, este dirigirá el funcionamiento de la máquina en la resolución del problema.
La primera decisión que hay que tomar cuando se crea un programa, es contestar a las preguntas: 
¿Qué es lo que el programa se supone que va a hacer?, ¿Cuál es el problema que se va a resolver?,¿Qué tarea va a realizar nuestro programa?.
Cuanto más se detalle la descripción, más fácil será lograr resultados.

Definición de lenguaje

Es un idioma artificial diseñado para expresar procesos que pueden ser llevados a cabo por maquinas como la computadora. Puede usarse para crear programas que controlen el comportamiento físico y lógico de una máquina para expresar algoritmos con precisión o como modo de comunicación humana.
Estos lenguajes se clasifican en tres grandes categorías:
Lenguaje Máquina.
Lenguaje de Bajo Nivel (Ensamblador)
Lenguaje de Alto Nivel.

Definición de algoritmo

Un algoritmo es una secuencia finita de instrucciones; cada una de estas instrucciones tiene un significado preciso y se puede ejecutar con una cantidad finita de esfuerzo en un tiempo finito.
Un algoritmo se define como un método que se realiza paso a paso para la solución de un problema que termina en un número finito de pasos.
Las características fundamentales que debe cumplir un algoritmo son:
Debe ser preciso e indicar el orden. Diseño del algoritmo que describe la secuencia ordenada de pasos, sin ambigüedades, que conducen a la solución de un problema dado (Análisis del problema y desarrollo del algoritmo).
Debe ser definido. Si se sigue un algoritmo dos veces se debe obtener el mismo resultado cada vez. Expresar el algoritmo como un programa en un lenguaje de programación adecuado (Fase de codificación).
Debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; osea debe tener un número finito de pasos. Ejecución y validación del programa por la computadora.

Algoritmos cotidianos

Se refiere a todos aquellos algoritmos que nos ayudan a resolver problemas diarios, y que hacemos casi sin darnos cuenta que estamos siguiendo una metodología para resolverlos.
Algunos ejemplos son:
Ù  Diseñar un algoritmo para cambiar una llanta de un coche:
1.- Inicio.
2.- Traer gato.
3.- Levantar el coche con el gato.
4.- Aflojar tornillos de las llantas.
5.- Sacar los tornillos de las llantas.
6.- Quitar la llanta.
7.- Poner la llanta de repuesto.
8.- Poner los tornillos.
9.- Apretar tornillos.
10.- Bajar el gato.
11.- Fin.

Definición de lenguajes algorítmicos
Los algoritmos pueden describirse utilizando muchos lenguajes. Cada lenguaje permite describir los pasos con mayor o menor detalle.
La clasificación de los lenguajes algorítmicos es la siguiente:
Ù  Lenguaje Natural.
Ù  Lenguaje de Diagrama de Flujo.
Ù  Lenguaje Natural de Programación.
Ù  Lenguaje de Programación de Algoritmos.
Lenguaje Natural:Es aquel que describe lospasos a seguir utilizando un vocabulario cotidiano. Se le conoce como lenguaje jerga cuando se utiliza en términos especializados de una determinada ciencia, profesión o grupo.
Lenguaje de Diagrama de Flujo: Es aquel que sevale de diversos símbolos para representar las ideas o acciones a desarrollar. Es útil para organizar las acciones o pasos de un algoritmo pero requiere de etapas posteriores para implementarse en un sistema de cómputo.
Lenguaje Natural de Programación: Son aquellosque están orientados a la solución de problemas que se definen de una manera precisa. Generalmente son aplicados para la elaboración de fórmulas o métodos científicos.
Tienen las siguientes características:
Ù  Evita la ambigüedad (algo confuso que se puede interpretar de varias maneras).
Ù  Son precisos y bien definidos.
Ù  Utilizan términos familiares al sentido común.
Ù  Elimina instrucciones innecesarias.
Lenguaje de programación:Es un conjunto depalabras, símbolos y reglas sintéticas mediante los cuales puede indicarse a la computadora los pasos a seguir para resolver un problema.
Los principales tipos de lenguajes utilizados son tres:
Ù  Lenguaje Máquina: Este lenguaje es el que entiende directamente a la computadora, utiliza el alfabeto binario que consta de dos únicos símbolos 0 y 1, denominados “bits” (abreviatura inglesa de números binarios). El lenguaje máquina fue el primer lenguaje utilizado para programar computadoras, pero éste fue sustituido por su dificultad y complicación.
Ù  Lenguaje de bajo nivel (Ensamblador): En este lenguaje cada instrucción equivale a una instrucción en lenguaje máquina, utilizando para su escritura palabras nemotécnicas en lugar de cadenas de bits.
Las instrucciones en lenguaje ensamblador son instrucciones conocidas como “nemotécnicas”, por ejemplo, nemotécnicos típicos de operaciones aritméticas son:(en inglés)ADD, SUB, DIV, etc.; (en español) SUM, RES, DIV, etc.
Ù  Lenguaje de Alto nivel: Estos lenguajes son los más utilizados por los programadores. Un programa escrito en un lenguaje de alto nivel es independiente de la máquina (las instrucciones no dependen del diseño del hardware o de una computadora en particular), por lo que estos programas son portables o transportables. Los programas escritos en lenguaje de alto nivel pueden ser ejecutados con poca o ninguna modificación en diferentes tipos de computadoras.

Historia y aplicación de los lenguajes algorítmicos

Los lenguajes permiten expresar los programas o el conjunto de instrucciones que el operador humano desea que la computadora ejecute. Los lenguajes de las primeras computadoras como la ENAC y la EDSAC se componían en el lenguaje real de las máquinas mismas; de esta manera limitaba drásticamente la utilidad de las mismas.
Los primeros lenguajes de programación se conocieron como lenguajes ensambladores. En los lenguajes ensambladores se define un código especial llamado mnemónico para cada una de las operaciones de la máquina y se introduce una notación especial para especificar el dato con el cual debe realizarse la operación.
En los años 60's aparecieron los primeros lenguajes de propósito general como COBOL, PASCAL, C, C++, etc., pero el desarrollo de nuevas tecnologías, tanto en la arquitectura de computadoras, como en lenguajes de programación continúa a paso acelerado. Los lenguajes de programación actuales son conocidos como lenguajes visuales, como por ejemplo: Visual Fox, Visual Basic, Visual C, etc.