Gu A de Algoritmos
Gu A de Algoritmos
Gu A de Algoritmos
Especialidad Profesor
Nombre del Curso : Taller de Desarrollo I (Algoritmos y Programacin) : Computacin e Informtica : Ing. Roberto Gonzales. http://www.Algoritmos.tk
CONTENIDO
I UNIDAD PRIMERA SEMANA Descripcin general del curso. Qu es algoritmia?, Cundo lo uso? Definir pasos para la solucin de un problema. Algoritmo Vs Programa. Definir Variables Constantes Definir Operadores: aritmticos, comparacin, lgicos. Diagramacin DFD Estructura Secuencial SEGUNDA SEMANA Pseudocdigo Contadores y acumuladores Depuracin de algoritmos (Debuging) Uso del Lenguaje de Programacin. TERCERA SEMANA Estructura condicional Simple. Uso del Lenguaje de Programacin. CUARTA SEMANA Estructura condicional Anidada. Uso del Lenguaje de Programacin. QUINTA SEMANA Taller de Ejercicios Evaluacin Terica Evaluacin Prctica NOVENA SEMANA Taller de Ejercicios DCIMA SEMANA EXAMEN PARCIAL III UNIDAD DECIMOPRIMERA SEMANA Matrices Unidimensionales - ARRAYS Uso del Lenguaje de Programacin. DECIMOSEGUNDA SEMANA Matrices Bidimensionales - MATRICES Uso del Lenguaje de Programacin. DECIMOTERCERA SEMANA Ordenamientos de Datos Uso del Lenguaje de Programacin. DECIMOCUARTA SEMANA Bsqueda de Datos Uso del Lenguaje de Programacin. DECIMOQUINTA SEMANA Programacin Modular Creacin de Procedimientos. Evaluacin IV UNIDAD DECIMOSEXTA SEMANA Procedimientos que retornando valores (funciones) Uso del Lenguaje de Programacin. DECIMOSTIMA SEMANA Use de funciones : Matemticas, Cadena y Fecha Uso del Lenguaje de Programacin. DECIMOOCTAVA SEMANA Creacin de sistema de ventas con matrices. DECIMONOVENA SEMANA Revisin de proyectos VIGSIMA SEMANA EXAMEN FINAL
http://www.Algoritmos.tk 1
II UNIDAD SEXTA SEMANA Uso de estructura de Seleccin. Uso del Lenguaje de Programacin. STIMA SEMANA Uso de estructura Repetitiva o bucle (Para) Uso del Lenguaje de Programacin. OCTAVA SEMANA Uso de estructura Repetitiva o bucle (Mientras) Uso del Lenguaje de Programacin.
Ing. Roberto Gonzles Esp. Sistemas
Algoritmos
Especialidad Ciclo :I
Nombre del Curso : Taller de Desarrollo I (Visual Basic .NET) : Computacin e Informtica
CONTENIDO
I UNIDAD PRIMERA SEMANA Definir el Lenguaje de Programacin a usar. SEGUNDA SEMANA Creacin de proyecto y modulo de programacin. Cuerpo principal del Programa (Module) Uso de libreras principales (Imports System.Console) Declaracin de variables, mbitos y tipos de datos en Visual Basic .NET Compilar y organizar de mdulos Grabar y salir del Sistema. TERCERA SEMANA Estructura condicional Simple (If Else End If) Definir Operadores: lgicos (And, Not, Or) CUARTA SEMANA Estructura condicional Anidada (If ElseIf End If) QUINTA SEMANA Taller de Ejercicios Evaluacin Terica Evaluacin Prctica
NOVENA SEMANA Taller de Ejercicios DCIMA SEMANA EXAMEN PARCIAL III UNIDAD DECIMOPRIMERA SEMANA Matrices Unidimensionales - ARRAYS DECIMOSEGUNDA SEMANA Matrices Bidimensionales - MATRICES DECIMOTERCERA SEMANA Ordenamientos de Datos (ORDER) DECIMOCUARTA SEMANA Bsqueda de Datos (SORT) DECIMOQUINTA SEMANA Programacin Modular (Sub End Sub) Evaluacin
IV UNIDAD DECIMOSEXTA SEMANA Procedimientos retornando valores (Funtions) DECIMOSTIMA SEMANA Use de funciones : Matemticas, cadena y fecha DECIMOOCTAVA SEMANA Creacin de sistema de ventas con matrices. DECIMONOVENA SEMANA Revisin de proyectos VIGSIMA SEMANA EXAMEN FINAL
II UNIDAD SEXTA SEMANA Uso de estructura de Seleccin (Select Case End Select) STIMA SEMANA Uso de estructura Repetitiva o bucle (For Next) OCTAVA SEMANA Uso de Interruptores Uso de estructura Repetitiva o bucle (While End While )
Algoritmos
Diramos que un algoritmo es una serie de instrucciones que colocadas en un orden lgico conducen a la solucin de un problema. Un algoritmo es la fase preliminar para codificar un programa en un lenguaje de programacin, por lo que la forma de escribirlo puede ser muy personal, segn el programador, pero en general se debe hacer en una forma tan clara que cualquier otro programador pueda coger dicho algoritmo, entenderlo fcilmente y pueda traducir a su lenguaje de programacin favorito. El programador es antes 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. PASOS PARA LA SOLUCIN DE UN PROBLEMA Primero analiza el problema, dale una solucin lgica o matemtica, luego identifica sus procesos ya sea de entrada, proceso, salida y luego plasma esos procesos en un algoritmo. Por ejemplo: Si te dijeran, elabora un programa que halle la suma de dos valores enteros, debers hacerte preguntas como estas: Qu datos voy a ingresar?, Qu dato ser mi resultado? y Cmo consigo ese resultado? La respuesta sera: que debers ingresar dos valores numricos enteros, que el resultado sera la suma de esos dos valores y el proceso para conseguirlo sera la suma del numero 1 ms el numero 2, luego tendras que plasmarlo en un algoritmo. DEPURACIN - EJECUTAR EN PAPEL Recuera la programacin es un trabajo de oficina, primero piensa luego programa, por ello los algoritmos se desarrollan primero en papel, prueba tu algoritmo con valores distintos dnde siempre te retorne el resultado deseado, una vez concluida esta fase recin ah se sugiere llevarlo a la computadora en el lenguaje de programacin que usted desee. Si tu algoritmo funciona te garantizo el 100% de xito, en cualquier lenguaje de programacin que uses. COMO EMPEZAR? Aunque no hay un mtodo general para disear algoritmos, te puedo decir que lo ms adecuado es seguir los siguientes pasos para 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 secuencia de pasos que indiquen los procesos para solucionar un problema, 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.
2. ESCRIBIR EL ALGORITMO:
Despus de haber analizado el problema en una forma abstracta, se debe llevar al papel, mediante instrucciones y tcnicas adecuadas al anlisis. Si el problema fue bien analizado, este paso es muy rpido y sencillo.
3. PRUEBA DE ESCRITORIO:
Este paso es primordial, 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. VARIABLES
http://www.Algoritmos.tk
Algoritmos
En general, las variables son espacios que se reservan o se separan en la memoria para almacenar cualquier tipo de informacin (nmeros, letras, frases, etc.), las variables pueden tener cualquier nombre pero preferiblemente deben ser mnemotcnico, es decir, que tenga relacin con l los datos que se almacenarn en la variable. AQU ALGUNAS REGLAS: 1. 2. 3. 4. No pueden comenzar con nmeros. No pueden contener smbolos u operadores en ninguna posicin del nombre, excepto el carcter _. No pueden contener espacios. Se sugiere que el nombre de las variables no sean mayor de 8 caracteres.
COMO EJEMPLO AQU HAY VARIOS NOMBRES PARA VARIABLES: A : Es un nombre correcto, aunque posiblemente muy poco mnemotcnico. A23: correcto. OJO5MALO: correcto. HOLA#: incorrecto, ya que tiene un smbolo dentro de su nombre. A 23 : incorrecto, porque hay un espacio dentro del nombre. 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, su nombre sera: SUELDO. En este otro caso guardaremos el nombre de un trabajador, su nombre sera: 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 DATO BASURA. (Por eso es muy recomendable inicializarlas con algn valor en el momento de la declaracin). CONSTANTES
Las constantes tienen un valor fijo (su contenido nunca cambia), se le da cuando se define la constante y que ya no puede ser modificado durante la ejecucin del programa. 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.
Algoritmos
Nos permiten realizar operaciones aritmticas con nuestras variables. + * / % ^ : : : : : : Suma Resta Multiplicacin Divisin Devuelve el residuo de la divisin Potenciacin
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 el ordenador para realizar las operaciones, pero al colocar algo entre parntesis, esa parte de operacin primar sobre las dems. 1. 2. 5 x 2 + 6 = Se desglosa de la siguiente manera: ( (5 * 2) + 6 ) 8 + 5 3 + 5 * 2 = Se desglosa de la siguiente manera: ( 8 + 5 ) - (3 + (5 * 2) )
3.
4.
5.
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 Ing. Roberto Gonzles Esp. Sistemas http://www.Algoritmos.tk 5
Algoritmos
Donde la operacin Lgica (NOTA >= 10.5), nos dar slo un resultado (VERDADERO o FALSO); si es verdadero mostrar APROBADO, caso contrario DESAPROBADO.
OPERADORES LGICO Se usan en combinacin con los operadores de comparacin cuando la expresin de la condicin lo requiere. AND : Y OR : O NOT : No
En general, hay varias formas de escribir un algoritmo, pero explicaremos dos de las tcnicas ms conocidas: Diagramas de Flujo (DFD) y Pseudocodificacin.
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 reconocern su significado. Los diagramas de flujo son muy didcticos, por lo que son muy fciles de entender.
SIMBOLOGAS
SMBOLOS
DESCRIPCIN
http://www.Algoritmos.tk
Algoritmos
INICIO
PROCESO
TECLADO
PANTALLA
IMPRESORA
DECISION
REPETICION
Conector indica que finaliza parte de un programa para continuar su proceso en otra pgina. Se une con el conector anterior para indican la continuacin del programa.
QUIEBRE
http://www.Algoritmos.tk
Algoritmos
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. NOTA: Ten en cuenta la orientacin de las flechas. - - >: Indica la salida de los datos. < - -: Indica la entrada o asignacin de datos en una variable.
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 Los contadores son usados dentro de estructuras repetitivas, las cuales permiten que la variable incremente su valor de uno en uno segn se le halla declarado el indicador numrico.
ACUMULADORES
Es una variable que incrementa su valor de forma acumulativa ya que su forma de incremento no tiene un orden fijo, sino que depende del valor de la nueva variable. EJEMPLO: ACUM = ACUM + CONT (Esto sumara el proceso de la variable ACUM + CONT y la guardara en la variable ACUM) 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. Ing. Roberto Gonzles Esp. Sistemas http://www.Algoritmos.tk 8
Algoritmos
EN PSEUDOCODIGO
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. PSEUDOCODIGO INICIO Levante la bocina Espere tono Marque el nmero Espere que contesten Hable con la otra persona Cuelgue la bocina FIN EN DIAGRAMA DE FLUJO - DFD
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: 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: Se usa 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 > La flecha <valor o expresin > debe leerse asigne.
Veamos algunos ejemplos donde se aplique todo lo que hemos visto hasta el momento sobre algoritmos de estructura secuencial. Ing. Roberto Gonzles Esp. Sistemas http://www.Algoritmos.tk 9
Algoritmos
EJEMPLO 1:
Escriba un algoritmo que lea por teclado dos nmeros y muestre como resultado la suma de estos. Use Pseudocdigo y Diagrama de Flujo.
PSEUDOCDIGO INICIO NUM1, NUM2, SUMA LEE NUM1 LEE NUM2 SUMA NUM1+NUM2 MOSTRAR SUMA FIN
DFD
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
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 Verdaderas o Falsas, pudiendo as tomar, en un principio, dos caminos diferentes. La estructura de decisin es simplemente una instruccin que evala una expresin lgica, que 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.
http://www.Algoritmos.tk
10
Algoritmos
La pregunta lgica la formula el programador para indicar los caminos posibles que tomaran el algoritmo o programa dependiendo del resultado, recuerda que su resultado es booleano. Booleano, es un tipo de dato que retorna dos valores: TRUE (verdadero), FALSE (Falso), a esto tambin se le asemeja como interruptores (1 0). En una forma sencilla, si el resultado de la expresin lgica es verdadera ejecuta un grupo de instrucciones sino o caso contrario sea falsa ejecuta otro grupo de instrucciones.
PSEUDOCDIGO SI <Expresin Lgica>ENTONCES < instrucciones > SI NO < instrucciones > FIN SI
DFD
Decision
SI
NO
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
INICIO
DFD
INICIO
VARIABLE TECLA LEE TECLA
TECLA
TECLA
TECLA = "Y" NO
SI
FIN
EJEMPLO 2: Elaborar un algoritmo que muestre el mayor de dos nmeros ingresados por teclado.
PSEUDOCDIGO INICIO
VARIABLE NUM1, NUM2 LEE NUM1, NUM2
Ing. Roberto Gonzles Esp. Sistemas
DFD
http://www.Algoritmos.tk
11
Algoritmos
NUM1, NUM2
SI NO
MOSTRAR EL MAYOR ES : NUM2
SI
FIN SI FIN
FIN
EJEMPLO 3: Elaborar un algoritmo que calcule el promedio de tres notas y que muestre APROBADO si su promedio es mayor que 10.5 de lo contrario que muestre DESAPROBADO.
PSEUDOCDIGO INICIO
VARIABLE N1, N2, N3, PROM LEE N1, N2, N3
INICIO
DFD
PROM = (N1+N2+N3)/3 SI PROM > 10.5 ENTONCES MOSTRAR APROBADO SI NO MOSTRAR APROBADO FIN SI FIN
ESTRUCTURA DE SELECCIN
SI
FIN
La estructura de seleccin nos permite elegir un caso de entre varios casos posibles, en base al valor de una variable que acta como selector variable lgica. En el momento en que se encuentre una coincidencia, se ejecuta la accin caso correspondiente a dicha constante y se abandona la estructura. La condicional Si No (caso contrario) es un selector opcional que se activa como caso contrario, si uno de los trminos anteriores no se ha activado. Ing. Roberto Gonzles Esp. Sistemas http://www.Algoritmos.tk 12
Algoritmos
PSEUDOCDIGO Seleccin <Var. Lg.> CASO 1 : Accin 1 CASO 2 : Accin 2 CASO 3 : Accin 3 CASO 4 : Accin 4
CASO 1 CASO 1
ACCIN 2
ACCIN 3
Si No
CASO 1 ACCIN 4
Como siempre podremos entender mejor este tipo de estructura si desarrollamos un ejercicio. EJEMPLO 1: Elaborar un algoritmo que muestre las etapas de una persona: si es menor que 12 aos mostrar nio, si esta entre 12 y 18 mostrar joven, si es mayor que 18 y menor que 50 mostrar adulto, caso contrario mostrar anciano. Nuestro concepto de ancianidad es meramente por concepto de lgica.
PSEUDOCDIGO
INICIO
DFD
INICIO
VARIABLE EDAD
EDAD EDAD
LEE EDAD
EDAD 0 .. 11 NIO
SELECCIONAR EDAD Caso 00 .. 11: MOSTRAR NIO Caso 12 .. 18: MOSTRAR JOVEN Caso 19 .. 49: MOSTRAR ADULTO SI NO
19 .. 49 ADULTO
12 .. 18
JOVEN
MOSTRAR ANCIANO
ANCIANO
FIN
ESTRUCTURAS REPETITIVAS
Las estructuras repetitivas son aquellas que ingresan a un " loop" ciclo repetitivo; repitiendo una o varias instrucciones, tantas veces lo hayamos indicado definido en nuestra lgica.
http://www.Algoritmos.tk
13
Algoritmos
Existen distintas estructuras, y el uso de ellas solo depende del programador, en nuestro caso solo explicaremos dos de las mas comunes y utilizadas. HACER DESDE - HASTA: PARA - FOR 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.
PSEUDOCODIGO
DFD
CONT = 1 TO n Instruccin 1 Instruccin 2 Instruccin 3
EJEMPLO 1: Elaborar un programa que permita ingresar una letra y muestre la misma letra repetida 20 veces.
PSEUDOCODIGO INICIO
VARIABLES LETRA, CONT LEE LETRA
DFD
INICIO LETRA, CONT LETRA CONT = 1 TO 20 LETRA
FIN
HACER MIENTRAS WHILE 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. Ing. Roberto Gonzles Esp. Sistemas http://www.Algoritmos.tk 14
Algoritmos
PSEUDOCODIGO
DFD
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.
PSEUDOCODIGO
DFD
INICIO
INICIO
VARIABLE NOMBRE, INTERRUPTOR = "S"
HACER
LEE NOMBRE MOSTRAR "Desea Continuar(S/N)?" LEE INTERRUPTOR
ARRAYS
Una Array tambin es un espacio separado en memoria como una variable, la diferencia es que dicho arreglo o array esta dividida en varias filas siendo todas sus celdas del mismo tamao y tipo de dato. Veamos la grfica para que lo entiendas mejor. Ing. Roberto Gonzles Esp. Sistemas http://www.Algoritmos.tk 15
Algoritmos
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.
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:
GUARDA DATA EN UN ARRAY: Para guardar informacin en un array primero se coloca el nombre de este seguido de la posicin entre corchetes. EJEMPLO: Guardar el nmero 20 en las 3ra posicin. SOLUCIN: AR1[2]=20, teniendo en cuenta que todo arreglo empieza desde 0.
NUM=AR1[2], de esta manera estamos guardando el nmero 20 del array AR1 que esta en la posicin 3 en la variable NUM.
MATRICES
Una matriz es similar a un array la diferencia es, que una matriz esta dividida en coordenadas X, Y. Veamos la siguiente grfica.
SOLUCIN: MA1[ 1, 2 ] = "HOLA", Teniendo en cuenta que toda matriz empieza desde 0 (0, 0). LEER DATOS DE UNA MATRIZ:
MA1
Para leer o guardar los datos de una matriz en una variable es similar a un arreglo. EJEMPLO:
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).
Guardar el Promedio de las Notas almacenadas en una matriz en una variable PROM.
14
15
15
14
MA2
SOLUCIN:
HOLA
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.
MA1
ORDENAMIENTO El ordenar un grupo de datos que contiene un array o matriz significa mover los datos para que queden en una secuencial tal que represente un orden, el cual puede ser numrico, alfabtico o alfanumrico ya sea de forma ascendente o descendente. TIPOS DE ORDENAMIENTO
http://www.Algoritmos.tk
16
Algoritmos
-
Ordenamiento Externo: No cabe en la memoria principal y es necesario ocupar memoria secundaria, esto permite transferir bloques de informacin a memoria principal en dnde se ordena el bloque y este es regresado, ya ordenado a memoria secundaria.
TECNICAS DE ORDENAMIENTO Existen varias tcnicas de ordenamiento, pero en esta gua usaremos la tcnica mas comn y sencilla Tcnica Ordenamiento Burbuja.
ORDENAMIENTO BURBUJA Recorre el arreglo intercambiando los elementos adyacentes que estn desordenados tantas veces sea necesario hasta que todo este ordenado.
I = 0 TO 7
Dnde: Dnde:
a(): a(): array array que que contiene contiene nmeros nmeros enteros enteros desordenados desordenados y y7 7 es es el el nmero nmero mximo mximo del del array. array.
BUSQUEDA La bsqueda de un elemento dentro de un array es una de las operaciones ms importantes en el procesamiento de la informacin, y permite la recuperacin de datos previamente almacenados. El tipo de bsqueda se puede clasificar como interna o externa, segn el lugar en el que est almacenada la informacin (en memoria o en dispositivos externos). Todos los algoritmos de bsqueda tienen dos finalidades: - Determinar si el elemento buscado se encuentra en el conjunto en el que se busca.
http://www.Algoritmos.tk
17
Algoritmos
- Si el elemento est en el conjunto, hallar la posicin en la que se encuentra. En este apartado nos centramos en la bsqueda interna. Como principales algoritmos de bsqueda en arrays tenemos la bsqueda secuencial, la binaria y la bsqueda utilizando tablas de hash.
BSQUEDA SECUENCIAL Consiste en recorrer y examinar cada uno de los elementos del array hasta encontrar el elemento buscado, recorre hasta mirar todos los elementos del array.
ELEMENTO X = 0 TO 7
Dnde: Dnde: ELEMENTO ELEMENTO es es un un dato dato ingresado ingresado por por teclado teclado el el cual cual debe debe buscarse en buscarse en el el array array previamente previamente ordenado. ordenado.
a ( X ) = ELEMENTO NO
YES
BSQUEDA BINARIA O DICOTMICA Para utilizar este algoritmo, el array debe estar ordenado. La bsqueda binaria consiste en dividir el array por su elemento medio en dos subarrays ms pequeos, y comparar el elemento con el del centro. Si coinciden, la bsqueda se termina. Si el elemento es menor, debe estar (si est) en el primer subarray, y si es mayor est en el segundo. Por ejemplo, para buscar el elemento 3 en el array {1,2,3,4,5,6,7,8,9} se realizaran los siguientes pasos: Se toma el elemento central y se divide el array en dos: {1,2,3,4}-5-{6,7,8,9} Como el elemento buscado (3) es menor que el central (5), debe estar en el primer subarray: {1,2,3,4} Se vuelve a dividir el array en dos: {1}-2-{3,4} Como el elemento buscado es mayor que el central, debe estar en el segundo subarray: {3,4} Se vuelve a dividir en dos: {}-3-{4} Como el elemento buscado coincide con el central, lo hemos encontrado.
En algunas ocasiones se debe llamar un bloque de cdigo ms de una vez, una forma de hacerlo es colocar las instrucciones en sub programas que se invocan cada vez que se necesiten. Los procedimientos y funciones que se declaran son sub programas que son llamados de un programa principal, un procedimiento o funcin puede contener otros procedimientos y funciones estos son esencialmente partes separadas de cdigo que ejecutan tareas pequeas de un programa GRANDE. PROCEDIMIENTOS Ing. Roberto Gonzles Esp. Sistemas http://www.Algoritmos.tk 18
Algoritmos
Un procedimiento es un sub algoritmo que realiza una tarea especfica cada vez que se le llame. En lugar de reescribir el cdigo completo muchas veces dentro de un programa principal, slo se codifica una sola vez declarado como procedimiento y es llamado tantas veces se requiera en el programa principal nicamente por el nombre que hace una referencia al procedimiento. EJEMPLO: Elaborar un programa que calcule el mayor de 2 nmeros usando procedimientos.
ALGORITMO PRINCIPAL
INICIO NUM1, NUM2, MAY
PROCEDIMIENTO CALCULA
CALCULA
MAY = NUM1
NUM1, NUM2
MAY = NUM2
CALCULA
MAY
FIN
FIN
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.
ALGORITMO PRINCIPAL
INICIO
FUNCIN CALCULA
CALCULA A, B
A > B
MAY = A
NUM1, NUM2
MAY = B
CALCULA ( NUM1, NUM2 )
MAY
FIN
http://www.Algoritmos.tk
19