sábado, 16 de febrero de 2019

ALGORITMO 1

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.