DOS

Algoritmos

En esta pagina encontraremos como hacer un algoritmo para poder hacer un programa complicado o no fácilmente y sin errores a la hora de codificarlo en un lenguaje cualquiera de programación

Para los que no saben: un ALGORITMO es como un "plano de una casa", se diagrama lo que vamos a realizar de antemano antes de codificar para que el programa funcione sin problemas y si los hay poder modificarlo fácilmente, además esto permite al programador la fácil observación del programa y la interpretación del mismo con solo mirarlo y además este puede ser interpretado por cualquier programador que conoce del tema ósea todos los programadores expertos. Este no es un lenguaje de computadora sino es uno sinboloco que se hace a papel y lápiz tiene distintos símbolos como el de entrada, salida, decisión y los siclos de repetición, cada uno de ellos se grafican de manera distinta para poderlos diferenciar uno de los otros y para la fácil lectura del algoritmo.

Comienzo de los algoritmos

Para hablar de algoritmo tenemos que tener encuesta que toda instrucción (lo que le especificamos al programa) empieza una cuando termina la otra, "una debajo de otra". También debemos decir que estas tienen que estar además de seguidas en un orden perfecto para que el programa tenga sentido y funcione bien. Veremos con unos ejemplos para que lo entiendan. ¿Cual seria el programa para un hombre salga atrabajar a la mañana? seria el siguiente

    1. El hombre tiene que levantarse de la cama.
    2. Tiene que bañarse.
    3. Vestirse.
    4. Tiene que hacerse el desayuno.
    5. Tomar el mismo.
    6. agarrar las cosas para trabajar
    7. Tomar el trasporte para ir a trabajar.
    8. Entrar a trabajar.
    9. trabajar.

Esto no seria lo mismo si se cambiara

    1. Vestirse.
    2. Tiene que bañarse.
    3. El hombre tiene que levantarse de la cama.
    4. Tomar el desayuno.
    5. Tiene que hacerse el desayuno.
    6. Tomar el trasporte para ir a trabajar.
    7. agarrar las cosas para trabajar
    8. Entrar a trabajar.
    9. trabajar.

Con este programa el hombre llegaría con la ropa mojada sin desayunar y cunado llega al trabajo tiene que volver a la casa por las cosas del trabajo. Esto no estaría bien y el programa no hace lo que pretende "llevar al hombre a trabajar" y seguramente si llegara así a trabajar lo despedirían

Además de lo que hablamos anteriormente estas forma ordenada tiene que estar acompañada con lo que comprende el programa y el procesador entienda de el programa por ejemplo al procesador le basta hacer una operación con una sola instrucción o puede pasar que el procesador necesite mas instrucciones para realizar la operación. Por ejemplo: Hacer una milanesas con un procesador experto

    1. pasar la carne por huevo
    2. pacerla por pan rayado
    3. hacerla la las milanesas a la napolitana
    4. cocinarlas

Pero un procesador inexperto

    1. sacar la carne
    2. batir los huevos
    3. mezclar los huevos con la carne
    4. poner pan rayado en un recipiente
    5. poner pan rayado a la carne
    6. Ponerle tomate por encima
    7. cocinarlas

Verán como el procesador experto no necesita tantas aclaraciones y también posemos ponerles instrucciones avanzadas cono en el ejemplo uno como era un cocinero experto le podemos decir que haga las milanesas a la napolitana y el ya sabe que llevan tomate por encima pero el cocinero inexperto no lo sabe y por eso hay que aclarárselo. ¿Dirán que tiene que ver todo esto? esto se refiere a las acciones PRIMITIVAS y NO PRIMITIVAS. Las primitivas son instrucciones que el programa ya pose y las no primitivas son las que se unen acciones primitivas para formar acciones nuevas.

Nosotros habíamos hablado de simbologías distintas que se usan para distinguir las acciones bueno estas son.

conienzo

Comienzo o fin

proceso

Proceso

entrada

Entrada

Desicion

Dedición o Comparación

funcion

Función

subrutina

Subrutina

salida

Salida

Para poder poner datos necesitamos variables que son una porción de memoria que lleva el nombre que el programador le ponga este nombre no puede ser numérico solo puede ser alfabético o alfanumérico. Estas son ingresadas en una entrada de datos y cuando se termino de ingresar queda almacenada en memoria asta que el programa las pida en una salida de datos que muestraza el resultado final de la variable por ejemplo: Entramos una variable llamada A le damos un proceso que le sume un numero cualquiera y después emitimos una salida para que muestre el resultado. Esto se vería axial.

 suma

La flecha hacia la izquierda se representa como signo un igual

NOTA: Las variables se asignan del lado izquierdo o sea que en el ejemplo la A de la izquierda tomara como resultado a la A + 2. Ejemplo A vale 10 entonces 10 + 2 como resultado es 12 y eso es lo que vale A

Esos procesos de de asignación podemos encontrar muchos pero hay dos importantes los acumuladores y los contadores. Los contadores son como dice la palabra cuentan números por ejemplo:

A = A + 1

y las acumuladoras acumulan variables con un valor preestablecido por ejemplo:

A = A + B

Dedición o comparación

La comparación o mas conocido en ingles IF esto sirve para verificar si un argumento es verdadero o falso, cero o no cero, con esos términos podemos llevar al programa a determinar dediciones como el valor de un numero. En las decisiones tenemos esos dos caminos y con esa ayuda podemos anidar uno dentro de otros para tener más decisiones. Por ejemplo como decidir para encontrar si un numero es par o impar y si es par ver si es mayor de 10 y si es impar ver si es menor de 10; Como verán en ese programa encontraremos tres dediciones una para ver si es par o impar, la otra para ver si es menor de 10 y la otra para ver si es mayor a 10.

Condición simple

Condición anidada

ejemplo2-1

ajemplo2-2

Siclos repetitivos

Repetir

Lo aprendió párese fácil. Pero eso no es todo en un algoritmo existe algo que se llaman programación estructurada que empieza a usarse en los años 60. Antes de ello usaban una función llamada GOTO que le permitían al programador dirigir el flujo del programa y esto hacia la programación mas difícil pero un día los programadores pensaron el la programación estructurada que esto usa dediciones y estructuras de repetición como el para, repetir y mientras que nos permiten hacer la programación mas fácil. Esos símbolos son parecidos al de dedición pero son repetitivos. Ejemplo:

La primera que vamos a ver es el siclo repetir o repeat. Este siclo repite los procesos que tiene en su interior hasta que la condición se torne verdadera. Al menos se repite una vez por que la condición la controla al final

repeat
Mientras

Mientras o en ingles while. Esta es como el repetir pero dada vuelta, primero verifica la condición y mientras que sea verdadero repite el siclo y si es falso sale del siclo. Cuando inicia el siclo debemos cambiad el valor de la variable de control o sea la variable que se compara en la condición por que sino no saldrá nunca del siclo. En síntesis le indicamos al principio la variable de control después la variable inicial y por ultimo la variable final

while

El para o en ingles for. Este siclo es mas automático que los otros por que de antemano le decimos cuantas beses se va repetir y el programa se repetirá esas beses no mas y no menos.

for

Con todos estos siclos cuando de han repetido mas de una ves las variables que dan un resultado final del siclo quedara con dicho resultado y cuando el siclo lo hagamos comenzar desde el principio quedara la variable sucia y la debemos limpiar poniéndola en cero o en el valor inicial para que no afecte los resultados posteriores como por ejemplo el programa de un supermercado cuando iniciemos el primer calculo de mercadería lo hará bien pero cuando otra persona llega con mas mercadería para la compra, si no se a limpiado las variables para este proceso a esta persona se le adicionara lo que compra de la otra persona mas lo que a comprado y el resultado final ya no es el mismo que le correspondería a esa persona por eso se limpian las variables par que no siga sumando lo que no debe.

NOTA: En el for VC: significa variable contadora , VI : sifnifica variable inisial, y VF : significa variable final.

Prueva de Escritorio

Ya que emos visto lo esensial de los siclos repetitivos i de la desisiones nos toca ver una tabla que se llama prueva de escritorio, esta tabla nos ayuda a ver si los algoritmos que isimos estna bien enchos y si hasen lo que nosotros queremos que agan.

Esta tabla consiste en pones todas la variables del programa y llenarlas con datos y ir siguiendo el algoritmo, para que entiensan a continuacion encontraran un ejemplo sensillo.

 

ejemplo

Aqui podemos ver en el ejomplo que es un programa que realiza una tabla de multipllicar hasta el numero 10.

Entonses disiendo que B es igual a 0 y A a un balor culaquiera, veremos que pasa en la la tabla.

 

Secuensia A B C
Valores iniciales 2 0 0
primera vez 2 0 0
segunda vez 2 1 2
tersera vez 2 2 4
cuarta vaz 2 3 6
quinta vez 2 4 8
sexta vez 2 5 10
septima vez 2 7 14
octava vez 2 8 16
novena vez 2 9 18
dezima vez 2 10 20

Ustedes veran esta tabla y no entenderan nada bueno a hora va en forma verbal.

Si ponemos enlos valores iniciales A = 2, B = 0, C = 0. Entonses

C = A*B -----> 2*0 = 0 dos por cero es cero

B = B+1 -------> 0+1=1 cero mas uno es uno

B >= 10 -------> 1 >= 10 ¿uno es mayos o igual a 10 ?, no, entonses sigo repitiendo

C -------> 0 El valor de la salida es 0

C = A*B -----> 2*1 = 2

B = B+1 ------> 1+1= 2

B >= 10 -------> 2 >= 10 ¿uno es mayos o igual a 10 ?, no, entonses sigo repitiendo

C --------> 2 el valor de la salida es 2

Asi susesibamente hasta que B sea igual que 10 y ese va ser el fin del programa