Está en la página 1de 0

Instituto Superior de Formacin Tcnica N 177 Prof: Walter Carnero

PROGRAMACIN 1 EJ ERCICIOS RESUELTOS (Matrices y Fuciones)



El presente apunte contiene ejercicios resueltos en los cuales se utilizan, para su
resolucin, arreglos unidimensionales (vectores) y bidimensionales (matrices). Adems se
plantean soluciones mediante la utilizacin de funciones realizando pasajes por valor y
por referencia.

Resuelto N 1: Se cargan datos a una matriz de enteros de 3x4, se pide informar:

a. Los datos cargados en la matriz.
b. Promedio general.
c. Porcentaje de positivos.
d. Sumatoria de los N pares ingresados en la matriz.

#i ncl ude <i ost r eam. h>
#i ncl ude <coni o. h>
#i ncl ude <i omani p. h>
voi d mai n( ) {
i nt m[ 3] [ 4] , f , c, cpos=0, sumpar =0;
f l oat pr om=0, por c=0, sum=0;
cl r scr ( ) ;
cout <<" I ngr ese dat os: " ;
f or ( f =0; f <3; f ++) {
f or ( c=0; c<4; c++) {
ci n>>m[ f ] [ c] ;
sum=sum+m[ f ] [ c] ;
i f ( m[ f ] [ c] > 0) {
cpos=cpos+1;
}
i f ( ( m[ f ] [ c] %2) ==0) {
sumpar =sumpar +m[ f ] [ c] ;
}
}
}
pr om=sum/ 12; // Se calcula el promedio general
por c=( cpos*100) / 12; // Se calcula el porcentaje de positivos
cout <<" Los N i ngr esados en l a mat r i z son: " <<endl <<endl ;
f or ( f =0; f <3; f ++) {
f or ( c=0; c<4; c++) {
cout <<m[ f ] [ c] ;
}
cout <<endl ;
}
cout <<endl <<" El Pr omedi o gener al es: " <<set pr eci si on( 2) <<pr om;
cout <<endl <<" El por cent aj e de posi t i vos es: " <<por c<<" %" ;
cout <<endl <<" La sumat or i a de l os par es es: " <<sumpar ;
get ch( ) ;
}


Programacin I Ejercicios Resueltos 1

Instituto Superior de Formacin Tcnica N 177 Prof: Walter Carnero

Resuelto N 2: Escribir un programa que permita a un usuario ingresar caracteres en una
matriz de 4x4, informar luego la matriz completa pero con la primer y ltima fila ordenada
alfabticamente, informar tambin cuantas letras a se ingresaron.

#i ncl ude <i ost r eam. h>
#i ncl ude <coni o. h>
voi d mai n( ) {
char mat [ 4] [ 4] , aux;
i nt cuent a=0, f , c;
cl r scr ( ) ;
cout <<" I ngr ese 16 car act er es: " ;
f or ( f =0; f <4; f ++) {
f or ( c=0; c<4; c++) {
ci n>>mat [ f ] [ c] ;
i f ( ( mat [ f ] [ c] ==' a' ) | | ( mat [ f ] [ c] ==' A' ) ) {
cuent a++;
}
}
}
f or ( f =3; f >=0; f - - ) {
f or ( c=0; c<f ; c++) {
i f ( mat [ 0] [ c] >mat [ 0] [ c+1] ) { / / Se or dena l a pr i mer f i l a
aux=mat [ 0] [ c] ;
mat [ 0] [ c] =mat [ 0] [ c+1] ;
mat [ 0] [ c+1] =aux;
}
i f ( mat [ 3] [ c] >mat [ 3] [ c+1] ) { / / Se or dena l a l t i ma f i l a
aux=mat [ 3] [ c] ;
mat [ 3] [ c] =mat [ 3] [ c+1] ;
mat [ 3] [ c+1] =aux;
}
}
}
cout <<" Mat r i z con l a pr i mer y l t i ma f i l a or denadas: " <<endl ;
f or ( f =0; f <4; f ++) {
f or ( c=0; c<4; c++) {
cout <<mat [ f ] [ c] ;
}
cout <<endl ;
}
cout <<endl <<" Cant i dad de a- A: " << cuent a;
get ch( ) ;
}


Resuelto N 3: Ingresar datos en una matriz de enteros de 5x5 e informar los N indicados
con una X.


X
X
X
X
X
0
1
2
3
4
0 1 2 3 4
Programacin I Ejercicios Resueltos 2

Instituto Superior de Formacin Tcnica N 177 Prof: Walter Carnero

#i ncl ude <coni o. h>
#i ncl ude <i ost r eam. h>
voi d mai n( ) {
i nt mat [ 5] [ 5] , f , c;
cl r scr ( ) ;
cout <<" I ngr ese dat os a l a mat r i z: " ;
f or ( f =0; f <5; f ++) {
f or ( c=0; c<5; c++) {
ci n>>mat [ f ] [ c] ;
}
}
cout <<endl <<" Dat os car gados en l a di agonal de l a mat r i z" <<endl ;
c=4;
f or ( f =0; f <5; f ++) {
cout <<mat [ f ] [ c] ;
c- - ;
}
get ch( ) ;
}

Resuelto N 4: Escribir la funcin cuyo prototipo es void DatosCli(); la cual permitir
ingresar el apellido, nombre, edad y DNI de 3 personas, luego informar.


#i ncl ude <i ost r eam. h>
#i ncl ude <coni o. h>
voi d Dat osCl i ( ) ; / / Pr ot ot i po de f unci n
voi d mai n( ) {
cl r scr ( ) ;
cout <<endl <<endl <<" \ t \ t PROGRAMA DE CARGA DE DATOS" ;
cout <<endl <<" \ t \ t ==========================" ;
Dat osCl i ( ) ; / / Ll amada a l a f unci n
get ch( ) ;
}
voi d Dat osCl i ( ) { / / i mpl ement aci n de l a f unci n Dat osCl i ( )
char apel l [ 3] [ 15] , nom[ 3] [ 20] , dni [ 3] [ 15] ;
i nt edad[ 3] , f , c;
f or ( f =0; f <3; f ++) {
cout <<endl <<endl <<" I ngr ese Apel l i do: " ;
ci n>>apel l [ f ] ;
cout <<endl <<" I ngr ese Nombr e: " ;
ci n>>nom[ f ] ;
cout <<endl <<" I ngr ese Edad: " ;
ci n>>edad[ f ] ;
cout <<endl <<" I ngr ese DNI : " ;
ci n>>dni [ f ] ;
}
cout <<endl <<endl <<" Los dat os i ngr esados f uer on: " ;
f or ( f =0; f <3; f ++) {
cout <<endl <<endl <<" Apel l i do: " ;
cout <<apel l [ f ] ;
cout <<endl <<" Nombr e: " ;
cout <<nom[ f ] ;
cout <<endl <<" Edad: " ;
cout <<edad[ f ] ;
Programacin I Ejercicios Resueltos 3

Instituto Superior de Formacin Tcnica N 177 Prof: Walter Carnero

cout <<endl <<" DNI : " ;
cout <<dni [ f ] ;

}
}


Resuelto N 5: Escribir una funcin que reciba por valor los catetos de un tringulo
rectngulo y devuelva la hipotenusa del mismo.


#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
#include <math.h>
float Pitagoras(float, float); //Prototipo de funcin
void main(){
float cat1,cat2,hipo=0;
clrscr();
cout<<"Ingrese cateto 1: ";
cin>>cat1;
cout<<"Ingrese cateto 2: ";
cin>>cat2;
hipo=Pitagoras(cat1,cat2);
cout<<"La hipotenusa del tri ngulo es: ";
cout<<setprecision(2)<<hipo;
getch();
}
float Pitagoras(float x, float y){
float result=0;
result=sqrt(pow(x,2)+pow(y,2));
return (result);
}


Resuelto N 6: Se ingresan datos a un vector de enteros de 8 elementos, escribir la
funcin int BuscaVal(int v[], int val); la cual recibir el vector por referencia y la variable val,
dicha funcin devolver 1 si val existe en el vector, de lo contrario devolver -1.


#i ncl ude <i ost r eam. h>
#i ncl ude <coni o. h>
#def i ne di m8
i nt BuscaVal ( i nt v[ ] , i nt ) ; / / pr ot ot i po de f unci n
voi d mai n( ) {
i nt vect or [ di m] , x, val or ;
cl r scr ( ) ;
cout <<" I ngr esar 8 N ent er os: " ;
f or ( i nt i =0; i <di m; i ++) {
ci n>>vect or [ i ] ;
}
cout <<" I ngr ese un N a buscar en el vect or : " ;
ci n>>x;
val or =BuscaVal ( vect or , x) ;
i f ( val or ==1) {
Programacin I Ejercicios Resueltos 4

Instituto Superior de Formacin Tcnica N 177 Prof: Walter Carnero

cout <<" Val or encont r ado! ! ! " ;
}
i f ( val or ==- 1) {
cout <<" No se encont r o val or ! ! ! " ;
}
get ch( ) ;
}
i nt BuscaVal ( i nt v[ ] , i nt val ) {
f or ( i nt i =0; i <di m; i ++) {
i f ( val ==v[ i ] ) {
r et ur n ( 1) ;
}
}
r et ur n ( - 1) ;

}

Resuelto N 7: Escribir la funcin void CargarMat(); la cual permitir cargar una matriz de
enteros de 4x3, escribir tambin la funcin int SumaFilaPar(int mat[][3]); La cual recibir la
matriz por referencia y devolver un entero correspondiente a la sumatoria de los datos
cargados en las filas pares de la matriz. Se escribe tambin la funcin main() que utiliza
dichas funciones.

#i ncl ude <i ost r eam. h>
#i ncl ude <coni o. h>
voi d Car gar Mat ( ) ;
i nt SumaFi l aPar ( i nt mat [ ] [ 3] ) ;
i nt mat [ 4] [ 3] , f , c; / / Decl ar aci n de var i abl es gl obal es
voi d mai n( ) {
cl r scr ( ) ;
Car gar Mat ( ) ;
cout <<" La sumat or i a de l as f i l as par es es: " <<SumaFi l aPar ( mat ) ;
get ch( ) ;
}
voi d Car gar Mat ( ) {
cout <<" I ngr ese N ent er os: " ;
f or ( f =0; f <4; f ++) {
f or ( c=0; c<3; c++) {
ci n>>mat [ f ] [ c] ;
}
}
}
i nt SumaFi l aPar ( i nt mat [ ] [ 3] ) {
i nt suma=0;
f or ( f =0; f <4; f =f +2) {
f or ( c=0; c<3; c++) {
suma=suma+mat [ f ] [ c] ;
}
}
r et ur n ( suma) ;
}

Resuelto N 8: Se ingresan datos a dos vectores de caracteres mediante la funcin voi d
CargaVec(); escribir la funcin int Compara(char vec1[], char vec2[]); la cul indicara si las
cadenas de caracteres ingresadas mediante la funcin CargaVec() son iguales o no.
Programacin I Ejercicios Resueltos 5

Instituto Superior de Formacin Tcnica N 177 Prof: Walter Carnero

#i ncl ude <i ost r eam. h>
#i ncl ude <coni o. h>
#i ncl ude <st r i ng. h>
#def i ne di m10
voi d Car gaVec( ) ;
i nt Compar a( char vec1[ ] , char vec2[ ] , i nt , i nt ) ;
char v1[ di m] , v2[ di m] ;
i nt l 1, l 2;

voi d mai n( ) {
i nt x;
cl r scr ( ) ;
Car gaVec( ) ;
x=Compar a( v1, v2, l 1, l 2) ; / / Se pasa v1, v2 y l as l ongi t udes de ambos
i f ( x==0) {
cout <<" Las pal abr as no son i gual es" ;
}
el se{
cout <<" Pal abr as i gual es" ;
}
get ch( ) ;
}
voi d Car gaVec( ) {
cout <<" I ngr ese una pal abr a ( mxi mo 10 car act er es c/ u) : " ;
ci n>>v1;
cout <<endl <<" I ngr ese ot r a pal abr a: " ;
ci n>>v2;
l 1=st r l en( v1) ;
l 2=st r l en( v2) ;
}

i nt Compar a( char vec1[ ] , char vec2[ ] , i nt l en1, i nt l en2) {
i nt cuent a=0;
i f ( l en1==l en2) { / / Se compar an par a ver si l a l ongi t ud es l a mi sma
f or ( i nt i =0; i <=l en1; i ++) {
i f ( vec1[ i ] ==vec2[ i ] ) {
cuent a++;
}
}
}
el se{
r et ur n( 0) ;

}
r et ur n( cuent a) ;
}





Programacin I Ejercicios Resueltos 6

También podría gustarte