Sei sulla pagina 1di 19

UNIVERSIDAD CATÓLICA DE SANTA MARÍA

PROGRAMA PROFESIONAL DE INGENIERIA MECANICA ELECTRICA Y


MECATRONICA
CÓDIGO :
ASIGNATURA : Mecánica Computacional Apuntes de Laboratorio

Docente (s):
SEGUNDA FASE
Ing. Henry C. Zegarra Gago
FUNCIONES Y PROCEDIMIENTOS
Fecha: 2020.08.20.

FUNCIONES PREDEFINIDAS Y DEFINIDAS POR


USUARIO
Hasta ahora hemos visto como el programa principal main( ), utiliza funciones de la
librerías estándar de C++, así por ejemplo, de la librería <iosream> hemos utilizado Existe otra
función de entrada y
las funciones cout<<, y cin>>, para realizar tareas comunes de entrada y salida de salida de datos por
datos por consola. consola, printf() y
scanf() que pertenecen a
la librería <cstdio>.
La creación de funciones permite su ejecución desde cualquier parte del programa
principal, lo único que se tiene q hacer es llamar a la función cuando la vayamos a
necesitar.

Las funciones pueden ser, funciones predefinidas - es decir funciones que se


encuentran ya desarrolladas en una librería estándar de C++ - y funciones definidas
por el usuario, estas últimas son sub programas, que el desarrollador realiza, a este
tipo de programación o distribución del código de un sub programa usando
funciones se conoce como modularización, lo que significa estructurar los
programas en partes más pequeñas y sencillas, los cuales responden a un propósito
único, pudiendo además utilizarse en distintos lugares del programa.

1. Funciones predefinidas

El lenguaje C++, como la mayoría de los lenguajes de programación, permite el uso


de “bibliotecas” con funciones predefinidas que se pueden utilizar en el desarrollo
de cualquier programa.

Como se mencionó en anteriores sesiones, para hacer uso de algunas instrucciones,


debemos incluir librerías, así, por ejemplo, cuando se analizó y se usó la instrucción
'cout<<', se vio que era necesario incluir en el programa a la librería <iostream>,
dado que la definición de la instrucción 'cout<<' se encuentra en dicha librería.

Ahora, de la misma forma, para utilizar algunas funciones matemáticas es


necesario incluir en nuestros programas la librería <cmath> en C++, o <math.h> para
C. Esto significa que, en programas en los que se utilicen funciones matemáticas
REPASO Apuntes de Programación C++ PAG 2/ 19

predefinidas, será necesario utilizar la directiva de compilación #include para incluir


en el programa la definición de dichas funciones.

Algunos archivos
de cabecera son:
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>

Enlace:
http://www.cplusplus.co
m/reference/

La biblioteca <cmath>, contiene las funciones matemáticas que le permiten al


programador ejecutar ciertos cálculos matemáticos comunes. Las funciones se librería cmath

utilizan normalmente en el programa, escribiendo el nombre de la función seguido


de un ( ) y dentro de ellos las variables (argumento) o lista de variables separadas
por comas necesarias para resolver cierta operación,
...
Algunas funciones matemáticas se presentan a continuación.
...
double sqrt (double x)
{
Algunas funciones de la librería cmath double res, …;
...
...
Raíz cuadrada de x. Sintaxis: ...
return(res)
double sqrt (double x);
sqrt(x) }
float sqrt (float x); ...
...
long double sqrt (long double x); double pow (double x, double y)
{
double res, …;
Función exponencial ex. Sintaxis: ...
...
double exp (double x); ...
exp(x) return(res)
float exp (float x); }
long double exp (long double x); ...
...

Logaritmo natural de x (de base e). Sintaxis:


double log (double x);
log(x)
float log (float x);
long double log (long double x);

Logaritmo de x (base 10). Sintaxis:


double log10 (double x);
log10
float log10 (float x);
long double log10 (long double x);

Tabla 01: Referencia a funciones de la librería cmath.

Algunas funciones de la librería cmath

Ing. Henry Zegarra G.


REPASO Apuntes de Programación C++ PAG 3/ 19

Valor absoluto x. Sintaxis:


double abs (double x);
abs(x)
float abs (float x);
long double abs (long double x);

Redondea x al entero más pequeño que no sea menor que x.


Sintaxis:
ceil(x) double ceil (double x);
float ceil (float x);
long double ceil (long double x);

Redondea x al entero más grande no mayor que x. Sintaxis:


double floor (double x);
floor(x)
float floor (float x);
long double floor (long double x);

x elevado a la potencia y. Sintaxis:


double pow (double base, double exponente);
float pow (float base, float exponente);
pow(x,y) long double pow (long double base, long double
exponente);
double pow (double base, int exponente);
long double pow (long double base, int exponente);
Seno trigonométrico de x. Sintaxis:
double sin (double x);
sin(x)
float sin (float x);
long double sin (long double x);

Coseno trigonométrico de x. Sintaxis:


double cos (double x);
cos(x)
float cos (float x);
long double cos (long double x);
Tabla 01: Referencia a funciones de la librería cmath (Continuación).

Algunas funciones para el manejo de cadena de caracteres se presentan a


continuación.

Algunas funciones de la librería cstring


FUNCIÓN DESCRIPCIÓN
Halla la longitud de una cadena. Sintaxis:
srtlen(x)
int strlen(int x);

Copia la cadena destino x de la cadena fuente y. Sintaxis:


strcpy(x,y)
char strcpy(char x, char y)

Concatena la cadena destino x con la cadena fuente y.


strcat(x,y) Sintaxis:
char strcat(char x, char y)

Compara los caracteres de la cadena x con los de la cadena y.


strcmp(x,y) Sintaxis:
int strcmp(char x, char y)
Tabla 02: Referencia a funciones de la librería cstring.

A continuación se desarrollan algunos ejemplos con lagunas de las funciones


estudiadas hasta el momento.

Ing. Henry Zegarra G.

Algoritmo Ejemplo 01:


REPASO Apuntes de Programación C++ PAG 4/ 19

Ejemplo 01:Escriba un programa para hallar la


potencia de un número dado (Utilice la
librería cmath).
// Programa: Potencia de un número dado.
// ======== ======== == == ====== ====

// sintaxis: Llamada a función desde prog. Principal


// var = pow(base,exponente);
// | | | |-> Argumento o variable tipo
// | | | int
// | | |
// | | |-> Argumento o variable tiene que
// | | ser del tipo float o double
// | |
// | |-> pow es el Nombre de la función, se
// | incluye la libreria <cmath>
// |
// |-> variable tipo float o double donde se
// almacena el resultado de retorno de la
// la funcion pow (potencia)

// Programa Principal
#include<iostream>
#include<cmath> // Librería de funciones matemáticas
using namespace std;

int main() // Inicio de programa principal


{
// Declaración de variables
float base=0, potencia=0;
int exponente=0;
cout<<"*************************\n";
cout<<"* Potencia de un numero *\n";
cout<<"*************************\n";

// Solictud e ingreso de datos


cout<<"Ingrese la base: "; cin>>base;
cout<<"Ingrese el exponente: "; cin>>exponente;

// Llamada a la funcion potencia (pow)


potencia=pow(base,exponente);
// potencia llama a la función pow y le envía los
// los valores de base y exponente.
// La función pow se encuentra desarrollada en
// la librería cmath, devuelve el resultado a la
// variable potencia

// Visualización de resultados por pantalla


cout<<base<<"^"<<exponente<<" = " <<potencia<<endl;
return (0);
}

Ejemplo 02: Escriba un programa que ingrese un

Ing. Henry Zegarra G.


REPASO Apuntes de Programación C++ PAG 5/ 19

número y encuentre su valor absoluto, raíz cuadrada y Para el uso de las


redondee dicho valor. instrucciones de salida con
// Programa para ingresar un número negativo y formato 'printf' y 'scanf' del
// encontrar su valor absoluto, raiz cuadrada y ejemplo 02, debemos de
// redondear valores. incluir la librería <cstdio>.
// Sintaxis:

// Para valor absoluto


// var = abs(nro);
// | | |
// | | |-> variable que se desea hallar su
// | | valor absoluto. Tiene que ser
// | | del tipo float o double.
// | |
// | |-> Funcion abs, usar libreria <cmath>
// |
// |-> variable tipo float o double donde se
// alamacena el resultado de la funcion abs

// Para Raiz cuadrada


// var = sqrt(nro); La función raíz
// | | | cuadrada (sqrt) pertenece a la
// | | |-> variable tiene que ser
librería <cmath>.
// | | del tipo float o double
// | |
// | |-> Funcion sqrt, usar libreria <cmath>
// |
// |-> variable tipo float o double donde se
// almacena el resultado de la funcion sqrt

// Redondeo hacia arriba


// var = ceil(nro);
// | | |
// | | |-> variable tiene que ser
// | | del tipo float o double
// | |
// | |-> Funcion ceil, ùsar libreria cmath
// | Algoritmo Ejemplo 02:
// |-> variable tipo float o double donde se
// guarda el resultado de la funcion ceil
// (Redondeo no menor de nro)

// Redondeo hacia abajo


// var = floor(nro);
// | | |
// | | |-> variable tiene que ser
// | | del tipo float o double
// | |
// | |-> Funcion ceil, usar libreria cmath
// |
// |-> variable tipo float o double donde se
// guarda el resultado de la funcion floor
// (Redondeo no mayor de nro)
#include<cstdio>
#include<cmath>
using namespace std;
// Inicio programa prinicpal
int main()
{
float abso, raiz, num, redMenor, redMayor;
// redMenor: Redondeo menor
Algoritmo Ejemplo 02:
(continuación)
Ing. Henry Zegarra G.
REPASO Apuntes de Programación C++ PAG 6/ 19

// redMayor: Redondeo mayor


printf("Ingrese numero negativo: ");
scanf("%f",&num);
printf("\n**************************\n");
printf("* Funcion Valor Absoluto *\n");
printf("**************************\n");
abso=fabs(num);
printf("El valor absoluto de %.2f es
%.2f\n\n",num,abso);
printf("*************************\n");
printf("* Funcion Raiz Cuadrada *\n");
printf("*************************\n");
raiz=sqrt(abso);
printf("La raiz cuadrada de %.2f es
%.2f\n\n",abso,raiz);
printf("*************************\n");
printf("* Redondeo entero Mayor *\n");
printf("*************************\n");
redMenor = ceil(raiz);
printf("Redondeado al entero mayor de %.2f es -->
%.2f \n\n",raiz,redMayor);
printf("*************************\n");
printf("* Redondeo entero Menor *\n");
printf("*************************\n");
redMayor = floor(raiz);
printf("Redondeado al entero no mayor de %.2f es
--> %.2f \n\n",raiz,redMenor);
system("pause");
return (0);
}

La biblioteca <cstring>, contiene las funciones que permiten al programador la


manipulación de cadenas. Como ya se explicó anteriormente, las funciones se
utilizan normalmente en el programa escribiendo el nombre de la función
seguido de un ( ) y dentro de ellos el argumento o lista de argumentos
separados por comas. Todo compilador de C proporciona una librería

Ing. Henry Zegarra G.


REPASO Apuntes de Programación C++ PAG 7/ 19

estándar <string.h> o <cstring> con funciones para facilitar su utilización, aquí


destacaremos algunas de ellas:

- Función strlen: Obtiene la longitud de la cadena, sin contar el carácter


nulo.

Ejemplo 03: Encontrar la longitud de dos


cadenas

//Sintaxis:
// var = strlen(cadena);
// | | |
// | | |-> variable del tipo cadena
// | |
// | |-> Funcion strlen, pertenece librería
// | cstring
// |
// |-> variable tipo int donde se almacena la
// longitud de la variable cadena

// Programa Principal
#include<iostream>
using namespace std;
void main()
{
// Declaración de variables
char cadena1[15]="Ingenieria", cadena2[15];
int longitud1, longitud2;

cout<<"Que programa estudia: ";


cin>>cadena2;
cout<<"HALLA LAS LONGITUDES DE LAS CADENAS\n";
cout<<"----- --- ---------- -- --- -------\n";

// Uso de la función strlen


longitud1=strlen(cadena1);
longitud2=strlen(cadena2);
// Visualización de resultados
cout<<"La longitud de la cadena "<<cadena1<<" es:
"<<longitud1<<endl;
cout<<"La longitud de la cadena "<<cadena2<<" es:
"<<longitud2<<endl;
}

Ing. Henry Zegarra G.


REPASO Apuntes de Programación C++ PAG 8/ 19

- Función strcpy: Permite copiar una cadena en otra.

Ejemplo 04: Escriba un programa para ingresar una


cadena por teclado y hacer una copia de ella. La función ’gets’ se usa
//Sintaxis: para leer caracteres desde el
// strcpy(cadenaDestino,cadenaFuente); teclado. Para su uso debemos
// | | | de incluir la librería <cstdio>.
// | | |-> variable 2
// | |
// | |-> variable 1
// |
// |-> Funcion strcpy, usar libreria cstring

// Programa Principal
#include<cstring>
#include<cstdio>

void main()
{
char cadena1[30], copiaCadena1[30];

printf("Que programa estudia: ");

// Uso de la función gets de entrada de datos


gets(cadena1);
printf("COPIA LAS CADENAS INGRESADAS Y LAS
VIZUALIZA\n");
printf("----- --- ------- ---------- - ---
---------\n");

// Uso de la función strcpy


strcpy(copiaCadena1,cadena1);

// Visualización de resultados
printf("- Cadena original es: %s.\n- Su copia
es: %s\n",cadena1,copiaCadena1);
}

- Función strcat: Permite concatenar dos cadenas.

Ejemplo 05: Escriba un programa para realizar la


copia de una cadena ingresada por teclado
//Sintaxis:
// strcat(cadDestino,cadFuente);
// | | |
// | | |-> variable
// | |
// | |-> variable
// |
// |-> Funcion strcat, usar libreria
// cstring

Ing. Henry Zegarra G.


REPASO Apuntes de Programación C++ PAG 9/ 19

// Programa principal
#include<cstring> La variable tipo cadena
#include<cstdio> esp[ ] gráficamente es:

void main()
{
char cadena1[25], cadena2[5], esp[]={' ','-','
','\0'}, datos[35];

// Solicitud e ingreso de datos


printf("Que programa estudia: ");
gets(cadena1); // Uso de la función gets
printf("Las inciales de su Universidad son: ");
gets(cadena2); // Uso de la función gets

printf("COPIA CADENAS1 INGRESADAS EN DATOS\n");


printf("----- -------- ---------- -- -----\n");

printf("CONCATENANDO CADENAS INGRESADAS EN


DATOS\n");
printf("------------ ------- ---------- --
-----\n");
// Uso de la fucnión strcpy
strcpy(datos,cadena1);
strcat(datos,esp);
strcat(datos,cadena2);

// Visualización de resultados
printf("- Cadena concatenada es: %s.\n",datos);
}

- Función Strcmp: Permite comparar dos cadenas.

Ejemplo 5:
//Sintaxis:
// var = strcmp(cadena1,cadena2);
// | | | |
// | | | |-> variable
// | | |
// | | |-> variable
// | |
// | |-> Funcion strcmp, usar librería
// cstring
// |
// |-> variable tipo entero puede ser:
// Si var > 0, Entonces cadena1 > cadena2
// Si var = 0, Entonces cadena1 = cadena2
// Si var < 0, Entonces cadena1 < cadena2

Ing. Henry Zegarra G.


REPASO Apuntes de Programación C++ PAG 10/ 19

// Programa principal
#include<cstring>
#include<cstdio>

void main()
{
char cadena1[25], cadena2[25];
int r;

// Solitud e ingreso de datos


printf("Que programa estudia: ");
gets(cadena1);
printf("Ingrese otro programa: ");
gets(cadena2);

printf("COMPARANDO CADENAS INGRESADAS\n");


printf("---------- ------- ----------\n");

// Uso de la función srtcmp


r = strcmp(cadena1, cadena2);

// Comparación y Visualización de resultados


if(r>0)
printf("%s > %s\n",cadena1,cadena2);
else if (r==0)
printf("%s = %s\n",cadena1,cadena2);
else
printf("%s < %s\n",cadena1,cadena2);
}

2. Funciones y/o Procedimientos definidos por el usuario

Una función es, sencillamente, un conjunto de sentencias que se pueden


llamar desde cualquier parte de un programa. Las funciones permiten al
programador un grado de abstracción en la resolución de un problema.

Las funciones en C no se pueden anidar. Esto significa que una función no se


puede declarar dentro de otra función. La razón para esto es permitir un
acceso muy eficiente a los datos. En C todas las funciones son externas o
globales, es decir, pueden ser llamadas desde cualquier punto del programa.
La estructura de una función en C se muestra a continuación.

TipoRetorno nombre_Función (tipo arg1, tipo arg2, …)


{

Ing. Henry Zegarra G.


REPASO Apuntes de Programación C++ PAG 11/ 19

cuerpo de la función;
return expresión;
}

Así por ejemplo:

//Funcion que halla el cuadrado de un número


double cuadrado(double n)
{
return n*n;
}
//Tambien puede ser
double cuadrado(double n)
{
double r=0;
r=n*n;
return r;
}

La función cuadrado (n), es un clásico ejemplo que muestra el paso de


parámetros por valor, en ese sentido la función cuadrado( ) recibe una copia
del parámetro n. En la misma función se puede observar que se realiza un
cálculo (n*n), sin embargo el parámetro original no sufrirá cambio alguno,
esto seguirá siendo cierto aún cuando dentro de la función hubiera una
instrucción parecida a n = n * n; o n*=n;.

A continuación se presenta un ejemplo para hallar el factorial de un número


ingresado por teclado.

//Funcion que halla el factortial de un número


long int fact ( int x )
{
int i;
long int f = 1;
for (i= 2; i<= x; i++)
f = f * i;
return(f);
}

Aquí se presenta la implementación de una función que no retorna un valor,


pero si lo muestra.

//Funcion que halla el mayor de dos números


void maximo( float x, float y )
{
float max;
if (x > y)
{
max = x;
printf( "MAX=%d", max );
}
else if (x<y)

Ing. Henry Zegarra G.


REPASO Apuntes de Programación C++ PAG 12/ 19

{
max = y;
printf( "MAX=%d", max );
}
else
cout<<"Los numeros ingresado son iguales "<<"x
= y = "<<x<<endl;
}

Para llamar a una función desde el programa principal, se realiza con el


nombre de la misma y una lista de parámetros (si es que los requiere) entre
paréntesis.

El número y tipo de los parámetros empleados en la llamada a la función debe


coincidir con el número y tipo de los parámetros formales de la definición o
prototipo.

Adicionalmente, si la función devuelve algún valor (es decir, no es de tipo


void) la llamada a la función debe estar incluida en una expresión que recoja
el valor devuelto. Siguiendo con los ejemplos anteriores:

// Programa Principal
void main()
{
long int factorial;
int resultado;
//llamando a la funcion o procedimiento Arreglo unidimen-
implementados sional ‘a’ de tipo entero
con 100 posiciones.
resultado = cuadrado(n); //llamado a funcion
cuadrado con un argumento.
...
factorial = fact (x); //llamado a funcion fact con Arreglo unidimensional
un argumento. ‘b’ de tipo entero con 25
... posiciones

maximo(x,y ); //llamado al procedimiento maximo con


dosn argumentos.
... Arreglo bidimensional ‘c’
} de tipo entero de 6
posiciones.
La estructura del programa sería

// Archivos de encabezado
#include<libreria>
// Declaración de variables globales
Tipo var1, var2,…;
#define VAR TAM // VAR es una variable cualquiera y TAM un
valor numérico

Ing. Henry Zegarra G.


REPASO Apuntes de Programación C++ PAG 13/ 19

// Declarción y definción de funciones y/o Procedimientos


void func1(int x) // Procedimiento
{
. . .
}

int func2 (int x, int y) // Función


{
int resutado;
. . .
return(resultado);
}
// Programa Principal
int main()
{
int x, y, z;
funcl (x);
...
cin>>x;
...
cin>>y;
...
z = func2 (x ,y );
...
return 0;
}

Los datos empleados en la llamada a una función reciben el nombre de


parámetros reales, ya que se refieren a la información que se transfiere a la
función para que ésta se ejecute. Como veremos más adelante, los
identificadores de los parámetros formales son locales a la función, en el
sentido de que no son reconocidos desde fuera de ésta. Por tanto, los
nombres de los parámetros formales no tienen por qué coincidir con los
nombres de las variables usadas como parámetros reales en el momento de la
llamada.

Se debe especificar el tipo de dato devuelto (de retorno) por la función;


cuando devuelve un valor int, se puede omitir ya que por defecto el C asume
que todas las funciones son enteras, a pesar de ello siempre conviene
especificar el tipo aun siendo de tipo int, para mejor legibilidad. El tipo debe
ser uno de los tipos simples de C, tales como int, char o float, o un puntero a
cualquier tipo C, así por ejemplo:

int max(int x, int y) // devuelve un tipo int


double media(double xl, double x2) // devuelve un tipo
double
float func0(...) // devuelve un float
char funcl(...) // devuelve un dato char

Ing. Henry Zegarra G.


REPASO Apuntes de Programación C++ PAG 14/ 19

Si una función no devuelve un resultado, se puede utilizar el tipo void, que se


considera como un tipo de dato especial. Muchas funciones no devuelven
resultados. La razón es que se utilizan como subrutinas para realizar una tarea
concreta. Una función que no devuelve un resultado, a veces se denomina
procedimiento. Para indicar al compilador que una función no devuelve
resultado, se utiliza el tipo de retorno void, como en este ejemplo:

void vizualizar_resultados(float total, int num_elementos);

Entonces, Si el tipo de retorno es void, la sentencia return se puede escribir


como return; sin ninguna expresión de retorno, o bien, de modo alternativo se
puede omitir la sentencia return, así por ejemplo:

void procedimientol(void)
{
cout<<"Función no devuelve valores pero si imprime \n" ;
}

En el siguiente ejemplo se declaran dos funciones y se llaman desde la


función main ( ) .

Ejemplo 6:
#include <cstdio>
void procedimiento1 ( )
{
puts ("Primer Procedimiento\n") ;
}

void procedimiento2 (void)


{
puts ("Segundo Procedimiento\n") ;
return ;
}

int main()
{
puts("Llamadas a Procedmientos desde Prog. Principal\n");
procedimiento 1 ( ) ; // Primer procedimiento - llamada
procedimiento 2 ( ) ; // Segundo procedimiento - llamada
puts ("Programa Principal termina") ;
return (0); // Devuelve control al sistema
}

3. Pasar un array como parámetro de una función

Ing. Henry Zegarra G.


REPASO Apuntes de Programación C++ PAG 15/ 19

Los arrays son un elemento muy interesante para utilizar conjuntamente con
las funciones. Al igual que las funciones pueden utilizar enteros, números
reales o caracteres como argumentos, también pueden utilizar arrays; pero su
tratamiento es diferente.

Cuando se pasa por valor, se toma una copia del valor del parámetro; por
referencia se toma la dirección del dato. Esto último implica que cuando se
modifica una variable pasada por referencia, en realidad se está modificando
la variable original y no el parámetro.

En el caso de los arrays, la dirección del primer elemento del array, marca el
comienzo del mismo. Un array se pasa por referencia ya que se pasa sólo el
nombre del array.

Imaginemos que tenemos una función llamada doblaArray que sirve para
doblar el valor de cada elemento que forma parte de un array. Supongamos
también que la función trabaja con arrays de enteros. Si tenemos un array
llamado numero que contiene 10 números enteros, la llamada a la función
que dobla cada elemento sería:

int numero[10]={1,2,3,4,5,6,7,8,9,10);//Valores del


array numero
doblaArray(numero,10); //Llamada a la función
doblaArray
// La función doblaArray(tiene dos argumentos:
// - El primer argumento es el array numero
// - El segundo parámetro es el tamaño del array.

Como podemos observar, en la llamada se usan dos parámetros, el primero es


el nombre del array. El segundo es el tamaño del array. Las funciones que
trabajan con array suelen tener este segundo parámetro, precisamente para
saber hasta dónde hay que recorrer el array. Hay que observar que en el
primer parámetro se pasa el nombre del array sin usar corchetes.

La realidad es que la función recibe la dirección del array (se pasa por
referencia) y que esta dirección será la que utilice el primer parámetro. La
función tendría el siguiente código:

void doblaArray(int Numero[], int tamanio)


{
int i;//variable ‘i’ para recorrer el array
for(i=0;i<tamanio;i++)
Numero[i]*=2;
}

Ing. Henry Zegarra G.


REPASO Apuntes de Programación C++ PAG 16/ 19

Esta función modifica el contenido del array, no recibe una copia, sino que al
recibir la dirección del array, realmente trabaja con su dirección. Es decir tras
la llamada doblaArray(numero,10) el array numero al que se refiere el código
de la función es el mismo array numero.

Utilizando todos los conceptos se tiene el siguiente ejemplo:

Ejemplo 1: Crear un programa que contenga una función


llamada copiarArray que reciba dos arrays y el tamaño
de los mismos (deben de ser del mismo tamaño) y que
consiga copia en el segundo array el contenido del
primero.
#include <conio.h>
#include <cstdio>

// *** FUNCIONES IMPLEMENTADAS ***


// Copia el contenido del array a en el array b.
void copiar_Array(int a[], int b[], int tamanio)
{
int i;
for(i=0;i<tamanio;i++)
b[i]=a[i];
}

// Visualiza el array
void visualizar_Array(int a[], int tamanio)
{
int i;
for(i=0;i<tamanio;i++)
printf("%d \t ",a[i]);
printf("\n");
}

// *** PROGRAMA PRINCIPAL ***


int main()
{
int a[]={2,4,5,6,7,8,9,11};
int b[8];
printf("Array A:\n");
visualizar_Array(a,8);
copiar_Array(a,b,8);
printf("Array B:\n");
visualizar_Array(b,8);
}

Ing. Henry Zegarra G.


REPASO Apuntes de Programación C++ PAG 17/ 19

Ejercicio 1: Modifique el programa anterior para que contenga las siguientes


funciones. Una función llamada Ingresar_Array que reciba dos argumentos
(un array y el tamaño del mismo), una función llamada visualizar_Array que
reciba dos argumentos (un array y el tamaño del mismo) y sirva para imprimir
ambos Arrays. Y por último una función llamada sumar_Array que reciba tres
arrays y el tamaño de los mismos (deben de ser del mismo tamaño) y que
consiga copia en el segundo array el contenido del primero.

#include <conio.h>
#include<iostream>
using namespace std;

//VARIABLES GLOBALES
int i;//variable 'i' para recorrer el array
int Nuevo_Tam;
const int TAM=10;
int a[TAM], b[TAM], c[TAM];

//IMPLEMENTE SUS FUNCIONES AQUI

//PROGRAMA PRINCIPAL
int main()
{
cout<<"Ingresando tamanio del Array :\n";
Nuevo_Tam=Ing_Tamaño(TAM)

cout<<"Ingresando Array A:\n";


Ingresar_Array(a,Nuevo_Tam);

cout<<"Copiar Array A en Array B:\n";


copiar_Array(a,b,Nuevo_Tam);

printf("Ver Array B:\n");


visualizar_Array(b,Nuevo_Tam);
}

Ing. Henry Zegarra G.


REPASO Apuntes de Programación C++ PAG 18/ 19

Ejercicio 2. Modifique el programa anterior para que pueda declarar las


siguientes funciones (Ver programa para ver que funciones implementar, ver
ayuda al final)

#include <conio.h>
#include<iostream>
using namespace std;

//VARIABLES GLOBALES
int i;//variable 'i' para recorrer el array
int Nuevo_Tam, dato;
const int TAM=10;
int a[TAM], b[TAM], c[TAM];

//IMPLEMENTE SUS FUNCIONES AQUI

//PROGRAMA PRINCIPAL
int main()
{

cout<<"Ingrese Longitud del vector (Max. 10


elementos): ";
cin>>Nuevo_Tam;
cout<<"\nIngresando Array A:\n";
Ingresar_Array(a, Nuevo_Tam);

cout<<"Ver Array A:\n";


visualizar_Array(a, Nuevo_Tam);

cout<<"\nIngresando Array B:\n";


Ingresar_Array(b, Nuevo_Tam);

printf("Ver Array B:\n");


visualizar_Array(b, Nuevo_Tam);

sumar_Array(a, b, c, Nuevo_Tam);
}

Al ejecutar el programa visualizaríamos (Pruebe con los siguientes datos):

Ingrese Longitud del vector (Max. 10 elementos): 5

Ingresando Array A:
Ingrese dato para posicion 1
Ingrese dato para posicion 2
Ingrese dato para posicion 3
Ingrese dato para posicion 4
Ingrese dato para posicion 5
Ver Array A:
1 2 3 4 5

Ingresando Array B:
Ingrese dato para posicion 6

Ing. Henry Zegarra G.


REPASO Apuntes de Programación C++ PAG 19/ 19

Ingrese dato para posicion 7


Ingrese dato para posicion 8
Ingrese dato para posicion 9
Ingrese dato para posicion 10
Ver Array B:
6 7 8 9 10

El nuevo array C es:


7 9 11 13 15
Presione una tecla para continuar . . .

AYUDA: Si queremos ingresar valores a dos arrays diferentes por ejemplo se


declaro:

int a[TAM], b[TAM];

//FUNCION A UTILIZAR PARA INGRESAR VALORES A LOS ARRAYS


A Y B
void Ingresar_Array(int arr[],int Nuevo_Tam)
{
int dato;
for(i=0;i<Nuevo_Tam;i++)
{
cout<<"Ingrese dato para posicion ";
cin>>dato;
arr[i]=dato;
}
}

//SE LLAMARIA ASI DESDE EL PROGRMA PRINCIPAL

Ingresar_Array(a, Nuevo_Tam);
Ingresar_Array(b, Nuevo_Tam);

Ing. Henry Zegarra G.

Potrebbero piacerti anche