Departamento de Informática Universidad Técnica Federico Santa María Tema 7: Subprogramas Programación de Computadores (IWI-131) Luis Pizarro Q.

Slides:



Advertisements
Presentaciones similares
IBD Curso 2007 Clase 2.
Advertisements

Programación de Computadores
Programación de Computadores
Programación de Computadores
PROGRAMACION ESTRUCTURADA
ESTRUCTURA DE DECISION LOGICA
ADA: lenguaje de programación concurrente
PROGRAMACIÓN PARALELA Tema 5: Análisis de algoritmos paralelos
Programación en Pascal
Iteración La iteración permite modelar problemas en los cuales una secuencia de instrucciones debe ejecutarse varias veces. La cantidad de iteraciones.
Elementos de Pascal Escribir un programa en Pascal que lea los valores de los catetos de un triángulo rectángulo y calcule y muestre la hipotenusa. program.
Algoritmos & Estructuras de Datos
Ejercicios De Algoritmos
Metodología de la Programación
Programación modular Procedimientos y Funciones
Direcciones, Arreglos y Argumentos de Funciones
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Curso de Programación 1 Plan 97
Descomponer un problema
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Objetivos Específicos de la Unidad
VISUAL BASIC CONSOLA Todas las ordenes o instrucciones se digitan dentro de sub Main() y End Sub ÁREA DE TRABAJO: Las aplicaciones de consola son aquellas.
Curso Práctica 3 1 Funciones CONTENIDO Consideraciones sobre funciones Estructura de un programa en C Uso de funciones Paso de parámetros Punteros.
C lase 10 COMPUTACION /17/2014Computacion - Fac. Ingeniería2  Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.
ESCUELA: NOMBRES: LÓGICA DE LA PROGRAMACIÓN UNIDAD 2: Naturaleza de los Datos FECHA: Ing. Patricio Abad Espinoza OCTUBRE 2009 – FEBRERO Ciencias.
¿Qué es un PUNTERO?: Un puntero es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No.
2 Acciones y funciones 2.1 Concepto
Funciones en lenguaje C
Subrutinas.
FUNCIONES Y PROCEDIMIENTOS
Programación Orientada a Objetos usando C++
VBA - Procedimientos Subprogramas (Procedimientos): Procedimientos Sub
1 Procedimientos Es un conjunto de sentencias incluidas entre las declaraciones Sub o Function y End Sub/Function VB utiliza varios tipos de procedimientos:
ALGORITMOS Y ESTRUCTURA DE DATOS
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Grado en Ingeniería electrónica y comunicaciones Facultad de Físicas Universidad Complutense P1 Fundamentos de Programación.
Tema 3 Entrada y Salida.
UNIVERSIDAD DE MANAGUA I CUATRIMESTRE INTRODUCCION A LA PROGRAMACION
Sesión 6 Sentencias de Repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Semana 5 Subprogramas..
PROCEDIMIENTOS FUNCIONES
LÓGICA - DECISIONES Los valores lógicos: constantes, variables y expresiones lógicas, permiten controlar la ejecución de las sentencias de un programa.
Capítulo 1 “Elementos de Programación”
Tipo de Datos Básicos.
Resolución de Problemas y Algoritmos Uso de iteración con secuencias
Programación en Pascal
Sesión 5 Sentencias de Selección y repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Sesión 17 Tipos de datos Estruturados Arreglos de Registros Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
COMPUTACION 2009 C lase 4 Programa PASCAL SENTENCIAS DATOS Expresiones Tipos Declaración de variables Declaración de variables Asignación Entrada/Salida.
Teoría – Alejandro Gonzalez
Tema 5: Sentencias Básicas
Ada 2º Parte (variables, ámbitos , subrutinas , tipos abstractos de datos y excepciones)
Estructuras de Control.
Definir un vector Forma general Variable=[tipo]*tamaño Tipo: es el valor inicial con el cual quedarán llenas todas las posiciones creadas del vector. Tamaño:
Tema 8: Tipos de Datos Estructurados I
Tema 6: Estructuras de Control
Funciones Definidas por el Programador
Departamento de Informática Universidad Técnica Federico Santa María Temas 2,3,4: Estructura de un Programa Pascal Declaraciones Tipos de Datos Simples.
Programación de Computadores (IWI-131)
Departamento de Informática Universidad Técnica Federico Santa María Ejercicios Certamen 1: Programación de Computadores (IWI-131) Luis Pizarro Q.
COMPUTACIÓN I TEMA 5. Subprogramas o funciones. Alcance de variables
 Un lenguaje se puede definir como un conjunto de palabras y formas de expresión por medio de las cuales se comunican y relacionan miembros de una comunidad.
Capítulo 2 “Subprogramas/Funciones - Arreglos”
Práctica Profesional PHP.
Lic. Carla Aguirre Montalvo
Programación de Computadores
Estructura de Datos PILA Universidad Hispanoamericana Prof. Ing. Erick López.
Juego de dados. El Juego de dados consiste en un lanzamientos aleatorio en la cuál gana cierta cantidad de dinero de acuerdo a lo siguiente: Si la suma.
Unidad Temática II Algoritmia Elemental Operadores aritméticos: son símbolos que le indican al compilador la operación de cálculo a realizar entre los.
Transcripción de la presentación:

Departamento de Informática Universidad Técnica Federico Santa María Tema 7: Subprogramas Programación de Computadores (IWI-131) Luis Pizarro Q.

Luis Pizarro Q. © Subprogramas n Un programa con cierta complejidad puede descomponerse en varios subprogramas de menor dificultad. n Estos subprogramas pueden ser de 2 tipos: - Procedimientos - Funciones n El uso de procedimientos y funciones ayuda a organizar y simplificar programas largos y complejos.

Luis Pizarro Q. © Entrada Procesamiento Salida PROGRAM Estudio_Cilindro; CONST pi = ; VAR radio, altura, sup, vol: REAL; BEGIN WRITELN(‘Ingrese radio y altura: ’); READLN(radio, altura); sup:=2*pi*radio*altura + 2*pi*SQR(radio); vol:=pi*SQR(radio)*altura; WRITELN(‘La superficie es: ’,sup:8:2); WRITELN(‘El volumen es: ’,vol:8:2) END. Ejemplo de Subprogramas n Recordemos el programa que calcula la superficie y el volumen de un cilindro. Podemos descomponerlo en varios subprogramas. Subprograma 1Subprograma 2Subprograma 3

Luis Pizarro Q. © Estructura de un programa Pascal PROGRAM nombre_del_programa; CONST {aquí se declaran las costantes} VAR {aquí se declaran las variables} TYPE {aquí se declaran las variables tipo} PROCEDURE (FUNCTION) {aquí se declaran procedimientos y/o funciones} BEGIN {aquí se escribe el cuerpo del programa} END.

Luis Pizarro Q. © Subprogramas n Procedimiento: subprograma que realiza una tarea específica. Puede recibir cero o más valores del programa que lo llama y devuelve cero o más valores a éste. n Función: subprograma que puede recibir cero o más valores del programa que lo llama y devuelve un único resultado al programa que lo llama.

Luis Pizarro Q. © Procedimientos y Funciones n Procedimiento PROGRAM nombre_del_programa; CONST {constantes} VAR {Variables GLOBALES} PROCEDURE nom_proc(v1: tipo1; v2: tipo2;... ; vN: tipoN); VAR {Variables LOCALES} BEGIN {Cuerpo del Procedimiento} END; BEGIN {Cuerpo del Programa} END.

Luis Pizarro Q. © Procedimientos y Funciones n Función PROGRAM nombre_del_programa; CONST {Constantes} VAR {Variables GLOBALES} FUNCTION nom_func(v1: tipo1; v2: tipo2;... ; vN: tipoN): tipo_a_devolver; VAR {Variables LOCALES} BEGIN {Cuerpo del Procedimiento} END; BEGIN {Cuerpo del Programa} END.

Luis Pizarro Q. © Procedimientos y Funciones n Variables Globales: se declaran en el programa principal, y pueden ser utilizadas por éste y por todos los subprogramas. n Variables Locales: se declaran en los procedimientos y funciones, y pueden ser utilizadas sólo en los subprogramas en que fueron declaradas.

Luis Pizarro Q. © n Invocación de un Procedimiento PROGRAM procedimientos; VAR {variables}; PROCEDURE Proc(lista_de_parametros); { Cuerpo del procedimiento } BEGIN { Cuerpo Principal } Proc(lista_de_parametros); END. Invocación del procedimiento Proc.

Luis Pizarro Q. © n Invocación de una Función PROGRAM funciones; VAR x, y: INTEGER; FUNCTION Fun(lista_de_parametros): INTEGER; { Cuerpo de la función } BEGIN { Cuerpo Principal } x:= Fun(lista_de_parametros); IF (y+2*Fun(lista_de_parametros)) > 0 THEN END. Se asigna su resultado a una variable del mismo tipo. Se utiliza su resultado en una expresión válida.

Luis Pizarro Q. © Procedimientos y Funciones PROGRAM procedimientos; VAR {variables}; FUNCTION A(p1: REAL; p2: BOOLEAN): REAL; {.... Cuerpo del procedimiento A;.... } PROCEDURE B; {.... Cuerpo del procedimiento B;.... Valor := 2*A(2.3,TRUE); } BEGIN B; WRITELN(A(4.0,FALSE)); B; END. Se llama a la función A. En el cuerpo principal pueden entrelazarse las llamadas a los procemientos y funciones. n Orden: si los procedimientos (funciones) A y B son definidos dentro del mismo programa, y el procedimiento B invoca al procedimiento A, entonces A debe estar declarado antes que B.

Luis Pizarro Q. © PROGRAM Estudio_Cilindro; CONST pi = ; VAR radio, altura, sup, vol: REAL; PROCEDURE entrada; BEGIN WRITELN(‘Ingrese radio y altura: ’); READLN(radio, altura); END; PROCEDURE procesamiento; BEGIN sup:=2*pi*radio*altura + 2*pi*SQR(radio); vol:=pi*SQR(radio)*altura; END; PROCEDURE salida; BEGIN WRITELN(‘La superficie es: ’,sup:8:2); WRITELN(‘El volumen es: ’,vol:8:2) END; BEGIN entrada; procesamiento; salida; END. Ejemplo de Procedimiento Variables Globales, pueden emplearse en cualquier procedimiento.

Luis Pizarro Q. © Ejemplo de Función PROGRAM EjemploFuncion; VAR numero: INTEGER; FUNCTION Funcion(n: INTEGER): INTEGER; BEGIN Funcion:= n MOD 2; END; BEGIN REPEAT WRITELN(‘Ingrese número: ’); READLN(numero); IF Funcion(numero) = 0 THEN WRITELN(‘El número ’, numero, ‘ es par’) ELSE WRITELN(‘El número ’, numero, ‘ es impar’); UNTIL numero = 0 END. Indicar al usuario si los números que ingresa por pantalla son pares o impares, hasta que ingrese el cero.

Luis Pizarro Q. © Parámetros por Valor y por Referencia n Parámetros por Valor: estas variables sólo reciben información. No devuelven valores. PROGRAM ejemplo; VAR x, y: REAL; PROCEDURE suma(a,b: REAL); VAR aux:REAL; BEGIN aux := a + b; WRITELN(‘La suma es ’, aux); END; BEGIN REPEAT WRITELN(‘Ingrese 2 números: ’); READLN(x, y); suma(x, y); UNTIL (x=0) OR (y=0) END. Parámetros por Valor Las variables a y b reciben una copia de los valores de las variables x e y, respectivamente. Por lo que las variables x e y no sufren modificación.

Luis Pizarro Q. © Parámetros por Valor y por Referencia n Parámetros por Referencia: estas variables se utilizan para recibir información y para transmitir valores de vuelta. Se antepone la palabra VAR en la definición de estas variables. PROGRAM ejemplo; VAR x, y, z: REAL; PROCEDURE mayor(a,b: REAL; VAR max: REAL); BEGIN max := b; IF a > b THEN max := a; END; BEGIN REPEAT WRITELN(‘Ingrese 2 números: ’); READLN(x, y); mayor(x, y, z); WRITELN(‘El mayor es ’, z); UNTIL (x=0) OR (y=0) END. Parámetro por Referencia Las variables a y b están definidas por valor. En cambio, la variable max está definida por referencia, la cual no recibe una copia del valor de la variable z, sino que recibe la variable misma, por lo que cualquier cambio que se realice en la variable max se efectúa directamente en la variable z.

Luis Pizarro Q. © Ejercicio n Utilizando funciones, escriba un programa que tome un número entero y entregue el dígito en la posición k. Ejemplo, el dígito en la posición 4 del entero es 8. PROGRAM Ejercicio; VAR num, pos, valor: INTEGER; FUNCTION digito(n, k: INTEGER): INTEGER; VAR d: INTEGER {para guardar el dígito} i: INTEGER {para contar posiciones} BEGIN i := 0; REPEAT d := n MOD 10; {devuelve el último dígito} n := n DIV 10; {devuelve la parte entera de la división} i := i + 1; UNTIL (i = k) OR (n = 0) IF i = k THEN digito := d ELSE digito := -1; END; BEGIN WRITELN(‘Ingrese número: ’); READLN(num); WRITELN(‘Ingrese posición: ’); READLN(pos); valor := digito(num, pos) IF valor = -1 THEN WRITELN(‘Posición fuera de rango’) ELSE WRITELN(‘El dígito en la posición ’,pos, ‘ es ’,valor) END.

Luis Pizarro Q. © Tarea Nº1 1. Si una cantidad de dinero P se coloca en una cuenta de ahorros para la que el interés se calcula Q veces por año, entonces la cantidad de intereses ganados después de N años viene dada por la siguiente fórmula (I es el porcentaje del interés decimal): Cantidad = P * (1 + I/Q) N * Q Escribir un programa que lea los valores P, I, Q y N y dé como salida los intereses ganados por cada año a lo largo de N años. Se debe utilizar una función que calcule la cantidad de los intereses. El programa debe solicitar los datos de forma apropiada al usuario, etiquetar los valores de salida y escribirse con buen estilo de programación.

Luis Pizarro Q. © Tarea Nº1 2. Escribir un programa para jugar al juego de niños “roca, papel o tijeras”. Considere dos jugadores, los cuales jugarán un máximo de 11 veces. El programa debe imprimir quien es el ganador en cada juego; al final, la cantidad de juegos ganados por cada jugador, el número de empates y quién es el ganador global. Considere la lectura de una jugada como un carácter: R: roca P: papel T: tijeras

Luis Pizarro Q. © Tarea Nº1 3. La distancia del punto de caída de un proyectil que es lanzado con un ángulo A (en radianes) y una velocidad inicial V (en pies/seg), ignorando la resistencia al aire, viene dada por la fórmula: Distancia = SQR(V) * SIN(2*A) / 32.2 Escribir un programa pascal que implemente un juego en el que el usuario introduce primero la distancia a un objetivo. Luego el usuario introduce el ángulo y la velocidad de lanzamiento del proyectil. Si éste cae dentro de un 10% de la distancia al objetivo, el usuario gana el juego. Si el proyectil no se acerca lo suficiente, se le dice al usuario cuánto se ha alejado el proyectil y se le permite intentarlo de nuevo. Si después de cinco intentos no ha introducido ninguna entrada ganadora, entonces el usuario pierde el juego. Para simplificar las entradas del usuario; el programa debe permitir que el ángulo sea ingresado en grados. La fórmula para convertir los ángulos en radianes es: Radianes = Grados * PI / 180. Cada fórmula debe implementarse como una función. El programa debe solicitar las entradas adecuadas al usuario, etiquetar los valores de salida y escribirse con un buen estilo de programación.

Luis Pizarro Q. © Tarea Nº1 4. Implementar un calculador de números romanos. En el Imperio Romano rara vez se utilizaba la notación sustractiva (tal como que IV significa 4), sino que por facilidad utilizaban la notación adivita (IIII es 4). El programa introducirá dos números romanos y un operador aritmético (+, -, *, /) e imprimirá el resultado de la operación, también como un número romano. Una forma de enfocar el problema es convertir los números romanos a enteros, ejecutar la operación requerida y luego convertir el resultado de nuevo a números romanos para imprimirlos. Por ejemplo, el siguiente puede ser el resultado de una ejecución del programa en un sistema interactivo: Introduzca el primero número: MCCXXVI El primero número es 1226 Introducir el segundo número: LXVIIII El segundo número es 69 Introducir la operación aritmética deseada: + La suma de MCCXXVI y LXVIIII es MCCLXXXXV (1295) (sigue)

Luis Pizarro Q. © Tarea Nº1 4. El programa debe hacerse con buen estilo, comentarios apropiados, identificadores con significado y buena identació. También deben comprobarse los errores de entrada, tales como dígitos u operadores aritméticos no legales y tomar acciones apropiadas cuando se encuentran a éstos. También debe comprobarse que los números están de una forma aditiva pura: los dígitos van seguidos sólo de dígitos del mismo o menor valor. Entrega: Miércoles 15 de Abril. (continuación)

Departamento de Informática Universidad Técnica Federico Santa María Tema 7: Subprogramas Programación de Computadores (IWI-131) Luis Pizarro Q.