24
“UNIVERSIDAD NACIONAL PEDRO RUIZ GALLO” FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA CURSO: COMPUTACIÓN II. TEMA: VECTORES Y MATRICES. DOCENTE: ING. W. GERARDO CARDOZA LLONTOP. INTEGRANTES:

COMP II Vectores y Matrices

Embed Size (px)

DESCRIPTION

1

Citation preview

Page 1: COMP II Vectores y Matrices

“UNIVERSIDAD NACIONAL PEDRO RUIZ GALLO”FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA

CURSO:

COMPUTACIÓN II.

TEMA:

VECTORES Y MATRICES.

DOCENTE:

ING. W. GERARDO CARDOZA LLONTOP.

INTEGRANTES:

BUSTAMANTE ESPINOZA MANUEL JUNIOR. CASTOPE VEGA CESAR AUGUSTO. CORNETERO URPEQUE ARMANDO MARTÍN. TORRES VASQUEZ MARC ANTHONY. MEZA GUERRERO WISMAN ANTONY.

LAMBAYEQUE, JULIO DEL 2015

Page 2: COMP II Vectores y Matrices

1. elabore un programa que ingrese n sueldos y que muestre lo siguiente

a) sueldo promediob) mayor sueldoc) menor sueldod) cantidad de sueldos menores al promedio

#include<stdio.h>#include<conio.h>#define MAX 50main(){

int n;float sueldo[MAX],max, min;

for(int i=0;i<MAX;i++){

sueldo[i]=0.0;}

do{printf("\nIngrese cantidad de sueldos:");scanf("%d",&n);

}while(!(n>0 && n<=MAX));

printf("\nIngrese los sueldos:");

for(int i=0;i<n;i++){

printf("\nIngrese sueldo [%d]:",i+1);scanf("%f",&sueldo[i]);max=sueldo[0];min=sueldo[0];

if(sueldo[i]>max)max=sueldo[i];

if(sueldo[i]<min)min=sueldo[i];

}

float suma=0.0,prom;

for(int i=0;i<n;i++){

suma+=sueldo[i];}prom=suma/n;

Page 3: COMP II Vectores y Matrices

int a=0;for(int i=0;i<n;i++){

if(sueldo[i]<prom)a++;

}printf("\nEl promedio de sueldos es: %.2f\n",prom);printf("\nEl mayor sueldo es: %.2f\n",max);printf("\nEl menor sueldo es: %.2f\n",min);printf("\nSueldos menores que el promedio: %d\n",a);

getch();

}2. Elabore un programa que lea "N" valores en el rango entre 1 a 500 y que muestre lo siguiente:a) Promedio de los números paresb) Promedio de los números imparesc) La suma de los elementos que ocupan las posiciones pares del vector.d) La suma de los elementos que ocupan las posiciones impares del vector.e) El número de elementos en los siguientes rangos: Menores a 100 Entre 101 y 200 Entre 201 y 400 Mayores de 400

#include<stdio.h>

#include<conio.h>

#define MAX 500

main()

{

int N,i,cp=0,ci=0,Num[MAX],suma1=0,suma2=0,n1=0,n2=0,n3=0,n4=0;

float ppar,pimp;

for(i=0;i<MAX;i++)

Num[i]=0;

do{

printf("\nIngrese cantidad de numeros : ");

scanf("%d",&N);

}while(!(N>0&&N<=MAX));

Page 4: COMP II Vectores y Matrices

for(i=0;i<N;i++)

{

printf("\nIngrese numero %d : ",i+1);

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

}

for(i=0;i<N;i++)

{

if(Num[i]%2==0)

{

suma1=suma1+Num[i];

cp++;

}

else

{

suma2=suma2+Num[i];

ci++;

}

}

ppar=suma1/cp;

pimp=suma2/ci;

printf("\nEl promedio de los numeros pares es : %.2f",ppar);

printf("\nEl promedio de los numeros impares es : %.2f",pimp);

printf("\nSuma de numeros pares : %d",suma1);

printf("\nSuma de numeros impares : %d",suma2);

for(i=0;i<N;i++)

{

if(Num[i]<100)

n1++;

if(Num[i]>101&&Num[i]<200)

Page 5: COMP II Vectores y Matrices

n2++;

if(Num[i]>201&&Num[i]<400)

n3++;

if(Num[i]>400)

n4++;

}

printf("\nCantidad de Numeros menores a 100 : %d",n1);

printf("\nCantidad de Numeros entre 101 y 200 : %d",n2);

printf("\nCantidad de Numeros entre 201 y 400 : %d",n3);

printf("\nCantidad de Numeros mayores a 400 : %d",n4);

getch();

}

3. Implementar un programa que dados dos vectores A y B de “N” elementos cada uno,

guarde en un tercer arreglo C, todos los números que están en A pero no están B

#include<stdio.h>#include<conio.h>#define MAX 300void main(){int A[MAX],B[MAX],C[MAX],i,j,N,aux,D[MAX];for(i=0;i<MAX;i++){ A[i]=0; B[i]=0; C[i]=0;}do{printf("\n Ingrese el numero de elementos de los vetores : ");scanf("%d",&N);}while(!(N>0 && N<=MAX));printf("\n Ingrese los elementos del vector A ");for(i=0;i<N;i++){ printf("\n digite elemento [%d]: ",i+1); scanf("%d",&A[i]);}printf("\n Ingrese los elementos del vector B ");for(j=0;j<N;j++)

Page 6: COMP II Vectores y Matrices

{ printf("\n digite elemento [%d]: ",j+1); scanf("%d",&B[j]);}int x=0;for(i=0;i<N;i++){ x=0; aux=A[i]; for(int j=0;j<N;j++) { if(aux==B[j]) x=1; } if(x==0) C[i]=aux;}printf("\n Los elementos del vector C, son :");for(i=0;i<N;i++){printf(" %d ",C[i]);}getch();}4.Escribir un programa, que lea en un vector números enteros positivos y los muestre en pantalla. Luego, si hay números repetidos, deben eliminarse y dejar sólo uno de cada número e imprimir la nueva lista.

#include<stdio.h>#include<conio.h>#define MAX 100main(){

int i,Num[MAX],N,aux,j;

for(i=0;i<MAX;i++) Num[i]=0;

do{ printf("\nIngrese cantidad de numeros : "); scanf("%d",&N); }while(!(N>0&&N<=MAX));

printf("\nIngrese los numeros : ");

for(i=0;i<N;i++) { scanf("%d",&Num[i]); }

Page 7: COMP II Vectores y Matrices

for(i=0;i<N-1;i++) { for(j=i+1;j<N;j++) { if(Num[i]==Num[j]) { Num[i]=aux; } } } printf("\nNumeros sin repetir: ");

for(i=0;i<N;i++) printf("%d",Num[i]); getch();} 5. En una elección hubo 5 candidatos con identificadores (1, 2, 3, 4, 5). Por otra parte, los votos para cada candidato se teclean de manera desorganizada como se muestra a continuación hasta llenar el vector. Ejemplo de votación: 1 , 5, 2, 5 , 1 , 3 , 1, 5 , 2 , 1 , 3 , 5 , 4, 4 , 5 Construya una aplicación en C que pueda proporcionar la siguiente información. El número de votos de cada candidato al final de la elección. El candidato ganador. El número de votos que obtuvo el candidato ganador. El porcentaje de votos del candidato ganador correspondiente del total de la elección.

#include <stdio.h>#include <conio.h>void main (){int VOTOS[15],TOTAL[5],GANADOR,AUX,i,C1=0,C2=0,C3=0,C4=0,C5=0,j;float PORCENTAJE;

printf ("\n\tINGRESE SU OPCION A VOTAR [1-2-3-4-5]");

for(i=0;i<15;i++){do{printf ("\nINGRESE SU VOT0 NUMERO [%d]: ",i+1);scanf ("%d",&VOTOS[i]);

} while(!(VOTOS[i]>0&&VOTOS[i]<6));printf("\a");

Page 8: COMP II Vectores y Matrices

}

printf ("\n \tLOS VOTOS REALIZADOS SON: ");for (i=0;i<15;i++){printf (" %d ",VOTOS[i]);}

for(i=0;i<15;i++){if (VOTOS[i]==1){C1++;}

if (VOTOS[i]==2){C2++;}

if (VOTOS[i]==3){C3++;}

if (VOTOS[i]==4){C4++;}

if (VOTOS[i]==5){C5++;} }printf ("\nLA OPCION NUMERO 1 OBTUVO [%d] VOTOS",C1);printf ("\nLA OPCION NUMERO 2 OBTUVO [%d] VOTOS",C2);printf ("\nLA OPCION NUMERO 3 OBTUVO [%d] VOTOS",C3);printf ("\nLA OPCION NUMERO 4 OBTUVO [%d] VOTOS",C4);printf ("\nLA OPCION NUMERO 5 OBTUVO [%d] VOTOS\N",C5);

TOTAL[0]=C1;TOTAL[1]=C2;TOTAL[2]=C3;TOTAL[3]=C4;TOTAL[4]=C5;GANADOR=TOTAL[0];for (j=1;j<5;j++){if (TOTAL[j]>GANADOR){GANADOR=TOTAL[j];}}

printf ("\nEL CANDIDATO GANADOR OBTUVO [%d] VOTOS",GANADOR);

for (j=0;j<5;j++){if (TOTAL[j]==GANADOR){AUX=j;}}printf ("\nEL CANDIDATO GANADOR ESTA REPRESENTADO POR LA OPCION NUMERO [%d]",AUX+1);

PORCENTAJE=(GANADOR*100)/15;printf ("\nEL GANADOR OBTUVO [%.2f] PORCIENTO DE LOS VOTOS TOTALES",PORCENTAJE);getch();}

Page 9: COMP II Vectores y Matrices

6. Implemente un programa que permita ingresar "N" pesos de personas y que lo muestre ordenado en forma ascendente y descendente.

#include<stdio.h>#include<conio.h>#define MAX 100main(){

float Per[MAX],suma=0.0,aux; int N,i,j;

for(i=0;i<MAX;i++) Per[i]=0.0;

do{ printf("\nIngrese cantidad de personas : "); scanf("%d",&N); }while(!(N>0&&N<=MAX));

for(i=0;i<N;i++) { printf("\nIngrese peso %d : ",i+1); scanf("%f",&Per[i]); }

for(i=0;i<N-1;i++) { for(j=i+1;j<N;j++) { if(Per[i]>Per[j]) { aux=Per[i];

Per[i]=Per[j]; Per[j]=aux; } } }

printf("\nLos pesos ordenados en forma ascendente : ");for(i=0;i<N;i++)

{ printf("\n%.2f",Per[i]); }

for(i=0;i<N-1;i++) { for(j=i+1;j<N;j++) { if(Per[i]<Per[j]) {

Page 10: COMP II Vectores y Matrices

aux=Per[i];Per[i]=Per[j];

Per[j]=aux; } } }

printf("\nLos pesos ordenanos forma descendente : ");for(i=0;i<N;i++)

{ printf("\n%.2f",Per[i]);

} getch(); }

7. Implementar el programa de la pregunta 6 empleando el método Shell

#include<stdio.h>#include<conio.h>#define MAX 100main(){ int N,inter,i=0,j=0,k=0,aux,Per[MAX];

for(i=0;i<MAX;i++) Per[i]=0;

do{ printf("\nIngrese cantidad de personas : "); scanf("%d",&N); }while(!(N>0&&N<=MAX));

for(i=0;i<N;i++) { printf("\nIngrese peso %d : ",i+1); scanf("%d",&Per[i]); }

inter=(N/2);while(inter>0){

for(i=inter;i<N;i++){

j=i-inter;while(j>=0){

Page 11: COMP II Vectores y Matrices

k=j+inter;

if(Per[j]<=Per[k])j--;

else{

aux=Per[j];Per[j]=Per[k];Per[k]=aux;j=j-inter;

}}

}inter=inter/2;

}printf("\nForma ascendente : ");for(i=0;i<N;i++)

printf("\n%d",Per[i]);inter=(N/2);

while(inter>0){

for(i=inter;i<N;i++){

j=i-inter;while(j>=0){

k=j+inter;

if(Per[j]>=Per[k])j--;

else{

aux=Per[j];Per[j]=Per[k];Per[k]=aux;j=j-inter;

}}

}inter=inter/2;

}printf("\nForma descendente : ");for(i=0;i<N;i++)

printf("\n%d",Per[i]);

getch();} 8. Implementar el programa de la pregunta 6 empleando el método Quicksort

Page 12: COMP II Vectores y Matrices

#include<stdio.h>#include<conio.h>#define MAX 100main(){int N,i,j,aux,Per[MAX];for(i=0;i<MAX;i++) Per[i]=0;

do{ printf("\nIngrese cantidad de personas : "); scanf("%d",&N); }while(!(N>0&&N<=MAX));

for(i=0;i<N;i++) { printf("\nIngrese peso %d : ",i+1); scanf("%d",&Per[i]); }

for(i=1;i<N;i++){

j=i;aux=Per[i];while(j>0 && aux<Per[j-1]){Per[j]=Per[j-1];j--;}Per[j]=aux;

}printf("\nEn forma ascendente : ");for(i=0;i<N;i++){

printf("\n%d",Per[i]);}

for(i=1;i<N;i++){

j=i;aux=Per[i];while(j>0 && aux>Per[j-1]){Per[j]=Per[j-1];j--;}Per[j]=aux;

}

for(i=1;i<N;i++){

j=i;aux=Per[i];

Page 13: COMP II Vectores y Matrices

while(j<0 && aux>Per[j-1]){Per[j]=Per[j-1];j--;}Per[j]=aux;

}printf("\nEn forma descendente : ");for(i=0;i<N;i++){

printf("\n%d",Per[i]);}

for(i=1;i<N;i++){

j=i;aux=Per[i];while(j<0 && aux<Per[j-1]){Per[j]=Per[j-1];j--;}Per[j]=aux;

}getch();}

10. Implemente un programa que realice la resta de 2 matrices A y B, almacenar el resultado en una matriz C y mostrar también cuál es su elemento mayor.

#include <stdio.h>#include <conio.h>#define MAX 50

void main(){int A[MAX][MAX],B[MAX][MAX],RESTA[MAX][MAX],F,C,mayor=0,i,j;//inicializamos el arrayfor (i=0;i<MAX;i++){

for(j=0;j<MAX;j++){A[i][j]=0;B[i][j]=0;RESTA[i][j]=0;}}

//INGRESAMOS CANTINDAD DE FILAS

Page 14: COMP II Vectores y Matrices

do{printf("\ningresamos la cantidad de filas: ");scanf("%d",&F);

}while(!(F>0&&F<=MAX));

//INGRESAR LA CANTIDAD DE COLUMNASdo{printf("\ningresamos la cantidad de columnas: ");scanf("%d",&C);

}while(!(C>0&&C<=MAX));

//INGRESAMOS LOS ELEMENTOS DE LA MATRIZ A

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

for(j=0;j<C;j++){printf("\ningrese valor de la matriz A[%d,%d]:

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

}}

//INGRESAMOS LOS ELEMENTOS DE LA MATRIZ B

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

for(j=0;j<C;j++){printf("\ningrese valor de la matriz B[%d,%d]: ",i,j);scanf("%d",&B[i][j]);}

}//RESTAMOS LAS MATRICESfor (i=0;i<F;i++){for(j=0;j<C;j++){

RESTA[i][j]= A[i][j]- B[i][j];}}

//MOSTAMOS LAS MATRICES ORIGINALESprintf("\nla matriz A: \n");for(i=0;i<F;i++){for(j=0;j<C;j++){ printf("\t%d",A[i][j]);

}

Page 15: COMP II Vectores y Matrices

printf("\n");}

printf("\nla matriz B: \n");

for(i=0;i<F;i++){for(j=0;j<C;j++){ printf("\t%d",B[i][j]);

}printf("\n");}

//ENCONTRAMOS LA RESTA DE A-Bprintf("\nla resta de la matriz es:\n ");for (i=0;i<F;i++){for(j=0;j<C;j++){

printf("\t%d",RESTA[i][j]); } printf("\n"); }

//ECONTRAMOS EL ELEMENTO MAYORfor(i=0;i<F;i++){for(j=0;j<C;j++){

if(RESTA[i][j]>mayor) mayor=RESTA[i][j]; } }printf("el elemento mayor es: %d",mayor);getch();}11. Elabore un programa que dada una matriz N x N de datos reales diferentes de cero, encuentre la suma de PDP y PDS

Donde:

PDP = Producto de la diagonal principal

PDS = Producto de la diagonal secundaria

#include <conio.h>#include <stdio.h>#define MAX 100void main (){int i,j,sumaprin=0,sumasec=0,F,C,M[MAX][MAX];printf("\ningrese numero de filas:");scanf("%d",&F);printf("\ningrese numero de columnas:");scanf("%d",&C);

Page 16: COMP II Vectores y Matrices

//inicializamos el arrayfor (i=0;i<F;i++){for(j=0;j<C;j++) {

M[i][j]=0;}}

//pedimos los valores de la matrizfor(i=0;i<F;i++){for(j=0;j<C;j++){

printf("\ningrese valor matriz [%d,%d]: ",i,j); scanf("%d",&M[i][j]);

}}

//encotramos la suma sus diagonalesfor(i=0;i<F;i++){for(j=0;j<C;j++){

if(i==j) {sumaprin=sumaprin+M[i][j];} if(i==(F-1)-j){sumasec=sumasec+M[i][j];}

} }

//mostramos la matrizfor(i=0;i<F;i++){for(j=0;j<C;j++){ printf("\t%d",M[i][j]);

}printf("\n");}//mostramos la suma de sus diagonalesprintf("\n La suma diagonal pincipal: %d",sumaprin);printf("\n La suma diagonal secuandaria: %d",sumasec);getch();}12. Elabore un programa que permita hallar el producto de los números que se encuentran por encima de la diagonal principal de una matriz N x N. Sumar dicho producto, a la sumatoria de los elementos que se encuentran por debajo de dicha diagonal.

#include <conio.h>

#include <stdio.h>

#define MAX 100

void main (){

int i,j,sumaabajo=0,producto=1,sumafinal,F,C,M[MAX][MAX];

printf("\ningrese numero de filas:");

scanf("%d",&F);

Page 17: COMP II Vectores y Matrices

printf("\ningrese numero de columnas:");

scanf("%d",&C);

//inicializamos el array

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

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

M[i][j]=0;

}

}

//pedimos los valores de la matriz

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

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

printf("\ningrese valor de la matriz [%d,%d]: ",i,j);

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

}

}

//encotramos la suma y producto

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

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

if(i<j){producto=producto*M[i][j];}

if(i>j){sumaabajo=sumaabajo+M[i][j];}

}

}

//mostramos la matriz

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

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

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

Page 18: COMP II Vectores y Matrices

}

printf("\n");

}

//hallamos la suma final

sumafinal=producto+sumaabajo;

//mostramos la suma de sus diagonales

printf("\nEl producto sobre la diagonal principal es : %d",producto);

printf("\nLa suma debajo la diagonal principal es : %d",sumaabajo);

printf("\nla suma final es : %d",sumafinal);

getch();

}

13. Implementar una aplicación, que permita ingresar números enteros en una matriz 3 x 3 y luego que muestre su matriz transpuesta.

#include <conio.h>

#include <stdio.h>

void main (){

int i,j,M[3][3];

//inicializamos el array

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

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

M[i][j]=0;

}

}

Page 19: COMP II Vectores y Matrices

//pedimos los valores de la matriz

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

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

printf("\ningrese valor matriz [%d,%d]: ",i,j);

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

}

}

//encontramos la matriz tranpuesta

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

printf("\n");

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

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

}

}

getch();

}

14. Elabore un programa que dada una matriz M x N de números enteros positivos, realice lo siguiente: a) Ordenar en forma ascendente cada fila b) Ordenar en forma descendente cada columna Se debe mostrar: La matriz inicial La matriz después de ordenar las filas La matriz después de ordenar las columnas

#include<stdio.h>#include<conio.h>

#define maxfil 30#define maxcol 50

main(){

Page 20: COMP II Vectores y Matrices

int A[maxfil][maxcol], F, C, i, j;for(i=0;i<maxfil; i++){

for(j=0;j<maxcol;j++){A[i][j]=0;

}}

do{printf("\nIngrese la cantidad de filas: ");scanf("%d", &F);

}while(!(F>0 && F<=maxfil));

do{printf("\nIngrese la cantidad de columnas: ");scanf("%d", &C);

}while(!(C>0 && C<=maxcol));

printf("\nIngrese los elementos de la matriz A:\n");for(i=0;i<F;i++){

for(j=0;j<C;j++){scanf("%d", &A[i][j]);

}}

printf("\nLa matriz ingresada es: \n"); for(i=0;i<F;i++){ for(j=0;j<C;j++){

printf("\t%d", A[i][j]); }printf("\n");

}

//Ordenamos la matriz por filas ascendenetemente - Método de la burbuja int aux, k; for(k=0;k<F;k++){ for(i=0;i<C-1;i++){ for(j=i+1;j<C;j++){ if(A[k][i]>A[k][j]){ aux=A[k][i]; A[k][i]=A[k][j]; A[k][j]=aux; } } } }

//Mostramos la matriz ordenada por filas ascendentemente printf("\nMatriz ordenada por filas ascendentemente: \n");

Page 21: COMP II Vectores y Matrices

for(i=0;i<F;i++){ for(j=0;j<C;j++){

printf("\t%d", A[i][j]); }printf("\n");

}

//Ordenamos la matriz por columnnas descendentemente - Método de la burbuja for(k=0;k<C;k++){ for(i=0;i<F-1;i++){ for(j=i+1;j<F;j++){ if(A[i][k]<A[j][k]){ aux=A[i][k]; A[i][k]=A[j][k]; A[j][k]=aux; } } } }

//Mostramos la matriz ordenada por columnas descendentemente printf("\nMatriz ordenada por columnas descendentemente: \n"); for(i=0;i<F;i++){ for(j=0;j<C;j++){

printf("\t%d", A[i][j]); }printf("\n");

}

getch(); }