ALGORITMOS

Embed Size (px)

DESCRIPTION

Programación

Citation preview

Algoritmos

IntroduccinLa computadora no slo es una mquina capaz de entregar un resultado, sino que adems podemos disear con ella soluciones a medida.A las soluciones creadas se les conoce como programa, luego stos son una serie de operaciones que realiza la computadora para llegar a un resultado.Ahora para que un programa llegue a una solucin final se requiere que esta serie de pasos sean organizados y represente el proceso que se describe. A este estudio se le denomina algortmica.Proceso de la informacinDATOS DE ENTRADAPROCESODATOS DE SALIDADispositivos de entradaDispositivos de salidaCPUUnidad ControlUnidad Arit-LogMemoriaAlgoritmoLa palabra deriva de la palabra rabe Alkhowarizmi, nombre de un matemtico y astrnomo rabe que escribi un tratado sobre manipulacin de nmeros y ecuaciones en el siglo IXSe define como la serie de pasos organizados que describe el proceso que se debe seguir para dar solucin a un problema especficoEstos pasos son acciones primitivas, es decir, el procesador es capaz de ejecutarlas sin informacin suplementaria ALGORITMODeterminsticoNo DeterminsticoPara los mismos datos de entrada se producen los mismos datos de salidaPara los mismos datos de entrada pueden producirse diferentes de salidaCualitativos y CuantitativosTodo algoritmo debe ser:Preciso. Indicando el orden de realizacin de cada uno de los pasos.Definido. Si se sigue el algoritmo varias veces proporcionndole los mismos datos, se deben obtener siempre los mismos resultados.Finito. Al seguir el algoritmo, ste debe terminar en algn momento, es decir, tener un nmero finito de pasos.

TCNICAS DE PROGRAMACIN ALGORITMICAPROGRAMACIN ESTRUCTURADALa programacin estructurada es un conjunto de tcnicas para desarrollar algoritmos fciles de escribir, verificar, leer y modificar. Utiliza: Diseo descendente. Consiste en disear los algoritmos en etapas, partiendo de los conceptos generales hacia los detalles. El diseo descendente se ver completado y ampliado con el modular. Recursos abstractos. En cada descomposicin de una accin compleja se supone que todas las partes resultantes estn ya resueltas, posponiendo su realizacin para el siguiente refinamiento. Estructuras bsicas. Los algoritmos debern ser escritos utilizando nicamente tres tipos de estructuras bsicas: secuenciales, condicionales y repetitivas, las cuales se describen ms adelante.PROGRAMACIN ESTRUCTURADAEs una tcnica de programacin que implica que: El programa completo tiene diseo modular.Los mdulos se disean siguiendo metodologa descendente (Top Down).Cada mdulo se codifica utilizando las 3 estructuras bsicas de control, lo que minimiza la complejidad de los programas y reduce errores.

Todo esto con el fin de reducir el tiempo requerido para escribir, verificar, depurar y mantener un programa.TCNICAS DE PROGRAMACIN ALGORITMICAPROGRAMACIN ESTRUCTURADALa programacin estructurada es un conjunto de tcnicas para desarrollar algoritmos fciles de escribir, verificar, leer y modificar. Utiliza: Diseo descendente. Consiste en disear los algoritmos en etapas, partiendo de los conceptos generales hacia los detalles. El diseo descendente se ver completado y ampliado con el modular. Recursos abstractos. En cada descomposicin de una accin compleja se supone que todas las partes resultantes estn ya resueltas, posponiendo su realizacin para el siguiente refinamiento. Estructuras bsicas. Los algoritmos debern ser escritos utilizando nicamente tres tipos de estructuras bsicas: secuenciales, condicionales y repetitivas, las cuales se describen ms adelante.Condiciones para la Programacin EstructuradaPara que la programacin sea estructurada, los programas han de ser propios.Un programa se define como propio si cumple las siguientes caractersticas: Tiene un solo punto de entrada y uno de salida. Toda accin del algoritmo es accesible, es decir, existe al menos un camino que va desde el inicio hasta el fin del algoritmo, se puede seguir y pasa a travs de dicha accin. No posee lazos o bucles infinitos.EjemploCalcular la media aritmtica de dos nmeros con una calculadora1.Pulsar tecla AC2.Teclear el primer nmero3.Pulsar la tecla + 4.Teclear el segundo nmero5. Pulsar la tecla + 6.Pulsar la tecla /7. Teclear el nmero 28.Pulsar la tecla = Determinacin de las primitivas de las que partimosOperaciones aritmticas simplesLenguaje simblico a utilizar Lenguaje de representacin de expresiones matemticasRepresentacin de los datosCadena de caracteres para las incgnitas. Nmeros Reales Establecer datos de entradaRadio de la circunferenciaEstablecer datos de salidaLongitud de la circunferencia. rea del crculoEstablecer las relaciones entre los datos de entrada y salidaLongitud = 2*3.1416*radiorea = 3.1416*radio*radioProblema: Calcular la longitud de una circunferencia y el rea del crculo que limita dada la longitud del radioQue condiciones debe cumplir?Tener un punto particular de inicioDebe soportar la mayora de las variantes que puedan presentarse en la definicin del problemaEstar bien definido. Todas las ejecuciones con los mismos datos de entrada deben devolver los mismos datos de salidaSer finito. El algoritmo debe acabar tras un n finito de pasos (tamao y tiempo de ejecucin)Diferencia entre algoritmo y programaLos algoritmos no son directamente interpretados por la computadora y deben ser traducidos a un lenguaje de programacin concretoCiclo de vida de un softwareDefinicinDesarrolloDiseoCodificacinPruebaMantenimientoModificaciones y adaptacionesErroresFallos de definicinElementos de un algoritmoDatos, tipos de datos y operaciones primitivas Variables, constantes y expresionesOperaciones de asignacinOperaciones de entrada y salidaEstructuras de control

Datos: Informacin con la cual trabaja la computadoraTipos de datos:Se clasifican atendiendo a:PropiedadesOperaciones que se pueden realizarDatos Simples:Numrico (Real o entero)Carcter (Letras, smbolos, nmeros)Lgico (Verdadero o Falso)Datos compuestosFormados por agrupaciones de otros datos (arreglos, registros, archivos, apuntadores)Operaciones primitivas:Se realizan directamente en un lenguaje de programacin sin indicar como hay que llevarla a caboNumrico: Suma, resta, divisin, multiplicacinCarcter y numrico: , = =, < =, >=, !=LgicoABA y BA o BNo BVVVVFVFFVVFVFVFFFFFVVariable:Entidad que posee un valor y es conocido en un programa o algoritmo por su nombre (identificador)El valor de una variable puede cambiar a lo largo del algoritmoTodas las variables son de un determinado tipo y slo pueden tomar valores de ese tipoSe clasifican por:ContenidoNumricasLgicasAlfanumricas (String)UsoDe trabajoContadoresAcumuladoresConstante:Entidad que posee un valor y es conocido por el algoritmo por su nombreEl valor de una constante no puede cambiar a lo largo del algoritmoSe debe inicializar, es decir, se asigna a un identificador su primer y nico valorTodas las constante de un determinado tipo slo pueden inicializarse con valores de ese tipo

Valor constante:Son valores que aparecen explcitamente en un algoritmo y no tiene identificador asignado

Identificador:Representan los datos de un programa. Un identificador es una secuencia de caracteres que sirve para identificar una posicin en la memoria de la computadora, que nos permite accesar a su contenidoReglasDebe comenzar con una letra y no contener espacios en blancoLetras, dgitos y caracteres como la subraya (_) estn permitidos despus del primer carcterLa longitud puede ser hasta 8 caracteresEjemplo: Num_hrsCalif3Expresiones:Son combinaciones de constantes, variables, smbolos de operacin, parntesis y nombre de funciones especialesCada expresin toma un valor determinado de acuerdo a las variables y constantes implicadas y la ejecucin de las operaciones indicadasConsta de operadores y operandosOperaciones de asignacin:Corresponde a darle a una variable un determinado valorA una variable se le puede asignarun valor constanteel valor de otra variableel valor de una constanteel resultado de evaluar una expresinLos valores asignados deben ser del mismo tipo que la variableEs una operacin destructiva, el valor anterior se pierdeOperaciones de entrada y salida:Se emplean para intercambiar informacin con un medio externo

Estructuras de control:SecuencialUna accin sigue a la otra sin romper la secuenciaCondicionalSe realiza una accin u otra dependiendo del resultado de la evaluacin de una expresin lgicaPueden ser simples ( Si entonces), dobles (Si entonces si no), mltiples (Si entonces si no varias alternativas)Repetitiva o iterativaSe repite un conjunto de acciones 1 o ms vecesHacer-ParaHacer MientrasRepetir HastaRepresentacin de un algoritmoUn algoritmo puede ser escrito en lenguaje natural, pero esta descripcin puede ser ambigua, por lo que se utilizan diferentes mtodos de representacin, que permiten evitar dicha ambigedad y permitir al mismo tiempo que sea fcilmente codificable. Los mtodos ms usuales para la representacin de algoritmos son:Descripcin narradaPseudocdigoDiagrama de flujoDESCRIPCIN NARRADAEs la forma ms sencilla de describir o expresar un algoritmo. Consiste en dar un relato de la solucin en lenguaje natural.Por ejemplo: Algoritmo en descripcin narrada para la suma de 2 nmeros.1. Obtener los nmeros a sumar2. Sumar los nmeros3. Anotar el resultadoEl uso del lenguaje natural provoca frecuentemente que la descripcin sea imprecisa y poco confiable, por lo que este tipo de representacin no es recomendable.

Ejemplos de algoritmosDisear un algoritmo para cambiar una llanta a un carro.

Inicio.Traer gata.Aflojar tornillos de las llantas.Levantar el carro con la gataSacar los tornillos de las llantas.Quitar la llanta.Poner la llanta de repuesto.Poner los tornillos.Bajar la gataApretar los tornillos.FinEjemplos de algoritmosUn cliente ejecuta un pedido a una fbrica. La fbrica examina en su banco de datos la ficha del cliente, si el cliente es solvente entonces la empresa acepta el pedido, en caso contrario rechazar el pedido.Pasos del algoritmo :InicioLeer el pedidoExaminar ficha del clienteSi el cliente es solvente aceptar pedido, en caso contrario rechazar pedidoFinEjemplo de algoritmo ms especficoDeterminar el mayor de tres nmeros enteros.Pasos del algoritmo :1.- Comparar el primero y el segundo entero, deduciendo cul es el mayor.2.- Comparar el mayor anterior con el tercero y deducir cul es el mayor. Este ser el resultado.

PSEUDOCDIGOEl pseudocdigo en un lenguaje de especificacin de algoritmos que utiliza palabras reservadas y exige la tabulacin, o sea, sangra en el margen izquierdo, de algunas lneas.Se concibi para superar las dos principales desventajas de los diagramas de flujo: Lento de crear y difcil de modificar sin un nuevo redibujo. Es una herramienta muy efectiva para el seguimiento de la lgica de un algoritmo y para transformar con facilidad los algoritmos a programas.

PseudocdigoMezcla de lenguaje de programacin y un idioma que se empleaEl pseudocdigo se puede definir como un lenguaje de especificaciones de algoritmosEs la representacin narrativa de los pasos que debe seguir un algoritmo para dar una solucin a un problemaEl pseudocdigo utiliza palabras que indican el proceso a realizarEs lejos el mtodo ms empleado ya que permite en forma fcil representar las operaciones repetitivas complejas y pasar a un lenguaje de programacinEjemplo de pseudocdigoElabore un algoritmo representado en pseudocdigo que sume dos nmeros

InicioLeer num1, num2,num3Si (num1>num2) and (num1 >num3) entoncesMayor = num1Si noSi ((num2>num1) and (num2 >num3) entoncesMayor = num2Si noMayor = num3Fin-siFin-siImprimir MayorFin

Pseudocdigo para calcular el mayor de tres nmerosDIAGRAMA DE FLUJOEs la representacin grfica de un algoritmo. Utiliza smbolos normalizados, con los pasos del algoritmo escritos en el smbolo adecuado y los smbolos unidos por flechas, denominadas lneas de flujo, que indican el orden en que los pasos deben ser ejecutados.

Diagrama de FlujoEs la representacin grfica de un algoritmoEsta representacin se da cuando varios smbolos se relacionan entre s mediante lneas que indican el orden en que se deben ejecutar los procesosLos smbolos han sido normalizados por la ANSIRecomendacionesUsar lneas de flujo horizontales y/o verticalesEvitar cruce de lneas utilizando conectoresUsar conectores slo cuando sea necesarioSe trazan los smbolos de manera de leer de arriba abajo y de izquierda a derechaEl texto escrito dentro del smbolo debe ser clara Inicio y final del diagrama

Indica la entrada y salida de datos

Smbolo de proceso y/o ejecucin de una operacin

Smbolo de decisin

Conector dentro de la pginaLOS SMBOLOS PRINCIPALES SON:Elabore un algoritmo representado en diagrama de flujo que sume dos nmeros