SlideShare una empresa de Scribd logo
SESIÓN 1DISEÑO ESTRUCTURADO DE ALGORITMOSL.I. María de los Ángeles Martínez Morales.
TEMARIOConceptos básicos1.1. Introducción1.2. Definición de lenguaje, algoritmo y lenguajes algorítmicos1.3. Metodología para la solución de problemas por medio de computadoras.1.4. Entidades primitivas para el diseño de instrucciones.1.5. Técnicas para la formulación de algoritmos.
TEMARIOEstructuras algorítmicas secuenciales2.1. Asignación2.2. Entrada2.3. Salida2.4. Solución de problemasRutas algorítmicas condicionales3.1. Si entonces3.2. Si entonces sino3.2. En caso de3.4. Solución de problemas
TEMARIOEstructuras algorítmicas repetitivas4.1. Mientras hacer4.2. Hacer mientras4.3. Hacer para4.4. Solución de problemas
1. Conceptos básicosINTRODUCCIÓNLa escritura de un programa de computadora consiste normalmente en implementar un método de resolución de un problema, que se ha diseñado previamente. Con frecuencia este método es independiente de la computadora utilizada: es igualmente válido para muchas de ellas. En cualquier caso es el método, no el programa, el que debe estudiarse para comprender cómo está siendo abordado el problema.
1. Conceptos básicosEl objetivo del diseño estructurado de algoritmos es obtener la estructura modular y los detalles de proceso de un algoritmo. No se trata solamente de desarrollar un programa que “funcione”, sino que también sea fácil de mantener, que mejore su reutilización y se pueda probar y entender fácilmente.
1.2. 	Definición de lenguaje, algoritmo y lenguajes algorítmicosUn Lenguaje de Programaciónes aquél que es  utilizado para escribir programas de computadoras que puedan ser entendidos por ellas. Estos lenguajes se clasifican en tres grandes categorías Lenguajes de máquinaLenguajes de bajo nivelLenguajes de alto nivel
1.2. 	Definición de lenguaje, algoritmo y lenguajes algorítmicosUn algoritmo establece, de manera genérica e informal, la secuencia de pasos o acciones que resuelve un determinado problema. Los algoritmos constituyen la documentación principal que se necesita para poder iniciar la fase de codificación y, para representarlos, se utiliza, fundamentalmente, dos tipos de notación: pseudocódigo y diagramas de flujo. El diseño de un algoritmo es independiente del lenguaje que después se vaya a utilizar para codificarlo.
1.2. 	Definición de lenguaje, algoritmo y lenguajes algorítmicosALGORITMO:  Conjunto de instrucciones que especifican la secuencia ordenada de operaciones a realizar para resolver un problema. En otras palabras, un algoritmo es un método o fórmula para la resolución de un problema. Un algoritmo es independiente tanto del lenguaje de programación en que se exprese como del ordenador en el que se ejecute.
1.2. 	Definición de lenguaje, algoritmo y lenguajes algorítmicosALGORITMOUn algoritmo es un conjunto ordenado y finito de pasos usados en la solución de un problema o realización de una tarea.
CURIOSIDAD: El término algoritmo es muy anterior a la era informática: proviene de Mohammed al-Khowārizmī(apellido que se tradujo al latín empleando la palabra “algoritmus”), matemático persa del siglo IX que enunció paso a paso las reglas para sumar, restar, multiplicar y dividir números decimales.
Características de un algoritmo
1.2. 	Definición de lenguaje, algoritmo y lenguajes algorítmicosUn algoritmo esta compuesto por:La etapa de entrada indica los datos que son necesarios para la solución del problema en cuestión. En la etapa de proceso o procesamiento, es donde se realizan las operaciones que tienen que ver con la solución del problema.La etapa de salida es donde se mostrarán los resultados obtenidos en el procesamiento.
Algoritmos CotidianosSe refiere a todos aquéllos algoritmos que nos ayudan a resolver problemas diarios, y que los hacemos casi sin darnos cuenta de que estamos siguiendo una metodología para resolverlos.
1.2. 	Definición de lenguaje, algoritmo y lenguajes algorítmicosLos lenguajes algorítmicos nos proporcionan metodologías que permiten representar cualquier problema (o casi cualquiera) para posteriormente expresarlo en un lenguaje de computadora. De lo anterior podemos concluir que, expresando correctamente un problema mediante un algoritmo, podemos representarlo en cualquier lenguaje de programación.
1.2. 	Definición de lenguaje, algoritmo y lenguajes algorítmicosLos algoritmos pueden describirse utilizando diversos lenguajes. Cada uno de estos lenguajes permiten describir los pasos con mayor o menor detalle.La clasificación de los lenguajes para algoritmos puede enunciarse de la siguiente manera :Lenguaje NaturalLenguaje de Diagramas de flujoLenguaje Natural de Programación.Lenguaje de Programación de Algoritmos.
1.2. 	Definición de lenguaje, algoritmo y lenguajes algorítmicosLenguaje NaturalEs aquél que describe en español, para nuestro caso, los pasos a seguir utilizando un vocabulario cotidiano. Se le conoce  como lenguaje  jerga cuando se utilizan términos especializados de una determinada ciencia, profesión o grupo.
1.2. 	Definición de lenguaje, algoritmo y lenguajes algorítmicosLenguaje de Diagramas de flujoEs aquél que se vale de diversos símbolos para representar las ideas o acciones a desarrollar. Es útil para organizar las acciones o pasos de un algoritmo pero requiere de etapas posteriores para implementarse en un sistema de cómputo.
1.2. 	Definición de lenguaje, algoritmo y lenguajes algorítmicosLenguaje Natural de Programación.Son aquéllos que están orientados a la solución de problemas que se definen de una manera precisa. Generalmente son aplicados para la elaboración de fórmulas o métodos científicos.Tiene las siguientes características :       Evita la ambigüedad (algo confuso que se puede interpretar de varias maneras).Son precisos y bien definidos.Utilizan términos familiares al sentido común.Elimina instrucciones innecesarias.
1.2. 	Definición de lenguaje, algoritmo y lenguajes algorítmicosLenguaje de Programación de Algoritmos.Es aquél que se utiliza para introducir en la computadora un algoritmo específico. Se les conoce también como Lenguaje de Programación.
1.3. Metodología para la solución de problemas por medio de computadoras.A fin de resolver un problema utilizando sistemas de cómputo, debe seguirse una serie de pasos que permiten avanzar por etapas bien definidas hacia la solución:Definición de ProblemaAnálisis de los DatosDiseño de la SoluciónCodificaciónPrueba y DepuraciónDocumentaciónMantenimiento
Definición del problemaEstá dada en sí por el enunciado del problema, el cual debe ser claro y complejo. Es importante que conozcamos exactamente "que se desea obtener al final del proceso" ; mientras esto no se comprenda no puede pasarse a la siguiente etapa.
Análisis de los datosPara poder definir con precisión el problema se requiere que las especificaciones de entrada y salida sean descritas con detalle ya que esto es un requisito para lograr una solución eficaz. Una vez que el problema ha sido definido y comprendido, deben analizarse los siguientes aspectos :
Análisis de los datosLos resultados esperados.Los datos de entrada disponibles.Herramientas a nuestro alcance para manipular los datos y alcanzar un resultado (fórmulas, tablas, accesorios diversos).
Diseño de la soluciónUna computadora no tiene capacidad para solucionar problemas más que cuando se le proporcionan los sucesivos pasos a realizar, esto se refiere a la obtención de un algoritmo que resuelva adecuadamente el problema. En caso de obtenerse varios algoritmos, seleccionar uno de ellos utilizando criterios ya conocidos.Esta etapa incluye la descripción del algoritmo resultante en un lenguaje natural, de diagrama de flujo o natural de programación.Como puede verse, solo se establece la metodología para alcanzar la solución en forma conceptual, es decir ; sin alcanzar la implementación en el sistema de cómputo.
CodificaciónSe refiere a la obtención de un programa definitivo que pueda ser comprensible para la máquina. Incluye una etapa que se reconoce como compilación.Si la codificación original se realizó en papel, previo a la compilación deberá existir un paso conocido como transcripción.
Prueba y depuraciónUna vez que se ha obtenido el programa ejecutable, este es sometido a prueba a fin de determinar si resuelve o no el problema planteado en forma satisfactoria.Las pruebas que se le aplican son de diversa índole y generalmente dependen del tipo de problema que se está resolviendo. Comúnmente se inicia la prueba de un programa introduciendo datos válidos, inválidos e incongruentes y observando como reacciona en cada ocasión.El proceso de depuración consiste en localizar los errores y corregirlos en caso de que estos existan. Si no existen errores, puede entenderse la depuración como una etapa de refinamiento en la que se ajustan detalles para optimizar el desempeño del programa.
DocumentaciónDebido a que el programa resultante en esta etapa se encuentra totalmente depurado (sin errores), se procede a la utilización para resolver problemas del tipo que dio origen a su diseño. En vista de que esta utilización no podrá ser supervisada en todas las ocasiones por el programador, debe crearse un manual o guía de operación que indique los pasos a seguir para utilizar el programa.
MantenimientoSe refiere a las actualizaciones que deban aplicarse al programa cuando las circunstancias así lo requieran. Este programa deberá ser susceptible de ser modificado para adecuarlo a nuevas condiciones de operación.Cualquier actualización o cambio en el programa deberá reflejarse en su documentación.
1.4. Entidades primitivas para el diseño de instrucciones.Tipos de DatosOperadores y operandosExpresiones
Tipos de DatosUn dato se define como la expresión general que describe los objetos con los cuales opera una computadora. Los datos de entrada se transforman por el programa, después de las etapas intermedias, en datos de salida.
Tipos de DatosLos datos se clasifican en diversas categorías, según el tipo de máquina o del lenguaje en uso. Generalmente podemos encontrar las siguientes categorías :NuméricosLógicosCadenas
Datos numéricosSon aquéllos que representan una cantidad o valor determinado.  Su representación se lleva a cabo en los formatos ya conocidos (enteros, punto y fracciones decimales si estas existen). Tipo entero(Integer)Tipo Real
Tipo de Dato Cadena o CarácterSon los datos que representan información textual (palabras, frases, símbolos, etc).Pueden distinguirse porque son delimitados por apóstrofes o comillas. No representan valor alguno para efectos numéricos. Datos de Tipo Carácter (Char)Datos de Tipo Cadena (String)
Tipos de Datos LógicosBooleanoFalsoVerdaderoSe utiliza para representar las alternativas (si/no) a determinadas condiciones. Por ejemplo, cuando se pide si un valor entero sea primo, la respuesta será verdadera o falsa, según sea.
Datos Simples y CompuestosUn dato simple es indivisible (atómico), es decir, no se puede descomponer.Ejemplo 1: Un año es un dato simple.Año...:2006Un año se expresa con un número entero, el cual no se puede descomponer.
Datos Simples y CompuestosUn dato compuesto está formado por otros datos.Ejemplo 2: una fecha es un dato compuesto por tres datos simples (día, mes, año).   Fecha:      día...: 30      mes...: 11      año...: 2006
Constantes y variablesUna Constante es aquélla que no cambia de valor durante la ejecución de un programa (o comprobación de un algoritmo en este  caso).  Se representa en la forma descrita para cada categoría.Las Variables son aquéllas que pueden modificar su valor durante la ejecución de un programa (idem).Su representación se da a través de letras y símbolos generalmente numéricos a los que se les asigna un valor.
Operadores y Operandos  OPERADORESUn operador es el símbolo que determina el tipo de operación o relación que habrá de establecerse entre los operandos para alcanzar un resultado.
Operadores y Operandos  Los operadores se clasifican en tres grupos: AritméticosRelacionalesLógicos
Operadores AritméticosSon aquéllos que permiten la realización de cálculos aritméticos. Utilizan operandos numéricos y proporcionan resultados numéricos.
Operadores RelacionalesPermiten realizar comparaciones de valores de tipo numérico o carácter. Estos operadores sirven para expresar las condiciones en los algoritmos. Proporcionan resultados lógicos.
Operadores LógicosSon aquéllos que permiten la combinación de condiciones para formar una sola expresión lógica. Utilizan operandos lógicos y proporcionan resultados lógicos también.
Prioridad de los operadores aritméticos
Prioridad de los operadores lógicos y relacionales
AsignaciónUna instrucción de asignación (o simplemente asignación) consiste en asignar el resultado de la evaluación de una expresión a una variable.Ejemplo 1: Dadas las declaraciones   PI = 3.141592   realarea, longitud, radio = 5.78
EntradaUna instrucción de entrada (o simplemente entrada) consiste en asignar a una o más variables, uno o más valores (datos) recibidos desde el exterior. Normalmente, los datos son recogidos desde la entrada estándar (el teclado), pero, también existen otros dispositivos de entrada (el ratón, el escáner,...).
Entradaleer( <nombre_de_la_variable_1>,         <nombre_de_la_variable_2>,          ...,         <nombre_de_la_variable_n>)leer( <lista_de_variables> )
SalidaUna instrucción de salida (o simplemente salida) consiste en llevar hacia el exterior los valores (datos) obtenidos de la evaluación de una lista de expresiones. Normalmente, los datos son enviados a la salida estándar (la pantalla), pero, también existen otros dispositivos de salida (la impresora, el plotter,...).
Salidaescribir( <expresión_1>, ..., <expresión_n> )escribir( <lista_de_expresiones> )
ExpresionesLas expresiones son combinaciones de constantes, variables, símbolos de operadores, paréntesis y nombres de funciones especiales. Las mismas ideas son utilizadas en notación matemática tradicional ; por ejemplo :a + b ( b+2)     Aquí los paréntesis indican el orden de cálculo.
1.5. Técnicas para la formulación de algoritmos.Las tres técnicas de formulación de algoritmos más populares son :Diagrama de flujoPseudocódigoDiagrama estructurado
REFERENCIASCASTILLO, Víctor.  Lenguajes algorítmicos.  Recuperado el 10 de Julio de 2011 de http://docente.ucol.mx/abolio/tareas/Lenguaje.pdfINSTITUTO TECNOLOGICO DE LA PAZ. Tutorial de  diseño estructruturado de algoritmos, recuperado el 10 de Julio de 2011 de http://sistemas.itlp.edu.mx/tutoriales/algoritmos/RODRÍGUEZ, Sala Jesús. (2003). Introducción a la programación: teoría y práctica. Recuperado el 10 de Julio de 2011 de http://books.google.com.mx/books?id=nLMJsInMyBwC&pg=PA38&dq=introduccion+al+dise%C3%B1o+estructurado+de+algoritmos&hl=es&ei=llMaToORKoLUtQOG_czDDQ&sa=X&oi=book_result&ct=result&resnum=1&ved=0CCgQ6AEwAA#v=onepage&q&f=falseUNIVERSIDAD NACIONAL DE COLOMBIA, Diseño estructurado de algoritmos, recuperado el 10 de Julio de 2011 de http://www.virtual.unal.edu.co/cursos/ingenieria/2001839/modulo1/cap_02/leccion_1.htm

Más contenido relacionado

PPTX
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
PPTX
Memoria dinamica
PPTX
Software caja negra y caja blanca
PPT
Ejercicios
PPTX
LINEAS DE PRODUCTOS DE SOFTWARE Y MÉTODO WATCH
DOCX
Tareas de ingenieria de requerimientos
PPTX
Clasificasion de lenguajes
PPT
Presentacion PseudocóDigo
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
Memoria dinamica
Software caja negra y caja blanca
Ejercicios
LINEAS DE PRODUCTOS DE SOFTWARE Y MÉTODO WATCH
Tareas de ingenieria de requerimientos
Clasificasion de lenguajes
Presentacion PseudocóDigo

La actualidad más candente (20)

PDF
Velasco lopez investigacion_clases2
DOCX
Componentes y evolucion del modelado de negocios(investigacion)
PDF
Estructuras basicas de un algoritmo
PDF
P. estructurada vs. programación orientada a objetos
PPT
instruccion de control
PPTX
Estructuras de control
PDF
Interrupciones
PPTX
diapositivas algoritmos
PDF
maquinas de turing
PDF
Estructuras de control
PPT
Rol del Analista de Sistemas
PPTX
Lenguajes de programacion para Robotica
PPT
AnáLisis De Algoritmos1
PPTX
PARADIGMA IMPERATIVO
PPTX
IMPORTANCIA DEL ANÁLISIS DE REQUERIMIENTOS PARA EL DESARROLLO DE SISTEMAS
TXT
Serie Fibonacci en C
PPTX
JAVA Interfaz gráfica (GUI)
PPTX
Programación aplicada a robots (Gestual y textual)
PPSX
Ppt algoritmo
PPTX
Busqueda Ascenso Colinas
Velasco lopez investigacion_clases2
Componentes y evolucion del modelado de negocios(investigacion)
Estructuras basicas de un algoritmo
P. estructurada vs. programación orientada a objetos
instruccion de control
Estructuras de control
Interrupciones
diapositivas algoritmos
maquinas de turing
Estructuras de control
Rol del Analista de Sistemas
Lenguajes de programacion para Robotica
AnáLisis De Algoritmos1
PARADIGMA IMPERATIVO
IMPORTANCIA DEL ANÁLISIS DE REQUERIMIENTOS PARA EL DESARROLLO DE SISTEMAS
Serie Fibonacci en C
JAVA Interfaz gráfica (GUI)
Programación aplicada a robots (Gestual y textual)
Ppt algoritmo
Busqueda Ascenso Colinas
Publicidad

Destacado (20)

PDF
Diseño Estructurado de Algoritmos
PPTX
EJEMPLO DE ALGORITMOS ESTRUCTURADOS
DOCX
Algoritmo variables, constantes, tipos de datos y asignacion
PPTX
Informatica II - 2 Metodologia de Solucion de Problemas
PDF
Clase 3 Unidad 2 Parte 2
PDF
Capitulo 09 Estructura De Un Algoritmo
PPT
Algorítmos - Conceptos básicos
PDF
21 problemas de algoritmo resueltos
PPT
Algoritmosconeptosbasicos 1
PPT
Bloque0 Pacie
PPT
2 Conceptos De Programacion
PPTX
Unidad 4 Técnicas para la formulación de algoritmos
DOC
Algoritmos computacionales
PPTX
Algoritmos y pseudocodigo
PPTX
Heuristico y didactica metodos deductivo e inductivo
PPTX
Diseño de Algoritmos
PDF
Estructuras algoritmicas representación
PDF
Diseño estructurado de algoritmos
PPSX
Expresiones logicas
PPT
Entidades Primitivas Para Algoritmos
Diseño Estructurado de Algoritmos
EJEMPLO DE ALGORITMOS ESTRUCTURADOS
Algoritmo variables, constantes, tipos de datos y asignacion
Informatica II - 2 Metodologia de Solucion de Problemas
Clase 3 Unidad 2 Parte 2
Capitulo 09 Estructura De Un Algoritmo
Algorítmos - Conceptos básicos
21 problemas de algoritmo resueltos
Algoritmosconeptosbasicos 1
Bloque0 Pacie
2 Conceptos De Programacion
Unidad 4 Técnicas para la formulación de algoritmos
Algoritmos computacionales
Algoritmos y pseudocodigo
Heuristico y didactica metodos deductivo e inductivo
Diseño de Algoritmos
Estructuras algoritmicas representación
Diseño estructurado de algoritmos
Expresiones logicas
Entidades Primitivas Para Algoritmos
Publicidad

Similar a Diseño Estructurado de Algoritmos (20)

DOCX
Algoritmos
DOCX
Algoritmos
DOCX
Algoritmos
DOCX
Algoritmos
DOCX
9º Algoritmos
DOCX
Algoritmos
DOCX
Algoritmos
PDF
Clase 1 lógica de programación
PPTX
Diagramas de flujo
PPTX
Unidad 1
PPTX
Clase de programacion
DOCX
PPTX
3ra evaluacion, presentacion
PPTX
Clase 1 de introduccion a la programacion
PDF
01 texto - módulo n° 1 • algoritmos
PPTX
Conceptos básicos y metodología de la programación
PPTX
Algoritmos y metodología para la resolución de problemas basada en el computador
PPTX
Unidad 1
PDF
conceptos básicos y metodológicos.pdff
Algoritmos
Algoritmos
Algoritmos
Algoritmos
9º Algoritmos
Algoritmos
Algoritmos
Clase 1 lógica de programación
Diagramas de flujo
Unidad 1
Clase de programacion
3ra evaluacion, presentacion
Clase 1 de introduccion a la programacion
01 texto - módulo n° 1 • algoritmos
Conceptos básicos y metodología de la programación
Algoritmos y metodología para la resolución de problemas basada en el computador
Unidad 1
conceptos básicos y metodológicos.pdff

Más de Mary Martínez Morales (20)

PDF
Innovación Tecnológica y Emprendimiento
PDF
Rubrica video
DOC
Formato inscripcion fomi-2013 - final
PDF
Proyecto investigacion-sitio web bic 23
PDF
Proyecto de investicacion centro ecoturismo zuzul
PDF
Instalar y configurar un curso en línea de informática ii
PDF
Rubrica blog-peeweb(2)
PDF
Formato guia del_instructor_2013
PPTX
PPTX
PPTX
DOCX
Ejemplos delimitacion-de-temas
DOCX
Manual office-2010
DOCX
Ejemplo bosquejo monografia
DOCX
Ejemplo anteproyecto investigacion
PDF
Manual office-2010
PDF
Manual office-2010
DOCX
Citasyreferencias
Innovación Tecnológica y Emprendimiento
Rubrica video
Formato inscripcion fomi-2013 - final
Proyecto investigacion-sitio web bic 23
Proyecto de investicacion centro ecoturismo zuzul
Instalar y configurar un curso en línea de informática ii
Rubrica blog-peeweb(2)
Formato guia del_instructor_2013
Ejemplos delimitacion-de-temas
Manual office-2010
Ejemplo bosquejo monografia
Ejemplo anteproyecto investigacion
Manual office-2010
Manual office-2010
Citasyreferencias

Último (20)

PDF
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
PPTX
Welcome to the 8th Physical Science Class 2025-2026
DOCX
V UNIDAD - SEGUNDO GRADO. del mes de agosto
PDF
Como Potenciar las Emociones Positivas y Afrontar las Negativas Ccesa007.pdf
PDF
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
PDF
Tomo 1 de biologia gratis ultra plusenmas
PDF
COMPLETO__PROYECTO_VIVAN LOS NIÑOS Y SUS DERECHOS_EDUCADORASSOS.pdf
PDF
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
PDF
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
PDF
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
PDF
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
PDF
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
PDF
biología es un libro sobre casi todo el tema de biología
PDF
Escuelas Desarmando una mirada subjetiva a la educación
PPTX
Presentación de la Cetoacidosis diabetica.pptx
PDF
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
PDF
ciencias-1.pdf libro cuarto basico niños
DOCX
PLAN DE CASTELLANO 2021 actualizado a la normativa
DOCX
Informe_practica pre Final.docxddadssasdddddddddddddddddddddddddddddddddddddddd
PDF
Mi Primer Millon - Poissant - Godefroy Ccesa007.pdf
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
Welcome to the 8th Physical Science Class 2025-2026
V UNIDAD - SEGUNDO GRADO. del mes de agosto
Como Potenciar las Emociones Positivas y Afrontar las Negativas Ccesa007.pdf
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
Tomo 1 de biologia gratis ultra plusenmas
COMPLETO__PROYECTO_VIVAN LOS NIÑOS Y SUS DERECHOS_EDUCADORASSOS.pdf
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
biología es un libro sobre casi todo el tema de biología
Escuelas Desarmando una mirada subjetiva a la educación
Presentación de la Cetoacidosis diabetica.pptx
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
ciencias-1.pdf libro cuarto basico niños
PLAN DE CASTELLANO 2021 actualizado a la normativa
Informe_practica pre Final.docxddadssasdddddddddddddddddddddddddddddddddddddddd
Mi Primer Millon - Poissant - Godefroy Ccesa007.pdf

Diseño Estructurado de Algoritmos

  • 1. SESIÓN 1DISEÑO ESTRUCTURADO DE ALGORITMOSL.I. María de los Ángeles Martínez Morales.
  • 2. TEMARIOConceptos básicos1.1. Introducción1.2. Definición de lenguaje, algoritmo y lenguajes algorítmicos1.3. Metodología para la solución de problemas por medio de computadoras.1.4. Entidades primitivas para el diseño de instrucciones.1.5. Técnicas para la formulación de algoritmos.
  • 3. TEMARIOEstructuras algorítmicas secuenciales2.1. Asignación2.2. Entrada2.3. Salida2.4. Solución de problemasRutas algorítmicas condicionales3.1. Si entonces3.2. Si entonces sino3.2. En caso de3.4. Solución de problemas
  • 4. TEMARIOEstructuras algorítmicas repetitivas4.1. Mientras hacer4.2. Hacer mientras4.3. Hacer para4.4. Solución de problemas
  • 5. 1. Conceptos básicosINTRODUCCIÓNLa escritura de un programa de computadora consiste normalmente en implementar un método de resolución de un problema, que se ha diseñado previamente. Con frecuencia este método es independiente de la computadora utilizada: es igualmente válido para muchas de ellas. En cualquier caso es el método, no el programa, el que debe estudiarse para comprender cómo está siendo abordado el problema.
  • 6. 1. Conceptos básicosEl objetivo del diseño estructurado de algoritmos es obtener la estructura modular y los detalles de proceso de un algoritmo. No se trata solamente de desarrollar un programa que “funcione”, sino que también sea fácil de mantener, que mejore su reutilización y se pueda probar y entender fácilmente.
  • 7. 1.2. Definición de lenguaje, algoritmo y lenguajes algorítmicosUn Lenguaje de Programaciónes aquél que es  utilizado para escribir programas de computadoras que puedan ser entendidos por ellas. Estos lenguajes se clasifican en tres grandes categorías Lenguajes de máquinaLenguajes de bajo nivelLenguajes de alto nivel
  • 8. 1.2. Definición de lenguaje, algoritmo y lenguajes algorítmicosUn algoritmo establece, de manera genérica e informal, la secuencia de pasos o acciones que resuelve un determinado problema. Los algoritmos constituyen la documentación principal que se necesita para poder iniciar la fase de codificación y, para representarlos, se utiliza, fundamentalmente, dos tipos de notación: pseudocódigo y diagramas de flujo. El diseño de un algoritmo es independiente del lenguaje que después se vaya a utilizar para codificarlo.
  • 9. 1.2. Definición de lenguaje, algoritmo y lenguajes algorítmicosALGORITMO: Conjunto de instrucciones que especifican la secuencia ordenada de operaciones a realizar para resolver un problema. En otras palabras, un algoritmo es un método o fórmula para la resolución de un problema. Un algoritmo es independiente tanto del lenguaje de programación en que se exprese como del ordenador en el que se ejecute.
  • 10. 1.2. Definición de lenguaje, algoritmo y lenguajes algorítmicosALGORITMOUn algoritmo es un conjunto ordenado y finito de pasos usados en la solución de un problema o realización de una tarea.
  • 11. CURIOSIDAD: El término algoritmo es muy anterior a la era informática: proviene de Mohammed al-Khowārizmī(apellido que se tradujo al latín empleando la palabra “algoritmus”), matemático persa del siglo IX que enunció paso a paso las reglas para sumar, restar, multiplicar y dividir números decimales.
  • 13. 1.2. Definición de lenguaje, algoritmo y lenguajes algorítmicosUn algoritmo esta compuesto por:La etapa de entrada indica los datos que son necesarios para la solución del problema en cuestión. En la etapa de proceso o procesamiento, es donde se realizan las operaciones que tienen que ver con la solución del problema.La etapa de salida es donde se mostrarán los resultados obtenidos en el procesamiento.
  • 14. Algoritmos CotidianosSe refiere a todos aquéllos algoritmos que nos ayudan a resolver problemas diarios, y que los hacemos casi sin darnos cuenta de que estamos siguiendo una metodología para resolverlos.
  • 15. 1.2. Definición de lenguaje, algoritmo y lenguajes algorítmicosLos lenguajes algorítmicos nos proporcionan metodologías que permiten representar cualquier problema (o casi cualquiera) para posteriormente expresarlo en un lenguaje de computadora. De lo anterior podemos concluir que, expresando correctamente un problema mediante un algoritmo, podemos representarlo en cualquier lenguaje de programación.
  • 16. 1.2. Definición de lenguaje, algoritmo y lenguajes algorítmicosLos algoritmos pueden describirse utilizando diversos lenguajes. Cada uno de estos lenguajes permiten describir los pasos con mayor o menor detalle.La clasificación de los lenguajes para algoritmos puede enunciarse de la siguiente manera :Lenguaje NaturalLenguaje de Diagramas de flujoLenguaje Natural de Programación.Lenguaje de Programación de Algoritmos.
  • 17. 1.2. Definición de lenguaje, algoritmo y lenguajes algorítmicosLenguaje NaturalEs aquél que describe en español, para nuestro caso, los pasos a seguir utilizando un vocabulario cotidiano. Se le conoce  como lenguaje  jerga cuando se utilizan términos especializados de una determinada ciencia, profesión o grupo.
  • 18. 1.2. Definición de lenguaje, algoritmo y lenguajes algorítmicosLenguaje de Diagramas de flujoEs aquél que se vale de diversos símbolos para representar las ideas o acciones a desarrollar. Es útil para organizar las acciones o pasos de un algoritmo pero requiere de etapas posteriores para implementarse en un sistema de cómputo.
  • 19. 1.2. Definición de lenguaje, algoritmo y lenguajes algorítmicosLenguaje Natural de Programación.Son aquéllos que están orientados a la solución de problemas que se definen de una manera precisa. Generalmente son aplicados para la elaboración de fórmulas o métodos científicos.Tiene las siguientes características :      Evita la ambigüedad (algo confuso que se puede interpretar de varias maneras).Son precisos y bien definidos.Utilizan términos familiares al sentido común.Elimina instrucciones innecesarias.
  • 20. 1.2. Definición de lenguaje, algoritmo y lenguajes algorítmicosLenguaje de Programación de Algoritmos.Es aquél que se utiliza para introducir en la computadora un algoritmo específico. Se les conoce también como Lenguaje de Programación.
  • 21. 1.3. Metodología para la solución de problemas por medio de computadoras.A fin de resolver un problema utilizando sistemas de cómputo, debe seguirse una serie de pasos que permiten avanzar por etapas bien definidas hacia la solución:Definición de ProblemaAnálisis de los DatosDiseño de la SoluciónCodificaciónPrueba y DepuraciónDocumentaciónMantenimiento
  • 22. Definición del problemaEstá dada en sí por el enunciado del problema, el cual debe ser claro y complejo. Es importante que conozcamos exactamente "que se desea obtener al final del proceso" ; mientras esto no se comprenda no puede pasarse a la siguiente etapa.
  • 23. Análisis de los datosPara poder definir con precisión el problema se requiere que las especificaciones de entrada y salida sean descritas con detalle ya que esto es un requisito para lograr una solución eficaz. Una vez que el problema ha sido definido y comprendido, deben analizarse los siguientes aspectos :
  • 24. Análisis de los datosLos resultados esperados.Los datos de entrada disponibles.Herramientas a nuestro alcance para manipular los datos y alcanzar un resultado (fórmulas, tablas, accesorios diversos).
  • 25. Diseño de la soluciónUna computadora no tiene capacidad para solucionar problemas más que cuando se le proporcionan los sucesivos pasos a realizar, esto se refiere a la obtención de un algoritmo que resuelva adecuadamente el problema. En caso de obtenerse varios algoritmos, seleccionar uno de ellos utilizando criterios ya conocidos.Esta etapa incluye la descripción del algoritmo resultante en un lenguaje natural, de diagrama de flujo o natural de programación.Como puede verse, solo se establece la metodología para alcanzar la solución en forma conceptual, es decir ; sin alcanzar la implementación en el sistema de cómputo.
  • 26. CodificaciónSe refiere a la obtención de un programa definitivo que pueda ser comprensible para la máquina. Incluye una etapa que se reconoce como compilación.Si la codificación original se realizó en papel, previo a la compilación deberá existir un paso conocido como transcripción.
  • 27. Prueba y depuraciónUna vez que se ha obtenido el programa ejecutable, este es sometido a prueba a fin de determinar si resuelve o no el problema planteado en forma satisfactoria.Las pruebas que se le aplican son de diversa índole y generalmente dependen del tipo de problema que se está resolviendo. Comúnmente se inicia la prueba de un programa introduciendo datos válidos, inválidos e incongruentes y observando como reacciona en cada ocasión.El proceso de depuración consiste en localizar los errores y corregirlos en caso de que estos existan. Si no existen errores, puede entenderse la depuración como una etapa de refinamiento en la que se ajustan detalles para optimizar el desempeño del programa.
  • 28. DocumentaciónDebido a que el programa resultante en esta etapa se encuentra totalmente depurado (sin errores), se procede a la utilización para resolver problemas del tipo que dio origen a su diseño. En vista de que esta utilización no podrá ser supervisada en todas las ocasiones por el programador, debe crearse un manual o guía de operación que indique los pasos a seguir para utilizar el programa.
  • 29. MantenimientoSe refiere a las actualizaciones que deban aplicarse al programa cuando las circunstancias así lo requieran. Este programa deberá ser susceptible de ser modificado para adecuarlo a nuevas condiciones de operación.Cualquier actualización o cambio en el programa deberá reflejarse en su documentación.
  • 30. 1.4. Entidades primitivas para el diseño de instrucciones.Tipos de DatosOperadores y operandosExpresiones
  • 31. Tipos de DatosUn dato se define como la expresión general que describe los objetos con los cuales opera una computadora. Los datos de entrada se transforman por el programa, después de las etapas intermedias, en datos de salida.
  • 32. Tipos de DatosLos datos se clasifican en diversas categorías, según el tipo de máquina o del lenguaje en uso. Generalmente podemos encontrar las siguientes categorías :NuméricosLógicosCadenas
  • 33. Datos numéricosSon aquéllos que representan una cantidad o valor determinado. Su representación se lleva a cabo en los formatos ya conocidos (enteros, punto y fracciones decimales si estas existen). Tipo entero(Integer)Tipo Real
  • 34. Tipo de Dato Cadena o CarácterSon los datos que representan información textual (palabras, frases, símbolos, etc).Pueden distinguirse porque son delimitados por apóstrofes o comillas. No representan valor alguno para efectos numéricos. Datos de Tipo Carácter (Char)Datos de Tipo Cadena (String)
  • 35. Tipos de Datos LógicosBooleanoFalsoVerdaderoSe utiliza para representar las alternativas (si/no) a determinadas condiciones. Por ejemplo, cuando se pide si un valor entero sea primo, la respuesta será verdadera o falsa, según sea.
  • 36. Datos Simples y CompuestosUn dato simple es indivisible (atómico), es decir, no se puede descomponer.Ejemplo 1: Un año es un dato simple.Año...:2006Un año se expresa con un número entero, el cual no se puede descomponer.
  • 37. Datos Simples y CompuestosUn dato compuesto está formado por otros datos.Ejemplo 2: una fecha es un dato compuesto por tres datos simples (día, mes, año).   Fecha:      día...: 30      mes...: 11      año...: 2006
  • 38. Constantes y variablesUna Constante es aquélla que no cambia de valor durante la ejecución de un programa (o comprobación de un algoritmo en este  caso).  Se representa en la forma descrita para cada categoría.Las Variables son aquéllas que pueden modificar su valor durante la ejecución de un programa (idem).Su representación se da a través de letras y símbolos generalmente numéricos a los que se les asigna un valor.
  • 39. Operadores y Operandos  OPERADORESUn operador es el símbolo que determina el tipo de operación o relación que habrá de establecerse entre los operandos para alcanzar un resultado.
  • 40. Operadores y Operandos  Los operadores se clasifican en tres grupos: AritméticosRelacionalesLógicos
  • 41. Operadores AritméticosSon aquéllos que permiten la realización de cálculos aritméticos. Utilizan operandos numéricos y proporcionan resultados numéricos.
  • 42. Operadores RelacionalesPermiten realizar comparaciones de valores de tipo numérico o carácter. Estos operadores sirven para expresar las condiciones en los algoritmos. Proporcionan resultados lógicos.
  • 43. Operadores LógicosSon aquéllos que permiten la combinación de condiciones para formar una sola expresión lógica. Utilizan operandos lógicos y proporcionan resultados lógicos también.
  • 44. Prioridad de los operadores aritméticos
  • 45. Prioridad de los operadores lógicos y relacionales
  • 46. AsignaciónUna instrucción de asignación (o simplemente asignación) consiste en asignar el resultado de la evaluación de una expresión a una variable.Ejemplo 1: Dadas las declaraciones   PI = 3.141592   realarea, longitud, radio = 5.78
  • 47. EntradaUna instrucción de entrada (o simplemente entrada) consiste en asignar a una o más variables, uno o más valores (datos) recibidos desde el exterior. Normalmente, los datos son recogidos desde la entrada estándar (el teclado), pero, también existen otros dispositivos de entrada (el ratón, el escáner,...).
  • 48. Entradaleer( <nombre_de_la_variable_1>,         <nombre_de_la_variable_2>,          ...,         <nombre_de_la_variable_n>)leer( <lista_de_variables> )
  • 49. SalidaUna instrucción de salida (o simplemente salida) consiste en llevar hacia el exterior los valores (datos) obtenidos de la evaluación de una lista de expresiones. Normalmente, los datos son enviados a la salida estándar (la pantalla), pero, también existen otros dispositivos de salida (la impresora, el plotter,...).
  • 50. Salidaescribir( <expresión_1>, ..., <expresión_n> )escribir( <lista_de_expresiones> )
  • 51. ExpresionesLas expresiones son combinaciones de constantes, variables, símbolos de operadores, paréntesis y nombres de funciones especiales. Las mismas ideas son utilizadas en notación matemática tradicional ; por ejemplo :a + b ( b+2)     Aquí los paréntesis indican el orden de cálculo.
  • 52. 1.5. Técnicas para la formulación de algoritmos.Las tres técnicas de formulación de algoritmos más populares son :Diagrama de flujoPseudocódigoDiagrama estructurado
  • 53. REFERENCIASCASTILLO, Víctor. Lenguajes algorítmicos. Recuperado el 10 de Julio de 2011 de http://docente.ucol.mx/abolio/tareas/Lenguaje.pdfINSTITUTO TECNOLOGICO DE LA PAZ. Tutorial de diseño estructruturado de algoritmos, recuperado el 10 de Julio de 2011 de http://sistemas.itlp.edu.mx/tutoriales/algoritmos/RODRÍGUEZ, Sala Jesús. (2003). Introducción a la programación: teoría y práctica. Recuperado el 10 de Julio de 2011 de http://books.google.com.mx/books?id=nLMJsInMyBwC&pg=PA38&dq=introduccion+al+dise%C3%B1o+estructurado+de+algoritmos&hl=es&ei=llMaToORKoLUtQOG_czDDQ&sa=X&oi=book_result&ct=result&resnum=1&ved=0CCgQ6AEwAA#v=onepage&q&f=falseUNIVERSIDAD NACIONAL DE COLOMBIA, Diseño estructurado de algoritmos, recuperado el 10 de Julio de 2011 de http://www.virtual.unal.edu.co/cursos/ingenieria/2001839/modulo1/cap_02/leccion_1.htm