Tema 2 Conceptos básicos de programación. Fundamentos de Informática



Documentos relacionados
Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Tema 2 Introducción a la Programación en C.

2.1 METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS

Capítulo 3 CICLO DE VIDA DE UN PROGRAMA. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

Acción que el procesador puede ejecutar sin necesidad de información suplementaria

Programación Estructurada

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Introducción a la programación

TEMA 1. PROGRAMACIÓN DE UN COMPUTADOR

Lenguajes de programación

Técnicas de Programación

La resolución de un problema

INICIACIÓN A LA PROGRAMACIÓN 1ª parte

TEMA 3: El proceso de compilación, del código fuente al código máquina

Organización. Organización. Llenguatges de Programació Curs Gonzalo Besuievsky IMA - UdG. Horario Miércoles de 9:30 a 13:00

Introduccion a la Programacion. Pablo Sevilla Jarquin

FORTRAN 77 y Cómputo Científico

Introducción a la programación: Contenido. Introducción

Tema: Introducción a la Programación Estructurada

PRESENTACIÓN DEL ALGORITMO

Conceptos Programa Programa objeto Pseudocódigo Algoritmos y Diagramas de flujo 1) Finitud 2) Definición 3) Entrada

Metodología de Desarrollo de Programas

Evolución del software y su situación actual

Computación I (CI-2125) Clase 3. Prof. Mireya Morales Primera

Prof. María Alejandra Quintero. Informática Año

TEMA 2. CONCEPTOS BÁSICOS DE ALGORÍTMICA

Algoritmos y solución de problemas. Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal

FACULTAD DE INGENIERIA

Conceptos. Generales ALGORITMOS

FUNDAMENTOS DE PROGRAMACIÓN. Algoritmos y Programas

Introducción a la programación

Un diagrama de flujo es un dibujo que utiliza símbolos estándar de diagramación de algoritmos para computadora, en el que cada paso del algoritmo se

TEMA 1: Algoritmos y programas

Programación de Ordenadores

Computación Avanzada. Ing. Daniel Capriles M.

Introducción a la Programación en C

INFORMATICA TECNICATURA DE NIVEL SUPERIOR ALGUNOS EJERCICIOS DE SELECCIÓN E ITERACION

Índice general 7. Presentación 15

Algoritmos. Libro en línea 3/8/18. Ing. Roberto Martínez Román - 1 RESOLVIENDO PROBLEMAS. Cuál es el objetivo del libro?

7/1/18. Algoritmos RESOLVIENDO PROBLEMAS. Libro en línea. Cuál es el objetivo del libro? Ing. Roberto Martínez Román -

INDICE. Prólogo de la Segunda Edición

Unidad III: Introducción a la Programación

ALGORITMO. Podemos encontrar muchas definiciones de algoritmo en los textos de programación, todas ellas muy similares:

Introducción a la Algorítmica Transparencias correspondientes a las clases impartidas por los profesores: Lourdes Miró Amarante Ignacio García Vargas

Lenguajes de Programación

PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY

Fundamentos de Informática 3. Construcción de Software

INTRODUCCION A LA PROGRAMACION (C.U.) PROGRAMACION (T.I.G.)

Universidad Autónoma del Estado de México Facultad de Medicina

La forma general que tiene un condicional (una pregunta) es la siguiente:

Estructuras de Control

Lenguajes de Cuarta Generación

Tema 3: Resolución de problemas con computadoras 2014

Tema III: Introducción al lenguaje de programación

Programación de Ordenadores. Dept. Ciencias de la Computación e I.A. Universidad de Granada

INTRODUCCIÓN A LA PROGRAMACIÓN EXTRUCTURADA

[TEMA #2. ETAPAS Y TÉCNICAS PARA EL DESARROLLO DE PROBLEMAS CON AYUDA DEL COMPUTADOR.]

Tema II: Metodología para la construcción de programas. Profesora: Nelly García Mora

Fundamentos de programación. Organización de una computadora

Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute.

Programación Estructurada

Departamento de Informática Universidad Técnica Federico Santa María. Tema 1: Algoritmos

1. Computadores y programación

Lenguaje de programación. COMPILADORES Unidad I: Introducción al proceso de compilación

INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación

Programación Orientada a Objetos Profr. Pedro Pablo Mayorga

Computación I: Fundamentos Unidad III-Fundamentos de la Programación de Computadores

GLOSARIO DE TÉRMINOS DE PROGRAMACIÓN

TEMA2:LAS HERRAMIENTAS DE PROGRAMACION

Dpto. de ATC, Universidad de Sevilla - Página 1 de 16

DISEÑO ESTRUCTURADO. Herramientas de representación de algoritmos

PROGRAMACION DE COMPUTADORES I

ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.

Lógica de programación

PRÁCTICA FUNDAMENTOS DE ALGORITMOS I. Objetivos

5. ESTRUCTURAS DE REPETICIÓN

2.3 DEFINICIÓN DE LENGUAJES ALGORÍTMICOS

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo


FUNDAMENTOS DE INFORMÁTICA

Tema 5. Diagramas de flujo. Computacion - FA.CE.NA.

Tema 1. Introducción

2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje.

Concepto de compilador Intérprete Fases de un Compilador Herramientas de construcción de Compiladores

Instituto José Manuel Estrada - Villa de Soto. Asignatura: Desarrollo de Soluciones Informáticas. Curso: 5to I. Docente: Contreras, María Elena

Lógica de programación 1

Lenguajes y Compiladores Introducción. Compiladores 1

Principios de Computadoras II

INSTITUTO NACIONAL SUPERIOR DEL PROFESORADO TÉCNICO - TÉCNICO SUPERIOR EN INFORMÁTICA APLICADA - PROGRAMACIÓN I

CONTENIDOS. 2. Entidades primitivas para el desarrollo de algoritmos.

Estructuras de control

Procesadores de lenguaje Tema 1 Introducción a los compiladores

Introducción a la Computación

Unidad II: Análisis semántico

INTRODUCCIÓN A LA PROGRAMACIÓN. 1º Bachillerato

DISEÑO ESTRUCTURADO USANDO HERRAMIENTAS DE

LA RESOLUCION DE PROBLEMAS CON COMPUTADORAS Y LAS HERRAMIENTAS DE PROGRAMACIÓN

TEMA 4: ALGORITMOS Y PROGRAMAS

Transcripción:

Tema 2 Conceptos básicos de programación Fundamentos de Informática

Índice Metodología de la programación Programación estructurada 2

Pasos a seguir para el desarrollo de un programa (fases): Análisis del problema. Diseño o de el/los algoritmos. Codificación n del programa. Compilación. Verificación/depuraci n/depuración. n. Documentación. n. 3

Análisis del problema ANÁLISIS DEL PROBLEMA DATOS DE ENTRADA DEFINICIÓN PROBLEMA DATOS DE SALIDA (Resultados) 4

Ejemplo Leer el radio de un círculo y calcular e imprimir su superficie y la longitud de la circunferencia. Análisis Metodología de la Programación Análisis del problema Entradas: Radio del círculo (variable RADIO). Salidas: Superficie del círculo (variable AREA), Circunferencia del círculo (variable CIRCUNFERENCIA). Variables: RADIO, AREA, CIRCUNFERENCIA (tipo real). 5 5

Diseño o de el/los algoritmos Conjunto preescrito de operaciones (reglas o instrucciones) bien definidas para resolver un problema en un número finito de pasos Un algoritmo: Finito (Resultado en el tiempo), Definido (No puede ser ambiguo), Preciso (ejecución paso a paso). El diseño del algoritmo es bastante independiente del lenguaje de programación (sí depende del enfoque) Definir paso a paso con detalle Diseño descendente o modular: División del problema en subproblemas PROBLEMA DATOS DE ENTRADA DEFINICIÓN PROBLEMA Problema 1 DATOS DE SALIDA Dato 1. Dato 2. Subproblema 1. 1 Subproblema 1.2 Salida 1. Salida 2. 6

Diseño o de el/los algoritmos Diagrama de flujo INICIO Acumuladores a cero s=0 Contador a cero n=0 Introducir un número en a SI Promedio p=s/n a=0 NO Contarlo n=n+1 Imprimir Promedio Acumulativo s=s+a FIN Introducir un número 7

Diseño o de el/los algoritmos Diagrama de flujo TERMINAL ENTRADA-SALIDA PROCESO SI DECISIÓN NO CONECTOR COMENTARIOS 8 8

Diseño o de el/los algoritmos Diagrama de flujo SUBRUTINA PANTALLA IMPRESORA 9 9

Diseño o de el/los algoritmos Pseudocódigo Se trata de un lenguaje imitación del de un ordenador. No está estandarizado. Ejemplo: Cada programador tiene el propio. Mezcla de lenguaje natural, símbolos, términos y características de varios lenguajes de programación. Definición de variables_componentes. Inicio Escribir_texto ( entrada de dato ); Leer_Dato(dato); Proceso salida = dato * 2; Escribir_resultado_proceso (salida); Fin 10

Codificación n del programa Escribir el algoritmo en un lenguaje de programación Permite ser leído y ejecutado por el ordenador. Tipos de lenguajes: De bajo nivel (dependen de la máquina sobre la que se ejecuta): Lenguaje Máquina (escritura en binario) Ensambladores: (escritura simbólica) De alto nivel (no dependen de la máquina): Imperativos: Estructurados Orientados a Objeto FORTRAN i Java C i C++ PASCAL i Ada 95 Declarativos: LISP / PROLOG La salida de la fase de codificación son los programas fuente (que todavía no se pueden ejecutar directamente sobre el ordenador) Un programa se compone de un conjunto de instrucciones que indican las operaciones elementales a ejecutar y la manera en que se encadenan. 11

Compilación n y enlace Salvo que el programa se escriba directamente en lenguaje máquina (muy improbable) siempre debe existir un traductor. La fase de compilación y enlace permite leer el programa escrito en lenguaje de alto nivel y traducirlo a lenguaje maquina. Hay tres tipos de traductores: Compiladores. Interpretes. Ensambladores Traductor PROGRAMA FUENTE Compilador PROGRAMA OBJETO 12

Compilación Fases de un compilador PROGRAMA FUENTE Analizador Morfológico Analizador Sintáctico Analizador Semántico Programa en lenguaje intermedio Optimizador Generador de Código Programa Objeto 13

Compilación n y enlace Errores de Compilación (léxicos, sintácticos y semánticos) Archivos incluídos Archivos de Biblioteca Programa Fuente (texto) Programa Objeto Compilador Enlazador Otros programas objetos Programa Ejecutable 14

Verificación/depuraci n/depuración Errores en tiempo de ejecución división por cero, apertura de ficheros inexistentes,... Errores lógicos (los más difíciles de detectar) Resultados incorrectos Optimización del algoritmo. 15

Errores de Compilación (léxicos, sintácticos y semánticos) Compilación n y enlace + Verificación n y depurado Archivos incluídos Archivos de Biblioteca Programa Fuente (texto) Compilador Programa Objeto Enlazador Errores de ejecución Errores lógicos Resultados Correctos Verificación y Depurado 16 Programa Ejecutable

Documentación Se genera a lo largo de todas la fases Debe permitir acceder al programa a una persona distinta al programador. Interna: Código de programa fuente Comentarios Externa: Especificación de requisitos Listado de programa fuente Explicación de los algoritmos (CLARO y CONCISO) Diagramas de flujo o pseudocódigo. Especificación de datos, formatos de pantalla,...... 17

: Fases Problema Análisis Definición del Problema Datos de Entrada Datos de Salida Diseño División modular del Problema (Pseudocódigo, Diagrama de Flujo) DE, DS Codificación Documentación Programa fuente Pseudocódigo Diagrama de Flujo Manual de Usuario Especificación de los Datos... Errores de Compilación Errores de Ejecución Errores de Lógica Programa Fuente Compilar y Enlazar Programa Ejecutable Verificar y Depurar 18

Programación Estructurada Un programa estructurado se basa en la aplicación sistemática de las siguientes reglas: Diseño modular: descomponer un módulo complejo en otros submódulos más simples Diseño Descendente Programar cada módulo de manera lo más independiente posible Razonamiento de lo general a lo particular. Ventajas: Mejora la legibilidad del programa Facilita el entendimiento del programa Simplifica el mantenimiento Minimiza la complejidad Cada módulo puede ser programado por personas diferentes Utilización de una metodología de programación disciplinada Favorece el trabajo en equipo Problema: No existe un método estándar para dividir en módulos un programa Teorema de la Programación Estructurada Todo algoritmo puede ser descrito utilizando solamente tres tipos de estructuras de control: secuencial, alternativa, y repetitiva. 19

Programación Estructurada Secuencia Todas las acciones se ejecutan sucesivamente, una a continuación de otra sin posibilidad de bifurcaciones. Sentencias Alternativa Una estructura alternativa bifurca el flujo de un algoritmo según se cumplan una o varias condiciones. Acción 1 Acción 2 Acción 3 Falso Cierto Falso Cierto Condición Condición Acción Acción 1 Acción 2 20

Programación Estructurada Sentencias Repetitivas: Una estructura de control repetitiva permite ejecutar una o varias acciones un número de veces que puede estar definido a priori o indefinido hasta que se cumpla una determinada condición. Tipos de sentencias de control repetitivas: PARA: El nº de repeticiones se conoce antes de iniciar el bucle. MIENTRAS: Repite las acciones mientras la condición se cumple. HACER MIENTRAS: Se realiza siempre una vez la acción y luego se vuelve a realizar mientras la condición se cumpla REPETIR HASTA: Repite las acciones mientras la condición sea falsa (no existe en C) 21

Programación Estructurada PARA Índices Falsa Cierta Acción HACER MIENTRAS MIENTRAS Acción Condición Falso Cierta Falsa Condición Cierta Acción 22

Ejemplos Diseñar un algoritmo que resuelva una ecuación de segundo grado: Datos de entrada: Coeficientes a,b,c Datos de salida: Soluciones de la ecuación si las hay Nota: El algoritmo únicamente resolverá la ecuación en el caso de existir 2 soluciones diferentes (opción 1) En cualquier otro caso mostrara un mensaje de error. Diseñar el algoritmo para hacer una tortilla de patata Diseñar el algoritmo que resuelva la ecuación de segundo grado dando todas las posibles soluciones (opción 2). 23

Ejemplo (opción 1): Ecuación de Segundo Grado Diagrama de flujo INICIO Entrada de datos: a, b, c NO a!= 0 SI SI DECISIÓN NO No ecuación de 2º grado x 1 =(-b+sqrt(b*b-4*a*c))/2*a b*b >4*a*c Datos Incorrectos FIN x 2 =(-b-sqrt(b*b-4*a*c))/2*a Salida x 1, x 2 FIN FIN 24

Ejemplo (opción 1): Ecuación de Segundo Grado Pseudocódigo Algoritmo Ecuación de segundo grado {Cálculo de una ecuación de segundo grado} Variables a, b, c; /*Introducir las constantes con sus signos*/ x1, x2 /*Valores de Salida*/ Inicio Escribir ( Introduzca dato A: ); /*Entrada de Datos*/ Leer (a); Escribir ( Introduzca dato B: ); Leer (b); Escribir ( Introduzca dato C: ); Leer (c); Si (a!= 0) entonces Si (b 2-4*a*c > 0) /*Condición para evitar la raíz cuadrada de un nº negativo*/ x1:=(-b+sqrt((b*b)-(4*a*c)))/(2*a); x2:=(-b-sqrt((b*b)-(4*a*c)))/(2*a); Escribir ( Valor x1=,x1, y Valor x2=,x2); sino /* Raíz negativa */ Escribir ( Datos Incorrectos ); fin_si sino Escribir ( No se trata de una ecuación de 2º grado ) fin_si Fin 25

Alberto Aguilera 25 28015 Madrid Tel +34 91 542 28 00 Fax + 34 91 542 31 76 Iwww.icai.upcomillas.es www.upcomillas.es