UE#03 PROBLEMAS DE SOLUCIÓN DIRECTA FUNCIONES

Documentos relacionados
Estructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa

Programación 1 Tema 5. Instrucciones simples y estructuradas

PROBLEMAS DE RECORRIDO

Unidad IV. Este tipo de codificación nos es permitido gracias a la sobrecarga, la cual se aplica a métodos y constructores.

Comprender las diferencias entre tipos de datos primitivos similares, y aprender a elegir el tipo más conveniente en cada caso.

Primeros Pasos en Python 3

1. Corrección de un programa TEMA 2: ESPECIFICACIÓN Y CORRECCIÓN DE ALGORITMOS. 1. Corrección de un programa. 1. Corrección de un programa

Programación 1 Tema 3. Información, datos, operaciones y expresiones

Programación 1 Tema 5. Instrucciones simples y estructuradas

El pseudocódigo es una herramienta de programación en la que las instrucciones se escriben en palabras similares al inglés o español, que facilitan

DISEÑO ESTRUCTURADO USANDO HERRAMIENTAS DE

Capítulo 11 INTRODUCCIÓN A LA CODIFICACIÓN EN C. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

Una clasificación de los tipos de datos existentes en los diferentes lenguajes de programación se presenta a continuación:

Asignatura: Estructuras de Datos. Año Escolar: Grado y Sección: 6to INF A-B Docente: Ing. Yesika Medina

Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE)

Introducción a c++ Introducción a la programación EIS Informática III

UE#04 PROBLEMAS DE ANÁLISIS DE CASOS CONTROL DE ALTERNATIVAS

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Bloque 1. Conceptos y técnicas básicas en programación

Se debe disponer sobre la mesa un documento de identificación con fotografía.

Programación 2. Lección 4. Metodología de diseño de algoritmos recursivos

Especificación Clase 2

Fundamentos de la programación

Guía práctica de estudio 05: Pseudocódigo

Fundamentos de programación

GUÍA DE ESTILO EN JAVA

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

Asignatura: Estructuras de Datos. Docente: Ing. Yesika Medina Grado y Sección: 6to INF A-B

Programación 1. Tema I. Conceptos y elementos básicos de Programación. Lección 1. Problemas de tratamiento de información, algoritmos y programas

CAPÍTULO 2 DISEÑO E IMPLEMENTACIÓN DE MÉTODOS EN C#

1/10. Diseño Modular III. 25 de febrero de 2017

Tipos de Datos Abstractos TDA

5. Sentencias selectivas o condicionales

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Elementos de un programa en C

Objetivos. Contenidos. Revisar los principales conceptos de la lógica de primer orden

Soluciones a los Ejercicios Propuestos en el libro: EMPEZAR DE CERO A PROGRAMAR EN lenguaje C. Autor: Carlos Javier Pes Rivas

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

Programación - Algorítmica

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

Programación MODULAR: Subalgoritmos - funciones y procedimientos

Guía práctica de estudio 04: Diagramas de flujo

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Resolución de Problemas y Algoritmos

Variables Globales: Estas se crean durante toda la ejecución del programa, y son globales, ya que pueden ser llamadas, leídas, modificadas, etc;

Clase 2: El Lenguaje Python

Unidad Didáctica 1. Introducción a la Programación Orientada a Objetos (POO) Conceptos de clase, objeto e interfaz. Atributos y métodos

No pueden empezar por un número, es decir, el primer caracter del nombre de la variable ha de ser una letra o _

Introducción a la computación. Carlos Lopez Pombo

abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Programación 1 Tema 3. Información, datos, operaciones y expresiones

Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

Introducción a la Programación

DISEÑO DESCENDENTE: SUBPROGRAMAS

PROGRAMACIÓN EN LENGUAJE C VARIABLES Y CONSTANTES

Tema 14: Diseño Estructurado (Modularidad)

UNTELS Estructuras Selectivas (Sin anidar) Estructuras condicionales

LENGUAJE FORTRAN. FUNCIONES Y SUBRUTINAS

Lección 2 Introducción al lenguaje C

Introducción a la programación

Lección 2: Creando una Aplicación en Java. 1. Estructura del archivo de una clase. 3. Definiendo clases fundamentos

Laboratorio de Arquitectura de Redes. Sentencias de control en lenguaje C

La resolución de problemas es una tarea únicamente humana comprobable en todos los casos con los mismos resultados.

Programación 2. Lección 1. Introducción a la especificación formal de algoritmos

Paradigmas de lenguajes de programación. Introducción a la programación imperativa. Lenguaje C. Programación imperativa

Informática Ingeniería en Electrónica y Automática Industrial

Principios de Computadoras II

Expresiones y sentencias

U.A.B.C. Facultad de Ingeniería Programación Estructurada UNIDAD III

ESTRUCTURA DE ASIGNACIÓN

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

Abstracciones de diseño

Unidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.

Un identificador le da nombre único a un elemento en un programa (Variables, procedimientos, etc.). No puede contener operadores como + - * /

FUNCIONES PHP: DECLARACIÓN Y LLAMADAS. PARÁMETROS, RETURN. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B)

Guía práctica de estudio 05: Diagramas de flujo

PROGRAMA. 2) CONTENIDOS MÍNIMOS Introducción a algoritmos Estilos y tipos de programación. 3) PROGRAMA ANALÍTICO

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Sintaxis de PSeInt Tutorial

Agenda para esta clase

Tema 2 Elementos básicos en C

Informática Lección 5. Arreglos (vectores) Curso Pedro Álvarez y José Ángel Bañares 2/11/2010. Dpto. Informática e Ingeniería de Sistemas.

ING1310 Introducción a la Computación. Python. Conceptos Básicos. Carlos Reveco

Conceptos Básicos. Programación

FUNDAMENTOS DE INFORMÁTICA

FUNCIONES. Identificador valido. Tipo-Funcion Identificador_de_la_funcion (Tipo par1,tipo par2 )

Resumen Clase Anterior Arreglos Unidimensionales Ejemplos Ejercicio Arreglos Multidimensionales. ING1310 Introducción a la Computación.

Dra. Jessica Andrea Carballido

Métodos que devuelven valor Dado el siguiente triángulo rectángulo:

Java Básico. Métodos estáticos

CAPITULO 6: FUNCIONES

Resolución de Problemas y Algoritmos Segundo cuatrimestre 2015 Clase 11: Construcción de primitivas (Funciones)

Introducción a Java. Introducción a Java. Programación I

Capítulo 9 ESTRUCTURA DE UN ALGORITMO. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

El lenguaje C. 1. Identificadores, constantes y variables

Tipos de datos y Operadores Básicos

Java posee dos grandes categorías de tipos para las variables:

Transcripción:

UE#03 PROBLEMAS DE SOLUCIÓN DIRECTA FUNCIONES

Índice Taxonomía de problemas Problemas como funciones Concepto de función Especificación de una función. Cláusulas PRE/POST Funciones de usuario en Java Parámetros

TAXONOMÍA DE PROBLEMAS Solución Directa: El algoritmo se especifica a través de una fórmula. Se representa con una expresión. Análisis de casos: El algoritmo tiene que distinguir entre varios casos posibles. Se representa con construcciones sintácticas de selección de alternativas. Recorrido: El algoritmo requiere realizar una recombinación de cálculos. Se representa con una construcción sintáctica de repetición.

PROBLEMAS COMO FUNCIONES Hay que enmarcar, constreñir, acotar el problema Hay que identificar los datos y las ligaduras Hay que encasillarlo Hay que proporcionarle un aspecto. Buscarle un traje.

PROBLEMAS COMO FUNCIONES Las funciones ofrecen una sintaxis clara y conocida. Tienen un nombre. Hacen mención a los datos que manejan. Permiten expresar cálculos. Ofrecen un resultado.

CONCEPTO DE FUNCIÓN PREcondiciones CUERPO POSTcondiciones

CONCEPTO DE FUNCIÓN Operación sobre un conjunto de datos y sus restricciones, que emite un resultado. PRE: restricción que define el conjunto de estados para los que se asegura que el problema va a tener solución. POST: aserto que establece la relación entre los datos y el resultado. Lo que enuncia el problema.

ESPECIFICACIÓN DE UNA FUNCIÓN Cabecera: Nombre Lista de parámetros Domino del resultado Precondición Postcondición

ESPECIFICACIÓN DE UNA FUNCIÓN La lista de parámetros da nombre a cada parámetro y le asigna un dominio. La PRE acota el dominio o describe alguna propiedad, de alguno de los parámetros. La POST relaciona todos los parámetros con el resultado. Cuanto más restrictiva sea la PRE, menos reutilizable es la función.

EJEMPLOS DE ESPECIFICACIÓN Problema1: Área del triángulo FUNCIÓN AreaTriangulo ( R base, altura) -----à R PRE: (base>=0) /\ (altura>=0) POST: resultado = (base * altura) / 2 Problema2: Ser un número múltiplo de otro FUNCIÓN EsMultiplo ( N m, n) -----à B PRE: (m>0) /\ (n>0) POST: resultado es cierto si existe un número entero positivo que multiplicado por da m y resultado es falso en caso contrario.

EJERCICIOS DE ESPECIFICACIÓN Ejercicio1: Volumen del cilindro Ejercicio2: Ser un número par Ejercicio3: Menor de dos números

EJERCICIOS DE ESPECIFICACIÓN Ejercicio1: Volumen del cilindro FUNCIÓN VolumenCilindro1 ( R radio, altura) --à R PRE: (radio>=0) /\ (altura>=0) POST: resultado = pi * radio * radio * altura FUNCIÓN VolumenCilindro2 ( R radio, altura) --à R PRE: (radio>=0) /\ (altura>=0) POST: resultado = AreaCirculo(radio) * altura FUNCIÓN AreaCirculo ( R radio) --à R PRE: (radio>=0) POST: resultado = pi * radio * radio

EJERCICIOS DE ESPECIFICACIÓN Ejercicio2: Ser un número par FUNCIÓN EsPar ( N m) -----à B PRE: (m>0) POST1: resultado es cierto si existe un número entero positivo que multiplicado por 2 da m y resultado es falso en otro caso. POST2: resultado es cierto si m es múltiplo de 2 y es falso en otro caso. POST3: resultado es cierto si el resto de la división de m entre 2 da 0 y es falso en otro caso

EJERCICIOS DE ESPECIFICACIÓN Ejercicio3: Menor de dos números FUNCIÓN Menor2 ( N a, b) à N PRE: cierto POST1: resultado es el menor de los dos valores a y b POST2: (resultado <= a) /\ (resultado <= b) /\ (resultado EN {a,b}) Ojo! Sin esta última condición bastaría con que resultado fuese 0 para que se cumplieran las dos anteriores, para todo número natural y sin embargo, estaría mal.

FUNCIONES EN Java Formato: Cabecera y cuerpo { } <<TipoRes>> <<Nombre>> (<<ListaParámetros>>) <<Bloque>> { y } comienzo y fin del cuerpo de la función.

FUNCIONES EN Java TipoRes: Dominio (tipo) del resultado. Nombre: Identificador que da nombre a la función. Debe empezar por una letra minúscula. ListaParámetros: Secuencia de pares TipoParametro NombreParametro separados por, Bloque: Secuencia de órdenes (sentencias) separadas por ;

FUNCIONES EN Java Sentencia return Formato: return <<expresión>>; Funcionamiento: Se evalúa la expresión. El valor será el resultado de la función. Se termina la función. Obligatoria en el bloque de una función.

EJEMPLOS DE CODIFICACIÓN { } FUNCIÓN AreaCirculo ( R radio) --à R PRE: (radio>=0) POST: resultado = pi * radio * radio double areacirculo (double radio) return Math.PI * radio * radio; FUNCIÓN VolumenCilindro2 ( R radio, altura) --à R PRE: (radio>=0) /\ (altura>=0) POST: resultado = AreaCirculo(radio) * altura double volumencilindro (double radio, double altura) { } return altura * areacirculo (radio);

EJERCICIOS DE CODIFICACIÓN Ejercicio4: Área del triángulo Ejercicio5: Ser un número múltiplo de otro Ejercicio6: Menor de dos números

EJERCICIOS DE CODIFICACIÓN FUNCIÓN AreaTriangulo ( R base, altura) -----à R PRE: (base>=0) /\ (altura>=0) POST: resultado = (base * altura) / 2 double areatriangulo (double base, double altura) { return (base * altura) / 2.0; } FUNCIÓN EsMultiplo ( N m, n) -----à B PRE: (m>0) /\ (n>0) POST: resultado es cierto si existe un número entero positivo que multiplicado por da m y resultado es falso en caso contrario. boolean esmultiplo (int m, int n) { return (m % n) == 0; }

EJERCICIOS DE CODIFICACIÓN FUNCIÓN Menor2 ( N a, b) à N PRE: cierto POST: (resultado <= a) /\ (resultado <= b) /\ (resultado EN {a,b}) int menor2 (int a, int b) { return (a + b - Math.abs (a-b)) / 2; }

PARÁMETROS Declaración de una función: El código completo de la función (cabecera y cuerpo). Invocación de una función: El nombre seguido de la lista de parámetros actuales. Parámetros formales: Los que aparecen en la declaración. Parámetros actuales: Los que aparecen en la invocación.

PARÁMETROS FUNCIÓN Cubo ( N numero) à N PRE: cierto POST: resultado = numero^3 int cubo (int numero) { } return numero * numero * numero; Invocaciones válidas: int dato = 2; int prueba1 = cubo(dato); int prueba2 = cubo(3); int prueba3 = dato + cubo(dato); int prueba4 = cubo(cubo(dato));

PARÁMETROS Parámetro formal de cubo: numero Parámetros actuales en cada prueba: En la 1: dato En la 2: 3 En la 3: dato En la 4: cubo(dato)

EJERCICIO DE RECAPITULACIÓN Problema: Superficie o área total del cilindro La superficie comprende las dos bases, que son círculos, más el área lateral o área del contorno, que es un rectángulo.

EJERCICIO DE RECAPITULACIÓN FUNCION superficiecilindro ( R radio, altura) à R PRE: (radio >= 0) /\ (altura >= 0) POST: resultado = 2 * AC + AR DONDE: AC = AreaCirculo (radio) AR = AreaRectangulo (LC, altura) LC = LongitudCicunferencia (radio) double superficiecilindro (double radio, double altura) { return 2 * areacirculo (radio) + arearectangulo (longitudcircunferencia (radio), altura); }

EJERCICIO DE RECAPITULACIÓN FUNCION arearectangulo ( R base, altura) à R PRE: (base >= 0) /\ (altura >= 0) POST: resultado = base * altura double arearectangulo (double base, double altura) { } return base * altura; FUNCION longitudcircunferencia ( R radio) à R PRE: radio >= 0 POST: resultado = 2 * pi * radio double longitudcircunferencia (double radio) { } return 2 * Math.PI * radio;

VISIBILIDAD Todo lo declarado en el cuerpo de la función tiene consideración local. Los parámetros formales quedan declarados en la cabecera. También tienen consideración local. Lo local es invisible desde fuera.