Resolución de Problemas



Documentos relacionados
Tecnologías en la Educación Matemática. Expresiones. Datos. Expresiones Aritméticas. Expresiones Aritméticas 19/08/2014

Ejemplos de conversión de reales a enteros

Estructuras de Control - Diagrama de Flujo

EL PROCESO DE DISEÑO DEL SOFTWARE

RELACIONES DE RECURRENCIA

Fundamentos de la Programación

Estructuras de repetición hacer-mientras y repita hasta

Ejemplo de la implementación del llenado de un arreglo de forma aleatoria

CI 2125, Computación I

Introducción a la Computación TFA

Diseño de algoritmos

ESTRUCTURA DE DATOS: ARREGLOS

IIC Introducción a la Programación -

Que es PHP? Que se puede hacer con PHP? Sintaxis del lenguaje. Variables. Operadores básicos. Condicionales. Ciclos.

Introducción. Visual Basic para Aplicaciones (VBA) en Excel: aspectos elementales

Temario detallado. Conceptos generales de lenguajes y compiladores. Proceso de compilación de un programa en C++ bajo Code::Blocks

Tema: FUNCIONES, PROCEDIMIENTOS Y RECURSIVIDAD.

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

Tema 7: Programación con Matlab

Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz

Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 9: CRITERIOS DE CALIDAD DE DISEÑO MODULAR

Tema 2. Software. Informática (1º Ingeniería Civil)

Estructuras de Control - Diagrama de Flujo

Distinguir las diferentes estructuras de repetición utilizadas en problemas con ciclos: mientras, haga-mientras, repita-hasta, para.

TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA

Universidad de Buenos Aires Facultad De Ingeniería. Operaciones Lógicas. [75.40] Algoritmos y Programación I. 2do Cuatrimestre 2010

Presentación Concepto de Variable Transformaciones Algoritmo Diagrama de Flujo Ejemplos

Preliminares. Tipos de variables y Expresiones

1. Manejo de memoria estática 2. Manejo de memoria dinámica

TEMA 12: CUALIDADES DE UN BUEN DISEÑO

INTRODUCCION A LA PROGRAMACION DE PLC

MANUAL DE USO DE SMART DFD

Estructura de Datos y de la Información. Pilas y expresiones aritméticas

Tema 6. Reutilización de código. Programación Programación - Tema 6: Reutilización de código

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor.

Procesadores de lenguaje Tema 5 Comprobación de tipos

EXPLORAR RELACIONES NUMÉRICAS EN LAS TABLAS DE MULTIPLICAR

Estructura de Datos. Unidad I Tipos de Datos

3 ESTRUCTURAS DE CONTROL REPETITIVAS. BUCLES

TECNÓLOGO EN INFORMÁTICA PLAN DE ESTUDIOS

POR UNA CULTURA HUMANISTA Y TRASCENDENTE R FORMATO DE PLANEACIÓN DE CURSO HRS. DEL CURSO: 48 CLAVE: 314 HRS. POR SEMANA: 4

Algoritmos y Diagramas de Flujo 2

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008

Pontificia Universidad Católica del Ecuador

Introducción a la Programación 11 O. Humberto Cervantes Maceda

Soporte lógico de computadoras

Algorítmica y Lenguajes de Programación. Ordenación (i)

MATEMÁTICA PARA COMPUTACIÓN I Código

1 ELEMENTOS BASICOS DEL LENGUAJE

GENERACIÓN DE CÓDIGO

CONTENIDO. 1. Introducción. 2. Reseña histórica del computador. 3. Definición de computador.

Universidad Metropolitana Castro Carazo Prof. Ing. Patricia Vargas. Material de apoyo Semana #2 PROGRAMACIÓN II

Programa de estudios por competencias Algoritmia. Programa elaborado por: María Obdulia González Fernández, Jesús Salas Ramírez

CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS

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

Tema 1: Computadores y Programas

1 La Resolución de Problemas utilizando la Computadora

Muchas veces hemos visto un juego de billar y no nos percatamos de los movimientos de las bolas (ver gráfico 8). Gráfico 8

ARREGLOS DEFINICION GENERAL DE ARREGLO

Estructuras de repetición

TRADUCTORES, COMPILADORES E INTÉRPRETES. EJERCICIOS TEMA 5, 6, 7 y 8.

Capítulo 4 Procesos con estructuras de repetición

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

MINISTERIO DE EDUCACIÓN DIRECCIÓN DE EDUCACIÓN TÉCNICA Y PROFESIONAL PROGRAMA DE LA ASIGNATURA PROGRAMACIÓN I ESPECIALIDAD INFORMÁTICA.

Introducción a las Ciencias de la Computación

Nombre de la asignatura: Programación Estructurada. Créditos: Aportación al perfil

6ª Práctica. Matlab página 1

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

Nano Taller de Python

Introducción a la calidad de código

Figura 4.1 Clasificación de los lenguajes de bases de datos

Fortran tiene dos tipos diferentes de subprogramas, las funciones y las subrutinas.

Funciones Reales en una Variable

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

INDICE Parte I. Conceptos 1. El estudio de los lenguajes de programación 2. Cuestiones de diseño de lenguajes

Operaciones con vectores

Pontificia Universidad Católica del Ecuador

Estructuras de datos: Árboles binarios de

Informática I. While & do While

Lenguaje de Diseño Primer Cuatrimestre

PROCEDIMIENTO OPERATIVO DESARROLLAR SISTEMAS INFORMÁTICOS PDO-COCTI-DTIN-04

Escuela de Ingeniería en Informática Empresarial SYLLABUS

PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas

Árbol binario. Elaborado por Ricardo Cárdenas cruz Jeremías Martínez Guadarrama Que es un árbol Introducción

ANÁLISIS SEMÁNTICO. Especificación formal: Semántica Operacional, semántica denotacional, semántica Axiomática, Gramáticas con Atributos.

BANCOS. Manejo de Bancos. Como crear una ficha de Banco? Como modificar los datos de una ficha de Banco? Como borrar una ficha de Banco?

Tema 7. SISTEMAS SECUENCIALES SISTEMAS SECUENCIALES SÍNCRONOS

Basic Object Oriented Programming (BOOP) Gramática del Lenguaje. Ever Mitta Flores

TEMA 2: DESARROLLO DEL SOFTWARE

18. Camino de datos y unidad de control

FACULTAD DE INGENIERÍA

Presentación del Curso Virtual PROGRAMACIÓN WEB PHP CON MYSQL BÁSICO

Estructura de datos (arreglos) Vectores y Matrices

TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ;

Semántica Denotacional

Técnicas de prueba 1. FUNDAMENTOS DE LA PRUEBA DEL SOFTWARE

Datos de la materia. Clave de la materia: Liga al programa de la asignatura: Competencias a desarrollar:

Transcripción:

Resolución de Problemas con algoritmos Colaboratorio de Computación Avanzada (CNCA) 2015 1 / 27

Contenidos 1 Introducción 2 Elementos de algoritmos Elementos Variables Estructuras de Control Condicionales Ciclos Estructuras de Datos 3 Funciones y Recursividad Funciones Recursividad 4 Síntesis 2 / 27

Introducción 3 / 27

Definición Un algoritmo es un conjunto: Ordenado Finito cuyos elementos (instrucciones) son: Finitos Bien especificados (no ambiguos) implementado por un agente que no requiere de ingenio. 4 / 27

Representación de algoritmos Los algoritmos se pueden escribir de diversas formas: En lenguaje natural, con expresiones comunes. 1 Sean dos números enteros. 2 Sumarlos. 3 Escribir el resultado al final de la página. En lenguaje formal, con símbolos matemáticos. 1 Sean a, b Z 2 c = a + b 3 El resultado es c Por qué es preferible utilizar símbolos matemáticos? 5 / 27

Representación de algoritmos Los algoritmos se pueden escribir de diversas formas: En lenguaje natural, con expresiones comunes. 1 Sean dos números enteros. 2 Sumarlos. 3 Escribir el resultado al final de la página. En lenguaje formal, con símbolos matemáticos. 1 Sean a, b Z 2 c = a + b 3 El resultado es c Por qué es preferible utilizar símbolos matemáticos? 5 / 27

Elementos de algoritmos 6 / 27

Elementos de un algoritmo Instrucciones: indican qué hacer en un momento dado. Mostrar valor en pantalla, Guardar archivo, etc. Variables: contenedores, su valor puede cambiar con el tiempo. a = 1, b = 2,5. Operadores: transforman o modifican expresiones. Asignación: = Aritméticos: +, -, /, *, % Comparación: >, <, >=, <=, ==,!= Lógicos:, &&,! (equivalentes a,, respectivamente). 7 / 27

Elementos de un algoritmo (2) Estructuras de control: alteran la secuencia de las instrucciones. Estructuras de datos: organizan y relacionan conjuntos de variables. 8 / 27

Variables Representan valores de diversos tipos. Poseen: Nombre. Valor. Dirección, tipo y tamaño. Ejemplo: nombre = Bruce profesión = Batman edad = 33 x = g y = 3,14159265359 En programación, las variables debe ser declaradas e inicializadas. 9 / 27

Estructuras de control Los programas son por lo general secuenciales. El flujo de instrucciones se puede modificar mediante estructuras de control: De selección o condicionales. De repetición (ciclos). 10 / 27

Condicionales Estructuras de control que realizan una secuencia de instrucciones sólo si se cumple una condición. Por ejemplo: Un juego de escudo y corona se rige por la regla: Si sale lo que escogí, entonces gano; sino, entonces pierdo. Programa para escudo y corona 11 / 27

Ciclos Estas estructuras de control repiten instrucciones muchas veces en forma impĺıcita. Utilizan un valor para contar la cantidad de repeticiones. Plantean repeticiones en forma iterativa. Por ejemplo, una estructura matemática iterativa es la sumatoria: 10 i=1 i = 1 + 2 +... + 9 + 10 Cómo se le dice a una computadora que muestre todos los números entre 1 y 10? 12 / 27

Ejemplo sin estructuras de control Algorithm 1 Imprimir en pantalla los números del 1 al 10 1: function Imprimir 2: imprimir 1 3: imprimir 2 4: imprimir 3 5: imprimir 4 6: imprimir 5 7: imprimir 6 8: imprimir 7 9: imprimir 8 10: imprimir 9 11: imprimir 10 12: end function 13 / 27

Mientras La estructura de control mientras (while) repite un conjunto de instrucciones la cantidad de veces indicada. Estructura de control mientras 14 / 27

Ejemplo con estructuras de control Algorithm 2 Imprimir en pantalla los números del 1 al 10 1: function Imprimir 2: x = 1 3: while x <= 10 do 4: imprimir x 5: x = x + 1 (*) 6: end while 7: end function (*) Conceptos importantes: acumuladores y cambio de valor. 15 / 27

Estructuras de Datos Las estructuras de datos organizan y facilitan la lectura, manipulación y relación de valores. Algunos tipos básicos: Arreglos y matrices. Listas. Grafos y árboles. Estructura de datos 16 / 27

Control de instrucciones La repetición expĺıcita mediante Para y Mientras se conoce como iteración. La repetición impĺıcita se observa en estructuras y procesos. Es conocida como recursión o recursividad. 17 / 27

Funciones y Recursividad 18 / 27

Funciones Las funciones: Son módulos que contienen instrucciones que resuelven tareas específicas. Ayudan a modularizar el problema. Permiten construir soluciones complejas mediante elementos sencillos. Reciben algún tipo de entrada, la transforman o manipulan y retornan el resultado. Pueden ser utilizadas dentro de otras funciones. Pueden combinarse con otras funciones. Principio de composición funcional: f(g(x)). 19 / 27

Ejemplo de función Objetivo: Encontrar la posición de un número en una lista. Sean L una lista de números, y n el elemento buscado. Algorithm 3 Búsqueda en una lista 1: function Buscar(L, n) 2: m = Primer elemento de L 3: while queden elementos en L do 4: if m == n then 5: Retornar m 6: else 7: m = siguiente elemento de L 8: end if 9: end while 10: end function 20 / 27

Ejemplo de función con estructuras discretas Ejemplo con nomenclatura de conjuntos: Sean L un conjunto ordenado, l Z el número buscado, L la cantidad de elementos de L y L i el elemento en la posición i. Algorithm 4 Búsqueda en una lista 1: function Buscar(L, l) 2: i = 1 3: while i < L do 4: if L m == l then 5: Retornar L m 6: end if 7: i = i + 1 8: end while 9: end function 21 / 27

Recursividad La recursividad se refiere la repetición de: Formas en una estructura. Instrucciones en una función. y en ambos casos describe estructuras/funciones autocontenidas. Triángulo de Sierpinski 22 / 27

Caracterización de recursividad El comportamiento recursivo se caracteriza por: Un conjunto de casos base. Un conjunto de reglas que permiten alcanzar uno de los casos base. Por ejemplo, el conjunto de números naturales: 1 0 N. 2 Si n N, n + 1 N 23 / 27

Ejemplo de algoritmo recursivo Algorithm 5 Calcular serie de Fibonacci 1: function fibonacci(n) 2: if n == 0 n == 1 then 3: retornar n 4: else 5: retornar fibonacci(n 1) + fibonacci(n 2) 6: end if 7: end function 24 / 27

Síntesis 25 / 27

Síntesis Los algoritmos representan soluciones en lenguaje formal. Las variables representan valores. Los operadores modifican valores. Las estructuras de control alteran el flujo de instrucciones. 26 / 27

Lecturas recomendadas Michael Sipser. Introduction to the Theory of Computation. 2da Edición, Course Technology, 2005. ISBN: 978-0534950972. Gilles Brassard y Paul Bratley. Fundamentals of Algorithmics. Prentice Hall, 1995. ISBN: 978-0133350685. 27 / 27