m2 U1 s03 Teoria 01 Algoritmos
m2 U1 s03 Teoria 01 Algoritmos
m2 U1 s03 Teoria 01 Algoritmos
Introducción
La computadora no solamente es una máquina que puede realizar procesos para darnos resultados, sin que
tengamos la noción exacta de las operaciones que realiza para llegar a esos resultados. Con la computadora
también podemos diseñar soluciones a la medida, de problemas específicos que se nos presenten. Más aún,
si estos involucran operaciones matemáticas complejas y/o repetitivas, o requieren del manejo de un
volumen muy grande de datos. A las soluciones creadas por computadora se les conoce como programas y
no son mas que una serie de operaciones que realiza la computadora para llegar a un resultado, con un grupo
de datos específicos. Podríamos decir que un programa es el conjunto de instrucciones escritas de algún
lenguaje de programación y que ejecutadas secuencialmente resuelven un problema especifico. Para poder
realizar programas, además de conocer la metodología para solucionar problemas, también debemos
conocer, de manera especifica las funciones que puede realizar la computadora y las formas en que se
pueden manejar los elementos que hay en la misma. El procesamiento de información en la computadora
puede representarse así:
Definición del Problema: Esta fase está dada por el enunciado del problema, el cual requiere una
definición clara y precisa. Es importante que se conozca lo que se desea que realice la computadora;
mientras ésto no se conozca del todo, no tiene mucho caso continuar con la siguiente etapa.
Análisis del Problema: Una vez que se ha comprendido lo que se desea de la PC, es necesario definir:
Los datos de entrada.
La información que se desea producir (salida)
Los métodos y fórmulas que se necesitan para procesar los datos.
Una recomendación muy practica es el que nos pongamos en el lugar de la computadora y analicemos que
es lo que necesitamos que nos ordenen y en qué secuencia, para producir los resultados esperados.
Diseño del Algoritmo: Consiste en diseñar la serie de pasos organizados que describe el proceso que se
debe seguir, para dar solución al problema especifico. Las características de un buen algoritmo son:
Debe tener un punto particular de inicio.
Debe ser definido, no debe permitir dobles interpretaciones.
Debe ser general, soportar las variantes que se puedan presentar en la definición del problema.
Debe ser finito en tamaño y tiempo de ejecución.
Codificación: Es la operación de escribir la solución del problema (de acuerdo a la lógica del diagrama de
flujo o pseudocódigo), en una serie de instrucciones detalladas (código fuente), en un lenguaje
reconocible por la computadora (lenguaje de programación de alto nivel).
Prueba y Depuración: Los errores humanos dentro de la programación de computadoras son muchos y
aumentan considerablemente con la complejidad del problema. El proceso de identificar y eliminar
errores, para dar paso a una solución sin errores se le llama depuración.
Documentación: Es la guía o comunicación escrita en sus variadas formas, ya sea en enunciados,
procedimientos, dibujos o diagramas. A menudo un programa escrito por una persona, es usado por otra.
Por ello la documentación sirve para ayudar a comprender o usar un programa o para facilitar futuras
modificaciones (mantenimiento).
Mantenimiento: Se lleva a cabo después de terminado el programa, cuando se detecta que es necesario
hacer algún cambio, ajuste o complementación al programa para que siga trabajando de manera correcta.
Para poder realizarlo se requiere que el programa este correctamente documentado.
2. Lenguajes de programación:
2.1. Lenguaje: Es una serie de símbolos que sirven para transmitir uno o más mensajes (ideas) entre dos
entidades diferentes. A la transmisión de mensajes se le conoce comúnmente como comunicación. La
comunicación es un proceso complejo que requiere una serie de reglas simples, pero indispensables para
poderse llevar a cabo. Las dos principales reglas son:
Los mensajes deben correr en un sentido a la vez.
Deben existir 4 elementos: emisor, receptor, medio de comunicación y mensaje.
2.2. Lenguaje de Programación: Es un conjunto de símbolos, caracteres y reglas que le permiten a las
personas comunicarse con la computadora. Los lenguajes de programación tienen un conjunto de
instrucciones que nos permiten realizar operaciones de entrada/salida, cálculo, manipulación de textos,
lógica/comparación y almacenamiento/recuperación. Los lenguajes de programación se clasifican en:
Lenguaje de Máquina: Sus instrucciones son directamente entendibles por la computadora y no necesitan
traducción para que la CPU pueda comprenderlas y ejecutarlas. Las instrucciones se expresan en
términos de la unidad de memoria más pequeña: el bit (dígito binario 0 o 1).
Lenguaje de Bajo Nivel: Ensamblador. Las instrucciones se escriben en códigos alfabéticos conocidos como
mnemotécnicos para las operaciones y direcciones simbólicas.
Lenguaje de Alto Nivel: Visual Basic, C++, Cobol, etc. Las instrucciones son escritas con palabras
similares a los lenguajes humanos (en general en inglés), lo que facilita la escritura y comprensión del
programa.
3. Traductores de lenguaje:
Los traductores de lenguajes son programas que traducen a su vez los programas fuente escritos en
lenguajes de alto nivel a código máquina. Los traductores se dividen en Compiladores e Intérpretes.
3.2. Compiladores: Un compilador es un programa que traduce un programa fuente escrito en lenguaje de
alto nivel a lenguaje de máquina. El programa escrito en lenguaje de alto nivel se llama programa fuente y
el programa traducido se llama programa objeto o código objeto. El compilador traduce todo el programa
fuente sin ejecutarlo; luego de la traducción la ejecución puede realizarse. Lenguajes compilados típicos
son: PASCAL, COBOL y C.
4. Programas y algoritmos:
4.2. Algoritmo: La palabra algoritmo se deriva de la traducción al latín de la palabra árabe alkhowarizmi,
nombre de un matemático y astrónomo árabe que escribió un tratado sobre manipulación de números y
ecuaciones en el siglo IX. Un algoritmo es una serie de pasos organizados que describe el proceso que se
debe seguir, para dar solución a un problema especifico. Los algoritmos pueden ser de dos tipos:
Cualitativos: Se describen los pasos utilizando palabras.
Cuantitativos: Se utilizan cálculos numéricos para definir los pasos del proceso.
4.3. Lenguajes Algorítmicos: están conformados por una serie de símbolos y reglas usadas para
describir los procesos.
Gráficos: Diagrama de flujo. Representan gráficamente los pasos que debe INICIO
realizar un algoritmo para solucionar el problema. Esta representación
LEA N
V ESCRIBA
N>5
“MAYOR”
F
Dirección: Calle 58 # 55-24A Teléfono: (+57 5) 3442272 – 3441545
FIN
Sitio Web: www.ul.edu.co E-mail: [email protected]
Barranquilla-Colombia
Programa: Ingenieria de Sistemas Asignatura: Fundamentos de Programación
gráfica se dá cuando varios símbolos (que indican diferentes procesos en la computadora), se relacionan
entre sí mediante líneas que indican el órden en que se deben ejecutar los procesos. Los símbolos que se
pueden utilizar han sido normalizados por el ANSI - Instituto Norteamericano de Normalización.
5. Expresiones:
Las expresiones son combinaciones de operandos (datos), operadores (signos de operaciones) y símbolos de
agrupación (paréntesis). Ejemplo: a + (b + 3) / c. Cada expresión toma un valor que se determina tomando
los valores de los datos implicados y ejecutando sobre ellos las operaciones indicadas, de acuerdo con los
símbolos de agrupación y la prioridad que las operaciones tengan entre sí. Según el tipo de operadores que
contienen, las expresiones se clasifican en: aritméticas, lógicas y relacionales.
5.1. Operandos: Los datos pueden ser clasificados según la clase de valor que tengan o según la
estabilidad de su valor en el tiempo:
Según la clase de valor: Todos los datos tienen un tipo asociado con ellos, de acuerdo con su valor. Un
dato puede ser un simple carácter, tal como ‘b’ o un valor entero tal como 35. Su clasificación es:
Datos Numéricos: Permiten representar valores escalares de forma numérica, esto incluye a los
números enteros y los reales. Este tipo de datos permiten realizar operaciones aritméticas comunes.
Datos Lógicos: Son aquellos que solo pueden tener dos valores (cierto o falso) ya que representan el
resultado de una comparación entre otros datos (numéricos o alfanuméricos).
Datos Alfanuméricos: Es una secuencia de caracteres alfanuméricos que permiten representar valores
identificables de forma descriptiva, esto incluye nombres de personas, direcciones, etc. Es posible
representar números como alfanuméricos, pero estos pierden su propiedad matemática, es decir no es
posible hacer operaciones con ellos. Este tipo de datos se representa encerrados entre comillas.
Ejemplo: “1997”
Según la estabilidad de su valor en el tiempo : Un dato puede conservar su valor o pueden ir adquiriendo
valores diferentes a lo largo del tiempo. Según ésto, los datos pueden ser:
Constantes Numéricas
Constante: dato que no cambia su valor durante la ejecución del programa. Ejemplo: a = 3.14
Variable: espacio en la memoria del computador que permite almacenar un dato; su contenido puede
cambiar durante la ejecución del programa. Para identificar una variable en memoria, es necesario
darle un nombre con el cual podamos mencionarla en un algoritmo.
Ejemplo: área = pi * radio ^ 2 (variables: radio y área, constante: pi)
Variable Numérica: almacena valores numéricos, positivos o negativos. Ejemplo: a=0.15
Variable Lógica: solo puede tener dos valores (cierto o falso). Ejemplo: sw=”F”, res=”V”
Variable Alfanumérica: contiene carácteres alfanuméricos (letras, números y carácteres especiales).
Ejemplo: letra=’a’, apellido=’Lopez’, direccion=’Av. Libertad #190’
Variable de Trabajo: recibe el resultado de una operación matemática. Ejemplo: suma=a+b
Variable Contador: controla el número de ocasiones en que se realiza una operación o se cumple una
condición; se incrementa generalmente de uno en uno. Ejemplo: cuenta=cuenta+1
Variable Acumulador: sirve para llevar la suma acumulativa de una serie de valores que se van leyendo o
calculando progresivamente. Ejemplo: suma=suma+c
5.2. Operadores: son elementos que relacionan de forma diferente los valores de uno o más operandos
(variables y/o constantes). Es decir, los operadores nos permiten manipular valores. Los operadores deben
resolverse o evaluarse siguiendo un órden, precedencia o prioridad. Los tipos de operadores que existen
son: aritméticos, lógicos y relacionales.
( )
Λ
*, /, mod, div
+, -
Los paréntesis anidados se evalúan de dentro a fuera, el más interno se evalúa primero. Los operadores
con igual nivel de prioridad se evalúan de izquierda a derecha en el órden en que aparecen en la expresión.
5.2.2. Operadores Lógicos: Λ (y, and, conjunción), V (o, or, disjunción), ~ (¬, no, not, negación). Establecen
relaciones entre valores lógicos, que pueden ser resultado de una expresión relacional. La prioridad de los
operadores lógicos es:
Las expresiones con operadores lógicos (proposiciones) se evalúan usando tablas de verdad, que muestran
los valores de verdad que puede tener una proposición y las condiciones que los determinan. Una proposición
tiene valor verdadero (V) o falso (F), pero no ambos a la vez.:
5.2.3. Operadores Relacionales: >, <, >=, <=, =, < > (diferente). Los operadores relacionales se utilizan
para establecer una relación entre dos valores del mismo tipo, comparándolos entre sí para producir un
resultado de certeza o falsedad. Los operadores relacionales tienen el mismo nivel de prioridad en su
evaluación y tienen menor prioridad que los aritméticos.
()
Λ
(exponenciación)
~ (¬, no, not, negación)
*, /, mod, div, Λ (y, and, conjunción)
+, -, V (o, or, disjunción)
>, <, > =, < =, < >, =
V
V
FUENTES DE INFORMACION: