Está en la página 1de 9

Unidad Curricular: Algorítmica y Programación. Profesor Luis Rigual.

UNIDAD I. ALGORITMO Y PROGRAMAS

1. 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 además de lo anterior 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.

El diseño de soluciones a la medida de nuestros problemas, requiere como en otras


disciplinas una metodología que nos enseñe de manera gradual, la forma de llegar a estas
soluciones.

A las soluciones creadas por computadora se les conoce como programas y no son
más que una serie de operaciones que realiza la computadora para llegar a un resultado,
con un grupo de datos específicos. Lo anterior nos lleva al razonamiento de que un
programa nos sirve para solucionar un problema específico. Para poder realizar programas,
además de conocer la metodología mencionada, también debemos de conocer, de manera
específica las funciones que puede realizar la computadora y las formas en que se pueden
manejar los elementos que hay en la misma.

2. ¿Qué es un 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. Se concibe como una serie de pasos
organizados que describe el proceso que se debe seguir, para dar solución a un problema
específico; su concepto está íntimamente ligado a las operaciones que comúnmente tienen
que realizar las computadoras modernas. Aun cuando actualmente su uso está confinado
al campo de la computación, muchas actividades cotidianas realizadas por el hombre
pueden esquematizarse a través de algoritmos.
Un algoritmo es la forma de expresar en lenguaje natural la solución de un problema,
a través de secuencias lógicas de pasos. Por otra parte, se conocen como una fórmula para
resolver problemas a través de un conjunto de acciones o secuencia de operaciones que
son ejecutadas en un determinado orden. Existe n algoritmos, hay que coger el más
efectivo.

El concepto intuitivo de algoritmo (procedimientos y reglas) se puede encontrar en


procesos naturales de los cuales muchas veces no se es consciente. Por ejemplo, el proceso
digestivo es un concepto intuitivo de algoritmo con el que se convive a diario sin que haga
falta una definición “matemática” del mismo.

UPTOS “Clodosbaldo Russián”. Trayecto I. Periodo 01-18


Unidad Curricular: Algorítmica y Programación. Profesor Luis Rigual.

Ejemplo

Un procedimiento que realizamos varias veces al día consiste en lavarnos los dientes.
Veamos la forma de expresar este procedimiento como un Algoritmo:

1. Tomar la crema dental


2. Destapar la crema dental
3. Tomar el cepillo de dientes
4. Aplicar crema dental al cepillo
5. Tapar la crema dental
6. Abrir la llave del lavamanos
7. Remojar el cepillo con la crema dental
8. Cerrar la llave del lavamanos
9. Frotar los dientes con el cepillo
10. Abrir la llave del lavamanos
11. Enjuagarse la boca
12. Enjuagar el cepillo
13. Cerrar la llave del lavamanos
14. Secarse la cara y las manos con una toalla

3. Tipos de Algoritmos.

 Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras.
 Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para definir los
pasos del proceso.

4. ¿Qué es un programa?
Un programa de computadora es un conjunto de instrucciones (órdenes dadas a la máquina)
que producirán la ejecución de una determinada tarea. En esencia, un programa es un medio para
conseguir un fin. El fin será probablemente definido como la información necesaria para solucionar
un problema.

5. Algoritmos vs Programas.
Un Algoritmo es un conjunto ordenado y finito de pasos o instrucciones que
conducen a la solución de un problema. La naturaleza de los problemas varían con el ámbito
o con el contexto donde están planteados; así, existen problemas matemáticos, químicos,
filosóficos, etc. Según esto la naturaleza de los algoritmos también es variada y no todos
ellos pueden ser ejecutados por la computadora. En este curso consideramos aquellos
algoritmos que expresan soluciones usando reglas cuantitativas cuyas instrucciones pueden
ser introducidas en la computadora, a este tipo de algoritmos se denominan Algoritmos
Computacionales.

UPTOS “Clodosbaldo Russián”. Trayecto I. Periodo 01-18


Unidad Curricular: Algorítmica y Programación. Profesor Luis Rigual.

En la resolución de un problema con la computadora la parte pensante está en el


algoritmo. Así pues la eficacia de un programador no está en conocer la herramienta de
programación, cosa necesaria, sino en saber resolver problemas con la computadora para
lo cual se requiere conocer un concepto conocido como metodología de la programación
cuyo eje central es el algoritmo.
Una vez que la solución de un problema ha sido expresada mediante un algoritmo
el paso siguiente es convertirlo a programa para lo cual se elige un lenguaje de
programación. De modo que un programa resulta ser la implementación de un algoritmo
en un determinado lenguaje de programación. Esto significa, por otro lado, que un
algoritmo es independiente del lenguaje de programación.

6. Lenguaje algorítmico y de programación.

Lenguaje algorítmico.

Es una serie de símbolos y reglas que se utilizan para describir de manera explícita
un proceso.

Tipos de Lenguajes Algorítmicos.

1. Gráficos: Es la representación gráfica de las operaciones que realiza un algoritmo


(diagrama de flujo).

2. No Gráficos: Representa en forma descriptiva las operaciones que debe realizar


un algoritmo (pseudocódigo).

Lenguaje de programación.

Es un conjunto de símbolos, caracteres y reglas (programas) que les 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, calculo,
manipulación de textos, lógica/comparación y almacenamiento/recuperación.

Los lenguajes de programación, como el nombre lo indica, sirven para escribir


programas (instrucciones). Las instrucciones escritas en la mayoría de los lenguajes de
programación no son entendibles directamente por el procesador sino que requieren de
pasos intermedios de traducción para convertir estas instrucciones al lenguaje del
procesador, conocido como lenguaje máquina. Este proceso de traducción puede hacerse
mediante un compilador, un interpretador o con una combinación de los dos.

UPTOS “Clodosbaldo Russián”. Trayecto I. Periodo 01-18


Unidad Curricular: Algorítmica y Programación. Profesor Luis Rigual.

Tipos de Lenguajes de Programación.

1. Lenguaje de Máquina: Son aquellos cuyas instrucciones son directamente


entendibles por la computadora y no necesitan traducción posterior para que la CPU pueda
comprender y ejecutar el programa. Las instrucciones en lenguaje maquina se expresan en
términos de la unidad de memoria más pequeña el bit (dígito binario 0 o 1).

2. Lenguaje de Bajo Nivel: En este lenguaje las instrucciones se escriben en códigos


alfabéticos conocidos como mnemotécnicos para las operaciones y direcciones simbólicas.
Generalmente cada instrucción corresponde directamente a un código de máquina. Son
más fáciles que los lenguajes de máquina pero al igual que ellos son dependientes de la
máquina. Los lenguajes de bajo nivel son lenguajes simbólicos siendo el más importante el
lenguaje ensamblador.

3. Lenguaje de Alto Nivel: Los lenguajes de programación de alto nivel (BASIC, Pascal,
COBOL, FORTRAN, etc.), son aquellos en los que las instrucciones o sentencias a la
computadora son escritas con palabras similares a los lenguajes humanos (en general en
inglés), lo que facilita la escritura y comprensión del programa. Cada línea de programa
corresponde a miles de instrucciones en lenguaje de máquina.

7. Partes de un Algoritmo.
Todo algoritmo debe obedecer a la estructura básica de un sistema, es decir:
entrada, proceso y salida. Donde:

 Entrada: Corresponde al insumo, a los datos necesarios que requiere el proceso


para ofrecer los resultados esperados.
 Proceso: Pasos necesarios para obtener la solución del problema o la situación
planteada.
 Salida: Resultados arrojados por el proceso como solución.

Entrada Proceso Salida

8. Características y Elementos para Construir un algoritmo.


Características de los Algoritmos

Las características fundamentales que debe cumplir todo algoritmo son:

UPTOS “Clodosbaldo Russián”. Trayecto I. Periodo 01-18


Unidad Curricular: Algorítmica y Programación. Profesor Luis Rigual.

1. Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.


2. Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces se debe obtener el
mismo resultado cada vez.
3. Un algoritmo debe ser finito. Si se sigue un algoritmo se debe terminar en algún
momento; o sea debe tener un número finito de pasos.

Elementos de los algoritmos

Un algoritmo consta de datos y de sentencias.

Se almacenan Variables y Son


Datos Expresiones
constantes

Datos: es una información relativa a un objeto que es manipulable por el


computador, que posee un valor y que es conocido en un programa o algoritmo por un
nombre o identificador del dato.

 El identificador indica una dirección de memoria, y es el nombre por el que se


conoce a ese dato.
 Existen datos elementales y estructurados

Tipos de datos simples: Entero, Real, Lógico, Carácter, Puntero, Enumerado, Subrango.
Tipos de datos estructurados: Arrays, cadenas, registros, listas, árboles.
Las sentencias: Describen las acciones que pueden ser ejecutadas, en general
realizan cálculos, entradas/salidas y control de flujo del algoritmo. Dentro de las sentencias
tenemos:
Variables: elemento del algoritmo que posee un valor, conocido por un nombre o
identificador y que pertenece a un tipo de dato definido al inicio del algoritmo.

 Debe ser declarada antes de usarse.


 En un algoritmo la declaración consta de una sentencia que especifica: el tipo de
dato, su nombre y un valor inicial en algunas ocasiones.

Constantes: los elementos del algoritmo que no cambian de valor a lo largo de la


ejecución del mismo.

 Las constantes deben ser inicializadas de acuerdo con el tipo de dato al que
pertenecen.

UPTOS “Clodosbaldo Russián”. Trayecto I. Periodo 01-18


Unidad Curricular: Algorítmica y Programación. Profesor Luis Rigual.

Expresiones: es una combinación de variables, constantes, valores constantes,


operadores y funciones especiales que, en cada momento, al evaluarla tiene un valor
concreto.

 Las expresiones más representativas son las numéricas y las lógicas.


 Las expresiones numéricas tienen como resultado datos numéricos. Las
operaciones entre paréntesis se evalúan primero. Las operaciones aritméticas se
evalúan según el orden de prioridad. Los operadores: ^, Signo: (+,-), *,/, +, -Orden
de precedencia de mayor a menor.
 Las expresiones lógicas son las que ofrecen como resultado después de su
operación un valor lógico.
 Los operadores lógicos que involucran son: AND, OR, NOT y los relacionales: <, >,
==, <=, >=, ~=.

9. Formas de representar un algoritmo: Lenguaje natural, pseudocódigo y diagrama de


flujo.
Los algoritmos son un elemento del software independiente del lenguaje de
programación. Por esta razón se deben emplear métodos de representación de algoritmos
que permitan su codificación en cualquier lenguaje. Estos métodos pueden emplear
símbolos gráficos o numéricos independientes de la sintaxis de los lenguajes de
programación, pero que su descripción sea elemental y comprensible para una fácil
codificación. Actualmente existen dos técnicas principales para el diseño de algoritmos:

 Lenguaje Natural.
 Pseudocódigo (Lenguaje de especificación de Algoritmos).
 Diagramas de Flujo. (Símbolos Gráficos).

Lenguaje Natural.

Es aquél que describe en español, para nuestro caso, los pasos a seguir utilizando un
vocabulario cotidiano. Se le conoce como lenguaje jerga cuando se utilizan términos
especializados de una determinada ciencia, profesión o grupo. Ejemplo el ejercicio que
vimos anteriormente de lavarnos los dientes.

El Pseudocódigo

El pseudocódigo es una herramienta algorítmica que permite escribir seudo


programas (una imitación de un programa real) utilizando un lenguaje de seudo
programación que es una imitación de los lenguajes de programación de alto nivel. Así, un
seudo código es una combinación de símbolos (+, -, *, /, DIV, MOD, >, >=, <, <=, <>, =, y, o,
no), términos (Leer, Imprimir, Abrir, Cerrar, Hacer...Mientras, Mientras...Hacer,

UPTOS “Clodosbaldo Russián”. Trayecto I. Periodo 01-18


Unidad Curricular: Algorítmica y Programación. Profesor Luis Rigual.

Para...Mientras, etc) y otras características comúnmente utilizadas en uno o más lenguajes


de alto nivel.

No existen reglas que determinen que es o no es un pseudocódigo, sino que varía


de un programador a otro. El objetivo del pseudocódigo es permitir al programador
centrarse en los aspectos lógicos de la solución evitando las reglas de sintaxis de un lenguaje
de programación. Posteriormente el pseudocódigo debe ser traducido a programa usando
un lenguaje de programación de alto nivel como Java, C++, C, etc.

Ejemplo:
Inicio
Leer nombre, apellido, edad
Imprimir nombre, apellido, edad
Fin
Pseudocódigo que solicita datos de una persona por teclado y lo imprime por pantalla

Diagramas de Flujo
Un diagrama de flujo es la representación gráfica de un algoritmo, es decir es la
descripción del algoritmo utilizando símbolos gráficos para representar los pasos u
operaciones del mismo.
Simbología del Diagrama de Flujo
Los diferentes símbolos que utilizaremos para la diagramación son los siguientes:

Terminal: Indica donde comienza (Inicio) y donde


termina (Fin) el diagrama de flujo.

Entrada/Salida: Indica la entrada o salida por


pantalla de los datos e información.

Proceso: Indica las operaciones del programa tales


como instrucciones de asignación, cálculo, etc.

Decisión: Permite evaluar una condición para tomar


una decisión.

Documento: Muestra la salida sobre hoja de papel o


pantalla.

UPTOS “Clodosbaldo Russián”. Trayecto I. Periodo 01-18


Unidad Curricular: Algorítmica y Programación. Profesor Luis Rigual.

Repetir: Permite repetir un bloque de instrucciones


un número determinado de veces. Finaliza con un
círculo.

Conector: Permite conectar en la misma página las


partes de un diagrama de flujo.

Conector: Permite conectar en otra página las partes


de un diagrama de flujo.

Flechas: Indican el orden de cómo van a ser


ejecutadas las diferentes actividades.

Subprogramas: Se utiliza para representar los


subprogramas

Recomendación para la elaboración de un Diagrama de Flujo:

 Todo diagrama debe poseer un inicio y un final.


 Los diagramas de flujos se realizan de modo que se puedan leer de arriba hacia
abajo y de izquierda a derecha.
 Se deben utilizar líneas rectas verticales y horizontales.
 Utilice los conectores necesarios para evitar que las líneas se crucen.
 Un diagrama debe poseer la solución clara del problema y poder ser
interpretados por otras personas.
 Se debe evitar el cruce de líneas utilizando los conectores.
 Se deben usar conectores solo cuando sea necesario.
 No deben quedar líneas de flujo sin conectar.
 Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando
el uso de muchas palabras.

Ejemplo:

UPTOS “Clodosbaldo Russián”. Trayecto I. Periodo 01-18


Unidad Curricular: Algorítmica y Programación. Profesor Luis Rigual.

Inicio

“Introduzca sus datos”

nombre,
apellido, edad

“Los datos introducidos son: ”


nombre, apellido, edad

Fin

Diagrama de Flujo que solicita datos de una persona por teclado y lo imprime por pantalla

10.Traza de un algoritmo (corrida en frío)

La traza de un Algoritmo se puede definir como la ejecución manual de forma


secuencial de las sentencias que lo componen. Así, la traza del siguiente algoritmo es el
valor que van adoptando las variables a medida que se va ejecutando un programa.

La función principal que posee realizar la traza de un algoritmo es la de comprobar


que éste funciona correctamente o para realizar la etapa de depuración en la que se intenta
corregir errores, simplificar el algoritmo al máximo e incrementar su eficacia y velocidad.

UPTOS “Clodosbaldo Russián”. Trayecto I. Periodo 01-18

También podría gustarte