Está en la página 1de 17

Universidad Nacional de Ingeniería

Facultad de Ingeniería Mecánica


Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen

UNIDADES DE APRENDIZAJE 3

Unidad 3: Arreglos y Funciones

Arreglos unidimensionales o vectores, arreglos bidimensionales.


Cadenas: Funciones y librerías. Funciones propias. Funciones definidas por el usuario.
Funciones con parámetros y sin parámetros.
Función void(). Recursividad de una función.
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen

Funciones
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen

Función

Las funciones permiten automatizar tareas repetitivas, encapsular el código


que utilizamos, e incluso mejorar la seguridad, confiabilidad y estabilidad de
nuestros programas. Dominar el uso de funciones es de gran importancia,
permiten modularizar nuestro código, separarlo según las tareas que
requerimos, por ejemplo una función para abrir, otra para cerrar, otra para
actualizar, etc. básicamente una función en nuestro código debe contener la
implementación de una utilidad de nuestra aplicación, es decir que por cada
utilidad básica (abrir, cerrar, cargar, mover, etc.) sería adecuado tener al
menos una función asociada a ésta.

Y= F(X) = mX+b Y = aX + Xc + Xg + mX
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen

Función. Conjunto de procedimientos encapsulados en un bloque, usualmente reciben


parámetros que utilizan para efectuar operaciones y adicionalmente retornan un valor.
Esta definición proviene de la definición de función matemática la cual posee un dominio
y un rango, es decir un conjunto de valores que puede tomar y un conjunto de valores
que puede retornar luego de cualquier operación.

Procedimiento. Los procedimientos son un conjunto de instrucciones que se ejecutan


sin retornar ningún valor. En el contexto de C++ un procedimiento es básicamente
una función void que no nos obliga a utilizar una sentencia return.

Método. Los métodos y las funciones son funcionalmente idénticos, difieren en el contexto
en el que existen. Un método también puede recibir valores, efectuar operaciones con estos
y retornar valores; sin embargo, un método está asociado a un objeto. Un método es una
función que pertenece a un objeto o clase, mientras que una función existe por sí sola.
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen

Función (estructura)
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen

Declaración de una Función C++

tipo nombreFuncion( [tipo nombre-Arg, [tipo nombre-Arg]...] )


{
//
// Bloque de instrucciones
//
return valor;
}
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen

int funcionEntera() //Función sin parámetros


{
int suma = 5+5;
return suma; //Termina la ejecución de la función
return 5+5; //Este return nunca se ejecutará
int x = 10; //Esta línea nunca se ejecutará
}

char funcionChar(int n) //Función con un parámetro


{
if(n == 0)
{
return 'a’; //Si n es cero retorna a y termina ejecución
}
return 'x’; //Se ejecuta cuando n no es cero
}
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen

bool funcionBool(int n, string mensaje) //Función con 2 parámetros


{
if(n == 0)
{
cout << mensaje; //Mostramos el mensaje
return 1; //Si n es cero retorna 1
return true; //Equivalente
}
return 0; //Se ejecuta cuando n no es cero
return false; //Equivalente
}
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen

Ejemplo de un procedimiento

void procedimiento(int n, string nombre)


{
if(n == 0)
{
cout << "hola " << nombre << endl;
return;
}
cout << "adios " << nombre << endl;
}
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen

Invocando a una función o procedimiento en C++

nombreFuncion([valor,[valor]...]);

Tener en cuenta:
❑ El nombre de la función debe coincidir exactamente al momento de invocarla.
❑ El orden de los parámetros y el tipo debe coincidir.
❑ Cada parámetro enviado también va separado por comas.
❑ Si una función no recibe parámetros, simplemente no ponemos nada dentro de los paréntesis.
❑ Al invocar a una función en C++, ésta debe finalizar con ';'.
❑ El valor retornado por una función puede ser asignado a una variable del mismo tipo.
❑ Una función puede llamar a otra dentro de sí misma.
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen

Ejemplo invocando a una función (sin/con) y procedimiento en C++

int main()
{

funcionEntera(); //(1)Llamando a función sin argumentos

bool rspta = funcionBool(1, "hola"); //(2)Asigna el valor retornado a rspta

procedimiento(0, "Juan"); //(3)Invocando a un procedimiento

//(4)Usando una función como parámetro

procedimiento(funcionBool(1, "hola"), "Juan");

return 0;
}
Universidad Nacional de Ingeniería Ejemplo : Valor Absoluto (usuario vs sistema)
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen
#include <iostream>
using namespace std;

int f_valabs(int n) // Función Valor Absoluto - Usuario


{
if (n >= 0)
return n;
else
return -n;
}

int main() // Programa Principal


{
int n; // Número a evaluar
int v1, v2; // Almacena valor absoluto
cout << "Numero: "; cin >> n;

v1 = f_valabs(n); // Invoca a función de usuario


v2 = abs(n); // Invoca a función de sistema

cout << "Valor absoluto usuario: " << v1 << endl;


cout << "Valor absoluto sistema: " << v2 << endl;

return 0;
}
Universidad Nacional de Ingeniería Parámetros POR VALOR y POR REFERENCIA
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen - Ejemplo 1 de 2

#include <iostream>
using namespace std;

// Funcion con 4 parámetros; 2 por valor y 2 por referencia (&).


bool f_rectangulo(float _base, float _altura, float &_perimetro, float &_area) {

const double PI = 3.14159;

if ( _base >= 0 && _altura >= 0 ) {


_perimetro = 2 * ( _base + _altura );
_area = _base * _altura;
return true;
}
else {
_perimetro = 0;
_area = 0;
return false;
}

}
Universidad Nacional de Ingeniería Parámetros POR VALOR y POR REFERENCIA
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen - Ejemplo 2 de 2
int main()
{
float base, altura; // Base y altura del Rectangulo
float perimetro, area; // Perimetro y Area

cout << "Ingrese base..: "; cin >> base;


cout << "Ingrese altura: "; cin >> altura;

if ( f_rectangulo(base, altura, perimetro, area) )


{
cout << "\nBase......: " << base;
cout << "\nAltura....: " << altura;
cout << "\nPerimetro.: " << perimetro;
cout << "\nArea......: " << area << endl;
}
else
{
cout << "\nDatos invalidos ..." << endl;
}
return 0;
}
Universidad Nacional de Ingeniería Parámetros POR VALOR y POR REFERENCIA
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen - Ejemplo Suma VECTOR -

#include <iostream>
using namespace std;

int f_suma_vector(int _vector[], int _N);

int main() {
int vector[] = { 10, 15, 20, 5, 35, 6 };
int N = sizeof(vector) / sizeof(vector[0]);
cout << "\nSuma: " << f_suma_vector( vector, N ) << endl;
return 0;
}

int f_suma_vector(int _vector[], int _N) {


int suma = 0;
for (int i = 0; i < _N; i++)
suma += _vector[i];
return suma;
}
Universidad Nacional de Ingeniería Sobrecarga de Funciones
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen - Ejemplo Suma VECTOR -

#include <iostream>
using namespace std;

// Sobrecarga de Funciones
int mayor(int _v1, int _v2);
char mayor(char _v1, char _v2);
double mayor(double _v1, double _v2);

int main() {
cout << mayor('r', 't’) << endl;
cout << mayor(11, 71) << endl;
cout << mayor(12.999, 10.666) << endl;
return 0;
}

int mayor(int _v1, int _v2) { if (_v1 > _v2) return _v1; else return _v2; }
char mayor(char _v1, char _v2) { if (_v1 > _v2) return _v1; else return _v2; }
double mayor(double _v1, double _v2) { if (_v1 > _v2) return _v1; else return _v2; }
Universidad Nacional de Ingeniería
Facultad de Ingeniería Mecánica
Curso: MB545 Programación Orientada a Objetos | Profesor: Ing. Roberto Tello Yuen

UNIDADES DE APRENDIZAJE 3

Unidad 3: Arreglos y Funciones

Arreglos unidimensionales o vectores, arreglos bidimensionales.


Cadenas: Funciones y librerías. Funciones propias. Funciones definidas por el usuario.
Funciones con parámetros y sin parámetros.
Función void(). Recursividad de una función.

También podría gustarte