SlideShare une entreprise Scribd logo
1  sur  88
Introducción a  la Lógica de  Programación Fernando de la Cruz Naranjo Grisales
Qué es Lógica?
Concepto de Lógica La lógica es una ciencia formal y una rama de la filosofía que estudia los principios de la demostración e inferencia válida. La palabra deriva del griego antiguo λογική (logike), que significa "dotado de razón, intelectual, dialéctico, argumentativo", que a su vez viene de λόγος (logos), "palabra, pensamiento, idea, argumento, razón o principio". Wikipedia
La que conocimos: Lógica Proposicional La lógica proposicional es una rama de la lógica clásica que estudia las proposiciones o sentencias lógicas, sus posibles evaluaciones de verdad y en el caso ideal, su nivel absoluto de verdad. Wikipedia Negación Disyunción (o) Conjunción (y) Condicional Bicondicional Disyunción exclusiva
Algoritmos
Algoritmo Palabra extraña De designación desconocida Todo el tiempo hacemos uso de algoritmos
Algoritmo Etimología: Proviene del nombre del matemático persa Mohammed Al-khowanzmi, cuyo apellido traducido al latín es Algorismus
Problema  Es un asunto o un conjunto de cuestiones que se plantean para ser resueltas. La naturaleza de los problemas varía con el ámbito o el contexto: problemas matemáticos, químicos, filosóficos, etc. Es importante que al abordar un problema se tenga una descripción simple y precisa del mismo, de lo contrario resultaría complejo modular, simular, o programar su solución en un ordenador.
Algoritmo de la llanta Ejemplo tradicional de un algoritmo: Cambiar la llanta pinchada de un automóvil Buscar herramientas, rueda de repuesto y el triángulo rojo de señalización Ubicar el triángulo en el lugar adecuado Ir al lugar de la rueda averiada Sacar las tuercas Colocar el gato Levantar el carro Sacar la rueda mala Colocar la rueda de repuesto Colocar las tuercas Apretar tuercas Guardar las herramientas
Algoritmo para compra de un libro Inicio Saber cual es el libro adquirir Desplazarnos hacia una librería Preguntar si tienen el libro si lo tienen adquirirlo y parar allí si no lo tienen ir al paso 3 Fin
Definiciones de Algoritmo en Programación “Es un conjunto finito de reglas que proveen una secuencia de operaciones para resolver un problema específico. La noción de algoritmo es básica para toda la programación de computadores” – KNUTH Profesor de la Universidad de Stanford “Es una secuencia ordenada y no ambigua de pasos que llevan a la solución de un problema dado” – TREMBLAY “Un concepto central de la programación y de la ciencia de la computación es el concepto de algoritmo” – WIRTH Profesor de la Universidad de Zurich y co-responsable de la creación de lenguajes de programación como ALGOL, PASCAL y MODULA2
Algoritmo en Programación Conjunto de acciones que especifican la secuencia de operaciones  realizar, en orden, para resolver un problema Los algoritmos son independientes tanto del lenguaje de programación como del computador que los ejecuta.
Problemas de Programación  Un programador es una persona que resuelve problemas, y para llegar a ser un programador eficaz se necesita aprender a resolver problemas de un modo riguroso y sistemático Definición Formas de solución Solución Diseño Algoritmo Ejecución Problema Análisis Programar Estudio Lenguaje
Solución de un  Problema en Programación Algunos de los pasos para solucionar un problema son:  ,[object Object]
Diseño del algoritmo, que describe la secuencia ordenada de pasos que conduce a la solución de un problema dado.
Expresar el algoritmo como un programa en un lenguaje de programación adecuado (Fase de Codificación)
Ejecución y validación del programa por el computador,[object Object]
 Preciso:indicar exactamente el orden de realización de las instrucciones
Elementos de los Algoritmos ,[object Object]
Información
Constantes, Variables y Operadores,[object Object]
Dato  Son representaciones simbólicas de objetos, hechos, instituciones, conocimientos.  Ejemplos    15    25º C    25 m    31-10-2005    Febrero    María Pérez
Información  Los datos organizados o procesados adquieren significado y proporcionan conocimiento o desencadenan un comportamiento sobre los hechos u objetos que lo originaron  La información se resume en:                  Datos + significado
Información Un grupo de datos es información ,[object Object]
Información: El 19 de marzo se publicó en acta la  calificación de 20 ptos para María El principal objetivo de la información consiste en aumentar el conocimiento o reducir la incertidumbre.
Información Ejemplos    Juan tiene 15 años 18º C  fue la temperatura de esta mañana    El edificio de la Andina mide 15 m de altura    La fecha de hoy es 25/04/2009 Febrero tiene 28 días y 29 si el año es bisiesto		(Qué meses tienen 28 días?) María Jaramillo es un nombre muy común			(no es japonés)
Constantes, Variables y Operadores de un Algoritmo  VARIABLE: Campo de memoria que  se  le puede cambiar su contenido VARIABLE ENTEROS: Almacenan tipos  de datos Enteros sin puntos ni comas VARIABLE REAL: Almacena tipos de  datos o números decimales VARIABLES CARÁCTER: Almacena  datos como letras
Cómo se carga una variable Con el signo =   		 ejemplo A=8         B=A            C=A+B Se debe tener en cuenta: Al lado izquierdo del igual solo puede haber una variable Al lado derecho del igual puede haber una constante, una variable o una expresión El computador siempre resuelve lo que esta a la derecha del igual y su resultado lo almacena en la variable que este a la izquierda del igual Cada vez que se le entra un nuevo valor a una variable , el valor anterior se pierde
Ejemplo Entero  A, B, C A=10     B=15 C=20 A=A+B B=B+8 C=C+A A=A+5  B=B+3 C=C+2 A=A-B B=A-B C=A-B Identificar los nuevos valores de A,B,C
Operadores Son signos que nos permiten expresar relaciones entre variables y/o constantes, por ejemplo: ^   (Potenciación), *   (Multiplicación), /   (División) Hay operadores matemáticos (+,-,/,*,^), lógicos (and, or, xor, not), de concatenación (&, (), ””), relacionales (>, <, =, <>, >=, <=) x= a+b/c+d  como interpreta esto el PC? a+b/c+d:  resuelve primero b/c luego resuelve a+ el resultado de b/c y por último resuelve el resultado anterior con la suma de + d
Ejemplo (a+b/c-d)/(a+b/(c^d+d/(a-b/c*d))) Realice el anterior ejercicio explicando como realizaría el computador las operaciones
Formas de Representación de los Algoritmos ,[object Object]
Flujograma
Lengua algorítmica o pseudo-código,[object Object]
Flujograma Ventajas-Es una de las herramientas más conocidas-Las figuras dicen más que las palabras-Parámetros universales Desventajas-Poca atención a los datos, pues no ofrece recursos para describirlos o representarlos-Se complica a medida que el algoritmo crece Hace uso de gráficos parametrizados para representar algoritmos
Elementos para un flujograma
Ejemplo de flujograma Inicio Desarrollar un programa que permita  leer un numero entero positivo y  determinar si es par N N<0 V El numero debe  ser positivo F Entero(N/2)*2=N F V El numero es par El numero es impar fin
Pseudo-código Hace uso de una pseudo-lengua de programación cuyos comandos son en paisa-castizo para representar los algoritmos Ventajas-Usa el castellano como base-Se pueden definir cómo los datos van a ser estructurados-El algoritmo generado casi se puede trasladar a cualquier lenguaje de programación Desventajas-Exige la definición y uso de un lenguaje que no es real para el trabajo-No es parametrizado
Pseudo-códigos Representación textual de un algoritmo, esto facilita su posterior transcripción a un lenguaje de programación NORMAS Colocarle un nombre al algoritmo Declarar variables  con las cuales vamos a trabajar Todo algoritmo debe ir encerrado entre las palabras inicio y fin Plantear las posibles operaciones  Utilizar la orden escriba y colocarla entre comillas cuando se quiera ver un resultado
Ejemplo de pseudo-código Algoritmo Número_par Variables Entero: NIniciolea  Nsi N< 0Escriba “El numero debe ser positivo”sinosi  Entero(N/2)*2=NEscriba “el numero leído es par”sinoEscriba ”El numero leído es impar”Fin Desarrollar un programa que permita  leer un numero entero positivo y  determinar si es par
Esquema de acciones de un algoritmoEjemplo a través de un flujograma Declaración de Variables Acciones: Operaciones, Ciclos, Bucles Resultados
Fases de Desarrollo de un Algoritmo Fase Producto Planeación Esquema Análisis Especificación Diseño Algoritmo Codificación Programa Compilación Interpretación Prog. Ejecutable Pruebas Aplicación
Algoritmo Fase de Planeación: consiste en hacer una aproximación a los elementos del problema y sus posibles soluciones con el fin de obtener un esquema tipo para proceder a su exhaustivo análisis. Esquema para Estudio detallado Planeación
Algoritmo Fase de Análisis: consiste en el estudio detallado del problema con el fin de obtener una serie de documentos (especificación) en los cuales quedan totalmente definido el proceso a seguir en la automatización Documentos de Especificación Estudio detallado
Algoritmo Diseño: consiste en la realización del algoritmo que resuelve el problema de acuerdo a la especificación dada en la fase anterior. El algoritmo se representa mediante pseudocódigo. Algoritmo PRUEBA Inicio Variables    A,B,C: entero 	Leer(A,B) 	CA+B 	Escribir (C) Fin Documentos de Especificación
Algoritmo Codificación: consiste en la traducción del algoritmo a un programa escrito en un lenguaje de programación  Algoritmo Sumar Inicio Variables    A,B,C: entero 	Leer(A,B) 	CA+B 	Escribir (C) Fin Programa escrito en un Lenguaje de Programación
Algoritmo Compilación/Interpretación: consiste en obtener el programa ejecutableobjeto a partir del programa fuente. Programa Ejecutable Programa fuente
Algoritmo Prueba: consiste en determinar si el programa funciona correctamente y realiza las operaciones que esperamos de él. Aplicación Programa Ejecutable
Lenguajes de programación  Lenguaje: conjunto de reglas y convenciones que se utilizan para comunicar información.  Lenguaje de Programación: es un lenguaje que permite la traducción de un algoritmo para que sea entendible por el computador. Son los lenguajes utilizados para escribir programas de ordenadores. Tipos de Lenguaje de Programación: ,[object Object]
 Lenguaje de Bajo Nivel (Ensamblador)
 Lenguaje de Alto Nivel,[object Object]
Ejemplo Lenguaje Máquina 11001010 00010111 11110101 00101011 00010111 11110101 00101011 00101011 11001010 00010111 11110101 00101011 00010111 11110101 00101011 00101011 11001010 11110101 00101011 00101011 11001010 11001010 11110101 00101011 11001010 11110101 00101011 00101011 11001010 00010111 11110101 00101011 00010111 11110101 00101011 00101011 11001010 11110101 00101011 00101011
Lenguaje de bajo nivel  Son lenguajes que permiten escribir programas con instrucciones similares al lenguaje humano.   Son más fáciles de utilizar que los lenguajes de máquina, pero éstos también dependen de la máquina en particular.  El mejor ejemplo es el lenguaje ensamblador  Un programa escrito en lenguaje ensamblador requiere una fase de traducción. Entre las desventajas tenemos: que este lenguaje depende de la máquina y demanda una mayor exigencia para los programadores, ya que deben conocer tanto las técnicas de programación así como el interior de la máquina
Ejemplo Lenguaje Ensamblador ; HOLA.ASM STACK     SEGMENT STACK                ; Segmento de pila                     DW     64 DUP (?)             ; Define espacio en la pila STACK     ENDS   DATA      SEGMENT                             ; Segmento de datos SALUDO      DB    "Hola mundo!!",13,10,"$" ; Cadena DATA      ENDS INICIO:                                                  ; Punto de entrada al programa           MOV  AX,DATA                         ; Pone dirección en AX           MOV  DS,AX                              ; Pone la dirección en los registros           MOV  DX,OFFSET SALUDO      ; Obtiene dirección del mensaje           MOV  AH,09H                            ; Función: Visualizar cadena           INT     21H                                  ; Servicio: Funciones alto nivel DOS MOV  AH,4CH                            ; Función: Terminar           INT     21H CODE      ENDS END  INICIO                               ; Marca fin y define INICIO
Lenguaje de alto nivel  Son los más utilizados por los programadores   Son independientes de la máquina  Los programas escritos en estos lenguajes son portables Aumento de la ocupación de la memoria Las estructuras de los programas se basan en reglas sintácticas Ejemplos: C, C++, Pascal, Ada, Prolog, Smalltalk, Visual Basic, Delphi, Phyton, PHP, Ruby, Java,...
Ejemplo Lenguaje alto nivel #include <stdio.h>  intmain(void)  {  printf("Hola, Mundo"); }
Traductores de Lenguaje Traductores de Lenguajes: son programas que traducen a su vez los programas fuentes escritos en lenguajes de alto nivel a código máquina. Estos se dividen en intérpretes y compiladores.
Intérprete Intérprete: es un traductor que toma un programa fuente, lo traduce y a continuación lo ejecuta. (Basic, Smalltalk)
Compilación Compilador: es el proceso de traducción de programas fuentes a programas objetos. En este proceso se debe utilizar como paso intermedio un programa llamado enlazador (linker) el cual da como resultado un programa en lenguaje máquina directamente ejecutable.
Ciclo de Vida del Software
Etapas de programación Errores léxicos Tiempo de compilación Código Fuente APLICACIÓN BUENA PROGRAMACIÓN Modificación del  programa fuente Compilador SI Existen Errores SI SI No Código objeto Errores lógicos Tiempo de pruebas Linkado/ Interpretación NO Existen Errores Programa  Ejecutable Errores de ejecución Tiempo de ejecución No Existen Errores Pruebas
Ciclo de Vida del Software El ciclo de vida de un sistema de información, o un instrumento de software, normalmente maneja las etapas de Planeación, Análisis, Diseño, Implementación y Mantenimiento. Más adelante veremos su aplicación a través de modelos de evolución.
Modelo Clásico En el modelo clásico, cada proyecto atraviesa por algún tipo de análisis, diseño e implantación. El uso de la implantación ascendente es una de las grandes debilidades del ciclo de vida de los proyectos clásicos. La segunda debilidad más importante del ciclo de vida de un proyecto clásico es su insistencia en que las fases se sucedan secuencialmente.
Modelo Semi y Estructurado Dentro del modelo semiestructurado y estructurado encontramos otros detalles tales como, la implementación descendente que significa que se pondrán en ejecución paralelamente parte de la codificación y de las pruebas.
Modelo en Espiral El modelo espiral ha sido ideado para cubrir las mejores características tanto del ciclo de vida clásico, como de la creación de prototipos, añadiendo al mismo tiempo un nuevo elemento: el análisis de riesgo. El paradigma del modelo en espiral es actualmente el enfoque más realista para el desarrollo de software y de sistemas a gran escala.
Modelo Prototipo Es una alternativa que consiste en capturar un conjunto inicial de necesidades e implementarlas rápidamente con la intención declarada de expandirlas y refinarlas iterativamente al ir aumentando la compresión que del sistema tienen los usuarios y quien lo desarrolla.
Estructuras de Control
Tipos de Estructuras  de Control ,[object Object]
Estructuras Selectivas o de Decisión
Estructuras Repetitivas o Bucles,[object Object]
EstructuraSecuencial Diagrama de Flujo: Diagrama de N - S:
EstructurasSelectivas Se utilizanparatomardecisioneslógicas, se evalúaunacondición y en función del resultado de la misma se realizaunaopción u otra. Las estructurasselectivas o alternativaspueden ser: Simples. Dobles. Múltiples.
EstructurasSelectivasAlternativaSimple La estructuraalternativa simple Si Entonces(en inglésIf Then) ejecutaunadeterminadaaccióncuando se cumpleunadeterminadacondición. Pseudocódigo:
EstructurasSelectivasAlternativaSimple Diagrama de Flujo:
EstructurasSelectivasAlternativaDoble La estructuraalternativadobleSi Entonces Sino (en inglésIf Then Else) permiteelegir entre dos opciones o alternativasposibles, en función del cumplimiento o no de determinadacondición. Pseudocódigo:
EstructurasSelectivasAlternativaDoble Diagrama de Flujo: Diagrama de N - S:
EstructurasSelectivasAlternativaMúltiple La estructuraalternativamúltipleSegún sea, caso de (en inglésCase Of) evaluaráunaexpresiónquepodrátomarnvaloresdistintos. Pseudocódigo:
EstructurasSelectivasAlternativaMúltiple Pseudocódigo:
EstructurasSelectivasAlternativaMúltiple Diagrama de Flujo: Diagrama de N - S:
EstructurasRepetitivaso Bucles Las estructurasquerepitenunasecuencia de instrucciones un númerodeterminado de veces se denominanbucles y se denominaiteración al hecho de repetir la ejecución de unasecuencia de acciones.
EstructurasRepetitivasEstructuraMientras La estructurarepetitivaMientras(en inglésWhile) esaquella en que el cuerpo del bucle se repitemientras se cumpleunadeterminadacondición. Pseudocódigo:
EstructurasRepetitivasEstructuraMientras Diagrama de Flujo: Diagrama de N - S:
EstructurasRepetitivasEstructuraHasta La estructurarepetitivaRepetirHastaque(en inglés Repeat Until), se ejecutahastaque se cumplaunacondicióndeterminadaque se comprueba al final del bucle. Pseudocódigo:
EstructurasRepetitivasEstructuraHasta Diagrama de Flujo: Diagrama de N - S:
EstructurasRepetitivasEstructuraDesde/Para La estructurarepetitivaDesdeo Para (en inglésFor), ejecutalasacciones del cuerpo del bucle un númeroespecificado de veces y de modoautomáticocontrola el número de iteraciones o pasos a través del cuerpo del bucle.
EstructurasRepetitivasEstructuraDesde/Para Pseudocódigo:
EstructurasRepetitivasEstructuraDesde/Para Diagrama de Flujo: Diagrama de N - S:
Arreglos (Arrays)

Contenu connexe

Tendances

Programacion logica 1
Programacion logica 1Programacion logica 1
Programacion logica 1profedelvalle
 
Instituto tecnologico de cancun\ Tarea unidad 2
Instituto tecnologico de cancun\ Tarea unidad 2Instituto tecnologico de cancun\ Tarea unidad 2
Instituto tecnologico de cancun\ Tarea unidad 2justo morales
 
Algorítmos - Conceptos básicos
Algorítmos - Conceptos básicosAlgorítmos - Conceptos básicos
Algorítmos - Conceptos básicoscbertolotti
 
3. Elementos basicos de un programa
3.  Elementos basicos de un programa3.  Elementos basicos de un programa
3. Elementos basicos de un programamartell024
 
Introducción a los algoritmos y programación 1
Introducción a los algoritmos y programación   1Introducción a los algoritmos y programación   1
Introducción a los algoritmos y programación 1Jeckson Loza
 
Conceptos básicos de programación
Conceptos básicos de programaciónConceptos básicos de programación
Conceptos básicos de programaciónUPEL
 
Programacion primero
Programacion primeroProgramacion primero
Programacion primeroVictor Zapata
 
Entidades Primitivas Para Algoritmos
Entidades Primitivas Para AlgoritmosEntidades Primitivas Para Algoritmos
Entidades Primitivas Para AlgoritmosMary Sanchez
 
Introducción a la Programación
Introducción a la ProgramaciónIntroducción a la Programación
Introducción a la ProgramaciónJeckson Loza
 
Introduccion a los algoritmos parte 1
Introduccion a los algoritmos parte    1Introduccion a los algoritmos parte    1
Introduccion a los algoritmos parte 1charnisch
 
Introducción a la programación de computadores
Introducción  a la programación de computadoresIntroducción  a la programación de computadores
Introducción a la programación de computadoresPatricio Abad
 
Conceptos básicos de programación y el entorno gráfico de pseint (1)
Conceptos básicos de programación  y  el entorno gráfico de pseint (1)Conceptos básicos de programación  y  el entorno gráfico de pseint (1)
Conceptos básicos de programación y el entorno gráfico de pseint (1)keisy vargas
 
Paradigmasdeprogramacion
ParadigmasdeprogramacionParadigmasdeprogramacion
ParadigmasdeprogramacionVictor Zapata
 

Tendances (20)

Programacion logica 1
Programacion logica 1Programacion logica 1
Programacion logica 1
 
Instituto tecnologico de cancun\ Tarea unidad 2
Instituto tecnologico de cancun\ Tarea unidad 2Instituto tecnologico de cancun\ Tarea unidad 2
Instituto tecnologico de cancun\ Tarea unidad 2
 
Algorítmos - Conceptos básicos
Algorítmos - Conceptos básicosAlgorítmos - Conceptos básicos
Algorítmos - Conceptos básicos
 
Pseudocodigo
PseudocodigoPseudocodigo
Pseudocodigo
 
Pseudocodigo pptx
Pseudocodigo pptxPseudocodigo pptx
Pseudocodigo pptx
 
Logica algoritmos
Logica algoritmosLogica algoritmos
Logica algoritmos
 
3. Elementos basicos de un programa
3.  Elementos basicos de un programa3.  Elementos basicos de un programa
3. Elementos basicos de un programa
 
Introducción a los algoritmos y programación 1
Introducción a los algoritmos y programación   1Introducción a los algoritmos y programación   1
Introducción a los algoritmos y programación 1
 
Lógica y Algoritmos
Lógica y AlgoritmosLógica y Algoritmos
Lógica y Algoritmos
 
Algoritmos y Pseudocódigo
Algoritmos y PseudocódigoAlgoritmos y Pseudocódigo
Algoritmos y Pseudocódigo
 
Conceptos básicos de programación
Conceptos básicos de programaciónConceptos básicos de programación
Conceptos básicos de programación
 
Programacion primero
Programacion primeroProgramacion primero
Programacion primero
 
Entidades Primitivas Para Algoritmos
Entidades Primitivas Para AlgoritmosEntidades Primitivas Para Algoritmos
Entidades Primitivas Para Algoritmos
 
Introducción a la Programación
Introducción a la ProgramaciónIntroducción a la Programación
Introducción a la Programación
 
Introduccion a los algoritmos parte 1
Introduccion a los algoritmos parte    1Introduccion a los algoritmos parte    1
Introduccion a los algoritmos parte 1
 
Clase de programacion
Clase  de  programacionClase  de  programacion
Clase de programacion
 
Introducción a la programación de computadores
Introducción  a la programación de computadoresIntroducción  a la programación de computadores
Introducción a la programación de computadores
 
Conceptos básicos de programación y el entorno gráfico de pseint (1)
Conceptos básicos de programación  y  el entorno gráfico de pseint (1)Conceptos básicos de programación  y  el entorno gráfico de pseint (1)
Conceptos básicos de programación y el entorno gráfico de pseint (1)
 
Conceptos de algoritmos
Conceptos de algoritmosConceptos de algoritmos
Conceptos de algoritmos
 
Paradigmasdeprogramacion
ParadigmasdeprogramacionParadigmasdeprogramacion
Paradigmasdeprogramacion
 

Similaire à Lógica de programación

Algoritmo variables, constantes, tipos de datos y asignacion
Algoritmo variables, constantes, tipos de datos y asignacionAlgoritmo variables, constantes, tipos de datos y asignacion
Algoritmo variables, constantes, tipos de datos y asignacionBoris Salleg
 
Algoritmos Y Programas Unidad1
Algoritmos Y  Programas Unidad1Algoritmos Y  Programas Unidad1
Algoritmos Y Programas Unidad1Silvanac
 
37 tarazona karen programacion
37 tarazona karen programacion37 tarazona karen programacion
37 tarazona karen programacionkarenyulithza
 
Algoritmos y clase
Algoritmos y claseAlgoritmos y clase
Algoritmos y clasedaosma
 
Algoritmo y mas teoria logica
Algoritmo y mas teoria logicaAlgoritmo y mas teoria logica
Algoritmo y mas teoria logicasrblack13
 
Unidad 1, 2 y_3_algoritmos
Unidad 1, 2 y_3_algoritmosUnidad 1, 2 y_3_algoritmos
Unidad 1, 2 y_3_algoritmosGrisell d?z
 
Guia de estructuras Condicionales
Guia de estructuras CondicionalesGuia de estructuras Condicionales
Guia de estructuras Condicionaleslaryenso
 
U1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdfU1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdfEberCV1
 
U1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdfU1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdfEberCV1
 
Qué es un algoritmo 10
Qué es un algoritmo 10Qué es un algoritmo 10
Qué es un algoritmo 10Ricaurte Duran
 
Ii corte algoritmo_tr_1era_clase
Ii corte algoritmo_tr_1era_claseIi corte algoritmo_tr_1era_clase
Ii corte algoritmo_tr_1era_clasetammyrodriguez2010
 
Python_Introduccion_a_la_programacion.pptx
Python_Introduccion_a_la_programacion.pptxPython_Introduccion_a_la_programacion.pptx
Python_Introduccion_a_la_programacion.pptxFedericoMartearena
 
Evaluacion de algoritmo
Evaluacion de algoritmoEvaluacion de algoritmo
Evaluacion de algoritmoSergioERondon
 

Similaire à Lógica de programación (20)

Algoritmo variables, constantes, tipos de datos y asignacion
Algoritmo variables, constantes, tipos de datos y asignacionAlgoritmo variables, constantes, tipos de datos y asignacion
Algoritmo variables, constantes, tipos de datos y asignacion
 
algortimos
algortimosalgortimos
algortimos
 
Algoritmos Y Programas Unidad1
Algoritmos Y  Programas Unidad1Algoritmos Y  Programas Unidad1
Algoritmos Y Programas Unidad1
 
37 tarazona karen programacion
37 tarazona karen programacion37 tarazona karen programacion
37 tarazona karen programacion
 
Algoritmos y clase
Algoritmos y claseAlgoritmos y clase
Algoritmos y clase
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmo y mas teoria logica
Algoritmo y mas teoria logicaAlgoritmo y mas teoria logica
Algoritmo y mas teoria logica
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos 02
Algoritmos 02Algoritmos 02
Algoritmos 02
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Unidad 1, 2 y_3_algoritmos
Unidad 1, 2 y_3_algoritmosUnidad 1, 2 y_3_algoritmos
Unidad 1, 2 y_3_algoritmos
 
Guia de estructuras Condicionales
Guia de estructuras CondicionalesGuia de estructuras Condicionales
Guia de estructuras Condicionales
 
Victorleyva eje 4_actividad1
Victorleyva eje 4_actividad1Victorleyva eje 4_actividad1
Victorleyva eje 4_actividad1
 
U1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdfU1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdf
 
U1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdfU1-1_UPC_ Algoritmos Conceptos Básicos.pdf
U1-1_UPC_ Algoritmos Conceptos Básicos.pdf
 
Qué es un algoritmo 10
Qué es un algoritmo 10Qué es un algoritmo 10
Qué es un algoritmo 10
 
Ii corte algoritmo_tr_1era_clase
Ii corte algoritmo_tr_1era_claseIi corte algoritmo_tr_1era_clase
Ii corte algoritmo_tr_1era_clase
 
Python_Introduccion_a_la_programacion.pptx
Python_Introduccion_a_la_programacion.pptxPython_Introduccion_a_la_programacion.pptx
Python_Introduccion_a_la_programacion.pptx
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Evaluacion de algoritmo
Evaluacion de algoritmoEvaluacion de algoritmo
Evaluacion de algoritmo
 

Plus de Fernando de la Cruz Naranjo Grisales

Plus de Fernando de la Cruz Naranjo Grisales (19)

Conducta Entrada Gestión del Conocimiento
Conducta Entrada Gestión del ConocimientoConducta Entrada Gestión del Conocimiento
Conducta Entrada Gestión del Conocimiento
 
Conducta Entrada 2018
Conducta Entrada 2018Conducta Entrada 2018
Conducta Entrada 2018
 
Conducta de Entrada Gestión de la Información
Conducta de Entrada Gestión de la InformaciónConducta de Entrada Gestión de la Información
Conducta de Entrada Gestión de la Información
 
Por la Investigación
Por la InvestigaciónPor la Investigación
Por la Investigación
 
Induccion Informática Educativa
Induccion Informática EducativaInduccion Informática Educativa
Induccion Informática Educativa
 
Proyecto para Gestión Información
Proyecto para Gestión InformaciónProyecto para Gestión Información
Proyecto para Gestión Información
 
Conducta Entrada
Conducta EntradaConducta Entrada
Conducta Entrada
 
Podcast
PodcastPodcast
Podcast
 
Enamoremos exponiendo
Enamoremos exponiendoEnamoremos exponiendo
Enamoremos exponiendo
 
PPA Gestion de la Información
PPA Gestion de la InformaciónPPA Gestion de la Información
PPA Gestion de la Información
 
Gestión de la información
Gestión de la informaciónGestión de la información
Gestión de la información
 
Análisis Político
Análisis PolíticoAnálisis Político
Análisis Político
 
Mapa Conceptual Gerencia de Proyectos
Mapa Conceptual Gerencia de ProyectosMapa Conceptual Gerencia de Proyectos
Mapa Conceptual Gerencia de Proyectos
 
Temáticas_5_utp
Temáticas_5_utpTemáticas_5_utp
Temáticas_5_utp
 
Propiedad intelectual
Propiedad intelectualPropiedad intelectual
Propiedad intelectual
 
Normas apa fernando naranjo
Normas apa   fernando naranjoNormas apa   fernando naranjo
Normas apa fernando naranjo
 
Agenda
AgendaAgenda
Agenda
 
Informática Jurídica
Informática JurídicaInformática Jurídica
Informática Jurídica
 
Netiqueta
NetiquetaNetiqueta
Netiqueta
 

Dernier

INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularMooPandrea
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxnandoapperscabanilla
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoJosDanielEstradaHern
 
Valoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVValoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVGiustinoAdesso1
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxlupitavic
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfNancyLoaa
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosJonathanCovena1
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 

Dernier (20)

INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circular
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° grado
 
Valoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVValoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCV
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
 

Lógica de programación

  • 1. Introducción a la Lógica de Programación Fernando de la Cruz Naranjo Grisales
  • 3. Concepto de Lógica La lógica es una ciencia formal y una rama de la filosofía que estudia los principios de la demostración e inferencia válida. La palabra deriva del griego antiguo λογική (logike), que significa "dotado de razón, intelectual, dialéctico, argumentativo", que a su vez viene de λόγος (logos), "palabra, pensamiento, idea, argumento, razón o principio". Wikipedia
  • 4. La que conocimos: Lógica Proposicional La lógica proposicional es una rama de la lógica clásica que estudia las proposiciones o sentencias lógicas, sus posibles evaluaciones de verdad y en el caso ideal, su nivel absoluto de verdad. Wikipedia Negación Disyunción (o) Conjunción (y) Condicional Bicondicional Disyunción exclusiva
  • 6. Algoritmo Palabra extraña De designación desconocida Todo el tiempo hacemos uso de algoritmos
  • 7. Algoritmo Etimología: Proviene del nombre del matemático persa Mohammed Al-khowanzmi, cuyo apellido traducido al latín es Algorismus
  • 8. Problema Es un asunto o un conjunto de cuestiones que se plantean para ser resueltas. La naturaleza de los problemas varía con el ámbito o el contexto: problemas matemáticos, químicos, filosóficos, etc. Es importante que al abordar un problema se tenga una descripción simple y precisa del mismo, de lo contrario resultaría complejo modular, simular, o programar su solución en un ordenador.
  • 9. Algoritmo de la llanta Ejemplo tradicional de un algoritmo: Cambiar la llanta pinchada de un automóvil Buscar herramientas, rueda de repuesto y el triángulo rojo de señalización Ubicar el triángulo en el lugar adecuado Ir al lugar de la rueda averiada Sacar las tuercas Colocar el gato Levantar el carro Sacar la rueda mala Colocar la rueda de repuesto Colocar las tuercas Apretar tuercas Guardar las herramientas
  • 10. Algoritmo para compra de un libro Inicio Saber cual es el libro adquirir Desplazarnos hacia una librería Preguntar si tienen el libro si lo tienen adquirirlo y parar allí si no lo tienen ir al paso 3 Fin
  • 11. Definiciones de Algoritmo en Programación “Es un conjunto finito de reglas que proveen una secuencia de operaciones para resolver un problema específico. La noción de algoritmo es básica para toda la programación de computadores” – KNUTH Profesor de la Universidad de Stanford “Es una secuencia ordenada y no ambigua de pasos que llevan a la solución de un problema dado” – TREMBLAY “Un concepto central de la programación y de la ciencia de la computación es el concepto de algoritmo” – WIRTH Profesor de la Universidad de Zurich y co-responsable de la creación de lenguajes de programación como ALGOL, PASCAL y MODULA2
  • 12. Algoritmo en Programación Conjunto de acciones que especifican la secuencia de operaciones realizar, en orden, para resolver un problema Los algoritmos son independientes tanto del lenguaje de programación como del computador que los ejecuta.
  • 13. Problemas de Programación Un programador es una persona que resuelve problemas, y para llegar a ser un programador eficaz se necesita aprender a resolver problemas de un modo riguroso y sistemático Definición Formas de solución Solución Diseño Algoritmo Ejecución Problema Análisis Programar Estudio Lenguaje
  • 14.
  • 15. Diseño del algoritmo, que describe la secuencia ordenada de pasos que conduce a la solución de un problema dado.
  • 16. Expresar el algoritmo como un programa en un lenguaje de programación adecuado (Fase de Codificación)
  • 17.
  • 18. Preciso:indicar exactamente el orden de realización de las instrucciones
  • 19.
  • 21.
  • 22. Dato Son representaciones simbólicas de objetos, hechos, instituciones, conocimientos. Ejemplos 15 25º C 25 m 31-10-2005 Febrero María Pérez
  • 23. Información Los datos organizados o procesados adquieren significado y proporcionan conocimiento o desencadenan un comportamiento sobre los hechos u objetos que lo originaron La información se resume en: Datos + significado
  • 24.
  • 25. Información: El 19 de marzo se publicó en acta la calificación de 20 ptos para María El principal objetivo de la información consiste en aumentar el conocimiento o reducir la incertidumbre.
  • 26. Información Ejemplos Juan tiene 15 años 18º C fue la temperatura de esta mañana El edificio de la Andina mide 15 m de altura La fecha de hoy es 25/04/2009 Febrero tiene 28 días y 29 si el año es bisiesto (Qué meses tienen 28 días?) María Jaramillo es un nombre muy común (no es japonés)
  • 27. Constantes, Variables y Operadores de un Algoritmo VARIABLE: Campo de memoria que se le puede cambiar su contenido VARIABLE ENTEROS: Almacenan tipos de datos Enteros sin puntos ni comas VARIABLE REAL: Almacena tipos de datos o números decimales VARIABLES CARÁCTER: Almacena datos como letras
  • 28. Cómo se carga una variable Con el signo = ejemplo A=8 B=A C=A+B Se debe tener en cuenta: Al lado izquierdo del igual solo puede haber una variable Al lado derecho del igual puede haber una constante, una variable o una expresión El computador siempre resuelve lo que esta a la derecha del igual y su resultado lo almacena en la variable que este a la izquierda del igual Cada vez que se le entra un nuevo valor a una variable , el valor anterior se pierde
  • 29. Ejemplo Entero A, B, C A=10 B=15 C=20 A=A+B B=B+8 C=C+A A=A+5 B=B+3 C=C+2 A=A-B B=A-B C=A-B Identificar los nuevos valores de A,B,C
  • 30. Operadores Son signos que nos permiten expresar relaciones entre variables y/o constantes, por ejemplo: ^ (Potenciación), * (Multiplicación), / (División) Hay operadores matemáticos (+,-,/,*,^), lógicos (and, or, xor, not), de concatenación (&, (), ””), relacionales (>, <, =, <>, >=, <=) x= a+b/c+d como interpreta esto el PC? a+b/c+d: resuelve primero b/c luego resuelve a+ el resultado de b/c y por último resuelve el resultado anterior con la suma de + d
  • 31. Ejemplo (a+b/c-d)/(a+b/(c^d+d/(a-b/c*d))) Realice el anterior ejercicio explicando como realizaría el computador las operaciones
  • 32.
  • 34.
  • 35. Flujograma Ventajas-Es una de las herramientas más conocidas-Las figuras dicen más que las palabras-Parámetros universales Desventajas-Poca atención a los datos, pues no ofrece recursos para describirlos o representarlos-Se complica a medida que el algoritmo crece Hace uso de gráficos parametrizados para representar algoritmos
  • 36. Elementos para un flujograma
  • 37. Ejemplo de flujograma Inicio Desarrollar un programa que permita leer un numero entero positivo y determinar si es par N N<0 V El numero debe ser positivo F Entero(N/2)*2=N F V El numero es par El numero es impar fin
  • 38. Pseudo-código Hace uso de una pseudo-lengua de programación cuyos comandos son en paisa-castizo para representar los algoritmos Ventajas-Usa el castellano como base-Se pueden definir cómo los datos van a ser estructurados-El algoritmo generado casi se puede trasladar a cualquier lenguaje de programación Desventajas-Exige la definición y uso de un lenguaje que no es real para el trabajo-No es parametrizado
  • 39. Pseudo-códigos Representación textual de un algoritmo, esto facilita su posterior transcripción a un lenguaje de programación NORMAS Colocarle un nombre al algoritmo Declarar variables con las cuales vamos a trabajar Todo algoritmo debe ir encerrado entre las palabras inicio y fin Plantear las posibles operaciones Utilizar la orden escriba y colocarla entre comillas cuando se quiera ver un resultado
  • 40. Ejemplo de pseudo-código Algoritmo Número_par Variables Entero: NIniciolea Nsi N< 0Escriba “El numero debe ser positivo”sinosi Entero(N/2)*2=NEscriba “el numero leído es par”sinoEscriba ”El numero leído es impar”Fin Desarrollar un programa que permita leer un numero entero positivo y determinar si es par
  • 41. Esquema de acciones de un algoritmoEjemplo a través de un flujograma Declaración de Variables Acciones: Operaciones, Ciclos, Bucles Resultados
  • 42. Fases de Desarrollo de un Algoritmo Fase Producto Planeación Esquema Análisis Especificación Diseño Algoritmo Codificación Programa Compilación Interpretación Prog. Ejecutable Pruebas Aplicación
  • 43. Algoritmo Fase de Planeación: consiste en hacer una aproximación a los elementos del problema y sus posibles soluciones con el fin de obtener un esquema tipo para proceder a su exhaustivo análisis. Esquema para Estudio detallado Planeación
  • 44. Algoritmo Fase de Análisis: consiste en el estudio detallado del problema con el fin de obtener una serie de documentos (especificación) en los cuales quedan totalmente definido el proceso a seguir en la automatización Documentos de Especificación Estudio detallado
  • 45. Algoritmo Diseño: consiste en la realización del algoritmo que resuelve el problema de acuerdo a la especificación dada en la fase anterior. El algoritmo se representa mediante pseudocódigo. Algoritmo PRUEBA Inicio Variables A,B,C: entero Leer(A,B) CA+B Escribir (C) Fin Documentos de Especificación
  • 46. Algoritmo Codificación: consiste en la traducción del algoritmo a un programa escrito en un lenguaje de programación Algoritmo Sumar Inicio Variables A,B,C: entero Leer(A,B) CA+B Escribir (C) Fin Programa escrito en un Lenguaje de Programación
  • 47. Algoritmo Compilación/Interpretación: consiste en obtener el programa ejecutableobjeto a partir del programa fuente. Programa Ejecutable Programa fuente
  • 48. Algoritmo Prueba: consiste en determinar si el programa funciona correctamente y realiza las operaciones que esperamos de él. Aplicación Programa Ejecutable
  • 49.
  • 50. Lenguaje de Bajo Nivel (Ensamblador)
  • 51.
  • 52. Ejemplo Lenguaje Máquina 11001010 00010111 11110101 00101011 00010111 11110101 00101011 00101011 11001010 00010111 11110101 00101011 00010111 11110101 00101011 00101011 11001010 11110101 00101011 00101011 11001010 11001010 11110101 00101011 11001010 11110101 00101011 00101011 11001010 00010111 11110101 00101011 00010111 11110101 00101011 00101011 11001010 11110101 00101011 00101011
  • 53. Lenguaje de bajo nivel Son lenguajes que permiten escribir programas con instrucciones similares al lenguaje humano. Son más fáciles de utilizar que los lenguajes de máquina, pero éstos también dependen de la máquina en particular. El mejor ejemplo es el lenguaje ensamblador Un programa escrito en lenguaje ensamblador requiere una fase de traducción. Entre las desventajas tenemos: que este lenguaje depende de la máquina y demanda una mayor exigencia para los programadores, ya que deben conocer tanto las técnicas de programación así como el interior de la máquina
  • 54. Ejemplo Lenguaje Ensamblador ; HOLA.ASM STACK SEGMENT STACK ; Segmento de pila DW 64 DUP (?) ; Define espacio en la pila STACK ENDS   DATA SEGMENT ; Segmento de datos SALUDO DB "Hola mundo!!",13,10,"$" ; Cadena DATA ENDS INICIO: ; Punto de entrada al programa MOV AX,DATA ; Pone dirección en AX MOV DS,AX ; Pone la dirección en los registros MOV DX,OFFSET SALUDO ; Obtiene dirección del mensaje MOV AH,09H ; Función: Visualizar cadena INT 21H ; Servicio: Funciones alto nivel DOS MOV AH,4CH ; Función: Terminar INT 21H CODE ENDS END INICIO ; Marca fin y define INICIO
  • 55. Lenguaje de alto nivel Son los más utilizados por los programadores Son independientes de la máquina Los programas escritos en estos lenguajes son portables Aumento de la ocupación de la memoria Las estructuras de los programas se basan en reglas sintácticas Ejemplos: C, C++, Pascal, Ada, Prolog, Smalltalk, Visual Basic, Delphi, Phyton, PHP, Ruby, Java,...
  • 56. Ejemplo Lenguaje alto nivel #include <stdio.h> intmain(void) { printf("Hola, Mundo"); }
  • 57. Traductores de Lenguaje Traductores de Lenguajes: son programas que traducen a su vez los programas fuentes escritos en lenguajes de alto nivel a código máquina. Estos se dividen en intérpretes y compiladores.
  • 58. Intérprete Intérprete: es un traductor que toma un programa fuente, lo traduce y a continuación lo ejecuta. (Basic, Smalltalk)
  • 59. Compilación Compilador: es el proceso de traducción de programas fuentes a programas objetos. En este proceso se debe utilizar como paso intermedio un programa llamado enlazador (linker) el cual da como resultado un programa en lenguaje máquina directamente ejecutable.
  • 60. Ciclo de Vida del Software
  • 61. Etapas de programación Errores léxicos Tiempo de compilación Código Fuente APLICACIÓN BUENA PROGRAMACIÓN Modificación del programa fuente Compilador SI Existen Errores SI SI No Código objeto Errores lógicos Tiempo de pruebas Linkado/ Interpretación NO Existen Errores Programa Ejecutable Errores de ejecución Tiempo de ejecución No Existen Errores Pruebas
  • 62. Ciclo de Vida del Software El ciclo de vida de un sistema de información, o un instrumento de software, normalmente maneja las etapas de Planeación, Análisis, Diseño, Implementación y Mantenimiento. Más adelante veremos su aplicación a través de modelos de evolución.
  • 63. Modelo Clásico En el modelo clásico, cada proyecto atraviesa por algún tipo de análisis, diseño e implantación. El uso de la implantación ascendente es una de las grandes debilidades del ciclo de vida de los proyectos clásicos. La segunda debilidad más importante del ciclo de vida de un proyecto clásico es su insistencia en que las fases se sucedan secuencialmente.
  • 64. Modelo Semi y Estructurado Dentro del modelo semiestructurado y estructurado encontramos otros detalles tales como, la implementación descendente que significa que se pondrán en ejecución paralelamente parte de la codificación y de las pruebas.
  • 65. Modelo en Espiral El modelo espiral ha sido ideado para cubrir las mejores características tanto del ciclo de vida clásico, como de la creación de prototipos, añadiendo al mismo tiempo un nuevo elemento: el análisis de riesgo. El paradigma del modelo en espiral es actualmente el enfoque más realista para el desarrollo de software y de sistemas a gran escala.
  • 66. Modelo Prototipo Es una alternativa que consiste en capturar un conjunto inicial de necesidades e implementarlas rápidamente con la intención declarada de expandirlas y refinarlas iterativamente al ir aumentando la compresión que del sistema tienen los usuarios y quien lo desarrolla.
  • 68.
  • 70.
  • 71. EstructuraSecuencial Diagrama de Flujo: Diagrama de N - S:
  • 72. EstructurasSelectivas Se utilizanparatomardecisioneslógicas, se evalúaunacondición y en función del resultado de la misma se realizaunaopción u otra. Las estructurasselectivas o alternativaspueden ser: Simples. Dobles. Múltiples.
  • 73. EstructurasSelectivasAlternativaSimple La estructuraalternativa simple Si Entonces(en inglésIf Then) ejecutaunadeterminadaaccióncuando se cumpleunadeterminadacondición. Pseudocódigo:
  • 75. EstructurasSelectivasAlternativaDoble La estructuraalternativadobleSi Entonces Sino (en inglésIf Then Else) permiteelegir entre dos opciones o alternativasposibles, en función del cumplimiento o no de determinadacondición. Pseudocódigo:
  • 77. EstructurasSelectivasAlternativaMúltiple La estructuraalternativamúltipleSegún sea, caso de (en inglésCase Of) evaluaráunaexpresiónquepodrátomarnvaloresdistintos. Pseudocódigo:
  • 80. EstructurasRepetitivaso Bucles Las estructurasquerepitenunasecuencia de instrucciones un númerodeterminado de veces se denominanbucles y se denominaiteración al hecho de repetir la ejecución de unasecuencia de acciones.
  • 81. EstructurasRepetitivasEstructuraMientras La estructurarepetitivaMientras(en inglésWhile) esaquella en que el cuerpo del bucle se repitemientras se cumpleunadeterminadacondición. Pseudocódigo:
  • 83. EstructurasRepetitivasEstructuraHasta La estructurarepetitivaRepetirHastaque(en inglés Repeat Until), se ejecutahastaque se cumplaunacondicióndeterminadaque se comprueba al final del bucle. Pseudocódigo:
  • 85. EstructurasRepetitivasEstructuraDesde/Para La estructurarepetitivaDesdeo Para (en inglésFor), ejecutalasacciones del cuerpo del bucle un númeroespecificado de veces y de modoautomáticocontrola el número de iteraciones o pasos a través del cuerpo del bucle.
  • 89. Arreglos (Arrays) Conjunto de variables en donde cada una de ellas puede ser referenciada, utilizando su posición relativa es decir su ubicación. Vectores: es un arreglo en donde la ubicación exacta de cada uno de sus elementos necesite solamente la utilización de un subíndice
  • 91. Arreglos (Arrays) Tipo: los datos almacenados serán del mismo tipo Nombre: debe tener un nombre relacionado con su contenido ya que estos tendrán relación Dimensión: se debe definir cuantos elementos se van a utilizar en el vector Tamaño: cantidad total de campos de memoria Destinación:tener claro la utilización del vector Índice:es una variable de tipo entero que se utiliza como subíndice para almacenar cada una de las posiciones
  • 92. Ejemplo de pseudo-código con Arreglos (Arrays) Leer 10 números enteros y determinar su promedio Programa_ejemplo_vector Variable entero: vector(10),indice,promedio Inicio Escriba” Digite 10 números enteros” para indice=1 hasta 10 lea vector(indice) Fin_para promedio=0 Para indice=1 hasta 10 promedio=promedio+vector(indice) Fin_para promedio= promedio/10 Escriba ”el promedio entero es” promedio Fin
  • 93. Arreglos (Arrays) Matriz: conjunto de datos organizados en forma de filas y columnas en donde para referenciar cada datos, necesitaremos establecer claramente en que fila y en que columna se encuentran. Nombre: Debe ser un nombre que haga referencia a su contenido Tipo: Tipo de datos almacenar en ella Dimensión: Cantidad de filas y Columnas Tamaño: Resultado de multiplicar las filas por las columnas Destinación: Saber porque se necesita una matriz
  • 94. Ejemplo de pseudo-código con Arreglos (Arrays) – p1 Leer una matriz 3*4 y determinar en que posición esta el mayor numero par Algoritmo_ejemplo_matriz Variable entero: m(3*4),fil,col,mayor_par, col_mayor_par,fil_mayor_par Inicio Escriba” Digite 12 números enteros” para fil=1 hasta 3 para col=1 hasta 4 lea m(fil,col) Fin_para Fin_para mayor_par=-3000 para fil=1 hasta 3 para col= 1 hasta 4 si m(fil,col)/2*2=m(fil,col) y m(fil,col)>mayor_par
  • 95. Ejemplo de pseudo-código con Arreglos (Arrays) – p2 mayor_par= m(fil;col) col_mayor_par= col fil_mayor_par= fil fin_si fin_para fin_para si mayor_par= -3000 Escriba”No existen numeros pares en la matriz” sino Escriba”el mayor es” mayor_par “y esta en la fila” fil “columna” col fin_si Fin
  • 96. Introducción a la Lógica de Programación Fernando de la Cruz Naranjo Grisales