TEMA 1: Algoritmos y programas

Documentos relacionados
TEMA 2: ALGORITMOS Y PROGRAMAS

Tema 2. Algoritmos y Programas. Informática Grado en Física

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

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

TEMA 4: ALGORITMOS Y PROGRAMAS

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

RECORDAR TIPOS DE DATOS

2.3 DEFINICIÓN DE LENGUAJES ALGORÍTMICOS

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

2.1 METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS

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

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

Algoritmos. Fundamentos de Programación

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

Introducción a la programación

Objetivo específico: Maneja los elementos básicos de algoritmos utilizados para resolver un problema por computadora.

ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I. Prof.

TEMA 1. PROGRAMACIÓN DE UN COMPUTADOR

La resolución de un problema

Introducción a la Computación

Introducción a la Programación

Bloque 2. Algoritmos y pseudocódigo

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

PRESENTACIÓN DEL ALGORITMO

Introducción a la programación: Algoritmos

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

Ejemplo de Palabras reservadas del lenguaje C

by Tim Tran:

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

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

UNIVERSIDAD TECNOLÓGICA NACIONAL INGENIERIA EN SISTEMAS. Cátedra: "ALGORITMOS Y ESTRUCTURAS DE DATOS UNIDAD Nº 1 CONCEPTOS BÁSICOS SOBRE PROGRAMACIÓN

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

Qué es un Diagrama de Flujo?

TEMA 4: Programación estructurada

ALUMNA: GRADO: MODALIDAD-10. PROFESOR: Hugo Nelson Ramírez Cárdenas

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 2. CONCEPTOS BÁSICOS DE ALGORÍTMICA

Titulo de hoy 25/09/2017 COLEGIO SAN ANTONIO MARIA CLARET 1

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

UNIVERSIDAD AUTÓNOMA DEL ESTADO DE HIDALGO

Principios de Algoritmia

Programación estructurada

5. ESTRUCTURAS DE REPETICIÓN

Metodología de Desarrollo de Programas

PRÁCTICA FUNDAMENTOS DE ALGORITMOS I. Objetivos

Algoritmos y la Resolución de problemas

Etapa 1: El Dialogo. Etapa 2: Las Especificaciones

Tema 2. Concepto de Algoritmo

CONTENIDO 1 Diagrama de flujo 2 Pseudocodigo 3 Diagrama estructurado (nassi-schneiderman)

Álgebra y Matemática Discreta

Algoritmos. Diagramas de Flujo. Informática IV. L. S. C. Heriberto Sánchez Costeira

Programación Estructurada

Taller de Resolución de Problemas Computacionales

Tema 13 Modelos de Representación de Diagramas

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

Y alternativamente se presentarán soluciones de problemas donde se utilicen:

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

ESTRUCTURAS ALGORITMICAS

Divisibilidad (en N = N {0})

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

SERVICIO NACIONAL DE APRENDIZAJE SENA SISTEMA INTEGRADO DE GESTIÓN Procedimiento Ejecución de la Formación Profesional Integral GUÍA DE APRENDIZAJE

CAPITULO ALGORITMOS Y PROGRAMAS CONTENIDO

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

DIAGRAMAS DE FLUJO. Tabla de contenido

ESTRUCTURA DE ASIGNACIÓN

16 - Programando robots

Diagramas. En computación existen básicamente dos tipos de diagramas: diagramas de entradaproceso salida

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

Dobles: Es el caso de la instrucción if-else (punto 1.2).

FACULTAD DE INGENIERIA

CONTENIDOS Y CRITERIOS DE EVALUACIÓN MATEMÁTICAS 5º ED. PRIMARIA

Pseudocódigo. La forma en que se escribe un pseudocódigo es la siguiente:

Estructura Selectiva Múltiple

Tema 2. Diseño Modular.

Programación de Ordenadores

Recursividad Definición

2.2 METODOLOGÍA PARA EL DISEÑO DE SOFTWARE

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

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

Proceso de información en la computadora

Actividad de Evaluación Brandon Emmanuelle Cuevas Rangel GPO: 303 Carrera: Informática 3er Semestre Joel Rocha Barocio Cienega de Flores N.L.

Introduccion a la Programacion. Pablo Sevilla Jarquin

Introducción a la programación

Estructura de un programa. Algoritmos - Universidad Francisco de Vitoria 2

1. Números naturales y sistema de numeración decimal

Tema 02: Algoritmia y pseudocódigo

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

MATEMÁTICAS 4. º CURSO UNIDAD 7: DIVISIÓN

Profesor(a): Ing. Miriam Cerón Brito

1. Los objetos conocidos, es decir, aquellos objetos de los cuales poseemos información total o parcial útil en la búsqueda de los objetos desconocido

Tema 3. Estructuras de Datos

Profesor(a): M. A. Zeferino Galarza Hernández

Computadora y Sistema Operativo

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

Introducción a la programación

Programación MODULAR: Subalgoritmos - funciones y procedimientos

BOLETÍN DE EJERCICIOS: PROGRAMACIÓN EN C++ Ejercicio 1.- escribir un programa que calcule el factorial de un número:

Diseño estructurado de algoritmos. Sesión 8: Estructuras Algorítmicas

Técnicas de Programación

Transcripción:

TEMA 1: Algoritmos y programas 1.1.-Introducción La razón principal para utilizar un ordenador es para resolver problemas (en el sentido más general de la palabra), o en otras palabras, procesar información para obtener un resultado a partir de unos datos de entrada. Los ordenadores resuelven los problemas mediante la utilización de programas escritos por los programadores. Los programas de ordenador no son entonces más que métodos para resolver problemas. Por ello, para escribir un programa, lo primero es que el programador sepa resolver el problema que estamos tratando. Ejemplo: Resolución de una ecuación de segundo grado. 2 2 x 3 x + 1 = 0 Datos: 2 / -3 / 1 Procesamiento: 3 ± x = 2 3 4 2 1 3 ± = 2 2 9 8 4 3 ± 1 = 4 Resultados: x1 = 1 1 x2 = 2 El procesamiento de la información se realizará mediante la utilización de un método para resolver el problema que denominaremos algoritmo. 1.2.-Concepto de algoritmo Definición de la Real Academia: Conjunto ordenado y finito de operaciones que permiten resolver un problema Fernando Barber y Ricardo Ferrís 1

Consideramos, por tanto, un algoritmo tanto una receta de cocina, donde el problema a resolver es por ejemplo realizar un pastel, como un método matemático para multiplicar dos números. Sin embargo esta definición no es completa. Hay ciertas condiciones que debe cumplir un algoritmo que no se han expresado. A continuación enumeraremos todas las características que ha de cumplir un algoritmo: Tiene un número finito de pasos. Acaba en un tiempo finito. Si nunca acaba no resolverá el problema. Las operaciones están definidas de forma precisa y sin ambigüedad. Interacciona con el entorno. Es decir, tiene como mínimo una salida y puede tener entradas. Con estas características definiremos algoritmo como el conjunto finito de pasos y acciones que especifican de forma clara y concisa (sin ambigüedades) la secuencia de operaciones a realizar para procesar adecuadamente unos datos con un determinado objetivo. Ejemplo: Algoritmo de Euclides: MCD de dos números enteros. Datos de entrada: dos números enteros A y B Datos de salida: el MCD 1. Si B es mayor que A intercambiar los valores. 2. Calcular el resto de dividir A por B y poner ese valor en R 3. Si R es igual a 0, el MCD es B, y FIN 4. Ponemos en A el valor contenido en B, y ponemos en B el valor contenido en R 5. Volver a 2. Es importante resaltar que no hace falta entender cómo funciona un algoritmo para utilizarlo. Se puede utilizar el algoritmo anterior sin saber por qué funciona. La codificación de un algoritmo en un ordenador se denomina programa. El programa también se puede considerar un algoritmo, pero en este caso las operaciones son instrucciones del ordenador. Fernando Barber y Ricardo Ferrís 2

1.3.-Análisis, diseño y programación de algoritmos Cómo se hace para, ante un problema determinado, obtener un programa que lo solucione? Para realizar esto se sigue un proceso fijo que consiste en los siguientes pasos: 1-Análisis del problema a.- Acotar y especificar el problema con total precisión (obtener el máximo de información acerca de lo que debemos resolver y las soluciones a determinar.) El problema ha de ser comprendido perfectamente antes de realizar el algoritmo. b.- Definir los datos iniciales o de partida (que datos necesitamos proporcionar del problema para resolverlo.) c.- Definir que datos o resultados debe proporcionar el algoritmo. Ejemplo: Cuantos metros cuadrados tiene mi habitación? Definición clara del problema: Calcular área de un rectángulo. Datos de entrada: Dos lados contiguos de la habitación. Datos de salida: Área de la habitación. Fernando Barber y Ricardo Ferrís 3

2-Diseño del algoritmo No hay un método general para encontrar el algoritmo para un problema. Es una cuestión de experiencia e ingenio. Sin embargo si que hay métodos sobre cómo proceder para realizar el algoritmo. Uno de los más importantes es el diseño descendente (TOP-DOWN). Consiste en descomponer un problema en subproblemas más sencillos. Este proceso se puede repetir sucesivamente sobre cada subproblema. Es el más adecuado para la programación estructurada y modular (que ya veremos). El programa está dividido en módulos cada uno de los cuales resuelve una parte del problema. Además el programa tiene una estructura clara y es más fácil realizar modificaciones y localizar errores. Para cada módulo debe de estar perfectamente claro que tarea ha de realizar, así como sus datos de entrada y sus datos de salida. Ejemplo: Cálculo de la Inversa A 1 = 1 A [ adj( A) ] t Inversa A -1 Leer Calculo Inversa Mostrar Cálculo Determinante A Adjunta adj (A) Traspuesta A -t Fernando Barber y Ricardo Ferrís 4

Ejemplo: Calcular una aproximación de e x mediante la serie de Taylor. e x = n i= 0 i x i! 3-Implementación del algoritmo Consiste en la codificación del algoritmo en un programa. Esta codificación se deberá realizar utilizando un determinado lenguaje de programación. 4- Prueba y depuración Una vez realizado el programa se deberá ejecutar para comprobar que realmente hace lo que se pretendía, es decir, que no existan errores de codificación ni errores en el algoritmo. Cada módulo se probará por separado y, en caso de que funcionen bien, se probará todo el conjunto. 1.4.-Representación de algoritmos Existen numerosas formas de representar algoritmos. Los más importantes son el pseudocódigo y los organigramas o diagramas de flujo, aunque actualmente estos últimos se utilizan menos. El pseudocódigo es una manera de escribir algoritmos de forma poco estricta (con una sintaxis relajada) o estructuras de datos poco detalladas, pero intentando acercar las ideas del algoritmos a estructuras y sintaxis parecidas a las de los lenguajes de alto nivel en los que vamos a programar el algoritmo. Es para ser leído por personas, por tanto no se preocupa en detalles sintácticos. Fernando Barber y Ricardo Ferrís 5

Ejemplo: Dado un número, decir si es positivo o negativo. Algoritmo Positivo_Negativo Variables x: Entero Inicio Leer (x) Si (x<0) entonces Escribir ( Numero negativo ) sino Escribir ( Numero positivo ) Fin_si Fin Ejemplo: Algoritmo para decir si un número es par (pseudocódigo) leer N mientras N > 2 hacer N <- N 2 fmientras si N = 2 entonces escribir "Es par" sino escribir "Es impar" fsi Ejemplo: Búsqueda de números primos entre 2 y un cierto valor MAX Pseudocódigo: Método 1.1. X = 2.2. I = 2.3. Hacer ( X/I ).4. Si I es menor que X y la división es entera entonces X no es primo y pasar a.7..5. Si I es igual que X entonces X es primo y pasar a 7.6. Incrementar I y pasar a.3..7. Si X es más pequeño que MAX entonces incrementar X y pasar a.2. Sino hemos terminado. Pseudocódigo: Método 2: Criba de Eratóstenes.1. Poner todos los números entre 2 y MAX uno detrás de otro..2. Si hay números sin tachar, el primero de ellos es primo.3. Tachar de la lista todos los múltiplos del primer número.4. Borrar el primer número.5. Borrar los tachados y pasar a.2. Los organigramas o diagramas de flujo son dibujos que representan de manera gráfica tanto las tareas como la sucesión de tareas del algoritmo. Las tareas se Fernando Barber y Ricardo Ferrís 6

representan mediante rectángulos, rombos y romboides y el flujo de tareas mediante flechas que enlazan las diferentes tareas. Las instrucciones se representan en rectángulos: Las entradas y salidas en romboides: Las condiciones en rombos: El inicio, el final y los puntos de reunión de flujo en círculos: Ejemplo: Algoritmo para decir si un número es par (organigrama) Ejemplo: Dado un número, decir si es positivo o negativo. Fernando Barber y Ricardo Ferrís 7

Ejemplo: Obtener el mayor de dos números enteros introducidos por teclado Fernando Barber y Ricardo Ferrís 8