Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA.

Slides:



Advertisements
Presentaciones similares
Algoritmos y Programas
Advertisements

Liceo de Curridabat Tema: Conceptos básicos de programación. Alumna: Valeria Garita Sánchez. Sección:8-6 Año:2015.
SISTEMAS DE PROCESAMIENTO DE LA INFORMACION HISTORIA Y EVOLUCIÓN DEL SOFTWARE.
ALGORITMOS Y TIPOS DE DATOS Un algoritmo es un método para resolver un problema. Para la creación de un programa (resolver un problema) en un lenguaje.
FACULTAD DE INGENIERÍA CIVIL Y MECÀNICA CARRERA DE INGENIERÍA MÈCANICA EMPLEO DE NUEVAS TECNOLOGÍAS DE INFORMACIÓN Y COMUNICACIÓN (NTIC´s II) TEMA: PASOS.
MÉTODOS Y ELEMENTOS DE PROGRAMACIÓN MÉTODOS Y ELEMENTOS DE PROGRAMACIÓN.
TUTORIA 1 Lógica para la Computación TUTORIA 1 Facultad de Ciencias Naturales y Matemáticas.
Figure: Algoritmos. Conceptos básicos. Programación: 1.Establecer una secuencia de acciones que: puedan ser ejecutadas por el procesador realicen una.
Tema 1 Fundamentos de Computación
Ingreso , proceso y salida de datos
LENGUAJES DE PROGRAMACIÓN
PROGRAMACIÓN (1).
Diagramas de Flujo Algoritmos.
Clasificación de Software
LENGUAJE DE PROGRAMACIÓN Y SOFTWARE PROPIETARIO
Hardware Software Sistema Informática Computadora Computación Datos.
LENGUAJES Y REPRESENTACION TECNICA
Lenguajes y representación técnica
LENGUAJES Y REPRESENTACION TECNICA
INTREGRANTES DE EQUIPO:
Oscar Martin Tirado Ochoa
TUTORIAL PSeint.
CREAR DIAGRAMA DE FLUJO
UNIVERSIDAD PEDAGÓGICA NACIONAL FRANCISCO MORAZÁN
Tema 6. Conceptos básicos de programación Clase 1
Tema 3 Fundamentos y diseño de algoritmos
Universidad Nacional de Canindeyú Facultad de Ciencias de la Salud
Lenguaje y representación técnica
FUNDAMENTOS DE INVESTIGACIÓN
Software Es intangible, existe como información, ideas, conceptos, símbolos, pero no ocupa un espacio físico, se podría decir que no tiene sustancia. Se.
LENGUAJES Y REPRESENTACION TECNICA
ALGORITMOS es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos.
Índice temático 2.1 Análisis de problemas. 2.2 Representación de algoritmos: gráfica y pseudocódigo. 2.3 Diseño de algoritmos aplicados a problemas 2.4.
Algoritmo Capitulo Cinco.
una solución. Los algoritmos son objeto de estudio de la algoritmia.
TAREA DEFINICIONES: Software: Equipamiento lógico o soporte lógico de una computadora digital; comprende el conjunto de los componentes lógicos necesarios.
Lenguaje y representación técnica
Conocer los fundamentos de la programación estructurada
CONCEPTOS PRELIMINARES (Cont)
INTRODUCCIÓN ING. IVONNE MALDONADO. PROGRAMACIÓN Programar no es mas que idear y ordenar las acciones. Lograr que un programa cumpla con una cierta tarea.
Introducción al lenguaje de programación. Introducción  Los lenguajes de programación son aplicaciones específicas que han sido pensadas y diseñadas.
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
HERRAMIENTAS DE PROGRAMACIÓN
ESTRUCTURA DE LOS COMPUTADORES
U NIVERSIDAD S AN P EDRO F ILIAL B ARRANCA F ACULTAD DE I NGENIERÍA E SCUELA P ROFESIONAL DE I NG. I NFORMÁTICA Y DE S ISTEMAS C URSO : ALGORITMOS Tema.
UNIVERSIDAD DEL VALLE Docente: MsC. Cinthya Irene Rosales Martinez Facultad de Ingeniería Lenguajes de Programación.
Programación Orientada a Objetos. ¿Qué es un ordenador? “Un sistema digital con tecnología microelectrónica capaz de procesar información a partir de.
TEMA 4: MÉTODOS Y ELEMENTOS DE PROGRAMACIÓN. Índice 1. Introducción 2. Metodología de la programación: aspectos básicos 3. BASIC: Estructura general de.
FUNDAMENTOS DE PROGRAMACIÓN
CURSO PROGRAMACIÓN BÁSICA SEMANA 3 ¿Qué es un programa?
Fundamentos de la Programación I
Fundamentos de la Programación I
FUNDAMENTOS DE PROGRAMACIÓN. INTRODUCCIÓN  Conceptos: Informática, Ordenador, Programa, Dato, Bit, Byte, Hardware, Software, Lenguaje de Programación,
Teoría Nº 3 Conceptos Básicos de Algoritmia Estructuras de Control
M. en TI. Omar Téllez Barrientos DOCENTE DE INFORMÁTICA GENERACIÓN DE PSEUDOCÓDIGOS Y ALGORITMOS
Introducción a la informática. Definiciones Es el término resultante de la contracción de los vocablos INFORmación y autoMÁTICA. Se define como el conjunto.
Informática Aplicada al Medio Ambiente - Curso 99/00 1 Tema 6. Introducción a la programación 1 Conceptos básicos 2 Los algoritmos – Concepto de algoritmo.
FUNDAMENTOS DE PROGRAMACIÓN
Informática Aplicada al Medio Ambiente - Curso 99/00 1 Tema 6. Introducción a la programación 1 Conceptos básicos 2 Los algoritmos – Concepto de algoritmo.
Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA.
Fundamentos de la Programación I
Unidad I Introducción a la Lógica Algorítmica
Lenguaje de Programación II
UA.- Algoritmos Computacionales
CONTROLES Y ESTRUCTURAS BÁSICAS DE PROGRAMACIÓN  1. Algoritmos: conjunto de instrucciones programadas para resolver una tarea específica.  2. Datos:
INTRODUCCIÓN A LA INFORMÁTICA
Informática Aplicada al Medio Ambiente - Curso 99/00 1 Tema 6. Introducción a la programación 1 Conceptos básicos 2 Los algoritmos – Concepto de algoritmo.
DIAGRAMAS DE FLUJO. D I A G R A M A DE F L UJ O EL DI AGRAMA DE FLUJO ES LA REPRESENTACIÓN GRÁFICA DE DICHA SE CUENCIA DE INSTRUCCIONES QUE CONFORMAN.
Diseñas y elaboras algoritmos para la solución de problemas
FIGURE: Algoritmos. CONCEPTOS BÁSICOS. Programación: 1.Establecer una secuencia de acciones que: puedan ser ejecutadas por el procesador realicen una.
Transcripción de la presentación:

Tema 6 Algoritmos y Programas Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química. Curso 2009/2010 © Dpto. de Informática UVA

Tema 6: Algoritmos y Programas 2 Objetivos Al terminar este tema deberás ser capaz de: – Definir qué es un algoritmo. – Describir las características que debe cumplir un algoritmo. – Representar un algoritmo. – Definir qué es un programa. – Describir las propiedades del lenguaje C.

Tema 6: Algoritmos y Programas 3 Contenidos 1.Introducción 2.Concepto de algoritmo 3.Lenguajes de representación algorítmica 4.Ejemplos de algoritmo 5.Programas 6.Lenguajes de programación 7.El proceso de programación 8.Introducción al lenguaje C

Tema 6: Algoritmos y Programas 4 Introducción Un ordenador es un sistema para procesar información Procesador Entrada = Datos Salida = Resultados Algoritm o

Tema 6: Algoritmos y Programas Introducción Ciclo de vida del software 5 análisis diseño IMPLEMENTACIÓN PRUEBAS mantenimiento documentación

Tema 6: Algoritmos y Programas 6 Contenidos 1.Introducción 2.Concepto de algoritmo 3.Lenguajes de representación algorítmica 4.Ejemplos de algoritmo 5.Programas 6.Lenguajes de programación 7.El proceso de programación 8.Introducción al lenguaje C

Tema 6: Algoritmos y Programas 7 Concepto de algoritmo Algoritmo Algoritmo (según el DRAE): (del árabe al-Khowârizmî) “Conjunto ordenado y finito de operaciones que permite hallar la solución de un problema” – Ejemplos sencillos de algoritmos según esta definición podrían ser una receta de cocina o las instrucciones para armar una bicicleta.

Tema 6: Algoritmos y Programas 8 Concepto de algoritmo Breve reseña histórica: Breve reseña histórica: – Los primeros algoritmos registrados datan de Babilonia, originados en las matemáticas como un método para resolver un problema usando una secuencia de cálculos más simples. – El primer algoritmo famoso es el cálculo del MCD de dos números (Grecia, aproximadamente del s. IV a. C.).

Tema 6: Algoritmos y Programas 9 Concepto de algoritmo En Informática: – Un algoritmo es una secuencia de pasos a seguir para resolver un problema usando un computador u ordenador. – La algoritmia o ciencia de los algoritmos, es uno de los pilares de la informática.

Tema 6: Algoritmos y Programas 10 Concepto de algoritmo Definiciones básicas: – Procesador – Procesador: cualquier entidad capaz de resolver un problema – Entorno – Entorno: conjunto de utensilios que el procesador puede utilizar – Estado – Estado: situación en la que se encuentra un entorno en un momento dado.

Tema 6: Algoritmos y Programas 11 Concepto de algoritmo Definiciones básicas – Acción: Conjunto finito de operaciones que permiten llegar de un estado inicial bien definido a otro también bien definido. – Tipos de acciones: Acción primitiva o elemental – Puede ser realizada directamente por el procesador. Acción compuesta o abstracta – Ha de descomponerse en acciones más elementales para poder ser entendida por un procesador.

Tema 6: Algoritmos y Programas 12 Concepto de algoritmo Definición formal de algoritmo: “Dado un procesador, un entorno, y un problema bien definido, un algoritmo es la secuencia finita de acciones primitivas que llevan a la solución del problema”

Tema 6: Algoritmos y Programas 13 Concepto de algoritmo Características de un algoritmo: – Preciso (no ambiguo): la instrucción a ejecutar en cada paso queda determinada perfectamente. – Determinista: debe comportarse del mismo modo ante las mismas condiciones. Si se sigue dos veces en el mismo entorno, el resultado obtenido es el mismo. – Finito: Tiene fin tras un número determinado de pasos.

Tema 6: Algoritmos y Programas 14 Contenidos 1.Introducción 2.Definiciones básicas 3.Lenguajes de representación algorítmica 4.Ejemplos de algoritmo 5.Programas 6.Lenguajes de programación 7.El proceso de programación 8.Introducción al lenguaje C

Tema 6: Algoritmos y Programas 15 Lenguajes de representación algorítmica ¿Cómo se escribe un algoritmo? Representándolo mediante un lenguaje  lenguaje de representación algorítmica Dos tipos de representación: – Pseudocódigo – Diagramas de flujo

Tema 6: Algoritmos y Programas 16 Representación algorítmica Pseudocódigo Pseudocódigo: – Lenguaje similar al natural, pero al que se añaden reglas para conseguir una definición precisa del algoritmo – Algunas reglas: Empieza por la palabra “Inicio” y termina con la palabra “Fin” Se escribe una acción por línea Se subrayan las palabras clave

Tema 6: Algoritmos y Programas 17 Representación algorítmica Diagrama de Flujo (DF) Diagrama de Flujo (DF): – Representación gráfica del flujo de control de un algoritmo – Elementos del (DF): Terminal Entrada/ Salida Decisión Subprograma Proceso Conectores si no

Tema 6: Algoritmos y Programas 18 Pseudocódigo Diagrama de flujo Representación algorítmica Entorno suma, num Inicio // Iniciar variables suma<- 2 num <- 4 // Suma de los números repetir suma <- suma + num num <- num +2 mientras(num <= 100) // Escribir resultado escribir (suma) Fin

Tema 6: Algoritmos y Programas 19 Contenidos 1.Introducción 2.Definiciones básicas 3.Lenguajes de representación algorítmica 4.Ejemplos de algoritmo 5.Programas 6.Lenguajes de programación 7.El proceso de programación 8.Introducción al lenguaje C

Tema 6: Algoritmos y Programas 20 Hay que tener en cuenta que para resolver un determinado problema existe más de un algoritmo – Todos encuentran la solución correcta… pero unos lo hacen mejor que otros. Ejemplos de algoritmo

Tema 6: Algoritmos y Programas 21 Ejemplos de algoritmo Multiplicar 981 por 1234 – Varias formas (algoritmos) de hacerlo: Método clásico Multiplicación “à la russe” Divide y vencerás – Con todas se alcanza la solución ¿Cuál es la mejor? ¿Por qué?

Tema 6: Algoritmos y Programas 22 Ejemplos de algoritmo Método tradicional 981 *

Tema 6: Algoritmos y Programas 23 Ejemplos de algoritmo Método tradicional Pero en UK… *

Tema 6: Algoritmos y Programas 24 Ejemplos de algoritmo Multiplicación “à la russe” – Se escriben el multiplicando y el multiplicador iniciando dos columnas. – Se obtienen los siguientes elementos de las columnas, hasta que quede un 1 en la columna de la izquierda: La columna de la izquierda se va dividiendo entre dos, ignorando los restos. La columna de la derecha se va multiplicando por dos. – El resultado se obtiene sumando los números de la columna de la derecha cuyo número correspondiente de la columna izquierda sea impar. – Sólo es necesario saber sumar, multiplicar por 2 y dividir entre 2. Se encuentra en el hardware de las ALU’s.

Tema 6: Algoritmos y Programas 25 Ejemplos de algoritmo Multiplicación “à la russe”

Tema 6: Algoritmos y Programas 26 Ejemplos de algoritmo Multiplicación “à la russe” SUMA =

Tema 6: Algoritmos y Programas 27 Ejemplos de algoritmo Divide y vencerás – Números con precisión par – Se dividen por la mitad ambos operandos – Se realizan las 4 multiplicaciones cruzadas – Se suman los resultados desplazando previamente hacia la izquierda – Algoritmo recursivo

Tema 6: Algoritmos y Programas 28 Ejemplos de algoritmo Divide y vencerás MultiplicarDesplazarResultado 09* * * * Suma

Tema 6: Algoritmos y Programas 29 Ejemplos de algoritmo Ejercicio: – ¿Cuál es mejor y por qué? – ¿Qué criterios podemos utilizar para valorar un algoritmo?

Tema 6: Algoritmos y Programas 30 Contenidos 1.Introducción 2.Definiciones básicas 3.Lenguajes de representación algorítmica 4.Ejemplos de algoritmo 5.Programas 6.Lenguajes de programación 7.El proceso de programación 8.Introducción al lenguaje C

Tema 6: Algoritmos y Programas 31 Programas Programa Programa: Algoritmo codificado en un lenguaje de programación. Programar Programar: Fraccionar un problema en forma de instrucciones adecuadamente formuladas para que un ordenador pueda llevarlas a la práctica.

Tema 6: Algoritmos y Programas 32 Programas Las instrucciones se forman con elementos o símbolos tomados de un determinado repertorio, y se construyen siguiendo unas reglas precisas. Todo lo relativo a los símbolos y reglas para construir o redactar con ellos un programa se denomina lenguaje de programación.

Tema 6: Algoritmos y Programas 33 Contenidos 1.Introducción 2.Definiciones básicas 3.Lenguajes de representación algorítmica 4.Ejemplos de algoritmo 5.Programas 6.Lenguajes de programación 7.El proceso de programación 8.Introducción al lenguaje C

Tema 6: Algoritmos y Programas 34 Lenguajes de programación Clasificación Lenguaje máquina: – Es el que entienden los circuitos del computador (CPU) – Inconvenientes: depende del modelo de computadora; el repertorio de instrucciones es muy reducido es muy laborioso Ensamblador (lenguaje de bajo nivel) – Código nemotécnico para recordar mejor las instrucciones máquina – Se mantienen los otros inconvenientes del lenguaje máquina Lenguajes de alto nivel – No dependen de la computadora, y facilitan la tarea de programación

Tema 6: Algoritmos y Programas 35 Lenguajes de programación Lenguajes de alto nivel FORTRAN (Formula Translation): Primer LAN(década de los 50). Aplicaciones científico-técnicas (grandes computadores y supercomputadores) COBOL (COmmon Busines Oriented Language): Aplicaciones comerciales y de gestión. BASIC (Beginner’s All-purpose Symbolic Instruction Code). Desarrollado a mediados de los 60 como lenguaje interactivo paraprincipiantes de programación. Visual BASIC: es el lenguaje más popular. Versión de Microsoft del BASIC. Permite crear programas en un ambiente visual (lenguaje de 4ª generación). C: Desarrollado en Bell Labs a comienzos de los 70. Es complejo, pero es potente, flexible y eficiente (el más utilizado para PCs y estaciones de trabajo).

Tema 6: Algoritmos y Programas 36 Lenguajes de programación Lenguajes de alto nivel Pascal: Creado por Wirth en El mejor lenguaje para aprender a programar y describir algoritmos. Ada: Es un lenguaje definido por el Ministerio de Defensa de USA a finales de los 70. Esta basado en el Pascal y tiene unas reglas muy estrictas. C++: Ideado a comienzos de los 80 en los BellLabs. Es una variante del C que permite utilizar la moderna metodología de la programación (“programación orientada a objetos”) Java: Desarrollado en 1991 por Sun, es similar a C++ pero más sencillo de aprender y usar. Muy usado para programa interactivos y dinámicos (“applets” de web). Se ha definido un computador virtual Java compatible, cualquier computador con un programa que lo emule puede ejecutar aplicaciones Java.

Tema 6: Algoritmos y Programas 37 Lenguajes de programación Lenguajes de alto nivel Otros lenguajes (usados en Inteligencia artificial): – LISP (LISt Processing): Finales de los 50. Procesamiento de datos no numéricos (caracteres, palabras y otros símbolos). Se usa en Inteligencia Artificial. – PROLOG:(Programming Logic): Trabaja con relaciones lógicas entre hechos. Muy usado en inteligencia artificial. – LOGO: versión simplificada del LISP para niños.

Tema 6: Algoritmos y Programas 38 Lenguajes de programación Traductores Traducción Traducción: Proceso por el cual se convierte el texto del programa de entrada en el de salida. – Lenguaje fuente: lenguaje en el que se escribe la entrada – Lenguaje objeto: lenguaje en el que se escribe la salida. En general, muy diferente del lenguaje fuente Compilador Compilador: Programa que acepta como entrada un texto de programa escrito en un cierto lenguaje de alto nivel y genera como salida texto de programa en otro lenguaje, generalmente lenguaje máquina.

Tema 6: Algoritmos y Programas 39 Lenguajes de programación Compiladores Compilar ≈ Convertir de un formato a otro – El significado deberá permanecer inalterado en la conversión – La entrada está escrita en un lenguaje  Tiene estructura – Semántica asociada y descrita en términos de esa estructura El compilador “comprende” el programa y recolecta su significado en una representación semántica intermedia A la hora de generar la salida  se genera estructura y significado

Tema 6: Algoritmos y Programas 40 Lenguajes de programación Intérpretes Forma de trabajar cada vez más frecuente: Intérpretes – En vez de traducir, realiza las acciones directamente – Por ejemplo, la máquina virtual de Java Ventajas del uso de intérpretes – Portabilidad: Un intérprete se escribe, habitualmente, en lenguaje de alto nivel – Sencillez: Escribir un intérprete es menos costoso que escribir un compilador – Señalización y manejo de errores: los compiladores cuidan “demasiado” la eficiencia de código – Seguridad: Funcionamiento más transparente al usuario Desventajas: Velocidad de los programas interpretados y consumo de memoria.

Tema 6: Algoritmos y Programas 41 Lenguajes de programación Compiladores vs. Intérpretes Compiladores: – El procesamiento del programa es considerable – El mecanismo de interpretación previsto es la CPU (hw) – La ejecución del programa traducido es relativamente rápida Intérpretes: – El procesamiento del programa es entre mínimo y moderado – El mecanismo de interpretación es un programa (sw) – La ejecución del programa es, en general, más lenta y más segura

Tema 6: Algoritmos y Programas 42 Contenidos 1.Introducción 2.Definiciones básicas 3.Lenguajes de representación algorítmica 4.Ejemplos de algoritmo 5.Programas 6.Lenguajes de programación 7.El proceso de programación 8.Introducción al lenguaje C

Tema 6: Algoritmos y Programas 43 Proceso de programación

Tema 6: Algoritmos y Programas 44 Contenidos 1.Introducción 2.Definiciones básicas 3.Lenguajes de representación algorítmica 4.Ejemplos de algoritmo 5.Programas 6.Lenguajes de programación 7.El proceso de programación 8.Introducción al lenguaje C

Tema 6: Algoritmos y Programas 45 Lenguaje C Es un lenguaje estructurado de propósito general, orientado a la programación de sistemas – Origen: Evolución de BSPL y B “The C programming language”, B. Kernighan & D. Ritchie. (1978) – ANSI C: Versión estándar en 1983 Nueva revisión en 1999 – Uno de los lenguajes más utilizados en la industria del software actual y en el mundo Unix/Linux

Tema 6: Algoritmos y Programas 46 Lenguaje C Características de C – Propósito general Válido para diversos objetivos – Portable NOTA: Sin embargo, siempre hay que compilar y probar un programa en el ordenador “destino” – Eficiente Apropiado para la programación de sistemas – Extendido. Gran cantidad de bibliotecas de funciones, compiladores, etc. Amplia difusión y uso.

Tema 6: Algoritmos y Programas 47 Bibliografía Joyanes Aguilar, L. “Fundamentos de programación. Algoritmos y Estructura de Datos”, McGrawHill. Capítulo 2. Llanos Ferraris, D. “Curso de C bajo UNIX”. Capítulo 1.