Funciones y subrutinas

Documentos relacionados
Funciones y subrutinas

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

Estructuras de Control

Diseño descendente. Su ejecución se controla desde alguna otra unidad de programa (que puede ser el programa principal u otro procedimiento externo).

Estructuras de control

Programación MODULAR: Subalgoritmos - funciones y procedimientos

Funciones como Subprogramas en C++

INTRODUCCIÓN A LA PROGRAMACIÓN EN FORTRAN. Métodos Numéricos Carlos Zotelo

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

GUÍA BÁSICA DE SCHEME v.4

Apunte Laboratorio ALPI - El lenguaje de programación Pascal

8.1.- FUNCIONES Y PROCEDIMIENTOS DEFINIDOS POR EL USUARIO EN TURBO PASCAL.

Componentes Básicos. InCo. InCo Componentes Básicos 1 / 28

Módulo 8: Primitivas en Pascal

Escuela Superior Tepeji del Río

Esquemas repetitivos en Fortran 90. Esquemas repetitivos en Fortran 90. Esquemas repetitivos en Fortran 90. Tipos de Esquema

Unidad I. Solución de ecuaciones no lineales 1. Métodos cerrados. LMM

2.1 METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS

Tema 5. Soporte lógico de computadoras.

JavaScript Básico. Elementos Básicos: Comentarios: Literales: Valores que puede tomar una variable o una constante.

GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo:

Programación MATLAB: Programas y Funciones.

Declaración de Procedimientos

Estructuración del programa en partes más pequeñas y sencillas

FUNDAMENTOS DE INFORMÁTICA

5. Subprogramas Fundamentos de Informática

Introducción al lenguaje C

llamada a la función Val(num) cambiosigno(n) redondeo(num,3)

LÓGICA - DECISIONES. Hay dos tipos de expresiones lógicas: las expresiones lógicas relacionales y las expresiones lógicas combinacionales.

RECORDAR TIPOS DE DATOS

Declaración de variables. Sentencias de entrada/salida

Manual de turbo pascal

TEMA 5: Subprogramas, programación modular

Java para no Programadores

Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS. Departamento de Ciencias de la Computación e IA. Subprogramas en C

Unidad II: Análisis semántico

Programación Modular. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz

Unidades en PASCAL (Units)

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

Números enteros (cortos, largos y sin signo) Números reales (precisión simple y doble) Carácter y cadenas de caracteres. Lógicos.

Práctica 2. TIPOS DE DATOS SIMPLES

Introducción rápida a la programación (estructurada ) con C++

Algorítmica y Lenguajes de Programación. Ordenación (ii) En la lección anterior se vieron dos métodos de ordenación:

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

Introducción a los subalgoritmos o subprogramas

5. Subprogramas. 1.1 Análisis Coseno. 1. Cálculo de la función Coseno. cos( x) = ( 1) (2)! i

4. Operadores Operador asignación

9.1.- PROGRAMACION MODULAR:

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

Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 1: Recursividad. Prof. Montserrat Serrano Montero

Variables lógicas y sentencia IF

GLOSARIO DE MICROSOFT VISUAL BASIC (HAZ CLIC EN LA OPCION DEL MENU Y ACCEDERAS RAPIDAMENTE)

Programación I Teoría II.

1. ESTRUCTURA DE UN PROGRAMA PASCAL Todo programa escrito en lenguaje Pascal, del más simple al más complejo, tiene la siguiente estructura:

Herramientas computacionales para la matemática MATLAB: Funciones definidas por el usuario (parte I)

Funciones y paquetes PL/SQL. Jonathan Medina Gómez Facultad de ingeniería Universidad de Antioquia

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

PARTE 3: CONCEPTOS BÁSICOS DE PROGRAMACIÓN: QBASIC

TEMA 4: Programación estructurada

El lenguaje C. 1. Identificadores, constantes y variables

Tema 3: Características de la programación funcional. Sesión 5: El paradigma funcional (1)

Es ambigua, ya que la división y la multiplicación tienen el mismo grado de precedencia, qué parte de la expresión se realiza primero?

2.3 DEFINICIÓN DE LENGUAJES ALGORÍTMICOS

Introducción a Python. Cecilia Manzino

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

TEMA 4: ALGORITMOS Y PROGRAMAS

Programación y Algoritmia

LABORATORIO DE PROCESADORES DE LENGUAJE Curso: Práctica 2: Analizador léxico/sintáctico/semántico con Flex y Bison

Operadores y Expresiones

: Algorítmica y Estructura de Datos I

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

Funciones Tipos de funciones y Recursividad

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

Repetición Predefinida Repetición con entrada condicionada Repetición con salida condicionada

Descripción de un Programa

Fundamentos de Programación 2017-I

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III

Estructuras de Datos y Algoritmos

TEMA 2. CONCEPTOS BÁSICOS DE ALGORÍTMICA

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

Capítulo 7 OPERADORES Y EXPRESIONES. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO

PASCAL. Repaso de Pascal Introducción a Python. Pascal. Pascal - introducción. Pascal Declaraciones: Variables. Pascal Declaraciones: Tipos 07/04/2015

Introducción a la programación: Algoritmos

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC.

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

Fundamentos de Programación 2017-I

Curso Completo de Visual Basic 6.0

Principios de Computadoras II

Lógica proposicional. Ivan Olmos Pineda

FUNDAMENTOS DE INFORMÁTICA

Diagrama de una computadora. Unidad Central de procesamiento (CPU)

Resolución de Problemas

Módulo. = Asignación = = Comp. de igualdad!= Com. de desigualdad <= Comp. menor o igual >= Comp. mayor o igual AND lógico OR lógica.

DESARROLLO DE APLICACIONES BASICAS DE MICROSOFT VISUAL BASIC. NET AGUILAR MERCADO JANETH

3.2. Programación estructurada. Principal. Modulo 1 Modulo 2 Modulo 3 Modulo 4. Modulo Modulo Modulo 3 1 Modulo 4 1 Modulo 4 2. Pág.

Introducción al Lenguaje de Programación C

DESCRIPCIÓN ESPECÍFICA NÚCLEO: Núcleo Sector Comercio y Servicios.

REPRESENTACIÓN DE DATOS

Manual de referencia de C++ Parte IV Variables Punteros. Preparado por Prof. Luis A. Ortiz Ortiz

Transcripción:

Algorítmica y Lenguajes de Programación Funciones y subrutinas Funciones y subrutinas. Introducción El diseño descendente permite obtener un programa que resuelva un problema dividiendo este en subproblemas cada vez más sencillos. Cada subproblema tiene asociado un pseudocódigo de alto nivel compuesto por acciones no primitivas. Cuando una de estas acciones no primitivas se repite en varios puntos del algoritmo es interesante darle un nombre y reutilizarla. Estas acciones con nombre se denominan subprogramas, pudiendo ser, a su vez, funciones y subrutinas. 2 1

Funciones y subrutinas. Ventajas Las ventajas de los subprogramas son múltiples: Facilitan la modularidad y estructuración de los algoritmos. Facilitan la lectura e inteligibilidad de los algoritmos. Permiten economizar el esfuerzo del programador al permitir reutilizar el mismo código en varios puntos del mismo algoritmo. Facilitan la depuración y mantenimiento de los programas. 3 Funciones y subrutinas. Funciones (i) Las funciones son subprogramas con 0 ó más argumentos que siempre devuelven un valor de retorno. Las funciones pertenecen entonces a un tipo determinado. La invocación de una función puede formar parte de: Una expresión. La parte derecha de una asignación. Una invocación de una función no puede formar: Una sentencia aislada. La parte izquierda de una asignación. 4 2

Funciones y subrutinas. Funciones (ii) Funciones intrínsecas: Las funciones intrínsecas son proporcionadas directamente por el lenguaje de programación. La mayor parte de funciones intrínsecas son funciones matemáticas como la raíz cuadrada, los logaritmos o funciones trigonométricas. Por cada una de las funciones intrínsecas más habituales en FORTRAN existe una función o un operador equivalentes en la notación algorítmica. 5 Funciones y subrutinas. Funciones (iii) Funciones de usuario (i): En muchas ocasiones el usuario estará interesado en deir sus propias funciones. Las funciones de usuario deben estar deidas dentro del algoritmo principal: deiciones de constantes declaraciones de variables program nombre_programa variables y constantes sentencias del algoritmo DEFINICIONES DE FUNCIONES end sentencias del programa contains DEFINICIONES DE FUNCIONES 6 3

Funciones y subrutinas. Funciones (iv) Funciones de usuario (ii): Para deir una función es necesario: El nombre de la función. El tipo de la función. Los argumentos de la función y el tipo de los mismos. Sintaxis de deición de funciones: tipo funcion nombre (arg1 tipo1,, argn tipon) sentencia1 sentencia2 sentencian tipo function nombre (arg1,, argn) declaración arg1 declaración argn sentencia1 sentencia2 sentencian end 7 Funciones y subrutinas. Funciones (v) Ejemplos de funciones de usuario: logico funcion siempreverdad () siempreverdad verdadero logical function siempreverdad () siempreverdad=.true. end function entero funcion maximo (a entero, b entero) si a>b entonces maximo a si no maximo b si integer function maximo (a, b) integer a,b if (a>b) then maximo=a else maximo=b end if end function 8 4

Funciones y subrutinas. Ámbitos (i) Las funciones pueden acceder a una serie de variables: Argumentos. Variables deidas dentro de la función. Estas variables se denominan locales por contraposición a las variables declaradas dentro del algoritmo principal denominadas globales. Las variables locales sólo existen mientras la función se está ejecutando. Si una variable local se denomina igual que una variable global la función sólo puede acceder a la primera. En FORTRAN las subrutinas pueden modificar los valores de los argumentos recibidos; este fenómeno se denomina efecto lateral y hay que manejarlo con precaución. 9 Funciones y subrutinas. Ámbitos (ii) Consecuencias de los efectos laterales: 01. program programa 02. implicit none 03. 04. integer x,y 05. 06. x=1;y=1 07. 08. print *,suma(x,y) 09. print *,suma(x,y) 10. 11. contains 12. integer function suma (a,b) 13. implicit none 14. integer a,b 15. 16. a=a+b 17. suma=a 18. end function 19. End Aparentemente las líneas 08 y 09 hacen lo mismo. La línea 16 de la función suma hace que el argumento a cambie de valor, esto afecta a la variable x que es la que fue pasada a la función. Consecuencia: el programa se comporta de manera inesperada. Moraleja: una función NUNCA debe modificar el valor de los argumentos que recibe. 10 5

Funciones y subrutinas. Subrutinas (i) Subrutinas o procedimientos: Las subrutinas son subprogramas con 0 ó más argumentos que nunca devuelven un valor de retorno. Las subrutinas, por tanto, no tienen tipo. La invocación de una subrutina sólo puede aparecer en una sentencia de llamada a procedimiento (llamar/call). Una invocación de subrutina no puede formar: Una expresión. La parte derecha de una asignación. La parte izquierda de una asignación. 11 Funciones y subrutinas. Subrutinas (ii) Las subrutinas se deen en la misma zona que las funciones. La sintaxis de la deición es la siguiente: accion nombre_subrutina ([ent sal ent sal] arg1 tipo1,, [ent sal ent sal] argn tipon) sentencia1 sentencian subroutine nombre_subrutina (arg1,, argn) declaración arg1 declaración argn sentencia1 sentencian 12 6

Funciones y subrutinas. Subrutinas (iii) Ejemplos de subrutinas: accion intercambio (a,b entero) temporal entero temporal a a b b temporal subroutine intercambio (a,b) implicit none integer a,b integer temporal temporal=a a=b b=temporal end subroutine accion asteriscos (n entero) i entero desde i 1 hasta n hacer escribir * desde subroutine asteriscos (n) implicit none integer n integer i do i=1, n print *, * end do end subroutine 13 Funciones y subrutinas. Resumen (i) 1. Los subprogramas facilitan la utilización de técnicas de diseño descendente para la construcción de programas. 2. Los subprogramas: Facilitan la modularidad y estructuración de los algoritmos. Facilitan la lectura e inteligibilidad de los algoritmos. Permiten una economización del esfuerzo del programador al poder escribir código reutilizable en muchas partes de un mismo algoritmo. Facilitan la depuración y mantenimiento de los programas. 3. Los subprogramas pueden ser funciones y subrutinas. 4. Las funciones son subrutinas con 0 ó más argumentos y que devuelven un único valor de retorno. 5. Las funciones pueden formar parte de expresiones o aparecer en la parte derecha de una sentencia de asignación pero nunca pueden constituir una sentencia aislada o aparecer en la parte izquierda de una asignación. 6. Las funciones son invocadas mediante su nombre seguido de los argumentos entre paréntesis. 14 7

Funciones y subrutinas. Resumen (ii) 7. Existen dos tipos de funciones: intrínsecas y deidas por el usuario. 8. Las funciones intrínsecas son funciones de uso muy común: raíz cuadrada, logaritmos, funciones trigonométricas, etc. 9. Las funciones deidas por el usuario deben describirse dentro del algoritmo principal. 10. Los argumentos y variables declaradas dentro del cuerpo de una función (o subrutina) se denominan variables locales, las variables declaradas dentro del programa principal son variables globales. Los subprogramas tienen acceso a las variables globales aunque en el caso de que una variable local se denomine igual que una variable global tiene preferencia la primera. 11. Las subrutinas son subprogramas que no devuelven ningún resultado; sin embargo, gracias a la utilización de los efectos laterales es posible su utilización para permitir el retorno de varios resultados. 15 8