PDF de programación - Funciones - Problemas de solución directa

<<>>
Imágen de pdf Funciones - Problemas de solución directa

Funciones - Problemas de solución directagráfica de visualizaciones

Publicado el 2 de Mayo del 2019
436 visualizaciones desde el 2 de Mayo del 2019
7,5 MB
28 paginas
UE#03



PROBLEMAS DE SOLUCIÓN

DIRECTA



FUNCIONES

Índice

n  Taxonomía de problemas
n  Problemas como funciones
n  Concepto de función
n  Especificación de una función. Cláusulas

PRE/POST

n  Funciones de usuario en Java
n  Parámetros

TAXONOMÍA DE PROBLEMAS

n  Solución Directa: El algoritmo se especifica a través de

una fórmula. Se representa con una expresión.

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.

n  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

n  Hay que enmarcar, constreñir, acotar el

problema

n  Hay que identificar los datos y las

ligaduras

n  Hay que encasillarlo
n  Hay que proporcionarle un aspecto.

Buscarle un traje.

PROBLEMAS COMO FUNCIONES

n  Las funciones ofrecen una sintaxis clara y

conocida.

n  Tienen un nombre.
n  Hacen mención a los datos que manejan.
n  Permiten expresar cálculos.
n  Ofrecen un resultado.

CONCEPTO DE FUNCIÓN

PREcondiciones


CUERPO

POSTcondiciones

CONCEPTO DE FUNCIÓN

n  Operación sobre un conjunto de datos y

sus restricciones, que emite un resultado.
n  PRE: restricción que define el conjunto de

estados para los que se asegura que el
problema va a tener solución.

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

n  Cabecera:
n  Nombre
n  Lista de parámetros
n  Domino del resultado

n  Precondición
n  Postcondición

ESPECIFICACIÓN DE UNA

FUNCIÓN

n  La lista de parámetros da nombre a cada

parámetro y le asigna un dominio.

n  La PRE acota el dominio o describe alguna

propiedad, de alguno de los parámetros.
n  La POST relaciona todos los parámetros

con el resultado.

n  Cuanto más restrictiva sea la PRE, menos

reutilizable es la función.

EJEMPLOS DE ESPECIFICACIÓN

n  Problema1: Área del triángulo
n  FUNCIÓN AreaTriangulo (|R base, altura) -----à |R
n  PRE: (base>=0) /\ (altura>=0)
n  POST: resultado = (base * altura) / 2

n  Problema2: Ser un número múltiplo de otro
n  FUNCIÓN EsMultiplo (|N m, n) -----à |B
n  PRE: (m>0) /\ (n>0)
n  POST: resultado es cierto si existe un número

entero positivo que multiplicado por n da m y
resultado es falso en caso contrario.

EJERCICIOS DE ESPECIFICACIÓN

n  Ejercicio1: Volumen del cilindro

n  Ejercicio2: Ser un número par

n  Ejercicio3: Menor de dos números

EJERCICIOS DE ESPECIFICACIÓN

n  Ejercicio1: Volumen del cilindro

n  FUNCIÓN VolumenCilindro1 (|R radio, altura) --à |R
n  PRE: (radio>=0) /\ (altura>=0)
n  POST: resultado = pi * radio * radio * altura
n  FUNCIÓN VolumenCilindro2 (|R radio, altura) --à |R
n  PRE: (radio>=0) /\ (altura>=0)
n  POST: resultado = AreaCirculo(radio) * altura
n  FUNCIÓN AreaCirculo (|R radio) --à |R
n  PRE: (radio>=0)
n  POST: resultado = pi * radio * radio

EJERCICIOS DE ESPECIFICACIÓN

n  Ejercicio2: Ser un número par
n  FUNCIÓN EsPar (|N m) -----à |B
n  PRE: (m>0)
n  POST1: resultado es cierto si existe un número

entero positivo que multiplicado por 2 da m y
resultado es falso en otro caso.
n  POST2: resultado es cierto si m es múltiplo de
2 y es falso en otro caso.
n  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

n  Ejercicio3: Menor de dos números

n  FUNCIÓN Menor2 (|N a, b) à |N
n  PRE: cierto
n  POST1: resultado es el menor de los dos valores a y
n  POST2: (resultado <= a) /\ (resultado <= b) /\

b
(resultado EN {a,b})

n  ¡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

n  Formato: Cabecera y cuerpo

n  <<TipoRes>> <<Nombre>> (<<ListaParámetros>>)
n  {
n  <<Bloque>>
n  }

n  { y } comienzo y fin del cuerpo de la

función.

FUNCIONES EN Java

n  TipoRes: Dominio (tipo) del resultado.
n  Nombre: Identificador que da nombre a la

función. Debe empezar por una letra minúscula.

n  ListaParámetros: Secuencia de pares
TipoParametro NombreParametro
separados por ,
n  Bloque: Secuencia de órdenes
(sentencias) separadas por ;

FUNCIONES EN Java

n  Sentencia return
n  Formato: return <<expresión>>;
n  Funcionamiento:

n  Se evalúa la expresión. El valor será el

resultado de la función.

n  Se termina la función.

n  Obligatoria en el bloque de una función.

EJEMPLOS DE CODIFICACIÓN

FUNCIÓN AreaCirculo (|R radio) --à |R
n  PRE: (radio>=0)
n  POST: resultado = pi * radio * radio
n  double areaCirculo (double radio)
n  {
n  return Math.PI * radio * radio;
n  }
n  FUNCIÓN VolumenCilindro2 (|R radio, altura) --à |R
n  PRE: (radio>=0) /\ (altura>=0)
n  POST: resultado = AreaCirculo(radio) * altura
n  double volumenCilindro (double radio, double altura)
n  {
n  return altura * areaCirculo (radio);
n  }

EJERCICIOS DE CODIFICACIÓN

n  Ejercicio4: Área del triángulo

n  Ejercicio5: Ser un número múltiplo de

otro

n  Ejercicio6: Menor de dos números

EJERCICIOS DE CODIFICACIÓN
n  FUNCIÓN AreaTriangulo (|R base, altura) -----à |R
n  PRE: (base>=0) /\ (altura>=0)
n  POST: resultado = (base * altura) / 2
n  double areaTriangulo (double base, double altura)
n  {
n  return (base * altura) / 2.0;
n  }
n  FUNCIÓN EsMultiplo (|N m, n) -----à |B
n  PRE: (m>0) /\ (n>0)
n  POST: resultado es cierto si existe un número entero

positivo que multiplicado por n da m y resultado es
falso en caso contrario.

n  boolean esMultiplo (int m , int n)
n  {
n  return (m % n) == 0;
n  }

EJERCICIOS DE CODIFICACIÓN

(resultado EN {a,b})

n  FUNCIÓN Menor2 (|N a, b) à |N
n  PRE: cierto
n  POST: (resultado <= a) /\ (resultado <= b) /\
n  int menor2 (int a , int b)
n  {
n  return (a + b - Math.abs (a-b)) / 2;
n  }

PARÁMETROS

n  Declaración de una función: El código

completo de la función (cabecera y cuerpo).

n  Invocación de una función: El nombre
seguido de la lista de parámetros actuales.

n  Parámetros formales: Los que aparecen en la

declaración.

n  Parámetros actuales: Los que aparecen en la

invocación.

PARÁMETROS

n  FUNCIÓN Cubo (|N numero) à |N
n  PRE: cierto
n  POST: resultado = numero^3
n  int cubo (int numero)
n  {
n  return numero * numero * numero;
n  }

n  Invocaciones válidas:

n  int dato = 2;
n  int prueba1 = cubo(dato);
n  int prueba2 = cubo(3);
n  int prueba3 = dato + cubo(dato);
n  int prueba4 = cubo(cubo(dato));

PARÁMETROS

n  Parámetro formal de cubo:
n  numero

n  Parámetros actuales en cada prueba:
n  En la 1: dato
n  En la 2: 3
n  En la 3: dato
n  En la 4: cubo(dato)

EJERCICIO DE RECAPITULACIÓN

n  Problema: Superficie o área total del

cilindro

n  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

n  FUNCION superficieCilindro (|R radio, altura) à|R
n  PRE: (radio >= 0) /\ (altura >= 0)
n  POST: resultado = 2 * AC + AR
n  DONDE: AC = AreaCirculo (radio)
n  AR = AreaRectangulo (LC, altura)
n  LC = LongitudCicunferencia (radio)
n  double superficieCilindro (double radio,
n  double altura)
n  {
n  return 2 *
n  areaCirculo (radio) +
n  areaRectangulo (longitudCircunferencia (radio),
n  altura);
n  }

EJERCICIO DE RECAPITULACIÓN

n  FUNCION areaRectangulo (|R base, altura) à |R
n  PRE: (base >= 0) /\ (altura >= 0)
n  POST: resultado = base * altura
n  double areaRectangulo (double base, double altura)
n  {
n  return base * altura;
n  }
n  FUNCION longitudCircunferencia (|R radio) à |R
n  PRE: radio >= 0
n  POST: resultado = 2 * pi * radio
n  double longitudCircunferencia (double radio)
n  {
n  return 2 * Math.PI * radio;
n  }

VISIBILIDAD

n  Todo lo declarado en el cuerpo de la

función tiene consideración local.

n  Los parámetros formales quedan

declarados en la cabecera. También tienen
consideración local.

n  Lo local es invisible desde fuera.
  • Links de descarga
http://lwp-l.com/pdf15835

Comentarios de: Funciones - Problemas de solución directa (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad