Abstracción de Datos Funciones.

Slides:



Advertisements
Presentaciones similares
Fundamentos de Diseño de Software INFT.1
Advertisements

Elementos básicos del Lenguaje
Programación modular Procedimientos y Funciones
Programación Visual de Sistemas
DSOO - María Eugenia Valencia
Tipos de Datos Abstractos Modularidad
UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Algoritmo y Estructura de Datos I
Objetivos Específicos de la Unidad
METODOLOGIA DE LA PROGRAMACION
Acciones y funciones Concepto
Funciones en lenguaje C
Funciones Computación.
Chapter 7 Functions Dale/Weems/Headington. 2 Tópicos Capítulo 7 l Writing a Program Using Functional Decomposition l Writing a Void Function for a Task.
VBA - Procedimientos Subprogramas (Procedimientos): Procedimientos Sub
Conceptos básicos de inferencia
Semana 5 Subprogramas..
PROCEDIMIENTOS FUNCIONES
Funciones y Procedimientos(Pseudocódigo)
Funciones1 PROGRAMACIÓN ESTRUCTURADA EN PSEUDÓCODIGO Profr. Miguel Rodríguez Hernández PROGRAMACIÓN MODULAR O FUNCIONAL.
Programación Modular (Pseudocódigo)
Fundamentos de programación
Ingeniería de Software
Inteligencia artificial
1.1 Concepto y terminología
Programación I Universidad Nacional de Luján
 Fue en el año 1945 cuando el matemático Jhon Von Neumann, fascinado por las posibilidades del ENIAC, demostró que una computadora podía tener una estructura.
Computación II Unidad IV Funciones y Módulos. Objetivos: –Comprender como construir programas en forma modular partiendo de pequeñas partes conocidas.
OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA ING. MARISCAL.
Administración de Proyectos de desarrollo de Software Ciclo de vida de un proyecto Enfoque moderno Temas Componentes Directivas Declaraciones globales.
Fundamentos de Programación
Fórmulas y Funciones Básicas
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
Temas Operaciones básicas Funciones Matemáticas
Elementos básicos del lenguaje
Ada 2º Parte (variables, ámbitos , subrutinas , tipos abstractos de datos y excepciones)
FUNCIONES Conceptos básicos. Retorno de una función Clases de funciones. Paso de parámetros. Funciones y arrays.
Sistema de Manejo de Suministros Humanitarios
Elementos básicos del lenguaje
Sara Isabel Osorio Alacraz Ana Isabel Vallejo Grisales
INSTITUTO TECNOLOGICO DE MINATITLAN ASIGNATURA: FUNDAMENTOS DE PROGRAMACION DOCENTE: JOSE ANGEL TOLEDO ALVAREZ ALUMNA: ALEJANDRA OSORIO ARVISU SEMESTRE:
CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO
Definición de subprogramas en C
Algorit moAlgorit mo An á lisisAn á lisis Argumen toArgumen to Asignación Asociación Cometar ioCometar io Compilación Constan teConstan te Definición.
INTRODUCCIÓN AL LENGUAJE C++
PROGRAMACION ORIENTADA A OBJETOS
HEMISFERIOS CEREBRALES
PRINCIPIOS DE PROGRAMACIÓN
Operaciones Algebraicas
Presente un cuestionario con los aspectos mas importantes sobre los
Hoja de Cálculo EXCEL Introducción a la informática
Diseño de Procedimientos
Especialidad en Administración de Proyectos
Elementos y tipos de sistemas operativos
UNIDAD 2: “Características del Modelado UML” CONTENDIDO Elaborado por: Ingeniero Harold Cabrera Meza Actualizado por: Ingeniero Nilson Albeiro Ferreira.
Operaciones con polinomios de una variable. Operaciones con polinomios de una variable.
ACTIVIDADES FECHA: JULIO 6 AL 10 TEMA: FORMULAS Y FUNCIONES BÁSICAS EN LA HOJA DE CALCULO EXCEL PROPÓSITO: IDENTIFICAR LAS FORMULAS Y FUNCIONES BÁSICAS.
Una función es un bloque de instrucciones que se ejecuta al ser llamada desde algún punto del programa, con nombre, que ejecuta una tarea específica y.
 Panorama General Fundamentos de Programación M.I. Jaime Alfonso Reyes Cortés.
CICLO DE VIDA DE UN SOFTWARE. Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados, que forman parte de.
:: Prof. Yeniffer Peña Introducción a JAVA Presentación Programación I.
La programación modular es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 3 – Diseño de Programas.
Técnica de programación que utiliza abstracciones de la vida real (Objetos) como bloque esencial de construcción.
METODOS DE PROGRAMACION I Ing. Vania Flores Pinto.
P ROCESO DE E NSAMBLADO Cámara Vázquez Berenice Rubí.
REQUERIMIENTOS DE LOS PRINCIPIOS DE MODELADO INTEGRANTES: ALEYDA SALAZAR BELEN TUQUINGA DANIELA VILLAVICENCIO ERICK ARANA JORGE GOMEZ.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
UML. DIAGRAMA DE SECUENCIA En un diagrama de secuencia se indicarán los módulos o clases que forman parte del programa y las llamadas que se hacen en.
FUNCIONES EN C.
Transcripción de la presentación:

Abstracción de Datos Funciones

Funciones La experiencia ha demostrado que la mejor forma de construir software es construirlo a partir de partes o componentes más pequeños, los cuales son más fáciles de manejar que el programa en forma completa. Esta técnica se le ha llamado: "Divide y Vencerás". Los módulos en C++ se llaman funciones y clases. Los programas en C++ generalmente se escriben combinando funciones nuevas que el programador escribe con las funciones "preempacadas" diponibles en la biblioteca estándar de C++ y combinando clases nuevas que el programador escribe con clases "preempacadas" disponibles en varias bibliotecas de clases.

Funciones El programador puede escribir funciones para definir ciertas tareas específicas. Las instrucciones reales que definen la función solo se escriben una vez y se ocultan de las demás funciones. Una función se invoca mediante una llamada de función. Esta especifica el nombre de la función y le proporciona información (en forma de argumentos) que necesita trabajar. Por ejemplo un jefe (la función invocadora o invocador) le pide al trabajador (la función invocada) que efectúe un tarea y devuelva (es decir, un reporte) los resultados una vez concluida. Le función jefe no sabe la manera en que el trabajador hace su tarea. Este ocultamiento es promotor de una buena ingeniería de software.

Funciones

Función de la biblioteca matemática

Función de la biblioteca matemática Las funciones normalmente se invocan escribiendo el nombre de la función seguido de un paréntesis izquierdo, del argumento (o lista de argumentos separados por comas) de la función y de un paréntesis derecho. nombre_funcion ( lista de parámetros actuales) nombre_función Nombre de la función lista de parámetros actuales constantes, variables, expresiones, nombres de funciones o procedimientos separados por comas Ejemplo: cout << sqrt (900.0); //raiz cuadrada de 900.0

Función de la biblioteca matemática Todas las funciones de la biblioteca matemática devuelven el tipo de datos double. Para utilizar las funciones de la biblioteca matemática, incluya el archivo de encabezado math.h

Funciones Las funciones le permiten al programador modularizar sus programas. Todas las variables declaradas en las definiciones de función son variables locales, solo se conocen en la función en la que se definieron. La mayoría de funciones tienen una lista de parámetros, que proporciona el medio para la comunicación de información entre las funciones. Los parámetros de una función son variables locales. Definición de funciones. Todos los programas que se han presentado han consistido en una función main, que llama a funciones de la biblioteca estándar para realizar sus tareas. Ahora tomaremos en cuenta cómo escriben los programadores sus propias funciones personalizadas. Considere un programa con una función definida por el usuario llamada cuadrado, que calcula los cuadrados de los enteros del 1 al 10

Definición de funciones La función "cuadrado" se invoca o llama desde main mediante la llamada: "cuadrado (x)" La función "cuadrado" recibe una copia del valor de x en el parámetro y. Luego, "cuadrado" calcula y * y. El resultado se devuelve al punto de main donde se llamó a "cuadrado" y se despliega por pantalla Observe que la llamada de la función no cambió el valor de x. Este proceso se repite diez veces por medio de la estructura for. La definición "cuadrado" muestra que "cuadrado" espera un parámetro entero y. La palabra int que precede al nombre de la función indica que "cuadrado" devuelve un resultado entero. La instrucción return de "cuadrado" devuelve el resultado del cálculo de la función invocadora.

Definición de funciones

int maximo ( int, int, int); Prototipos de función Un prototipo de función le dice al compilador el nombre de la función, el tipo de datos que ésta devuelve, el número , tipo y orden de los parámetros que dicha función espera recibir. El compilador utiliza sus prototipos de función para validar las llamadas de funciones. El prototipo de función "maximo" en el anterior ejercicio es: int maximo ( int, int, int); Tiene 3 argumentos tipo int y devuelve un resultado de tipo int. En la definición de la función es igual al prototipo, excepto en los parámetros: int maximo ( x, y, z);

Prototipos de función

Archivos de encabezado

Archivos de encabezado

Archivos de encabezado Cada biblioteca estándar tiene un archivo de encabezado correspondiente que contiene los prototipos de todas las funciones de dicha biblioteca y las definiciones de varios tipos de datos y constantes necesarios para tales funciones. El programador puede crear archivos de encabezado personalizados. Los archivos de encabezado definidos por el programador deben terminar con .h. Para incluir un archivo de encabezado definido por el programador se utiliza la directiva de procesador #include. Por ejemplo, el archivo de encabezado cuadrado.h puede incluirse en nuestro programa por medio de la directiva #include "cuadrado.h" al inicio del programa.

Generación de números aleatorios Simulación y juego, aplicativo popular para los programadores. Desarrollaremos un programa que simule 20 lanzamientos de un dado e imprima el valor de cada lanzamiento. El prototipo de la función rand puede encontrarse en <stdlib.h>. Utilizaremos el operador del módulo (5) junto con rand: rand() % 6 Para producir enteros del 0 al 5. A esto se le llama escalamiento. El número 6 se llama factor de escalamiento. // Fig 3.7 //Enteros desplazados y escalados generados con 1 + rand() % 6 #include <iostream> #include <iomanip> #include <stdlib.h> using namespace std; int main() { for (int i = 1; i <= 20; i++) { cout << setw (10) << (1 + rand() %6);"¡Nunca deberá llegar aquí!"; if (i % 5 == 0) cout << endl; } system ("pause"); return 0;

Generación de números aleatorios Observe que se imprimió la misma secuencia de valores. Pero como si está utilizando la función rand?. Esta función de hecho genera números pseudoaleatorios, lo cual hace que se repita la secuencia cada vez que se repite el programa. Una vez que se ha depurado el progrma, se acondiciona para una secuencia aleatoria. La función de aleatorización real es a través de srand. Esta función toma un argumento entero unsigned (conocido como semilla) y siembra la función rand para que genere una secuencia diferente de números aleatorios cada vez que se ejecute el programa. // Fig 3.7 //Enteros desplazados y escalados generados con 1 + rand() % 6 #include <iostream> #include <iomanip> #include <stdlib.h> using namespace std; int main() { unsigned lanzamiento; cout << "Teclee Valor: "; cin >> lanzamiento; srand (lanzamiento); for (int i = 1; i <= 10; i++) { cout << setw (10) << (1 + rand() %6); if (i % 5 == 0) cout << endl; } system ("pause"); return 0;

Generación de números aleatorios Si se desea aleatorizar sin tener que digitar ningún número, se utiliza la instrucción: srand (time (0)); El programa quedaría así: // Fig 3.9 //Aleatorización del programa sin tener que sembrar un número #include <iostream> #include <iomanip> #include <stdlib.h> using namespace std; int main() { srand ( time(0)); for (int i = 1; i <= 10; i++) { cout << setw (10) << (1 + rand() %6); if (i % 5 == 0) cout << endl; } system ("pause"); return 0;

Generación de números aleatorios Si se desea aleatorizar sin tener que digitar ningún número, se utiliza la instrucción: srand (time (0)); El programa quedaría así: // Fig 3.9 //Aleatorización del programa sin tener que sembrar un número #include <iostream> #include <iomanip> #include <stdlib.h> using namespace std; int main() { srand ( time(0)); for (int i = 1; i <= 10; i++) { cout << setw (10) << (1 + rand() %6); if (i % 5 == 0) cout << endl; } system ("pause"); return 0;

Generación de números aleatorios // Fig 3.8 //Lanzamiento de un dado 6000 veces #include <iostream> #include <iomanip> #include <stdlib.h> using namespace std; int main() { int frequency1 = 0, frequency2 = 0, frequency3 = 0, frequency4 = 0, frequency5 = 0, frequency6 = 0, face; for (int roll = 1; roll <= 6000; roll++) { face = 1 + rand() % 6; switch ( face ) { case 1: ++frequency1; break; // necesario para salir de switch case 2: ++frequency2; break; // necesario para salir de switch case 3: ++frequency3; case 4: ++frequency4; case 5: ++frequency5; case 6: ++frequency6; default: //atrapa los demas caracteres cout << "¡Nunca deberá llegar aquí!"; } cout << "Cara" << setw (17) << "Frecuencia" << "\n 1: " << setw (13) << frequency1 << "\n 2: " << setw (13) << frequency2 << "\n 3: " << setw (13) << frequency3 << "\n 4: " << setw (13) << frequency4 << "\n 5: " << setw (13) << frequency5 << "\n 6: " << setw (13) << frequency6 << endl; system ("pause"); return 0;

Generación de números aleatorios // Fig 3.10 //Juego de dados Casino #include <iostream> #include <iomanip> #include <stdlib.h> #include <time.h> using namespace std; int rollDice (void); //prototipo de función int main() { enum Status { CONTINUE, WON, LOST }; int sum, myPoint; Status gameStatus; srand ( time(NULL)); sum = rollDice(); // primer lanzamiento de dados switch ( sum ) { case 7: case 11: //gana al primer lanzamiento gameStatus = WON; break; case 2: case 3: case 12: //pierde al primer lanzamiento gameStatus = LOST; default: //conserva el punto gameStatus = CONTINUE; myPoint = sum; cout << "El puntaje es: " << myPoint << endl; break; //opcional } while (gameStatus == CONTINUE) { //sigue lanzando sum = rollDice(); if (sum == myPoint) else if (sum == 7) if ( gameStatus == WON) cout << "El jugador gana" << endl; cout << "El jugador pierde" << endl; system ("pause"); return 0; //Definición de funcion int rollDice(void) int die1, die2, worksum; die1 = 1 + rand() %6; die2 = 1 + rand() %6; worksum = die1 + die2; cout << "Tirada del jugador: " << die1 << " + " << die2 << " = " << worksum << endl; return worksum;

Ejemplo con recursión: serie de Fibonacci La serie de Fibonnaci 0, 1, 1, 2, 3, 5, 8, 13, 21, …. Cada número de Fibonnaci subsiguiente es la suma de los dos números previos. // Fig 3.15 //Función fibonacci recursiva #include <iostream> using namespace std; long fibonacci (long); //prototipo de función int main() { long result, number; cout << "Teclee un numero entero: "; cin >> number; result = fibonacci (number); cout << "Fibonacci ( " << number << " ) = " << result << endl; system ("pause"); return 0; } //Definición de funcion long fibonacci(long n) if ( n == 0 || n == 1) // caso base return n; else return fibonacci (n - 1) + fibonacci (n - 2);

Ejercicios Que hace el siguiente programa? #include <iostream> using namespace std; int main () { char quit; quit = '\0'; while (quit != 'q') int num1, num2; cout << "Teclee dos numeros enteros y le dire las relaciones que cumplen:\n"; cin >> num1 >> num2; if (num1 == num2) cout << num1 << " es igual a " << num2 << endl; if (num1 != num2) cout << num1 << " no es igual a " << num2 << endl; if (num1 < num2) cout << num1 << " es menor que " << num2 << endl; if (num1 > num2) cout << num1 << " es mayor que " << num2 << endl; if (num1 >= num2) cout << num1 << " es mayor o igual que " << num2 << endl; if (num1 <= num2) cout << num1 << " es menor o igual que " << num2 << endl; cout << "Presione una q para salir de la aplicación o C para continuar\n" << endl; cin >> quit; } return 0;

Ejercicios Que hace el siguiente programa? // Fig 3.49 #include <iostream> using namespace std; int mystery (int, int); int main() { int x, y; cout << "Introduzca 2 enteros: "; cin >> x >> y; cout << "El resultado es: " << mystery (x,y) << endl; system ("pause"); return 0; } //El parámetro b debe ser un entero positivo para evitar la recursión infinita int mystery (int a, int b) if (b == 1) return a; else return a + mystery(a, b-1);