Capítulo A
A.A
Definición
En
sistemas, como en matemáticas, se define algoritmo como un conjunto finito de
pasos lógicos para lograr una solución de un problema. Por problema entiende
cualquier acción que se quiera llevar acabo. Cada uno de los pasos a seguir es
una secuencia ordenada de instrucciones y operaciones requeridas para pedir los
datos iniciales, realizar procesos específicos con los datos almacenados y
obtener resultados como solución al problema.
Es
importante hacer énfasis en que toda acción tanto humana como mecánica cumple
con las características básicas de un algoritmo, las cuales se describen a
continuación.
CONJUNTO
FINITO: todo algoritmo está compuesto por un número determinado de pasos. Lo
que significa que tiene fin sin importar el número instrucciones a utilizar.
Es
obligatorio en el desarrollo de un algoritmo, la terminación del mismo, ya que
se puede llegar a un ciclo infinito de ejecución, de la cual sería imposible
salir.
Cada
instrucción de un algoritmo debe ser definida en forma precisa, de tal manera que
las acciones a ejecutar en cada uno, estén rigurosamente especificadas y no
admitan ambigüedad.
DATOS DE
ENTRADA: son los datos necesarios para solucionar el problema.
EFECTIVIDAD:
todos los pasos instrucciones operaciones en un algoritmo deben optimizarse de
manera que se obtenga la solución más corta y eficiente de resolver el problema
planteado.
SALIDAS:
son los resultados de la solución del problema todo algoritmo debe tener una o
más salidas.
A.B Concepto
de variable
Con el fin
de retener y poder utilizar tanto los datos iniciales como los resultados de
operaciones efectuadas durante la ejecución de un algoritmo, se requiere la
utilización de variables que representan un lugar de almacenamiento, cuyo
contenido podrá variar durante el proceso y finalmente se obtendrán los
resultados, a partir de los datos contenidos en las variables implicadas. En
los algoritmos los datos se manejan a través de variables, es necesario
almacenar la información en algún sitio para luego se puede utilizar en
procesos o en operaciones de salida. Esto sólo se puede hacer referenciando la
variable que contenga dicha información. Una variable se puede asimilar como un
lugar dentro de un casillero. Las características de una variable son:
NOMBRE:
para referenciar los datos almacenados de una variable se deben antes asignar
un nombre a esta. El nombre debe estar de acuerdo con la información almacenada
en la variable, además el nombre debe empezar por la letra, no tener espacios
en blanco y no contener caracteres especiales como ¡,@,#,$,%,[,~,*,/, sólo se
puede utilizar el carácter de separación de texto _. A continuación, algunos
ejemplos de nombres de variables:
DATOS
correcto
NOTA1 correcta
Sueldo-empleado correcto
1TIPO
incorrecto (comienza por número)
DÍA MES incorrecto
(tiene espacio en blanco)
DEDUC# incorrecto
(tienen metacarácter)
CONTENIDO:
el contenido de una variable es el dato almacenado en ella. Esté contenido se accesa
a través del nombre de la variable.
La
información almacenada en una variable sólo puede ser de dos tipos; información
tipo carácter, tales como nombres direcciones o características y en general
símbolos alfanuméricos; e información tipo numérico, utilizada para calcular
resultados o controlar procesos. Durante la elaboración de un algoritmo una
variable debe almacenar datos de un solo tipo. En el tema de estructuras se introducirán más
tipos de información, pero por ahora se manejarán los carácter y numérico.
UBICACIÓN:
en la programación de un computador en contenido de una variable ocupó un lugar
en la memoria RAM, para accesar este contenido se utiliza el nombre de la
variable. Es importante introducir este concepto desde ya sin importar quién en
el diseño de algoritmos no se utiliza la memoria RAM; en temas posteriores se
verá la información de manejar ese concepto, específicamente en las estructuras
de información requieren de un buen entendimiento del mismo.
A.C Definición
de un pseudolenguaje para la construcción de algoritmos
A.C.A Tipo
instrucciones
A.C.A.A Instrucciones
de comienzo
ALGORITMO
NOMBRE-DE-ALGORITMO
Está
instrucción indica el comienzo del algoritmo que se va a desarrollar.
A.C.A.B Instrucción
de finalización
FIN - ALG
Con esta
proposición se da por terminada la ejecución del algoritmo todo algoritmo debe
llevar un comienzo y un final
A.C.A.C Instrucción
de asignación
VARIABLE <-
EXPRESIÓN
Este
esquema es válido para cualquier expresión está instrucción asigna a la
variable de la izquierda el valor resultante de la expresión de la derecha la variable.
La expresión puede ser:
VARIABLE
VARIABLE1
<- VARIABLE2
UNA CONSTANTE
VARIABLE <-
CONSTANTE
UN LITERAL
VARIABLE <-
LITERAL
UNA
EXPRESIÓN MATEMÁTICA
VARIABLE
<- EXPRESIÓN MATEMÁTICA
La
expresión matemática es un conjunto de operaciones entre variables y/o constantes.
Las operaciones pueden ser sumas, restas, divisiones o multiplicaciones, por
ejemplo:
VARIABLE1
<- (VARIABLE2 + 5) – (VARIABLE3 *10) / VARIABLE
Todas las
variables deben ser de tipo numérico el resultado de la expresión matemática
ser almacenado en la VARIABLE 1
A.C.A.D Instrucción
de entrada de datos
LEER “mensaje”
VARIABLE
Aquí se
establece que todas las entradas de datos se realizan a través de una consola,
esto es que el mensaje entre comillas aparece en la pantalla para indicarle al
operario que tipo de información se desea, el operario entra el dato por el
teclado y es asignado a VARIABLE.
A.C.A.E Instrucción
de salida de datos
ESCRIBA
EXPRESIÓN
EXPRESIÓN
puede ser compuesta por una variable (numérica o de carácter), una constante,
una cadena de caracteres encerradas entre comillas dobles (“cadena”) o una
expresión matemática. El contenido de la expresión es mostrado por la pantalla.
Ejemplo:
Hacer un algoritmo
para una maquina controladora de Personal Empresarial, donde la maquina permita
conocer tanto la hora de salida y llegada de almorzar, como la hora en que
finaliza la jornada de cada uno de los empleados de dicha empresa.
Comenzar
Lea HE
SA <- HE
+4
LLA <-
SA +1
HS <-
LLA + 4
Escriba “Hola
de salir a Almorzar”,SA
Escriba “Hola
de entrada de Almorzar”,LLA
Escriba “Hola
de Salida”, HS
Fin-Algoritmo
HE-> Hora
de Entrada
SA -> Salida
a Almorzar
LLA -> Llegada
de Almorzar
HS ->
Hora de Salida
A.C.A.F Instrucción
de decisión
SI (CONDICIÓN)
entonces
instrucción1
SI-NO instrucción2
FSI
La
condición es una comparación de dos expresiones que arroja un resultado;
verdadero o falso. Si la condición es verdadera se ejecutan instrucciones1, si
la condición es falsa se ejecutan instrucciones2.
Las condiciones
utilizadas en este tipo instrucciones se realizan por medio de operaciones de
relación, que básicamente establecen comparaciones de igualdad, diferencia,
etc. los operadores de relación utilizados son:
= IGUAL QUE
>MAYOR
QUE
>=MAYOR
O IGUAL QUE
<MENOR
QUE
<=MENOR
O IGUAL QUE
<>DIFERENTE
Se chequeará
así las expresiones cumplen con la relación. En este tipo de secciones se puede
presentar que se necesiten asociar dos o más condiciones con un mismo y
diferente operador de la relación. Para poder especificar ese tipo de casos
dentro de la instrucción se necesitan los operadores lógicos.
CONDICIÓN1 (operador
lógico) CONDICIÓN2
Los
operadores lógicos son O e Y. Esta condición compuesta debe arrojar un
resultado verdadero o falso, que depende de los valores que arrojen CONDICIÓN1
y CONDICIÓN2, a continuación se presentan las tablas de verdad que rigen las
relaciones entre condiciones:
CONDICION1
|
CONDICION2
|
(CONDICION1)Y(CONDICION2)
|
(CONDICION1)O(CONDICION2)
|
VERDADERO
|
VERDADERO
|
VERDADERO
|
VERDADERO
|
VERDADERO
|
FALSO
|
FALSO
|
VERDADERO
|
FALSO
|
VERDADERO
|
FALSO
|
VERDADERO
|
FALSO
|
FALSO
|
FALSO
|
FALSO
|
La única
entrada a la estructura es a través de la parábola claves SI y la única salida
es por FSI. Si la estructura es incompleta no existe la palabra clave SI-NO. Con
esta estructura se puede tener cualquier nivel de anidamiento, esto es que en
la estructura instrucciones1 o instrucciones2 pueden ser a su vez instrucciones
de decisión.
Ejemplo:
Hacer un
algoritmo que pida los tres lados de un triángulo y diga que si el triángulo es
equilátero isósceles o escaleno.
Algoritmo Nombre-algoritmo
Lea L1
Lea L2
Lea L3
Si L1=L2 y
L2=L3 Entonces
Escriba”Equilatero”
SINO
SI L1=L2 o
L2=L3 o L1 = L3 Entonces
Escriba “Isosceles”
SINO
SI L1<>L2
y L2<>L3 y L1 <> L3 Entonces
Escriba “Escaleno”
Fin-Si
Fin-Si
Fin-Si
Fin-Algoritmo
A.C.A.G
instrucción de ciclo de ciclo controlado por una variable
PARA VARIABLE
N1 HASTA N3 DE N2
instrucciones
FPARA
El bloque
de instrucciones se encuentra entre las palabras claves PARA y FPARA; además se
debe especificar el valor inicial (N1) y el valor final (N3) de la variable de
control VARIABLE. Las instrucciones se ejecutan el número de veces definida por
N3 – N1+1 y por el aumento de la variable de control en cada ciclo (N2).
Ejemplo:
Hacer un
algoritmo que imprima los números pares desde en 2 hasta N.
Comenzar
Lea N
Para I=2
hasta N de 2
Escriba I
Fin-Para
Fin-Algoritmo
N->
limite de los números pares a escribir
I->Variable
de control
A.C.A.H Instrucción
interactiva condicional
MIENTRAS (CONDICIÓN)
instrucciones
FMQ
Cada vez
que se ejecute está instrucción se pregunta si la condición es verdadera, si es
así se ejecuta las zonas del blog y se vuelve a chequear la condición. En el caso
que la condición sea falsa no se ejecutan instrucciones y se continúa con la instrucción
siguiente al FMQ.
A.C.A.I Instrucción
repita-hasta
REPITA
instrucciones
HASTA (CONDICIÓN)
Esta
instrucción, a diferencia del anterior garantiza que el bloque de instrucciones
se ejecuta al menos una vez y luego se chequea la condición.
Si esta
falsa se ejecuta nuevamente las instrucciones y se vuelve a chequear la
condición, de otro lado si la condición es verdadera se sale del ciclo y se
ejecutan las instrucciones hasta el siguiente HASTA (CONDICIÓN).
Ejemplo:
Imprimir
los enteros desde 1 hasta N con su respectivo cuadrado. Suponer que para este
ejercicio que el computador no puede multiplicar. De esta manera:
numero
|
cuadrado
|
Obtenido como
|
1
|
1
|
1
|
2
|
4
|
1+3
|
3
|
9
|
1+3+5
|
4
|
16
|
1+3+5+7
|
… y asi sucesivamente
Algoritmo:
Algoritmo Alg1
Repita
lea N
hasta (N<=1)
I=1
Q=0
Mientras (I<=N) haga
Q=Q+I+I-1
Escriba “I=”,I al cuadrado=”,Q
I=I+1
Fin-MQ
Fin-Algoritmo
N->el ultimo numero para hallar el
cuadrado
I->variable de control de ciclo
Q->almacena el cuadrado del siguiente
numero
A.C.A.I Instrucción
de selección múltiple
CASOS (VARIABLE)
X1:
INSTRUCCIONES1
X2: INSTRUCCIONES2
X3: INSTRUCCIONES3
SI-NO
INSTRUCCIONES4
FCASOS
De acuerdo
al valor que tenga variable al momento de ejecutarse una instrucción entonces
ejecutan las instrucciones correspondientes a este valor y luego se salta FCASOS
para ejecutar la instrucción siguiente. Por ejemplo, si el valor que tiene VARIABLE
es X2 se ejecutan el bloque de instrucciones frente a este valor (Instrucciones2)
y luego se pasa a FCASOS. Si la variable no tiene ninguno de los valores
relacionados (e.d. X1 X2 X3) entonces ejecuta el bloque instrucciones SI-NO y
pasa al FCASOS.
Ejemplo:
Hacer un
algoritmo que muestre un menú con opciones de manejo de un cajero automático. Debe
llamar cada rutina y ejecutarla, luego de estas regresar al menú principal.
Comenzar
Repita
Escriba “MENU
PRINCIPAL”
Escriba “1.
consultar”
Escriba “2.
Retiros”
Escriba “3.
Consignación”
Escriba “4.
Terminar”
Escriba “Que
opción desea?”
Lea Op
Casos (op)
1: invoque
saldo
2: invoque
retiros
3: invoque
consigna
4: terminar
SI-NO _
Escriba “Opcion invalida”
FCASOS
Hasta
(op=4)
Fin-Algoritmo
A.C.B Procedimientos
El diseño
de algoritmos puede ser más eficiente con la utilización de procedimientos. El diseño
algoritmo se puede asimilar como una construcción de una casa o un edificio, si
ya se tienen los moldes de las paredes no hay que construir este ladrillo por
ladrillo cuando se requieran, sino traer el molde de la pared ya construida y
colocarla donde deba ir. Del mismo modo en los algoritmos puede necesitarse un
grupo de instrucciones en varios puntos de algoritmo, entonces se define ese
grupo instrucciones como un procedimiento (el molde) y en los puntos del
algoritmo donde se requieran esto se colocan una llamada al procedimiento.
El
siguiente es un ejemplo de procedimientos
Se requiere
construir un programa que dados dos números cualquiera (I y J)j escriba el
resultado de su suma.
PROCEDIMIENTO
SUMA (I,J)
ADICION =
I+J
ESCRIBA
ADICION
RETORNAR
FIN-PROC
Es
necesario dar un nombre al procedimiento para luego pueda ser utilizados de
cualquier parte del algoritmo.
Las
variables I y J colocadas entre paréntesis () son llamados los PARÁMETROS del
procedimiento, y ellos indican los valores que se van a sumar.
La forma en
que se escribe el procedimiento es igual a la de un algoritmo corriente, con la
única diferencia que como condición de salida se coloca la palabra reservada RETORNAR
para que después que termine su ejecución devuelva el control de la operación
al algoritmo desde donde fue llamado.
A
continuación un algoritmo utiliza el procedimiento antes definido.
ALGORITMO
SUMANDO
SUMA(2,6)
X= 5
Y=8
SUMA (X,Y)
FIN-ALG
En la
primera llamada SUMA se pasan como
parámetros los valores 2 y 6 por lo que esta llamada al procedimiento escribe
como resultado de la suma el valor 8, en la segunda llamada SUMA se pasa como
parámetro en las variables Xy Y, por lo tanto el resultado de la suma es 13.
Cuando en
la ejecución del algoritmo se encuentra una llamada a un procedimiento, se pasa
a ejecutar las instrucciones definidas para este, y cuando se encuentre RETORNAR
en el procedimiento entonces ejecutan las instrucciones que siguen a la llamada
del procedimiento. una definición de procedimiento debe tener un solo RETORNAR.
Los
beneficios de la utilización de procedimientos se reflejan en una mejor
presentación y entendimiento del algoritmo, además se utilizar una mejor
cantidad de instrucciones en el momento de diseñar algoritmo y la corrección
del mismo se hace menos trabajosa y compleja.
Los
procedimientos son la mejor manera de la programación estructurada.
A.C.C
arreglos
Los
arreglos son variables con un número finito y ordenado de posiciones en las
cuales se guardan contenidos o varones homogéneos. cada posición del arreglo
puede diferenciarse como una variable independiente así:
VARIABLE (POSICIÓN)
Por ejemplo si se quiere almacenar en la quinta posición un arreglo llamado DATOS el número 10 la instrucción de asignación es DATOS (5) = 10. La posición del arreglo puede darse como una constante, una variable o una expresión matemática.
Debe ser
finito y ordenado, entonces existe un límite de posiciones en el arreglo y al
ser ordenado las posiciones son consecutivas primero, segunda,…, n-ésima. El
número de posiciones que tiene un arreglo se denomina dimensión del arreglo. Esto
es, un arreglo de números que puede almacenar diez de ellos como máximo, tiene dimensión
diez.