You are on page 1of 9

Lección 1-Conceptos Básicos 2008

Apuntes. Algoritmos y Operadores

Introducción
El desarrollo de programas para computadoras requiere el conocimiento de los aspectos básicos del
funcionamiento de un computador, tal como lo concibió Von Neumann (programa almacenado).

Desde una perspectiva general, el computador implica tres tipos de dispositivos: los de entrada, los de
procesamiento y los de salida. Un ejemplo típico es el computador personal, en el que el teclado y el
ratón son dispositivos de entrada, mientas que el monitor y la impresora son dispositivos de salida. En
cuanto a la unidad de procesamiento, esta está constituida por el microprocesador, apoyado por
diferentes tipos de memorias y un conjunto de canales o circuitos para transferencia de datos e
instrucciones.

El funcionamiento de la unidad central de procesamiento de un computador se apoya en tres elementos


esenciales: la unidad aritmético-lógica, la unidad de control y los registros (memorias) para el
almacenamiento de datos e instrucciones. Todos comunicados a través de una especie de autopistas,
que llevan y traen las señales por líneas paralelas (8, 16, 32 o más líneas). Por cada línea pasa un bit
(Binary Digit).

Para ilustrar la función de cada uno de estos elementos, podemos tomar como ejemplo el siguiente:

Un computador digital debe “ejecutar” la instrucción: A  B * 2

Esta instrucción constituye una asignación; se puede leer como sigue: “a la variable A asígnele el
resultado de la operación B * 2”.

Si el valor de B es 5, entonces a la variable A se le asignará el valor 10.

Las dos variables corresponden a dos espacios de memoria, en la que se almacenan sus valores. Imagine
los espacios de memoria como los casilleros en un edificio. Cada casilla tiene un nombre único (en
nuestro caso, es el nombre de la variable), y puede contener algún tipo de “valor”. En el caso del
computador digital, el espacio de memoria puede contener a la vez sólo un valor. Si se coloca otro, el
anterior se pierde y queda reemplazado por el nuevo.

¿Cómo ocurre la ejecución de la instrucción en la Unidad Central de Procesamiento?

La unidad de control (UC) interpreta la instrucción e inicia, a través de ciertas órdenes, las tareas para
cumplir con dicha instrucción (A  B * 2).

1. Solicita que el valor de B, almacenado en memoria, sea trasladado a la Unidad Aritmético-Lógica


(UAL). En este caso, asumimos que el valor de B es 5.

2. La UC envía el valor constante 2 (parte de la instrucción) a la UAL


Lección 1-Conceptos Básicos 2008

3. La UC solicita a la UAL que ejecute el operador * (multiplicación) entre los valores enviados

4. La UAL realiza la operación y almacena temporalmente el resultado en un registro (memoria


especial).

5. La UC solicita que el valor del resultado sea almacenado en la variable A (En este ejemplo, el
valor de A es 10)

Las variables A y B pueden entenderse como los nombres de dos espacios de memoria en las que es
permitido almacenar valores enteros.

Observemos que una sola instrucción implicó en nuestro ejemplo, cinco pasos. Dependiendo del diseño
de la máquina, pueden ser más o menos pasos.

Lenguaje algorítmico
Para desarrollar programas básicos para computadoras, es necesario conocer y dominar un lenguaje
especial, conformado por pocos elementos, que es preciso, con reglas sintácticas específicas, que
permite describir la solución de un problema en ese lenguaje. En nuestro caso, se trata de un
subconjunto del lenguaje natural, que luego puede ser “convertido” o “traducido” a través de un
lenguaje de programación, en un programa, el cual puede ser “comprendido” por la máquina; es decir,
puede ser ejecutado y, a partir de ciertos valores de entrada, generar resultados o salidas.

La implementación en la figura, es la codificación del algoritmo, que tiene como producto, un programa
para una computadora en particular, según el lenguaje utilizado.

Para ser más precisos, el Programa se obtiene cuando se suman dos elementos: el Algoritmo más las
Estructuras de Datos. Este último elemento lo desarrollaremos en otra lección.

En algunos casos, al lenguaje algorítmico lo confunden con el pseudocódigo, al cual definen como un
lenguaje de programación algorítmico; es decir, un lenguaje intermedio entre el lenguaje natural y
Lección 1-Conceptos Básicos 2008

cualquier lenguaje de programación específico, como el C, FORTRAN o Pascal. Sin embargo, un uso
exhaustivo del lenguaje nos permitiría entender que lenguaje algorítmico es más que pseudocódigo.

Existen tres estructuras esenciales para la creación de algoritmos:

1. Estructura Secuencial

2. Estructura de Decisión

3. Estructura de Repetición

Estructura Secuencial:

Son aquellas que se ejecutan una después de otra. Se tienen tres tipos de instrucciones secuenciales: la
declaración de variables, la asignación, las instrucciones de Leer y de Escribir.

La mayoría de algoritmos actúan sobre un conjunto de datos suministrados por el usuario (Leer valores),
y se espera que a partir de dichos valores y desarrollando los procesos programados se genere
información de salida o resultados (Escribir resultados).

Declaración de variables

Teniendo en cuenta la compatibilidad con la mayoría de los lenguajes, se recomienda que desde el
diseño del algoritmo se utilice una forma determinada para la declaración de las variables. Esta consiste
en escribir el tipo de datos y la lista de identificadores que se tendrán de dicho tipo, separando cada
identificador por medio de comas. Para mejorar la claridad de la declaración se puede colocar dos
puntos (:) para separar el tipo de datos de la lista de identificadores. Ejemplo:

Entero: edad
Real: estatura, peso, sueldo
Cadena: nombre, dirección

La variable “edad” será de tipo entero, lo que significa que sólo aceptará valores enteros. La variable
“peso” podrá almacenar valores reales. La variable “nombre” podrá almacenar valores tipo cadena o
string (por ejemplo: nombre <- “pedro”). Como se dijo antes, todas esta variables tendrán un espacio de
memoria reservado para almacenar un valor a la vez.

Aunque algunos lenguajes de programación permiten declarar las variables en el momento en que son
requeridas, es aconsejable, en favor de los buenos hábitos de programación, siempre declarar las
variables antes de utilizarlas y el sitio más adecuado es el inicio del programa.
Lección 1-Conceptos Básicos 2008

Asignación

Es el modo de copiar o almacenar un valor específico en una variable o espacio de memoria. La


operación de asignación se representa con el símbolo igual '=' en la mayoría de los lenguajes. En
algoritmos, es común utilizar el símbolo . La forma general de una operación de asignación es:

Variable = valor
Variable  valor
En PASCAL: Variable := valor

Tipos de Asignación

• Asignación variable numérica

En una variable numérica (declarada como entero o real) sólo se podrán guardar datos numéricos y
existe dos formas de hacerlo:

1. Asignación de un número (constante numérica) a una variable numérica. Asumamos que la


variable A ha sido declarada de tipo entero, si queremos copiar el valor de 5 en ella lo haríamos
de la siguiente manera.

A=5

Esto significa que se almacena el valor de 5 en la variable A.

2. Asignación del resultado de una expresión aritmética a una variable numérica. Asumamos que
las variable A ha sido declarada de tipo entero y queremos copiar en ella el resultado de la
expresión aritmética 5*2 +1 se haría de la siguiente manera.

A = 5* 2 +1

Se evalúa primero la expresión aritmética y el resultado se guarda en la variable A. En este caso


se almacena en A el valor de 11.

Es posible que la expresión aritmética este formada con variables numéricas; para ilustrarlo
asumamos que A, B y C han sido declaradas de tipo entero y que en B ya hemos almacenado un
10 (B = 10) y en C hemos almacenado un dos (B = 2). Si queremos almacenar en A lo que tiene B
mas lo que tiene C, se haría de la siguiente manera.

A=B+C

Se evalúa la expresión aritmética, teniendo en cuenta los contenidos de las variables B y C, en


este caso el resultado es 12, que se asigna a la variable A.
Lección 1-Conceptos Básicos 2008

• Asignación variable tipo de cadena

En una variable de tipo cadena se pueden guardar cadenas directamente o el resultado de evaluar
una expresión de cadena. Asumamos que la variable NOMBRE ha sido declarada de tipo cadena, si
queremos copiar en ella el nombre "María" lo haríamos de la siguiente manera.

NOMBRE = "María"

Almacenará en la variable NOMBRE el valor de "María".

• Asignación variable tipo lógico

En una variable lógica sólo se podrán guardar datos lógicos ("verdadero" o "falso") o el resultado de
evaluar una expresión lógica. En inglés: true o false

Asumamos que la variable BANDERA ha sido declarada de tipo lógico, si queremos copiar en ella el
resultado de la expresión lógica “2 > 10”, lo haríamos de la siguiente manera.

BANDERA = 2 > 10

Almacenará en la variable BANDERA el valor de "falso" o “false”, pues 2 no es mayor que 10.

También podemos almacenar en BANDERA un valor lógico directamente.

Estructura de Decisión

Las instrucciones de decisión son necesarias cuando en un algoritmo una o muchas tareas se deben
hacer o no, dependiendo de una situación en particular. Esta situación nos ayudará a decidir si hacemos
o no las tareas indicadas. Las instrucciones de decisión que estudiaremos son las básicas, la Instrucción
De Decisión SI y la Instrucción de Decisión DE LO CONTRARIO (SI NO). Ambas son presentadas como una
sola instrucción en muchos casos.

• Instrucción de decisión SI

La estructura es la siguiente:

Inicio
Instrucción 1
Si expresión lógica Entonces
.......Instrucción 11
.......Instrucción 12
…....Instrucción 13
Fin Si
Instrucción n

Fin del algoritmo
Lección 1-Conceptos Básicos 2008

Se evalúa la expresión lógica: si es verdadera se realizan las instrucciones internas (11, 12 y 13), de lo
contrario se salta a la siguiente instrucción fuera de la estructura, en este caso a la instrucción n.

• Instrucciones de decisión “De Lo Contrario”

La estructura es la siguiente:

Inicio
Instrucción 1
Si expresión lógica entonces
.......Instrucción 11
.......Instrucción 12
.......Instrucción 13
De lo contrario
.......Instrucción 21
.......Instrucción 22
.......Instrucción 23
Fin si
Instrucción n

Fin del algoritmo

Se evalúa la expresión lógica, si es verdadera se realizan las instrucciones internas (11, 12, 13) y
luego se sigue con la instrucción n. Si la expresión lógica es falsa, se realizan las instrucciones
internas al de lo contrario, en este caso las instrucciones 21, 22, 23. Luego se sigue con la instrucción
n. Es importante notar que este tipo de instrucción es excluyente, o sea que si entra por el SI, no
entra por el de lo contrario. Y si entra por el de lo contrario, no entra por el SI.

Estructuras de repetición

Las instrucciones de repetición son necesarias cuando en un algoritmo hay que realizar una o
muchas tareas varias veces. Las instrucciones de repetición básicas son: el REPITA MIENTRAS y el
REPITA PARA; cada una de las cuales tiene su propia representación y su propia manera de controlar
el número de veces que se repetirá el ciclo o bucle (instrucciones internas). Estas características
hacen que una instrucción de repetición sea más adecuada que la otra en una situación particular
(Existen otras formas de repetición que no se tratarán aquí)

Repita Mientras

La estructura repetitiva Repita Mientras es aquella en que las instrucciones internas al “bucle” se
ejecutan mientras se cumple una determinada condición. La estructura es la siguiente:

Inicio
Instrucción 1
Repita Mientras expresión_lógica
.......Instrucción 11
Lección 1-Conceptos Básicos 2008

.......Instrucción 12
.......Instrucción 13
Fin mientras
Instrucción n

Fin del Algoritmo

Cuando se ejecuta la instrucción mientras, la primera cosa que sucede es que se evalúa la condición
(una expresión lógica). Si la expresión es falsa, ninguna acción del bucle (parte interna) se ejecuta y el
programa continúa en la siguiente instrucción al bucle (Instrucción n). Si la expresión es verdadera,
entonces se ejecuta el cuerpo del bucle. Después de lo cual se evalúa de nuevo la expresión lógica
(cada ejecución del bloque de instrucciones internas es una iteración). Este proceso se repite una y
otra vez mientras la expresión lógica (condición) sea verdadera. Dentro del cuerpo del bucle debe
existir una instrucción que modifique la expresión de tal manera que en algún momento haga que su
valor sea falso. Es decir que garantice la terminación del ciclo.

Repita Para

Permite que un grupo de instrucciones se repita cero o más veces, dependiendo del valor que resulte
al evaluar una expresión de tipo lógico.

La estructura es la siguiente:

Para expresión_inicio, expresión_lógica, expresion_incremento


.......Instruccion1
.......Instruccion2
......Instruccion3
......Instruccion4

Fin para
Instrucción n
Fin del Algoritmo

La expresión_inicio establece la condición inicial para la variable de control evaluada en la


expresión lógica.

La expresion_incremento modifica la variable de control.

La expresión_lógica es una expresión formado con la variable de control, y que sirve para
controlar el número de iteraciones del ciclo el cual termina cuando su valor sea falso.

Esta estructura de repetición es presentada en la mayoría de los casos como sigue:

Para I <- 1 hasta N Hacer


.......Instruccion1
Lección 1-Conceptos Básicos 2008

.......Instruccion2
......Instruccion3
......Instruccion4

Fin para
Instrucción n
Fin del Algoritmo

La variable I es de tipo entera y cumple el papel de un contador. Se inicia con el valor 1 y se


incrementa hasta llegar a N. Si no se especifica otra cosa, el incremento es de 1 en 1, y de
manera ascendente. Existe la posibilidad que el incremento sea negativo, es decir que la variable
I comience en un valor N y llegue a un valor como 1 o 0.

___________________________________________________________

Operadores
Operadores aritméticos
Operador Significado
- Menos unario
- Resta
+ Más unario
* Multiplicación
/ División real
div División entera
mod Resto de la división entera
^ Exponenciación

El tipo de dato de una expresión aritmética depende del tipo de dato de los operandos y del operador.
Con los operadores +, -, * y ^, el resultado es entero si los operandos son enteros. Si alguno de los
operandos es real el resultado será de tipo real. La división real (/) devuelve siempre un resultado real.
Los operadores mod y div devuelven siempre un resultado de tipo entero.

Operadores de relación
Operador Significado
= Igual a
< Menor que
> Mayor que
<= Menor o igual que
>= Mayor o igual que
Operador <> Distinto de

Los operandos deben ser del mismo tipo y el resultado es de tipo lógico, es decir, Verdadero o Falso

Operadores lógicos
Operador Significado
no Negación lógica
Y Multiplicación lógica (verdadero si los dos operandos son verdaderos)
o Suma lógica (verdadero si alguno de los operandos es verdadero)
Lección 1-Conceptos Básicos 2008

Los operandos deben ser de tipo lógico y devuelven un operando de tipo lógico.

Operadores de cadena
Operador Significado
+ Concatenación de cadenas (en algunos lenguajes tiene otro símbolos, como &)

Trabaja con operandos de tipo cadena o carácter y el resultado siempre será de tipo cadena.

You might also like