ALGORITMIA
-
Upload
hannah-leah -
Category
Documents
-
view
8 -
download
4
description
Transcript of ALGORITMIA
-
Prof. Claudia Checchia Pg 1
ALGORITMIA Y PROGRAMACIN
DIAGRAMACIN LGICA
1. CONCEPTOS BSICOS..................................................................................................2 2. PASOS PARA LA SOLUCIN DE UN PROBLEMA....................................................2 3. CMO EMPEZAR? - PASOS PARA DISEAR UN ALGORITMO ..........................2 4. TIPOS DE DIAGRAMACIN ALGORTMICA............................................................3
A) DIAGRAMA DE FLUJO - DFD .................................................................................3 B) PSEUDOCODIGO .......................................................................................................4
5. VARIABLES Y CONSTANTES......................................................................................4 A) VARIABLES ...............................................................................................................4 B) CONSTANTES ............................................................................................................5
6. OPERADORES.................................................................................................................6 A) OPERADORES ARITMTICOS................................................................................6 B) OPERADORES DE COMPARACIN .......................................................................6 C) OPERADORES LGICOS..........................................................................................7
7. DISEO DE FRMULAS ...............................................................................................7 8. CONTADORES ................................................................................................................8
9. ACUMULADORES..........................................................................................................8 10. PROGRAMACIN MODULAR.....................................................................................8
A) PROCEDIMIENTOS ...................................................................................................9 B) FUNCIONES................................................................................................................9
11. ARRAYS.........................................................................................................................10 12. MATRICES.....................................................................................................................11
13. ESTRUCTURAS.............................................................................................................13 A) ESTRUCTURA SECUENCIAL................................................................................13 B) ESTRUCTURA CONDICIONAL .............................................................................15 C) ESTRUCTURAS REPETITIVAS .............................................................................18 D) ESTRUCTURA DE SELECCIN ............................................................................20
-
Prof. Claudia Checchia Pg 2
ALGORITMIA Y PROGRAMACIN
1. CONCEPTOS BSICOS Diramos que un algoritmo es una serie de instrucciones que colocadas en un orden lgico conducen a la solucin de un problema. Tambin se puede decir que un algoritmo es la fase preliminar al escribir un programa en cualquier lenguaje de programacin, por lo que la forma de escribirlo puede ser muy personal segn el programador que lo est diseando, pero en general se debe hacer en una forma tan clara que cualquier otro programador pueda tomar dicho algoritmo, entenderlo fcilmente y pueda traducir a su lenguaje de programacin favorito.
El programador de computadoras es ante que nada una persona que resuelve problemas, por lo que para llegar a ser un programador eficaz se necesita aprender a resolver problemas de un modo lgico, riguroso y sistemtico.
2. PASOS PARA LA SOLUCIN DE UN PROBLEMA 1. Diseo de algoritmo, que describe la secuencia ordenada de pasos que conducen a la solucin.
2. Solucin de un problema dado. (Anlisis del problema y desarrollo del algoritmo). Expresar el algoritmo como un programa de lenguaje de programacin adecuado. (Fase de codificacin.)
3. Ejecucin y validacin del programa por la computadora.
3. CMO EMPEZAR? - PASOS PARA DISEAR UN ALGORITMO Aunque no hay un mtodo general para disear algoritmos, si se puede decir que lo ms adecuado es seguir con los siguientes pasos al tratar de resolver un problema determinado:
1. EL ANLISIS:
Es importantsimo hacer un buen anlisis de cual es especficamente el problema a resolver. Para esto es bueno ayudarse mediante grficos del problema o en caso de que no sea graficable, tambin se puede resolver el problema para casos especficos y luego generalizarlo para todos los posibles casos.
Tambin se deben observar cuales seran los casos especiales, es decir, aquellos casos que no cumplan la norma general, y tratar de evaluarlos de otra forma.
Este paso es el que ms tiempo debe llevarle a un buen programador, ya que de un buen anlisis depende los buenos resultados que arroje el algoritmo.
-
Prof. Claudia Checchia Pg 3
ALGORITMIA Y PROGRAMACIN
2. ESCRIBIR EL ALGORITMO:
Despus de haber analizado el problema en una forma abstracta, se debe llevar al papel, mediante instrucciones adecuadas al anlisis.
Si el problema fue bien analizado, este paso es muy rpido a comparacin del anterior.
3. PRUEBA DE ESCRITORIO:
Este paso es opcional y se aplica siguiendo paso por paso las instrucciones del algoritmo, anotando los diferentes valores que van tomando las variables, de forma que se pueda verificar si hay errores en alguna instruccin (debug).
Obviamente, ste mtodo es muy engorroso para algoritmos muy extensos, por lo que en estos casos no sera aplicable.
4. TIPOS DE DIAGRAMACIN ALGORTMICA En general, hay varias formas de escribir un algoritmo, pero explicaremos las dos ms conocidas: Diagramas de Flujo y Pseudocodificacin.
A) DIAGRAMA DE FLUJO - DFD Los Diagramas de Flujo constan de figuras que encierran las instrucciones y lneas que apuntan hacia la siguiente instruccin de modo que no se pierda el orden. Adems, las operaciones elementales como la entrada, el proceso y la salida de los datos se reconocen de las dems instrucciones porque no se encierran en rectngulos sino en otra clase de figuras, por lo que segn la figura en la que est encerrada la instruccin se reconocer su significado. Los diagramas de flujo son muy didcticos, por lo que son muy fciles de entender.
EJEMPLO: Hacer un programa que me muestre la suma de dos valores.
-
Prof. Claudia Checchia Pg 4
ALGORITMIA Y PROGRAMACIN
B) PSEUDOCODIGO En el pseudocdigo, cada instruccin es una lnea y las operaciones elementales se escriben de una forma tan clara que ser imposible que algn programador no las entienda. Aqu utilizaremos un pseudocdigo un poco personalizado, para hacer ms sencilla la explicacin.
Para realizar dichas instrucciones, se utilizan bsicamente Variables y Operadores.
EJEMPLO: Hacer un programa que me muestre la suma de dos valores.
INICIO
NUM1, NUM2, SUMA
Leer
-
Prof. Claudia Checchia Pg 5
ALGORITMIA Y PROGRAMACIN
A-23 : incorrecto lleva un smbolo menos. A_23 : correcto, ya que el carcter _ es el nico smbolo permitido para nombrar variables.
EJEMPLO ESPECFICOS: Si necesitamos una variable para guardar el sueldo de una persona, usaremos: SUELDO. En este otro caso guardaremos el nombre de un trabajador, usaremos: NOM_TRA.
Declarar una variable es definir que tipo de datos se van a almacenar en dicha variable.
Como se dijo anteriormente, una variable puede contener nmeros, letras, frases, etc., por lo que al principio del algoritmo se deben definir que clase de datos se van a almacenar y en que variables. Cualquiera que sea el tipo de la variable, ste debe ser consistente para el resto del algoritmo, es decir, si por ejemplo se declar que una variable va a contener datos numricos, en otra instruccin del algoritmo no se le podr asignar a dicha variable una frase o una letra.
En este texto se utilizarn para declarar variables las palabras clave NMERO, LETRA, ARREGLO, pero por el momento solo utilizaremos las primeras dos:
1. NMERO: La variable contendr datos numricos. 2. LETRA: La variable contendr solo caracteres.
Los valores para las variables de tipo LETRA se escribirn entre (Comillas).
IMPORTANTE: Cuando se hace uso de una variable, se debe ver si se le ha asignado un valor antes de usarla, ya que de lo contrario contiene lo que se denomina BASURA. (Por eso es muy recomendable inicializarlas con algn valor en el momento de la declaracin).
B) CONSTANTES DECLARACIN DE UNA CONSTANTE
Si se necesita incluir en el algoritmo alguna constante, se debe seguir la misma metodologa de la asignacin de variables, pero con la limitacin que el identificador debe estar escrito con letras maysculas y que la declaracin se haga a continuacin del inicio del algoritmo.
Las constantes tienen un valor fijo que se le da cuando se define la constante y que ya no puede ser modificado durante la ejecucin de cualquier programa.
EJEMPLO:
DNI
-
Prof. Claudia Checchia Pg 6
ALGORITMIA Y PROGRAMACIN
Recuerda las constantes tambin son variables (espacios reservados en memoria), la nica diferencia que el valor que contienen una constante no cambia nunca.
6. OPERADORES A) OPERADORES ARITMTICOS Nos permiten realizar operaciones numricas con nuestras variables
+ : Suma - : Resta * : Multiplicacin / : Divisin % : Devuelve el residuo de la divisin ^ : Potenciacin
Ejemplo: RES = NUM1 + NUM2
IMPORATANTISIMO: Las operaciones en un computador tienen un cierto orden de importancia, es decir, algunas se efectan primero que otras. Este orden en forma descendente es: Potenciacin, modulo, divisin, multiplicacin, suma y resta.
Si no se coloca ningn parntesis en la operacin aritmtica, el orden anterior es el que tiene la mquina para realizar las operaciones, pero al colocar algo entre parntesis, esa parte de operacin primar sobre las dems.
B) OPERADORES DE COMPARACIN Se utilizan principalmente en nuestras condiciones para comparar dos variables y verificar si cumple o no la propiedad del operador, este retornara un valor lgico como Verdadero o Falso.
= : Igualdad : Diferente < : Menor que : Mayor que >= : Mayor igual que
EJEMPLO:
Si NOTA >= 10.5 Entonces Mostrar APROBADO Sino
-
Prof. Claudia Checchia Pg 7
ALGORITMIA Y PROGRAMACIN
Mostrar DESAPROBADO Fin Si
Donde la operacin Lgica (NOTA >= 15) nos dar slo un resultado (VERDADERO o FALSO)
C) OPERADORES LGICOS Se usan en combinacin con los operadores de comparacin cuando la expresin de la condicin lo requiere.
And : Y Or : O Not : No
EJEMPLO: Si (EDAD > 13) AND (EDAD < 30) Entonces Mostrar JOVEN Sino Mostrar NOS ES JOVEN Fin Si
Estos son los operadores ms usados en el desarrollo de algoritmos.
7. DISEO DE FRMULAS Las operaciones en un computador tienen un cierto orden de importancia, es decir, algunas se efectan primero que otras.
ESTE ORDEN EN FORMA DESCENDENTE ES:
Divisin, multiplicacin, suma y resta.
Si no se coloca ningn parntesis en la operacin aritmtica, el orden anterior es el que tiene la mquina para realizar las operaciones, pero al colocar algo entre parntesis, esa parte de operacin primar sobre las dems.
1. 5 x 2 + 6 = Se desglosa de la siguiente manera: ( (5 * 2) + 6 )
2. 8 + 5 3 + 5 * 2 = Se desglosa de la siguiente manera: ( 8 + 5 ) - (3 + (5*2))
3. = Se desglosa de la siguiente manera: ( (5 * 2) / 2 )
-
Prof. Claudia Checchia Pg 8
ALGORITMIA Y PROGRAMACIN
4. = Se desglosa de la siguiente manera: (6/2) + (((5*2) + (3*2)) /2)
5. = Se desglosa de la siguiente manera: ((2 * 3)+(6/2) )+( (8+2)/2)
En lo sucesivo veremos ms ejemplos de cmo desglosar una frmula matemtica y ejecutarla en forma lineal de una manera entendible para los algoritmos.
8. CONTADORES
Un contador es aquel que permite incrementar el valor de una variable numrica, de uno en uno, de dos en dos, etc. (esto se aplica tambin de forma negativa)
EJEMPLO: CONT = CONT + 1
(Si esto se utiliza dentro de un bucle y/o estructura repetitiva, incrementar la variable CONT de uno en uno).
9. ACUMULADORES
Un acumulador es una variable que almacena o cuenta con cierta informacin y la incrementa dependiendo de las variables que contengan.
EJEMPLO: ACUM = ACUM + CONT
(Esto sumara el proceso de la variable ACUM + CONT y la guardar en la variable ACUM)
10. PROGRAMACIN MODULAR En algunas ocasiones se debe llamar un bloque de cdigo ms de una vez, una forma de hacerlo es colocar las instrucciones en subprogramas que se invocan cada vez que se necesiten.
Los procedimientos y funciones que se declaran son subprogramas que son llamados de un programa principal, un procedimiento o funcin puede contener otros procedimientos y funciones estos son escensialmente partes separadas de cdigo que ejecutan tareas pequeas de un programa GRANDE.
-
Prof. Claudia Checchia Pg 9
ALGORITMIA Y PROGRAMACIN
A) PROCEDIMIENTOS Un procedimiento es un sub algoritmo que realiza una tarea concreta. En lugar de reescribir el cdigo completo de esa tarea cada vez que se necesite, nicamente se hace una referencia al procedimiento.
EJEMPLO:
Elaborar un programa que calcule el mayor de 2 nmeros usando procedimientos.
ALGORITMO PRINCIPAL PROCEDIMIENTO CALCULA
B) FUNCIONES Las funciones son, al igual que los procedimientos, un conjunto de sentencias que se ejecutan constantemente, la diferencia entre stas y los procedimientos es que las funciones regresan un valor.
EJEMPLO:
Elaborar un programa que calcule el mayor de 2 nmeros usando funciones.
-
Prof. Claudia Checchia Pg 10
ALGORITMIA Y PROGRAMACIN
ALGORITMO PRINCIPAL FUNCIN CALCULA
11. ARRAYS
Una Array tambin es un espacio separado en memoria como una variable, la diferencia es que dicho arreglo o array est dividida en varios espacios siendo todos del mismo tamao y tipo de dato.
Veamos la grfica para que lo entiendas mejor.
Este es una Array con el Nombre de AR1 que contiene 4 espacios.
No se ha definido su tipo de dato, as que puede ser numrico o alfanumrico.
GUARDA DATA EN UN ARRAY:
Para guardar informacin en un array primero se coloca el nombre de este seguido de la posicin entre corchetes.
-
Prof. Claudia Checchia Pg 11
ALGORITMIA Y PROGRAMACIN
EJEMPLO:
Guardar el nmero 20 en las 3ra posicin.
SOLUCIN:
AR1[ 2 ] 20, Teniendo en cuenta que todo arreglo empieza desde 0.
LEER DATOS DE UN ARRAY:
Para leer los datos de un array y guardarlo en otra variable, por ejemplo llamada NUM hacemos lo siguiente.
SOLUCIN:
NUM AR1 [ 2 ], de esta manera estamos guardando el nmero 20 del array AR1 que esta en la posicin 3 en la variable NUM.
12. MATRICES
Una matriz es similar a un Array la diferencia es, que una matriz esta dividida en coordenadas X, Y.
Veamos la siguiente grfica.
MA1
-
Prof. Claudia Checchia Pg 12
ALGORITMIA Y PROGRAMACIN
GUARDA DATA EN UNA MATRIZ:
Para guardar datos en una matriz se le antepone el nombre y en este caso sus coordenadas en (x, y).
EJEMPLO: Guardar la palabra "HOLA" en la posicin (2,3).
SOLUCIN:
MA1[ 1, 2 ] "HOLA", Teniendo en cuenta que toda matriz empieza desde 0.
HOLA
MA1
LEER DATOS DE UNA MATRIZ:
Para leer o guardar los datos de una matriz en una variable es similar a un arreglo.
EJEMPLO: Guardar el Promedio de las Notas en una variable PROM.
NOTA1 NOTA2 NOTA3 NOTA4 12 13 14 13
MA2
SOLUCIN:
PROM ( MA2 [1,0] + MA2 [1,1] + MA2 [1,2] + MA2 [1,3] ) / 4
NOTA:
Los arreglos y matrices se utilizan mucho con estructuras repetitivas.
-
Prof. Claudia Checchia Pg 13
ALGORITMIA Y PROGRAMACIN
13. ESTRUCTURAS A) ESTRUCTURA SECUENCIAL La estructura secuencial es aquella en la que una accin (instruccin) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y as sucesivamente hasta el fin del proceso.
En Pseudocdigo es la siguiente: En diagrama DFD se realiza as:
Observe el siguiente problema de tipo cotidiano y sus respectivos algoritmos representados en Pseudocdigo y en diagramas de flujos:
Tengo un telfono y necesito llamar a alguien pero no s como hacerlo.
El anterior ejemplo es un sencillo algoritmo de un problema cotidiano dado como muestra de una estructura secuencial. Ahora veremos los componentes que pertenecen a ella:
-
Prof. Claudia Checchia Pg 14
ALGORITMIA Y PROGRAMACIN
ASIGNACIN La asignacin consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona ser reconocida con el nombre de la variable que recibe el valor. La asignacin se puede clasificar de la siguiente forma:
Simples: Pasa un valor constante a una variable (a 15) Contador: Consiste en usarla como un verificador del numero de veces que se realiza un proceso (a a + 1) Acumulador: Se opera como un sumador en un proceso (a a + b) De proceso: Donde puede recibir el resultado de una operacin matemtica que involucre muchas variables ( a c + b * ( 2/4 ) ).
En general el formato a utilizar es el siguiente: < Variable >
El smbolo debe leerse asigne.
Veamos algunos ejemplos donde se aplique todo lo que hemos visto hasta el momento sobre algoritmos:
EJEMPLO 1:
Escriba un algoritmo que pregunte por dos nmeros y muestre como resultado la suma de estos. Use Pseudocdigo y diagrama de flujos.
PSEUDOCDIGO
DFD
INICIO
NUM1, NUM2, SUMA
LEE NUM1 LEE NUM2 SUMA NUM1+NUM2 MOSTRAR SUMA
FIN
-
Prof. Claudia Checchia Pg 15
ALGORITMIA Y PROGRAMACIN
EJEMPLO 2:
Escriba un algoritmo que permita conocer el rea de un tringulo a partir de la base y la altura. Exprese el algoritmo usando Pseudocdigo y diagrama de flujos.
PSEUDOCDIGO
DFD
INICIO
BASE, ALTURA, AREA
LEE BASE LEE ALTURA AREA ( BASE * ALTURA ) MOSTRAR AREA
FIN
B) ESTRUCTURA CONDICIONAL Una instruccin condicional es aquella que nos permite "preguntar" sobre el entorno que nos rodea, pudiendo as actuar segn la respuesta obtenida. Estas respuestas siempre sern Verdadero o Falso, pudiendo as tomar, en un principio, dos caminos diferentes.
La estructura de decisin es simplemente una instruccin que evala una expresin lgica, que solo en el caso de resultar verdadera permite ejecutar una serie de instrucciones.
La palabra SI NO (ELSE) se coloca cuando se desea que otro grupo de instrucciones se ejecuten en caso de que la expresin lgica sea FALSA.
En palabras sencillas, esta estructura quiere decir:
PSEUDOCDIGO
DFD
SI < Expresin Lgica > ENTONCES < instrucciones > SI NO < instrucciones > FIN SI
-
Prof. Claudia Checchia Pg 16
ALGORITMIA Y PROGRAMACIN
Veamos algunos ejemplos tanto de Pseudocodigos como Diagramas de flujo.
EJEMPLO 1:
Elaborar un algoritmo que me muestre la palabra "ERES INTELIGENTE" si pulso la tecla Y.
PSEUDOCDIGO
DFD
EJEMPLO 2:
Elaborar un algoritmo que me muestre el mayor de dos nmeros ingresados por teclado.
PSEUDOCDIGO
DFD
-
Prof. Claudia Checchia Pg 17
ALGORITMIA Y PROGRAMACIN
EJEMPLO 3:
Elaborar un algoritmo que me calcule el promedio de tres notas y me muestre APROBADO si su promedio es mayor que 10.5 caso contrario me muestre DESAPROBADO.
PSEUDOCDIGO
DFD
-
Prof. Claudia Checchia Pg 18
ALGORITMIA Y PROGRAMACIN
C) ESTRUCTURAS REPETITIVAS Las estructuras repetitivas son aquellas que ingresan a un "loop" o ciclo repetitivo; repitiendo una o varias instrucciones, tantas veces lo hayamos indicado o definido en nuestra lgica.
Existen distintas estructuras, y el uso de ellas solo depende del programador, en nuestro caso solo explicaremos una de las mas comunes y utilizadas.
HACER DESDE - HASTA (PARA)
Esta estructura repite una o varias instrucciones desde un valor inicial hasta un valor final, sale del bucle o loop cuando la variable que guarda el valor inicial sea mayor al del valor final.
EJEMPLO 1:
Elaborar un programa que permita ingresar una letra y me muestre la misma letra repetida 20 veces
-
Prof. Claudia Checchia Pg 19
ALGORITMIA Y PROGRAMACIN
HACER MIENTRAS
Esta estructura ejecuta una o varias sentencias mientras la condicin sea verdadera, cuando la condicin da falso, se rompe el bucle o loop.
En esta estructura las instrucciones se repiten al menos una vez.
-
Prof. Claudia Checchia Pg 20
ALGORITMIA Y PROGRAMACIN
EJEMPLO 1:
Ingresar los nombres de N alumnos, el programa preguntara si desea continuar (S/N), si la respuesta fuese N(NO), terminara de hacer los ingresos, caso contrario seguir ingresando nombres.
D) ESTRUCTURA DE SELECCIN La estructura de seleccin nos permite elegir una ruta de entre varias rutas posibles, en base al valor de una variable que acta como selector.
En el momento en que se encuentre una coincidencia, se ejecuta la accin correspondiente a dicha constante y se abandona la estructura.
La condicional ELSE (Caso contrario) es un selector opcional que se activa como caso contrario, si uno de los trminos anteriores no se ha activado.
-
Prof. Claudia Checchia Pg 21
ALGORITMIA Y PROGRAMACIN
PSEUDOCDIGO
DFD
Seleccin
CASO 1 : Accin 1
CASO 2 : Accin 2
CASO 3 : Accin 3
CASO 4 : Accin 4
Si No
CASO n Accin n
Fin de Seleccin
Como siempre podremos entender mejor este tipo de estructura si desarrollamos algunos ejercicios.
EJEMPLO 1:
Dados como datos la categora y el sueldo de un trabajador, calcule el aumento correspondiente teniendo en cuenta la siguiente tabla. Imprimir la categora del trabajador y el nuevo sueldo segn su incremento.
Categora -------- Aumento 1 ----- - -- - -----15% 2 ------- -- ------10% 3 ------- -- ------08% 4 ------- -- ------07%
-
Prof. Claudia Checchia Pg 22
ALGORITMIA Y PROGRAMACIN
DFD
PSEUDOCDIGO INICIO
Leer CATEGORIA Leer SUELDO
SELECCIONAR CATEGORIA
Caso 1:SUELDO SUELDO+(SUELDO*0.15) Caso 2:SUELDO SUELDO+(SUELDO*0.10) Caso 3:SUELDO SUELDO+(SUELDO*0.08) Caso 4:SUELDO SUELDO+(SUELDO*0.07)
FIN DE ELECCIONAR
Mostrar CATEGORIA, SUELDO
FIN
-
Prof. Claudia Checchia Pg 23
ALGORITMIA Y PROGRAMACIN
EJEMPLO 2:
Elaborar un algoritmo que me muestre la edad de una persona: si es menor que 12 aos mostrar nio, si es menor que 19 mostrar joven, si es menor que 50 mostrar adulto, caso contrario mostrar anciano.
PSEUDOCDIGO DFD
INICIO
LEER EDAD
SELECCIONAR EDAD
Caso 00 .. 11:Mostrar NIO Caso 12 .. 18:Mostrar JOVEN Caso 19 .. 49:Mostrar ADULTO
SI NO
MOSTRAR ANCIANO
FIN DE SELECCIONAR
FIN
-
Prof. Claudia Checchia Pg 24
ALGORITMIA Y PROGRAMACIN
EJEMPLO FINAL
Elaborar un programa que pida el ingreso de un nmero de dos cifras y muestre como resultado la suma de sus elementos.
EJEMPLO:
NUM = 23 C = 2 R = 3 RESUL = 2 + 3 = 5
PSEUDOCDIGO INICIO
RESUL, NUM, C, R
LEER NUM
C = NUM / 10
R = NUM (10 * C) RESUL = C + R
MOSTRAR RESUL
FIN
DFD