Sei sulla pagina 1di 7

//Pasaje de arreglos como argumentos

#include <iostream>
using std::cout;
using std::cin;
using std::endl;
void mostrarArreglo(const int [], int); //prototipo de funcion que recibe un
arreglo constante
void incrementarArreglo(int[], int); //prototipo que modifica el arreglo
int sumaElementos(const int[], int); //prototipo, suma los elementos del
arreglo
int main()
{
const int tamanoA = 10;
const int tamanoB = 15;
int arregloA[tamanoA] = {0};
int arregloB[tamanoB] = {0};
for (int i = 0; i < tamanoA; i++)
{
cout << "Ingrese el valor para arregloA["<< i << "]: ";
cin >> arregloA[i];
}
for (int i = 0; i < tamanoB; i++)
{
cout << "Ingrese el valor para arregloB["<< i << "]: ";
cin >> arregloB[i];
}
cout << "El arregloA antes de incrementar es: "<< endl;
mostrarArreglo(arregloA, tamanoA);
cout << "El arregloA luego de incrementar es: "<< endl;
incrementarArreglo(arregloA,tamanoA);
mostrarArreglo(arregloA,tamanoA);
cout << "El arregloB es: " << endl;
mostrarArreglo(arregloB,tamanoB);
cout << "La suma de sus elementos es igual a "<<
sumaElementos(arregloB,tamanoB) << endl;
cout << "Fin del programa :)" << endl;
return 0;
}//fin de main
void mostrarArreglo(const int arreglo[], int tamano)
{
for (int i = 0 ; i < tamano ; i++)
cout << "arregloB[" << i <<"]=" << arreglo[i] << endl;
}
void incrementarArreglo(int arreglo[], int tamano)
{

for (int i = 0; i<tamano ; i++)


arreglo[i]++;//incrementa en 1.
}
int sumaElementos(const int arreglo[], int tamano)
{
int total = 0;
for (int i = 0 ; i < tamano ; i++)
total += arreglo[i]; //equivale a total = total + arreglo[i]
return total;
}
Problema2
#include <stdio.h>
#define TAMANIO 5
/* prototipos de las funciones */
void modificaArreglo( int b[], int tamanio ); void modificaElemento(
int e );
/* la funcin main comienza la ejecucin del programa */
int main()
{
int a[ TAMANIO ] = { 0, 1, 2, 3, 4 }; /* inicializa a */
int i; /* contador */
printf( "Efectos de pasar arreglos completos por referencia:nnThe "
"los valores del arreglo original son:n" );
/* muestra el arreglo original */
for ( i = 0; i < TAMANIO; i++ ) {
printf( "%3d", a[ i ] );
} /* fin de for */
printf( "n" );
/* pasa el arreglo a modificaArreglo por referencia */
modificaArreglo( a, TAMANIO );
printf( "Los valores del arreglo modificado son:n" );
/* muestra el arreglo modificado */
for ( i = 0; i < TAMANIO; i++ ) {
} /* fin de for */

printf( "%3d", a[ i ] );

/* muestra el valor de a[ 3 ] */
printf( "nnnEfectos de pasar un elemento del arreglo "
"por valor:nnEl valor de a[3] es %dn", a[ 3 ] );
modificaElemento( a[ 3 ] ); /* pasa el elemento a[ 3 ] del arreglo
por valor */
/* muestra el valor a[ 3 ] */
%dn", a[ 3 ] );

printf( "El valor de a[ 3 ] es

return 0; /* indica terminacin exitosa */


} /* fin de main */
/* en la funcin modificaArreglo, "b" apunta al arreglo original
"a"
e memoria */
void modificaArreglo( int b[], int tamanio )

int j; /* contador */
/* multiplica cada elemento del arreglo por 2 */
for ( j = 0; j < tamanio; j++ ) {
b[ j ] *= 2;
} /* fin de for */

} /* fin de la funcin modificaArreglo */


/* en la funcin modificaElemento, "e" es una copia local del
elemento a[ 3 ]
del arreglo se pas desde main */
void modificaElemento( int e )
{
/* multiplica el parmetro por 2 */
printf( "El valor en modificaElemento es %dn", e *= 2 );} /* fin de
la funcin modificaElemento */

problema 3Este programa pide tres nmeros, los almacena en una matriz, le
suma 1 a cada elemento y los muestra, usando para cada accin una funcin. As
que tenemos funciones que reciben matrices y que retornan matrices
#include<iostream>
using namespace std;
void pedir(int matriz[3], int len)
{
for(int i=0; i<=len; i++)
{
cout << "Numero " << i+1 << ":? ";
cin >> matriz[i];
}
}
int sumar(int matriz[3], int len)
{
for(int i=0; i<=len; i++)
matriz[i]++;
return matriz[3];
}
void mostrar(int matriz[3], int len)
{
for(int i=0; i<=len; i++)
cout << matriz[i] << " ";
}
int main()
{
int matriz[3]={0}, len = sizeof(matriz)/sizeof(int);
pedir(matriz, len-1);
matriz[3] = sumar(matriz, len-1);
mostrar(matriz, len-1);
return 0;
}

Problema 4
#include <stdio.h>
#include <conio.h>
#include <string.h>
void proc1(int vector[]);
void main() {
clrscr();
//creando arreglo y cargandolo
int lista[5]= {10,11,12,13,14};
// mandandolo a procedimiento recordar como se manda sin []
proc1(lista);
// desplegando arreglo lista y observar que datos salen
for(int reng=0; reng<=4; reng++)
printf("%d \n",lista[reng]);
getchar();
} // termina main
void proc1(int vector[])
{
// sumandole 50 a lo que se tenia en arreglo lista
// es decir vector queda cargado con 60,61,62,63,64
for(int reng=0; reng<=4; reng++)
vector[reng]=vector[reng]+ 50;
// observar que no se regresa nada
} //termina proc1

Problema 5
1. #include <stdio.h>
2. //programa para multiplicar matrices que cumplan las reglas de
multiplicacion
3.
4. int i=0, j=0;

5. int pedir_matris (int x, int y, int Z);


6.
7. int main (int argc, char*argv[])
8.
9.

10.

int
fila1=atoi(argv[1]),columna1=atoi(argv[2]),fila2=atoi(argv[3]),c
olumna2=atoi(argv[4]);
int k=0, s;

11.

int A[fila1][columna1],B[fila2][columna2],Aux[fila1]
[columna1];

12.
13.

// mini compro para mejorar mas adelante

14.

if (fila1<=0 || columna1<0 || fila2<=0 || columna2<0 ||


columna1!=fila2)

15.

16.

printf ("\a \"Debe ingresar un orden mayor que

cero\"\n\n");

17.
18.

}
else

19.

pedir_matris (fila1, columna1, "A");

20.

//pide matriz 1

21.

/*printf ("\"Ingrese 1 (A) Matriz a Sumar\"\n");

22.

for(i=0;i<fila1;i++){

23.

for(j=0;j<columna1;j++){

24.

printf("Ingrese el valor de A[%d]


[%d]:\n",i+1,j+1);

25.

scanf("%d",&A[i][j]);

26.
27.

}
}*/

28.

//pide matriz 2

29.

printf ("\"Ingrese 2 (B) Matriz a Sumar\"\n");

30.

for(i=0;i<fila2;i++){

31.

for(j=0;j<columna2;j++){

32.

printf("Ingrese el valor de B[%d]


[%d]:\n",i+1,j+1);

33.

scanf("%d",&B[i][j]);

34.

35.

36.

// reliza las operaciones

37.

for(i=0;i<fila1;i++){

38.

for(j=0;j<columna2;j++){

39.

s=0;

40.

for(k=0;k<fila2;k++){

41.

s=s+(A[i][k]*B[k][j]);

42.

Aux[i][j]=s;

43.
44.

45.

46.

//Mostras la respuesta

47.

printf ("\"La Matriz respuesta es\"\n");

48.

for(i=0;i<fila1;i++){

49.

for(j=0;j<columna2;j++){

50.

printf("\t%d",Aux[i][j]);

51.

52.

printf ("\n");

53.

54.
55.
56.

}
return 0;

problema 6Este es un simple ejemplo de uso de funciones en C++.


En este ejemplo veremos dos funciones, una que devuelve un valor que se le puede dar el
valor de devolucin a una variable y el otro que se ejecuta directamente y no devuelve
ningn valor.
/*
Luffy @ 2008
http://www.ejemplode.com
*/
//Ejemplo de Funcion en C++
#include <iostream>
void funct_Devuelve(int quantity);
void funct_Nula(void);
int main(int argc, char *argv[]) {
int numero;
std::cout << "Ingresa un numero: ";
std::cin >> numero;
numero = funct_Devuelve(numero);
std::cout << "La funcion funct_Devuelve ha devuelto el numero: " << numero << std::endl;
std::cout << "Y ahora ejecutaremos la otra funcin que no devuelve valor pero que se ejecuta
directamente" << std::endl;
funct_Nula();
return 0;
}
void funct_Devuelve(int quantity) {
return quantity + 10;
}
void funct_Nula(void) {
std::cout << "No devuelvo ningun valor a nadie pero muestro lo que yo quiero." << std::endl;
}
Problemas 7