SlideShare une entreprise Scribd logo
1  sur  13
Algoritmos<br />Pasos <br />Tipos <br />Análisis del problema <br />Diseño del algoritmo. <br />Mandatos e instrucciones <br />Variables vectores y matrices <br />Documentación <br />El programador diseña un programa, para resolver un problema particular. <br />Diseñar es un proceso creativo. <br />El proceso de diseñode un programa consta de los siguientes pasos o etapas: <br />Pasos:<br />PasosEtapaDescripción1Análisis del problema Conducen al diseño detallado por medio un código escrito en forma de un algoritmo2Diseño de algoritmo3CodificaciónSe implementa el algoritmo en un código escrito en un lenguaje de programación. Refleja las ideas desarrolladas en las etapas de análisis y diseño4Compilación y ejecuciónTraduce el programa fuente a programa en código de maquina y lo ejecuta. 5VerificaciónBusca errores en las etapas anteriores y los elimina.6Depuración7DocumentaciónSon comentarios, etiquetas de texto, que facilitan la comprensión del programa<br /> <br />Concepto  Algoritmo: es un métodopara resolver un problema mediante una serie de pasos definidos, precisos y finitos. Preciso: implica el orden de realización de cada uno de los pasos Definido: si se sigue dos veces, se obtiene el mismo resultado.Finito: Tiene un numero determinado de pasos, implica que tiene un fin,<br />Tipos :<br />MétodoDescripciónEjemplosAlgorítmicoUtiliza un algoritmo y puede ser implementado en una computadora Instrucciones para manejar un vehículo Instrucciones para secar grano a granel Instrucciones para resolver ecuación de segundo grado Heurística:Se apoya en el resultado obtenido en un análisis de alternativas de experiencias anteriores similares. De las mismas, a se deducen una serie de reglas empíricas o heurísticas que de ser seguidas, conducen a la selección de la mejor alternativa en todas o la mayoría de las veces.  <br /> <br />  EjemplosLos algoritmos se puedenexpresar por: FormulasDiagramas de flujoNorte-Sur,Top-Down      Pseudo códigoinicioleer a,b,ccalcular escribir perímetro fin<br />Quick Basic es un lenguaje de programación estructurado y el algoritmo se representara en seudo código y/o diagrama de flujo. <br />1. Análisis del problema:<br />Requiere la clara definición del problema donde se indique que va hacer el programa y cual ve a ser el resultado. <br />Debe detallarse las especificaciones de entrada y salida, <br />Los requisitos que definen el análisis son :<br /> Para ver el gráfico seleccione la opción quot;
Descargarquot;
 <br /> La ecuación de segundo grado se define algebraicamente como :<br />La solución general viene dada por la expresión algebraica : (Algoritmo) <br />  <br />   periférico1Análisis del problema  2Def. del problemaHallar raíces ecua. 2do grdo 3Especif. de entradacoeficientes a, b, cTeclado 4Especif. de salidaX1, X2Pantalla Impresora <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br />Entrada: por teclado <br />coefDescripciónCodificación en QBasicateam. cuadráticoINPUT quot;
Coef a =quot;
;Abterm. linealINPUT quot;
Coef b =quot;
;Bcterm. independiente INPUT quot;
Coef c =quot;
;C<br /> <br /> <br /> <br /> <br /> <br />CalculoExpresión algebraicaCodificación en QBasic X1=((-B+SQR(B^2-4*A*C))X2=((-B-SQR(B^2-4*A*C))<br /> <br /> <br /> <br /> <br /> <br />Proceso:<br />Salida: Visualización de : HYPERLINK quot;
http://www.monografias.com/trabajos11/basda/basda.shtmlquot;
 Datos de entrada: A,B,C<br />Datos procesados: Raices: X1, X2<br />VariableSignificadoCodificación en QBasicA,B,CCoefPRINTquot;
A=quot;
;A; quot;
B=quot;
;quot;
C=quot;
;CX1primera raízPRINTquot;
X1=quot;
;x1X2primera raízPRINTquot;
X2=quot;
;X2<br />2.Diseño del algoritmo.<br />Análisis de proceso implica que hace el programa. <br />Diseño implica como se hace o realiza la tarea (problema) solicitado <br />En el diseño:<br />El todo es la sumatoria de las partes. <br />Divide el todo en varias partes. <br />En la resolución de un problema complejo, se divide en varios sub problemasy seguidamente se vuelven a dividir los sub problemas en otros mas sencillos, hasta que puedan implementarse en el computador.<br />Esta característica define lo que se entiende como diseño descendente( Top-Down / Norte-Sur ) o diseño modular.<br />El proceso de ruptura del problema en cada etapa se llama refinamiento sucesivo .<br />Cada problema se resuelve mediante un modulo (subprograma) y tiene un solo punto de entrada y un solo punto de salida. <br />Un programa bien diseñado consta de un programa principal (modulo de nivel mas alto) que llama a subprogramas (módulos de nivel mas bajo), que a su vez pueden llamar otros sub programas. <br />Los programas que se estructuran de esta forma, se dicen que tienen diseño modular y el método de romper el programa en modos pequeños se llama programación modular.<br />Los módulos pueden ser planificados, codificados, compilados y depurados independientemente pueden ser intercambiados entre si.<br />Este proceso implica la ejecución de los siguientes pasos:<br />1programar un modulo2comprobar un modulo3depurar el modulo4combinar el modulo con módulos anteriores<br />este proceso convierte el resultado del análisis del problema en un diseño modular con refinamientos sucesivos que permiten una traducción a un lenguaje que se denomina diseño del algoritmo.<br />El algoritmo se puede representar por medio de dos formas :<br />Pseudo código<br />Diagrama de flujo:<br />Pseudo código: es el lenguaje de especificación de algoritmos y tiene una estructura: Las instrucciones se escriben en ingles o en palabras similares al ingles o español que facilitan la escritura de programación<br />Para la resolución de una ecuación de segundo grado se escribiría<br />inicio<br />Introducir coeficientes a, b y c<br />Imprimir títulos primera raíz, segunda raíz, no tiene solución, <br />Calcular raíz 1 y raíz 2<br />Imprimir raíz 1 y raíz 2<br />Fin<br />Diagramas de flujo (flows charts):Es la representación grafica del algoritmo; según la ANSI consta de una simbologia , que tiene los siguientes significados: <br />Para ver el gráfico seleccione la opción quot;
Descargarquot;
 del menú superior<br />Símbolos del Diagrama de flujo<br />Codificación :<br />Programación:<br />Windows/Dos/<br />Quick Basic = Editor de texto. Programa: definición:<br />conjunto de datos y sentencias: <br />Un programa tiene la forma<br /> Para ver el gráfico seleccione la opción quot;
Descargarquot;
<br />  En el editor de Quick Basic se escribiría codificado el seudo código<br />que tendría la forma:<br />REM Programa para calcular las soluciones<br />REM de una ecuacion de segundo grado<br />PRINT quot;
Escriba los valores de A, B y Cquot;
<br />C$=quot;
Calculosquot;
<br />INPUT quot;
 A,B,Cquot;
, A, B, C<br />R = (B ^ 2 - 4 * A * C) ^ .5<br />LET X1 = (-B + R) / (2 * A)<br />LET X2 = (-B + R) / (2 * A)<br />PRINT<br />PRINT quot;
 A=quot;
; A, quot;
 B=quot;
; B, quot;
C=quot;
; C<br />PRINT quot;
X1=quot;
; X1, quot;
X2=quot;
; X2<br />PRINT<br />END<br />En el Menú<br />    Ejecutar  <br />En la pantalla veríamos:<br />Mandatos e instrucciones:<br />Mandato (command): es una orden aislada de efecto inmediato. <br />Ejemplo:<br />MandatoDescripciónRUNOrdena la ejecución de un programa.LISTEscribe En la pantalla el listado del programaSAVE.Guarda, graba el programa como un archivode extensión BAS en el disco <br /> <br /> <br /> <br />Instrucción: es una orden contenida en un programa.<br />Ejemplo:<br />InstrucciónDescripciónPRINTEscribe en pantalla.INPUTIntroduce (entra datos)<br />Edición de un programa: un programa esta formado por líneas secuenciales que se ejecutan en forma descendente (Up Down)<br />Para dar por terminada una línea se pulsa la tecla Enter (Return) en cualquier parte de la misma. Para cambiar una línea basta volver a teclearla.<br />Se puede corregir una línea (borrar, rescribir ) en pantalla o bien con el mandato EDIT. <br />Se pueden incluir varias instrucciones en una misma línea, separándolos por dos puntos. <br />Una línea de pantalla (cuarenta u ochenta posiciones) es diferente de una línea de programa (doscientos cincuenta y seis posiciones). <br />Modo Directo:<br />Modo Programa<br />Run <br />Ventana activa<br />Ventana inmediata<br />mandatoDescripciónCLSborra la pantalla<br />Recomendaciones:<br />Todo programa debe estar documentado con comentarios; la primera línea debe contener el titulo del programa. Los comentarios deben de ir precedidos de la palabra clave REM o de un apostrofo ( ‘ ) <br />Si una línea ya tiene otras instrucciones, el comentario debe ir al final de la línea. <br />Los comentarios solo aparecen en el listado del programa y no aparecen escritos en la pantalla durante la ejecución. <br />Constantes:<br />QBasic, trabaja con dos tipos de datos:<br />DatosTiposnuméricos:Enteros (INT)Enteros largos (LNG)de simple precisión (SGL)de doble precisión (DBL)alfanuméricoshileras o cadenas (STR)fila de caracteres en ASCII ( en parte del teclado )<br />Las constantes alfanuméricas pueden ser enteras o fraccionarias, se representan en forma decimal; se puede emitir el cero a la izquierda del punto decimal. Ejemplo <br />3452-12.67.23+12345<br />Estos son ejemplos de valores numéricos de punto fijo; se puede emplear una notación de punto flotante.<br />Mantisaletra exponente<br />1,23456E+15 123456.0000000000 1.234567890789456D–100.000000000123456789012456<br />El numero máximo de cifras significativas con que se trabaja es: <br />6 para la precisión simple (SNG)<br />16 para la precisión doble (DLB)<br />En las constantes de punto fijo hay que añadir el carácter # <br />Las constantes alfanuméricas son hileras de caracteres; se escriben entre comillas, Ej. quot;
Hola quot;
 ; quot;
 A47EC <br />Variables vectores y matrices:<br />Una variable es una zona de memoria que almacena un dato <br />XRAM DIA $ Peso  -23.5 lunes 80 <br />Una variable se identifica mediante un nombre. El nombre de una variable numérica debe empezar por una letra y puede ir sucedido de otras letras y / o otros dígitos (X, A, B1, peso, T341) <br />Una variable alfanumérica debe terminar con el carácter $ (x$, a23$, dias$,) <br />Están terminantemente prohibidas los nombres de variables que contengan palabras claves de Basic (PRUN, LIST, NIF$,) <br />Las variables de precisión doble y enteros se identifican añadiendo el carácter # o el carácter % , también se pueden declarar como <br />DEFDBL A<br />7. Documentación:<br />Los comentarios que se incluyan deben ser significativos<br />Documentación interna:<br />Va incluida dentro del código del programa fuente, por medio de comentarios que ayudan a la comprensión del código. <br />Todas las sentencias comienzan con la sentencia REM o su equivalente el carácter apostrofe ( ‘). <br />El programa en si no los necesita y los ignora. Hace que los programas sean comprensibles.<br />………………………………………………………………………………….<br />Podemos encontrar muchas definiciones de algoritmo en los textos de programacion, todas ellas muy similares:<br />Conjunto ordenado y finito de pasos que permite hallar la solución de un problema. <br />Una secuencia de pasos que conducen a la realización de una tarea. <br />Descripción exacta de la secuencia en que se ha de realizar un conjunto de actividades tendientes a resolver un determinado tipo de problema o procedimiento. <br />Conjunto de sentencias / instrucciones en lenguaje nativo, los cuales expresan la lógica de un programa. <br />Es un sistema por el cual se llega a una solución, teniendo en cuenta que debe de ser definido, finito y preciso. <br />Toda receta, proceso, rutina, método, procedimiento, técnica, formula que resuelven un determinado problema. <br />Conjunto de instrucciones concretas y detalladas mediante el cual se consigue una acción determinada. <br />Conjunto de reglas que permiten obtener un resultado determinado a partir de ciertas reglas definidas. <br />Descripción precisa de una sucesión de instrucciones que permite llevar a cabo un trabajo en un número finito de pasos. <br />Un conjunto de símbolos y procedimientos usados en la realización de un cálculo. <br />Las definiciones mas completas o formales:<br />Secuencia finita de instrucciones, reglas o pasos que describen de forma precisa las operaciones de un ordenador debe realizar para llevar a cabo un tarea en un tiempo mas finito. [Donald E. Knuth, 1968] <br />Descripcion de un esquema de comportamiento expresado mediante un reportorio finito de acciones y de informaciones elementales, identificadas, bien comprendidas y realizables a priori. Este repertorio se denomica lexico [Pierre Scholl, 1988] <br />Un algoritmo es un conjunto finito de pasos definidos, estructurados en el tiempo y formulados con base a un conjunto finito de reglas no ambiguas, que proveen un procedimiento para dar la solución o indicar la falta de esta a un problema en un tiempo determinado. [Rodolfo Quispe-Otazu, 2004] <br />Caracteristicas:<br />Las características fundamentales que debe cumplir todo algoritmo son:<br />Ser definido: Sin ambigüedad, cada paso del algoritmo debe indicar la acción a realizar sin criterios de interpretación. <br />Ser finito: Un número específico y numerable de pasos debe componer al algoritmo, el cual deberá finalizar al completarlos. <br />Tener cero o más entradas: Datos son proporcionados a un algoritmo como insumo (o estos son generados de alguna forma) para llevar a cabo las operaciones que comprende. <br />Tener una o más salidas: Debe siempre devolver un resultado; de nada sirve un algoritmo que hace algo y nunca sabemos que fue. El devolver un resultado no debe ser considerado como únicamente “verlos” en forma impresa o en pantalla, como ocurre con las computadoras. Existen muchos otros mecanismos susceptibles de programación que no cuentan con una salida de resultados de esta forma. Por salida de resultados debe entenderse todo medio o canal por el cual es posible apreciar los efectos de las acciones del algoritmo. <br />Efectividad: El tiempo y esfuerzo por cada paso realizado debe ser preciso, no usando nada más ni nada menos que aquello que se requiera para y en su ejecución. <br />Historia:<br />La palabra algoritmo proviene del nombre del matemático llamado Abu Abdullah Muhammad bin Musa al-Khwarizmi (hay muchas variantes para el nombre al usar el alfabeto latin, tales como Al-Khorezmi, Al-Khwarizmi, Al-Khawarizmi, Al-Khawaritzmi o Al-Khowarizmi) que vivió entre los siglos VIII y IX.<br />Su trabajo consistió en preservar y difundir el conocimiento de la antigua Grecia y de la India. Sus libros eran de fácil comprensión, de ahí que su principal valor no fuera el de crear nuevos teoremas o nuevas corrientes de pensamiento, sino el de simplificar las matemáticas a un nivel lo suficientemente bajo para que pudiera ser comprendido por un amplio público. Cabe destacar cómo señaló las virtudes del sistema decimal indio (en contra de los sistemas tradicionales árabes) y cómo explicó que, mediante una especificación clara y concisa de cómo calcular sistemáticamente, se podrían definir algoritmos que fueran usados en dispositivos mecánicos similares a un ábaco en vez de las manos. También estudió la manera de reducir el numero de operaciones necesarias que formaban el cálculo.<br />Por esta razón, aunque no haya sido él el inventor del primer algoritmo, merece que este concepto esté asociado a su nombre. Al-Khorezmi fue sin duda el primer pensador algorítmico.<br />Ya en el siglo XIX, se produjo el primer algoritmo escrito para un computador. La autora fue Ada Byron, en cuyos escritos se detallaban la máquina analítica en 1842. Por ello que es considerada por muchos como la primera programadora aunque, desde Charles Babbage, nadie completó su máquina, por lo que el algoritmo nunca se implementó.<br />La idea de resolver un problema o de disponer de un algoritmo es bastante antigua, tal es así, que existía la errada creencia que no había problema que no se pudiera resolver y en base a ello, el matemático David Hilbert quiso descubrir un algoritmo para los algoritmos. Hoy en dia gracias a los trabajos de Kurt Gödel, Alonzo Church (calculo lamba), Alan Turing (maquina de turing), se sabe que dentro del universo de problemas, una pequeña parte es computable, luego que el objetivo que perseguia David Hilbert no era computable, es lo que se ha denominado como la computabilidad <br />Diagrama de flujo<br />Indice1. Introducción2. Situación Planteada 3. Bibliografía<br />1. Introducción<br />Un Diagrama de Flujo representa la esquematización gráfica de un algoritmo , el cual muestra gráficamente los pasos o procesos a seguir para alcanzar la solución de un problema . Su correcta construcción es sumamente importante porque , a partir del mismo se escribe un programa en algún Lenguaje de Programación. Si el Diagrama de Flujo está completo y correcto,el paso del mismo a un Lenguaje de Programación es relativamente simple y directo. Es importante resaltar que el Diagrama de Flujo muestra el sistema como una redde procesos funcionales conectados entre sí por quot;
 Tuberías quot;
 y quot;
Depósitosquot;
 de datos que permite describir el movimientode los datos a través del Sistema. Este describirá : Lugares de Origen y Destino de los datos , Transformaciones a las que son sometidos los datos, Lugares en los que se almacenan los datos dentro del sistema , Los canales por donde circulan los datos. Además de esto podemos decir que este es una representación reticular de un Sistema ,el cual lo contempla en términos de sus componentes indicando el enlace entre los mismos. En el presente Trabajo se representará a través de un Diagrama de Flujo el Procedimientoque debe efectuarse para calcular el pago de los trabajadores de una Empresa .<br />2. Situación Planteada<br />A continuación se representara a través de un Diagrama de Flujo el procedimiento utilizado para el calculo de pago de los trabajadores por La Empresa FrutiPack , C.A. , la cual se encarga de elaborar, procesar y empacar jugos de excelentes calidadpara la Región Centro Occidental del País. Para estos cálculos se debe tomar en cuenta lo siguiente : <br />Sueldo Básico y las horas extras trabajadas . <br />Para el pago de las horas extras se tienen en cuenta además la categoría del trabajador , la cual se muestra a continuación :  <br />Cada trabajador puede tener como máximo 10 horas extras , si tienen más sólo se les pagarán 10. A los trabajadores con categoría mayor a 4 no se les debe pagar horas extras. <br />DatosSUE : Es una variable Real que expresa el sueldo básico del trabajador.CATE : Es una variable de tipo entero , que expresa la categoría del trabajador . 1 < CATE < CATE 8.HE : Es una variable de tipo entero , que expresa las horas extras trabajadas por el trabajador.PHE : Es una variable de tipo real. Almacena el costo de la hora extra , teniendo en cuenta la categoría del trabajador.NSUE : Es una variable de tipo real . Almacena lo que hay que pagarle al trabajador teniendo en cuenta su sueldo y las horas extras trabajadas.<br />Diagrama de FlujoInicio<br />SUE , CATE , HE<br />CATE<br />PHE = 15.000 PHE = 25.000 PHE = 30.000 PHE = 40.000 PHE = 0<br />SI NO<br />HE >10<br />NSUE=SUE+10*PHE NSUE =SUE+HE*PHE<br />NSUE<br />
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos
Algoritmos

Contenu connexe

Tendances

Resolucion De Problemas Con Computadora
Resolucion De Problemas Con ComputadoraResolucion De Problemas Con Computadora
Resolucion De Problemas Con ComputadoraBrivé Soluciones
 
Programación modular
Programación modularProgramación modular
Programación modularMenfy Morales
 
Solucion de problemas por medio de computadoras
Solucion de problemas por medio de computadorasSolucion de problemas por medio de computadoras
Solucion de problemas por medio de computadorasJorge Ñauñay
 
Programacion Estructurada
Programacion EstructuradaProgramacion Estructurada
Programacion Estructuradaramirezadi
 
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMASMETODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMASadark
 
3 resolucion de problemas con la computadora
3 resolucion de problemas con la computadora3 resolucion de problemas con la computadora
3 resolucion de problemas con la computadoraMIGUEL
 
Pasos para la solución de un problema por computador
Pasos para la solución de un problema por computadorPasos para la solución de un problema por computador
Pasos para la solución de un problema por computadorgisseparrav
 
Pasos Para Resolver Un Problema Utilizando Un Pc
Pasos  Para Resolver Un Problema  Utilizando Un PcPasos  Para Resolver Un Problema  Utilizando Un Pc
Pasos Para Resolver Un Problema Utilizando Un Pcguest965b17
 
Estructura General de un Programa
Estructura General de un ProgramaEstructura General de un Programa
Estructura General de un ProgramaFranco Guamán
 
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR DarkStarPlay
 
Fundamentos de programación
Fundamentos de programaciónFundamentos de programación
Fundamentos de programaciónEdison Morales
 
3 programacion estructurada
3 programacion estructurada3 programacion estructurada
3 programacion estructuradacortezbfajardo
 
ResolucióN De Problemas
ResolucióN De ProblemasResolucióN De Problemas
ResolucióN De Problemasguest796d29
 
Unidad 1 Conceptos básicos y metodología para la solución de problemas por me...
Unidad 1 Conceptos básicos y metodología para la solución de problemas por me...Unidad 1 Conceptos básicos y metodología para la solución de problemas por me...
Unidad 1 Conceptos básicos y metodología para la solución de problemas por me...Carlos M. Sandoval
 

Tendances (20)

Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Resolucion De Problemas Con Computadora
Resolucion De Problemas Con ComputadoraResolucion De Problemas Con Computadora
Resolucion De Problemas Con Computadora
 
Clase 2
Clase 2Clase 2
Clase 2
 
Programacion Modular
Programacion ModularProgramacion Modular
Programacion Modular
 
Programación modular
Programación modularProgramación modular
Programación modular
 
Solucion de problemas por medio de computadoras
Solucion de problemas por medio de computadorasSolucion de problemas por medio de computadoras
Solucion de problemas por medio de computadoras
 
Programacion Estructurada
Programacion EstructuradaProgramacion Estructurada
Programacion Estructurada
 
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMASMETODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
 
3 resolucion de problemas con la computadora
3 resolucion de problemas con la computadora3 resolucion de problemas con la computadora
3 resolucion de problemas con la computadora
 
Pasos para la solución de un problema por computador
Pasos para la solución de un problema por computadorPasos para la solución de un problema por computador
Pasos para la solución de un problema por computador
 
Pasos Para Resolver Un Problema Utilizando Un Pc
Pasos  Para Resolver Un Problema  Utilizando Un PcPasos  Para Resolver Un Problema  Utilizando Un Pc
Pasos Para Resolver Un Problema Utilizando Un Pc
 
Fases de resolución de un problema
Fases de resolución de un problemaFases de resolución de un problema
Fases de resolución de un problema
 
Estructura General de un Programa
Estructura General de un ProgramaEstructura General de un Programa
Estructura General de un Programa
 
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR
 
Fundamentos de programación
Fundamentos de programaciónFundamentos de programación
Fundamentos de programación
 
3 programacion estructurada
3 programacion estructurada3 programacion estructurada
3 programacion estructurada
 
Diagrama de-flujo
Diagrama de-flujoDiagrama de-flujo
Diagrama de-flujo
 
Algoritmos y-diagramacion
Algoritmos y-diagramacionAlgoritmos y-diagramacion
Algoritmos y-diagramacion
 
ResolucióN De Problemas
ResolucióN De ProblemasResolucióN De Problemas
ResolucióN De Problemas
 
Unidad 1 Conceptos básicos y metodología para la solución de problemas por me...
Unidad 1 Conceptos básicos y metodología para la solución de problemas por me...Unidad 1 Conceptos básicos y metodología para la solución de problemas por me...
Unidad 1 Conceptos básicos y metodología para la solución de problemas por me...
 

Similaire à Algoritmos

Clase de metodologia para analisis y planteamiento de problemas
Clase de metodologia para analisis y planteamiento de problemasClase de metodologia para analisis y planteamiento de problemas
Clase de metodologia para analisis y planteamiento de problemasSol Hernández
 
Fundamentos de Programacion
Fundamentos de ProgramacionFundamentos de Programacion
Fundamentos de Programacionneyvajms
 
Fpr Tema 1 www.fresymetal.com
Fpr Tema 1 www.fresymetal.comFpr Tema 1 www.fresymetal.com
Fpr Tema 1 www.fresymetal.comFresyMetal
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmosomarzon
 
Solución de problemas aplicando la computadora
Solución de problemas aplicando la computadoraSolución de problemas aplicando la computadora
Solución de problemas aplicando la computadorarestradal
 
Solución de problemas aplicando la computadora
Solución de problemas aplicando la computadoraSolución de problemas aplicando la computadora
Solución de problemas aplicando la computadorarestradal
 
Algoritmos (DFD, Pseudocodigos).pptx
Algoritmos (DFD, Pseudocodigos).pptxAlgoritmos (DFD, Pseudocodigos).pptx
Algoritmos (DFD, Pseudocodigos).pptxTIRZOANTONIOMEDINACA1
 
Etapas del desarrolo de un programa
Etapas del desarrolo de un programaEtapas del desarrolo de un programa
Etapas del desarrolo de un programazeta2015
 
Actividad26
Actividad26Actividad26
Actividad26grachika
 
Algoritmos. Definición y Características
Algoritmos. Definición y CaracterísticasAlgoritmos. Definición y Características
Algoritmos. Definición y Característicasjaimeor
 
5. Diseño de un algoritmo
5. Diseño de un algoritmo5. Diseño de un algoritmo
5. Diseño de un algoritmorcarrerah
 
Actividad....... 26
Actividad....... 26Actividad....... 26
Actividad....... 26grachika
 
Resolución de problemas y algoritmo
Resolución de problemas y algoritmoResolución de problemas y algoritmo
Resolución de problemas y algoritmoNombre Apellidos
 
Diseño de pseudocodigo
Diseño de pseudocodigoDiseño de pseudocodigo
Diseño de pseudocodigoANIMEFLV
 

Similaire à Algoritmos (20)

TEMA11.ppt
TEMA11.pptTEMA11.ppt
TEMA11.ppt
 
Diagramas de Flujo
Diagramas de FlujoDiagramas de Flujo
Diagramas de Flujo
 
Seudocodigo
SeudocodigoSeudocodigo
Seudocodigo
 
(Fases)
(Fases)(Fases)
(Fases)
 
Clase de metodologia para analisis y planteamiento de problemas
Clase de metodologia para analisis y planteamiento de problemasClase de metodologia para analisis y planteamiento de problemas
Clase de metodologia para analisis y planteamiento de problemas
 
Fundamentos de Programacion
Fundamentos de ProgramacionFundamentos de Programacion
Fundamentos de Programacion
 
Fpr Tema 1 www.fresymetal.com
Fpr Tema 1 www.fresymetal.comFpr Tema 1 www.fresymetal.com
Fpr Tema 1 www.fresymetal.com
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Solución de problemas aplicando la computadora
Solución de problemas aplicando la computadoraSolución de problemas aplicando la computadora
Solución de problemas aplicando la computadora
 
Solución de problemas aplicando la computadora
Solución de problemas aplicando la computadoraSolución de problemas aplicando la computadora
Solución de problemas aplicando la computadora
 
Metodologia
MetodologiaMetodologia
Metodologia
 
Algoritmos (DFD, Pseudocodigos).pptx
Algoritmos (DFD, Pseudocodigos).pptxAlgoritmos (DFD, Pseudocodigos).pptx
Algoritmos (DFD, Pseudocodigos).pptx
 
Etapas del desarrolo de un programa
Etapas del desarrolo de un programaEtapas del desarrolo de un programa
Etapas del desarrolo de un programa
 
Actividad26
Actividad26Actividad26
Actividad26
 
Algoritmos. Definición y Características
Algoritmos. Definición y CaracterísticasAlgoritmos. Definición y Características
Algoritmos. Definición y Características
 
5. Diseño de un algoritmo
5. Diseño de un algoritmo5. Diseño de un algoritmo
5. Diseño de un algoritmo
 
Actividad....... 26
Actividad....... 26Actividad....... 26
Actividad....... 26
 
Resolución de problemas y algoritmo
Resolución de problemas y algoritmoResolución de problemas y algoritmo
Resolución de problemas y algoritmo
 
Diseño de pseudocodigo
Diseño de pseudocodigoDiseño de pseudocodigo
Diseño de pseudocodigo
 

Plus de Jesus Chaux

Nombre.gestion de mercados
Nombre.gestion de mercadosNombre.gestion de mercados
Nombre.gestion de mercadosJesus Chaux
 
Ejercicios yadny
Ejercicios yadnyEjercicios yadny
Ejercicios yadnyJesus Chaux
 
Taller digitales 1
Taller digitales 1Taller digitales 1
Taller digitales 1Jesus Chaux
 
Taller digitales solucionado
Taller digitales solucionadoTaller digitales solucionado
Taller digitales solucionadoJesus Chaux
 
Guia electronica digital
Guia electronica digitalGuia electronica digital
Guia electronica digitalJesus Chaux
 
Compuertas logicas
Compuertas logicasCompuertas logicas
Compuertas logicasJesus Chaux
 
Actividades digital solucionada
Actividades digital solucionadaActividades digital solucionada
Actividades digital solucionadaJesus Chaux
 
Fundamentos de electromagnetismo
Fundamentos de electromagnetismoFundamentos de electromagnetismo
Fundamentos de electromagnetismoJesus Chaux
 
Taller lexicografía y ortografia[1]
Taller lexicografía y ortografia[1]Taller lexicografía y ortografia[1]
Taller lexicografía y ortografia[1]Jesus Chaux
 
Plan de sesion modulo manejo ofimatica utilitarios
Plan de sesion modulo manejo ofimatica utilitariosPlan de sesion modulo manejo ofimatica utilitarios
Plan de sesion modulo manejo ofimatica utilitariosJesus Chaux
 

Plus de Jesus Chaux (20)

Nombre.gestion de mercados
Nombre.gestion de mercadosNombre.gestion de mercados
Nombre.gestion de mercados
 
Presentación1
Presentación1Presentación1
Presentación1
 
Riesgos
RiesgosRiesgos
Riesgos
 
Radiacion
RadiacionRadiacion
Radiacion
 
Ejercicios yadny
Ejercicios yadnyEjercicios yadny
Ejercicios yadny
 
Taller digitales 1
Taller digitales 1Taller digitales 1
Taller digitales 1
 
Taller digitales solucionado
Taller digitales solucionadoTaller digitales solucionado
Taller digitales solucionado
 
Guia electronica digital
Guia electronica digitalGuia electronica digital
Guia electronica digital
 
Compuertas logicas
Compuertas logicasCompuertas logicas
Compuertas logicas
 
Actividades digital solucionada
Actividades digital solucionadaActividades digital solucionada
Actividades digital solucionada
 
Presentacion
PresentacionPresentacion
Presentacion
 
Presentacion
PresentacionPresentacion
Presentacion
 
Fundamentos de electromagnetismo
Fundamentos de electromagnetismoFundamentos de electromagnetismo
Fundamentos de electromagnetismo
 
Energ a
Energ aEnerg a
Energ a
 
Ventas
VentasVentas
Ventas
 
Ventas
VentasVentas
Ventas
 
Ventas
VentasVentas
Ventas
 
Taller lexicografía y ortografia[1]
Taller lexicografía y ortografia[1]Taller lexicografía y ortografia[1]
Taller lexicografía y ortografia[1]
 
Tabla de excel
Tabla de excelTabla de excel
Tabla de excel
 
Plan de sesion modulo manejo ofimatica utilitarios
Plan de sesion modulo manejo ofimatica utilitariosPlan de sesion modulo manejo ofimatica utilitarios
Plan de sesion modulo manejo ofimatica utilitarios
 

Algoritmos

  • 1. Algoritmos<br />Pasos <br />Tipos <br />Análisis del problema <br />Diseño del algoritmo. <br />Mandatos e instrucciones <br />Variables vectores y matrices <br />Documentación <br />El programador diseña un programa, para resolver un problema particular. <br />Diseñar es un proceso creativo. <br />El proceso de diseñode un programa consta de los siguientes pasos o etapas: <br />Pasos:<br />PasosEtapaDescripción1Análisis del problema Conducen al diseño detallado por medio un código escrito en forma de un algoritmo2Diseño de algoritmo3CodificaciónSe implementa el algoritmo en un código escrito en un lenguaje de programación. Refleja las ideas desarrolladas en las etapas de análisis y diseño4Compilación y ejecuciónTraduce el programa fuente a programa en código de maquina y lo ejecuta. 5VerificaciónBusca errores en las etapas anteriores y los elimina.6Depuración7DocumentaciónSon comentarios, etiquetas de texto, que facilitan la comprensión del programa<br /> <br />Concepto  Algoritmo: es un métodopara resolver un problema mediante una serie de pasos definidos, precisos y finitos. Preciso: implica el orden de realización de cada uno de los pasos Definido: si se sigue dos veces, se obtiene el mismo resultado.Finito: Tiene un numero determinado de pasos, implica que tiene un fin,<br />Tipos :<br />MétodoDescripciónEjemplosAlgorítmicoUtiliza un algoritmo y puede ser implementado en una computadora Instrucciones para manejar un vehículo Instrucciones para secar grano a granel Instrucciones para resolver ecuación de segundo grado Heurística:Se apoya en el resultado obtenido en un análisis de alternativas de experiencias anteriores similares. De las mismas, a se deducen una serie de reglas empíricas o heurísticas que de ser seguidas, conducen a la selección de la mejor alternativa en todas o la mayoría de las veces.  <br /> <br />  EjemplosLos algoritmos se puedenexpresar por: FormulasDiagramas de flujoNorte-Sur,Top-Down      Pseudo códigoinicioleer a,b,ccalcular escribir perímetro fin<br />Quick Basic es un lenguaje de programación estructurado y el algoritmo se representara en seudo código y/o diagrama de flujo. <br />1. Análisis del problema:<br />Requiere la clara definición del problema donde se indique que va hacer el programa y cual ve a ser el resultado. <br />Debe detallarse las especificaciones de entrada y salida, <br />Los requisitos que definen el análisis son :<br /> Para ver el gráfico seleccione la opción quot; Descargarquot; <br /> La ecuación de segundo grado se define algebraicamente como :<br />La solución general viene dada por la expresión algebraica : (Algoritmo) <br />  <br />   periférico1Análisis del problema  2Def. del problemaHallar raíces ecua. 2do grdo 3Especif. de entradacoeficientes a, b, cTeclado 4Especif. de salidaX1, X2Pantalla Impresora <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br />Entrada: por teclado <br />coefDescripciónCodificación en QBasicateam. cuadráticoINPUT quot; Coef a =quot; ;Abterm. linealINPUT quot; Coef b =quot; ;Bcterm. independiente INPUT quot; Coef c =quot; ;C<br /> <br /> <br /> <br /> <br /> <br />CalculoExpresión algebraicaCodificación en QBasic X1=((-B+SQR(B^2-4*A*C))X2=((-B-SQR(B^2-4*A*C))<br /> <br /> <br /> <br /> <br /> <br />Proceso:<br />Salida: Visualización de : HYPERLINK quot; http://www.monografias.com/trabajos11/basda/basda.shtmlquot; Datos de entrada: A,B,C<br />Datos procesados: Raices: X1, X2<br />VariableSignificadoCodificación en QBasicA,B,CCoefPRINTquot; A=quot; ;A; quot; B=quot; ;quot; C=quot; ;CX1primera raízPRINTquot; X1=quot; ;x1X2primera raízPRINTquot; X2=quot; ;X2<br />2.Diseño del algoritmo.<br />Análisis de proceso implica que hace el programa. <br />Diseño implica como se hace o realiza la tarea (problema) solicitado <br />En el diseño:<br />El todo es la sumatoria de las partes. <br />Divide el todo en varias partes. <br />En la resolución de un problema complejo, se divide en varios sub problemasy seguidamente se vuelven a dividir los sub problemas en otros mas sencillos, hasta que puedan implementarse en el computador.<br />Esta característica define lo que se entiende como diseño descendente( Top-Down / Norte-Sur ) o diseño modular.<br />El proceso de ruptura del problema en cada etapa se llama refinamiento sucesivo .<br />Cada problema se resuelve mediante un modulo (subprograma) y tiene un solo punto de entrada y un solo punto de salida. <br />Un programa bien diseñado consta de un programa principal (modulo de nivel mas alto) que llama a subprogramas (módulos de nivel mas bajo), que a su vez pueden llamar otros sub programas. <br />Los programas que se estructuran de esta forma, se dicen que tienen diseño modular y el método de romper el programa en modos pequeños se llama programación modular.<br />Los módulos pueden ser planificados, codificados, compilados y depurados independientemente pueden ser intercambiados entre si.<br />Este proceso implica la ejecución de los siguientes pasos:<br />1programar un modulo2comprobar un modulo3depurar el modulo4combinar el modulo con módulos anteriores<br />este proceso convierte el resultado del análisis del problema en un diseño modular con refinamientos sucesivos que permiten una traducción a un lenguaje que se denomina diseño del algoritmo.<br />El algoritmo se puede representar por medio de dos formas :<br />Pseudo código<br />Diagrama de flujo:<br />Pseudo código: es el lenguaje de especificación de algoritmos y tiene una estructura: Las instrucciones se escriben en ingles o en palabras similares al ingles o español que facilitan la escritura de programación<br />Para la resolución de una ecuación de segundo grado se escribiría<br />inicio<br />Introducir coeficientes a, b y c<br />Imprimir títulos primera raíz, segunda raíz, no tiene solución, <br />Calcular raíz 1 y raíz 2<br />Imprimir raíz 1 y raíz 2<br />Fin<br />Diagramas de flujo (flows charts):Es la representación grafica del algoritmo; según la ANSI consta de una simbologia , que tiene los siguientes significados: <br />Para ver el gráfico seleccione la opción quot; Descargarquot; del menú superior<br />Símbolos del Diagrama de flujo<br />Codificación :<br />Programación:<br />Windows/Dos/<br />Quick Basic = Editor de texto. Programa: definición:<br />conjunto de datos y sentencias: <br />Un programa tiene la forma<br /> Para ver el gráfico seleccione la opción quot; Descargarquot; <br />  En el editor de Quick Basic se escribiría codificado el seudo código<br />que tendría la forma:<br />REM Programa para calcular las soluciones<br />REM de una ecuacion de segundo grado<br />PRINT quot; Escriba los valores de A, B y Cquot; <br />C$=quot; Calculosquot; <br />INPUT quot; A,B,Cquot; , A, B, C<br />R = (B ^ 2 - 4 * A * C) ^ .5<br />LET X1 = (-B + R) / (2 * A)<br />LET X2 = (-B + R) / (2 * A)<br />PRINT<br />PRINT quot; A=quot; ; A, quot; B=quot; ; B, quot; C=quot; ; C<br />PRINT quot; X1=quot; ; X1, quot; X2=quot; ; X2<br />PRINT<br />END<br />En el Menú<br />    Ejecutar  <br />En la pantalla veríamos:<br />Mandatos e instrucciones:<br />Mandato (command): es una orden aislada de efecto inmediato. <br />Ejemplo:<br />MandatoDescripciónRUNOrdena la ejecución de un programa.LISTEscribe En la pantalla el listado del programaSAVE.Guarda, graba el programa como un archivode extensión BAS en el disco <br /> <br /> <br /> <br />Instrucción: es una orden contenida en un programa.<br />Ejemplo:<br />InstrucciónDescripciónPRINTEscribe en pantalla.INPUTIntroduce (entra datos)<br />Edición de un programa: un programa esta formado por líneas secuenciales que se ejecutan en forma descendente (Up Down)<br />Para dar por terminada una línea se pulsa la tecla Enter (Return) en cualquier parte de la misma. Para cambiar una línea basta volver a teclearla.<br />Se puede corregir una línea (borrar, rescribir ) en pantalla o bien con el mandato EDIT. <br />Se pueden incluir varias instrucciones en una misma línea, separándolos por dos puntos. <br />Una línea de pantalla (cuarenta u ochenta posiciones) es diferente de una línea de programa (doscientos cincuenta y seis posiciones). <br />Modo Directo:<br />Modo Programa<br />Run <br />Ventana activa<br />Ventana inmediata<br />mandatoDescripciónCLSborra la pantalla<br />Recomendaciones:<br />Todo programa debe estar documentado con comentarios; la primera línea debe contener el titulo del programa. Los comentarios deben de ir precedidos de la palabra clave REM o de un apostrofo ( ‘ ) <br />Si una línea ya tiene otras instrucciones, el comentario debe ir al final de la línea. <br />Los comentarios solo aparecen en el listado del programa y no aparecen escritos en la pantalla durante la ejecución. <br />Constantes:<br />QBasic, trabaja con dos tipos de datos:<br />DatosTiposnuméricos:Enteros (INT)Enteros largos (LNG)de simple precisión (SGL)de doble precisión (DBL)alfanuméricoshileras o cadenas (STR)fila de caracteres en ASCII ( en parte del teclado )<br />Las constantes alfanuméricas pueden ser enteras o fraccionarias, se representan en forma decimal; se puede emitir el cero a la izquierda del punto decimal. Ejemplo <br />3452-12.67.23+12345<br />Estos son ejemplos de valores numéricos de punto fijo; se puede emplear una notación de punto flotante.<br />Mantisaletra exponente<br />1,23456E+15 123456.0000000000 1.234567890789456D–100.000000000123456789012456<br />El numero máximo de cifras significativas con que se trabaja es: <br />6 para la precisión simple (SNG)<br />16 para la precisión doble (DLB)<br />En las constantes de punto fijo hay que añadir el carácter # <br />Las constantes alfanuméricas son hileras de caracteres; se escriben entre comillas, Ej. quot; Hola quot; ; quot; A47EC <br />Variables vectores y matrices:<br />Una variable es una zona de memoria que almacena un dato <br />XRAM DIA $ Peso  -23.5 lunes 80 <br />Una variable se identifica mediante un nombre. El nombre de una variable numérica debe empezar por una letra y puede ir sucedido de otras letras y / o otros dígitos (X, A, B1, peso, T341) <br />Una variable alfanumérica debe terminar con el carácter $ (x$, a23$, dias$,) <br />Están terminantemente prohibidas los nombres de variables que contengan palabras claves de Basic (PRUN, LIST, NIF$,) <br />Las variables de precisión doble y enteros se identifican añadiendo el carácter # o el carácter % , también se pueden declarar como <br />DEFDBL A<br />7. Documentación:<br />Los comentarios que se incluyan deben ser significativos<br />Documentación interna:<br />Va incluida dentro del código del programa fuente, por medio de comentarios que ayudan a la comprensión del código. <br />Todas las sentencias comienzan con la sentencia REM o su equivalente el carácter apostrofe ( ‘). <br />El programa en si no los necesita y los ignora. Hace que los programas sean comprensibles.<br />………………………………………………………………………………….<br />Podemos encontrar muchas definiciones de algoritmo en los textos de programacion, todas ellas muy similares:<br />Conjunto ordenado y finito de pasos que permite hallar la solución de un problema. <br />Una secuencia de pasos que conducen a la realización de una tarea. <br />Descripción exacta de la secuencia en que se ha de realizar un conjunto de actividades tendientes a resolver un determinado tipo de problema o procedimiento. <br />Conjunto de sentencias / instrucciones en lenguaje nativo, los cuales expresan la lógica de un programa. <br />Es un sistema por el cual se llega a una solución, teniendo en cuenta que debe de ser definido, finito y preciso. <br />Toda receta, proceso, rutina, método, procedimiento, técnica, formula que resuelven un determinado problema. <br />Conjunto de instrucciones concretas y detalladas mediante el cual se consigue una acción determinada. <br />Conjunto de reglas que permiten obtener un resultado determinado a partir de ciertas reglas definidas. <br />Descripción precisa de una sucesión de instrucciones que permite llevar a cabo un trabajo en un número finito de pasos. <br />Un conjunto de símbolos y procedimientos usados en la realización de un cálculo. <br />Las definiciones mas completas o formales:<br />Secuencia finita de instrucciones, reglas o pasos que describen de forma precisa las operaciones de un ordenador debe realizar para llevar a cabo un tarea en un tiempo mas finito. [Donald E. Knuth, 1968] <br />Descripcion de un esquema de comportamiento expresado mediante un reportorio finito de acciones y de informaciones elementales, identificadas, bien comprendidas y realizables a priori. Este repertorio se denomica lexico [Pierre Scholl, 1988] <br />Un algoritmo es un conjunto finito de pasos definidos, estructurados en el tiempo y formulados con base a un conjunto finito de reglas no ambiguas, que proveen un procedimiento para dar la solución o indicar la falta de esta a un problema en un tiempo determinado. [Rodolfo Quispe-Otazu, 2004] <br />Caracteristicas:<br />Las características fundamentales que debe cumplir todo algoritmo son:<br />Ser definido: Sin ambigüedad, cada paso del algoritmo debe indicar la acción a realizar sin criterios de interpretación. <br />Ser finito: Un número específico y numerable de pasos debe componer al algoritmo, el cual deberá finalizar al completarlos. <br />Tener cero o más entradas: Datos son proporcionados a un algoritmo como insumo (o estos son generados de alguna forma) para llevar a cabo las operaciones que comprende. <br />Tener una o más salidas: Debe siempre devolver un resultado; de nada sirve un algoritmo que hace algo y nunca sabemos que fue. El devolver un resultado no debe ser considerado como únicamente “verlos” en forma impresa o en pantalla, como ocurre con las computadoras. Existen muchos otros mecanismos susceptibles de programación que no cuentan con una salida de resultados de esta forma. Por salida de resultados debe entenderse todo medio o canal por el cual es posible apreciar los efectos de las acciones del algoritmo. <br />Efectividad: El tiempo y esfuerzo por cada paso realizado debe ser preciso, no usando nada más ni nada menos que aquello que se requiera para y en su ejecución. <br />Historia:<br />La palabra algoritmo proviene del nombre del matemático llamado Abu Abdullah Muhammad bin Musa al-Khwarizmi (hay muchas variantes para el nombre al usar el alfabeto latin, tales como Al-Khorezmi, Al-Khwarizmi, Al-Khawarizmi, Al-Khawaritzmi o Al-Khowarizmi) que vivió entre los siglos VIII y IX.<br />Su trabajo consistió en preservar y difundir el conocimiento de la antigua Grecia y de la India. Sus libros eran de fácil comprensión, de ahí que su principal valor no fuera el de crear nuevos teoremas o nuevas corrientes de pensamiento, sino el de simplificar las matemáticas a un nivel lo suficientemente bajo para que pudiera ser comprendido por un amplio público. Cabe destacar cómo señaló las virtudes del sistema decimal indio (en contra de los sistemas tradicionales árabes) y cómo explicó que, mediante una especificación clara y concisa de cómo calcular sistemáticamente, se podrían definir algoritmos que fueran usados en dispositivos mecánicos similares a un ábaco en vez de las manos. También estudió la manera de reducir el numero de operaciones necesarias que formaban el cálculo.<br />Por esta razón, aunque no haya sido él el inventor del primer algoritmo, merece que este concepto esté asociado a su nombre. Al-Khorezmi fue sin duda el primer pensador algorítmico.<br />Ya en el siglo XIX, se produjo el primer algoritmo escrito para un computador. La autora fue Ada Byron, en cuyos escritos se detallaban la máquina analítica en 1842. Por ello que es considerada por muchos como la primera programadora aunque, desde Charles Babbage, nadie completó su máquina, por lo que el algoritmo nunca se implementó.<br />La idea de resolver un problema o de disponer de un algoritmo es bastante antigua, tal es así, que existía la errada creencia que no había problema que no se pudiera resolver y en base a ello, el matemático David Hilbert quiso descubrir un algoritmo para los algoritmos. Hoy en dia gracias a los trabajos de Kurt Gödel, Alonzo Church (calculo lamba), Alan Turing (maquina de turing), se sabe que dentro del universo de problemas, una pequeña parte es computable, luego que el objetivo que perseguia David Hilbert no era computable, es lo que se ha denominado como la computabilidad <br />Diagrama de flujo<br />Indice1. Introducción2. Situación Planteada 3. Bibliografía<br />1. Introducción<br />Un Diagrama de Flujo representa la esquematización gráfica de un algoritmo , el cual muestra gráficamente los pasos o procesos a seguir para alcanzar la solución de un problema . Su correcta construcción es sumamente importante porque , a partir del mismo se escribe un programa en algún Lenguaje de Programación. Si el Diagrama de Flujo está completo y correcto,el paso del mismo a un Lenguaje de Programación es relativamente simple y directo. Es importante resaltar que el Diagrama de Flujo muestra el sistema como una redde procesos funcionales conectados entre sí por quot; Tuberías quot; y quot; Depósitosquot; de datos que permite describir el movimientode los datos a través del Sistema. Este describirá : Lugares de Origen y Destino de los datos , Transformaciones a las que son sometidos los datos, Lugares en los que se almacenan los datos dentro del sistema , Los canales por donde circulan los datos. Además de esto podemos decir que este es una representación reticular de un Sistema ,el cual lo contempla en términos de sus componentes indicando el enlace entre los mismos. En el presente Trabajo se representará a través de un Diagrama de Flujo el Procedimientoque debe efectuarse para calcular el pago de los trabajadores de una Empresa .<br />2. Situación Planteada<br />A continuación se representara a través de un Diagrama de Flujo el procedimiento utilizado para el calculo de pago de los trabajadores por La Empresa FrutiPack , C.A. , la cual se encarga de elaborar, procesar y empacar jugos de excelentes calidadpara la Región Centro Occidental del País. Para estos cálculos se debe tomar en cuenta lo siguiente : <br />Sueldo Básico y las horas extras trabajadas . <br />Para el pago de las horas extras se tienen en cuenta además la categoría del trabajador , la cual se muestra a continuación :  <br />Cada trabajador puede tener como máximo 10 horas extras , si tienen más sólo se les pagarán 10. A los trabajadores con categoría mayor a 4 no se les debe pagar horas extras. <br />DatosSUE : Es una variable Real que expresa el sueldo básico del trabajador.CATE : Es una variable de tipo entero , que expresa la categoría del trabajador . 1 < CATE < CATE 8.HE : Es una variable de tipo entero , que expresa las horas extras trabajadas por el trabajador.PHE : Es una variable de tipo real. Almacena el costo de la hora extra , teniendo en cuenta la categoría del trabajador.NSUE : Es una variable de tipo real . Almacena lo que hay que pagarle al trabajador teniendo en cuenta su sueldo y las horas extras trabajadas.<br />Diagrama de FlujoInicio<br />SUE , CATE , HE<br />CATE<br />PHE = 15.000 PHE = 25.000 PHE = 30.000 PHE = 40.000 PHE = 0<br />SI NO<br />HE >10<br />NSUE=SUE+10*PHE NSUE =SUE+HE*PHE<br />NSUE<br />