You are on page 1of 20

UNIVERSIDAD NACIONAL PEDRO RUIZ GALLO

FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS

ESCUELA PROFESIONAL DE INGENIERA


ELECTRNICA
CURSO:
COMPUTACIN II.
TEMA:
VECTORES Y MATRICES.
DOCENTE:
ING. W. GERARDO CARDOZA LLONTOP.

INTEGRANTES:

BUSTAMANTE ESPINOZA MANUEL JUNIOR.


CASTOPE VEGA CESAR AUGUSTO.
CORNETERO URPEQUE ARMANDO MARTN.
TORRES VASQUEZ MARC ANTHONY.
MEZA GUERRERO WISMAN ANTONY.

LAMBAYEQUE, JULIO DEL


2015

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


siguiente
a) sueldo promedio
b) mayor sueldo
c) menor sueldo
d) cantidad de sueldos menores al promedio
#include<stdio.h>
#include<conio.h>
#define MAX 50
main()
{
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;

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 nmeros pares
b)
Promedio de los nmeros impares
c)
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 nmero 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));

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)
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 nmeros que estn en A pero no estn B
#include<stdio.h>
#include<conio.h>
#define MAX 300
void 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++)
{
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 nmeros enteros positivos y los muestre
en pantalla. Luego, si hay nmeros repetidos, deben eliminarse y dejar slo uno de
cada nmero e imprimir la nueva lista.
#include<stdio.h>
#include<conio.h>
#define MAX 100
main()
{
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]);
}
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 eleccin 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
continuacin hasta llenar el vector.
Ejemplo de votacin:
1 , 5, 2, 5 , 1 , 3 , 1, 5 , 2 , 1 , 3 , 5 , 4, 4 , 5
Construya una aplicacin en C que pueda proporcionar la siguiente informacin.
El nmero de votos de cada candidato al final de la eleccin.
El candidato ganador.
El nmero de votos que obtuvo el candidato ganador.
El porcentaje de votos del candidato ganador correspondiente del total de la
eleccin.
#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");
}
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
printf ("\nLA OPCION NUMERO
printf ("\nLA OPCION NUMERO
printf ("\nLA OPCION NUMERO
printf ("\nLA OPCION NUMERO

1
2
3
4
5

OBTUVO
OBTUVO
OBTUVO
OBTUVO
OBTUVO

[%d]
[%d]
[%d]
[%d]
[%d]

VOTOS",C1);
VOTOS",C2);
VOTOS",C3);
VOTOS",C4);
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();
}

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 100
main()
{
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])
{
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 mtodo Shell


#include<stdio.h>
#include<conio.h>
#define MAX 100
main()
{
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)
{
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 mtodo Quicksort


#include<stdio.h>
#include<conio.h>
#define MAX 100
main()
{
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];
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 tambin cul 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 array
for (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


do{
printf("\ningresamos la cantidad de filas: ");
scanf("%d",&F);
}while(!(F>0&&F<=MAX));

//INGRESAR LA CANTIDAD DE COLUMNAS


do{
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 MATRICES
for (i=0;i<F;i++){
for(j=0;j<C;j++){
RESTA[i][j]= A[i][j]- B[i][j];
}
}
//MOSTAMOS LAS MATRICES ORIGINALES
printf("\nla matriz A: \n");
for(i=0;i<F;i++){
for(j=0;j<C;j++){
printf("\t%d",A[i][j]);
}
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-B


printf("\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 MAYOR
for(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 100
void 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);
//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 matriz [%d,%d]: ",i,j);
scanf("%d",&M[i][j]);
}
}
//encotramos la suma sus diagonales
for(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 matriz
for(i=0;i<F;i++){
for(j=0;j<C;j++){
printf("\t%d",M[i][j]);
}
printf("\n");

}
//mostramos la suma de sus diagonales
printf("\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 nmeros 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);
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]);

}
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 aplicacin, que permita ingresar nmeros 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;
}
}

//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 nmeros 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 despus de ordenar las filas
La matriz despus de ordenar las columnas
#include<stdio.h>
#include<conio.h>
#define maxfil 30
#define maxcol 50
main(){
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 - Mtodo 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");
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 - Mtodo 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(); }

You might also like