Método Burbuja
1. Sea un vector de 10 celdas con números aleatorios. Ordenarlos de menor a mayor y mostrar el vector.
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
main()
{
short A[10],i,j,aux;
srand(time(0));
for(i=0;i<=9;i++)
{
A[i]=rand()%10+10;
cout<<A[i]<<" ";
}
//ordenando el vector
for(i=1;i<=9;i++)
{
for(j=0;j<=9-i;j++)
{
if(A[j]>A[j+1])
{
aux=A[j];
A[j]=A[j+1];
A[j+1]=aux;
}
}
}
//mostrando el vector modificado
cout<<endl<<"Vector modificado: "<<endl;
for(i=0;i<=9;i++)
{
cout<<A[i]<<" ";
}
system("pause");
return 0;
}
Arreglos II
1. Se tiene un arreglo bidimensional de 30 filas x 4 columnas, las filas representan a los alumnos y las columnas a notas; en las 2 primeras columnas se almacenan las notas de las 2 prácticas calificadas, en la 3° columna se almacena la nota del examen parcial y en la 4° columna la nota del examen final.
El promedio se calcula de la siguiente manera:
Prom=(30PromPracticas+35%NotaExamenParcial+35%NotaExamenFinal)/3
Calcular y mostrar:
- Cantidad de aprobados y desaprobados (la nota aprobatoria es 11)
- El Primer Puesto (pueden ser 2 o mas alumnos)
- La nota más baja.
#include <stdlib.h>
#include <time.h>
using namespace std;
main()
{
short A[30][4],f,c,pp,may,PP,PF,ca=0,cd=0,min,a;
srand(time(0));
for(f=0;f<=29;f++)
{
for(c=0;c<=3;c++)
{
A[f][c]=rand()%21;
cout<<A[f][c]<<" ";
}
cout<<endl;
}
//hallando el primer promedio
pp=(A[0][0]+A[0][1])/2;
may=(pp*0.3)+(A[0][2]*0.35)+(A[0][3]*0.35);
min=may;
//hallando cantidad de aprobados y desaprobados
for(f=0;f<=29;f++)
{
PP=(A[f][0]+A[f][1])/2;
PF=(PP*0.3)+(A[f][2]*0.35)+(A[f][3]*0.35);
cout<<"Promedio "<<f+1<<" : "<<PF<<endl;
if(PF>=11)ca++;
else cd++;
//hallando el primer puesto
if(PF>may){
may=PF;
a=f;
}
if(PF<min)min=PF;
}
cout<<"Cantidad de aprobados: "<<ca<<endl;
cout<<"Cantidad de desaprobados: "<<cd<<endl;
cout<<"El primer puesto es: "<<may<<" , se encuentra en la fila "<<a+1<<endl;
cout<<"La nota mas baja es: "<<min<<endl;
system("pause");
return 0;
}
2. Hacer un procedimiento que genere la matriz unidad de dimension N.
#include <iostream>
using namespace std;
main()
{
short n;
cout<<"Ingrese un numero: ";cin>>n;
short A[n][n],f,c;
for(f=0;f<=n-1;f++)
{
for(c=0;c<=n-1;c++)
{
if(f==c)
{
A[f][c]=1;
}
else
{
A[f][c]=0;
}
}
}
//mostarndo la matriz
for(f=0;f<=n-1;f++)
{
for(c=0;c<=n-1;c++)
{
cout<<A[f][c]<<" ";
}
cout<<endl;
}
system("pause");
return 0;
}
3. Realizar un procedimiento que: a) Recorra una matriz y cuente los elementos pares que hay en ella, deberá además cambiarlos por (-1). b) Escribir otro procedimiento que a partir de la matriz anterior genere un vector cuyos elementos indiquen cuantos (-1) hay en cada fila.
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
main()
{
short A[3][4],f,c,p=0,B[3];
srand(time(0));
for(f=0;f<=2;f++)
{
for(c=0;c<=3;c++)
{
A[f][c]=rand()%10+10;
cout<<A[f][c]<<" ";
}
cout<<endl;
}
cout<<endl;
//contando los elementos pares
for(f=0;f<=2;f++)
{
for(c=0;c<=3;c++)
{
if(A[f][c]%2==0)
{
A[f][c]=-1;
p++;
}
cout<<A[f][c]<<" ";
}
cout<<endl;
}
cout<<"Cantidad de elemento pares: "<<p<<endl;
//indicando cuantos -1 hay en cada fila
cout<<endl<<"Cantidad de -1 por fila."<<endl;
for(f=0;f<=2;f++)
{
p=0;
for(c=0;c<=3;c++)
{
if(A[f][c]==-1)p++;//los pares se han cambiado por -1
}
B[f]=p;
cout<<"Fila "<<f+1<<" : "<<B[f]<<endl;
}
system("pause");
return 0;
}
4. En un arreglo bidimensional que almacena la cantidad de computadoras vendidas por tres vendedores en cuatro Provincias Lima (Cañete, Huaura, Yauyos, Cajatambo, Barranca, Huaral,Oyon, Canta y Huarochirí). Se pide mostrar:
- La Provincia que más computadoras vendió.
- El vendedor que menos computadoras vendió.
- La cantidad de computadoras vendidas por todos los vendedores en todas las zonas.
#include <stdlib.h>
#include <time.h>
using namespace std;
main()
{
short A[3][4],f,c,sp=0,sv=0,sc=0,may=0,min=0,p,v;
srand(time(0));
for(f=0;f<=2;f++)
{
for(c=0;c<=3;c++)
{
A[f][c]=rand()%10+10;
cout<<A[f][c]<<" ";
sc=sc+A[f][c];
}
cout<<endl;
}
//hallando la primera Provincia
for(f=0;f<=2;f++)
{
may=may+A[f][0];
p=0;
}
//hallando el primer vendedor
for(c=0;c<=3;c++)
{
min=min+A[0][c];
v=0;
}
//hallando provincia que mas computadoras vendió
for(c=1;c<=3;c++)
{
sp=0;
for(f=0;f<=2;f++)
{
sp=sp+A[f][c];
}
if(sp>may)
{
may=sp;
p=c;
}
}
//vendedor que menos computadoras vendió
for(f=1;f<=2;f++)
{
sv=0;
for(c=0;c<=3;c++)
{
sv=sv+A[f][c];
}
if(sv<min)
{
min=sv;
v=f;
}
}
cout<<"La provincia que mas computadoras vendio: columna "<<p+1<<endl;
cout<<"El vendedor que menos computadoras vendio: fila "<<v+1<<endl;
cout<<"Cantidad de computadoras vendidas: "<<sc<<endl;
system("pause");
return 0;
}
5. Escriba un programa que ponga números aleatorios menores a 100 en un vector de dos dimensiones de 9 por 9. Imprima los valores en. Se pide:
- Calcular promedio de todos los números.
- Mostrar el valor máximo y mínimo.
- Intercambiar los valores de la diagonal principal por los valores de la diagonal secundaria.
- Mostrar la matriz modificada.
#include <stdlib.h>
#include <time.h>
using namespace std;
main()
{
short A[9][9],f,c,s=0,p,max,min,aux;
srand(time(0));
//Poniendo numeros aleatorios y hallando promedio
for(f=0;f<=8;f++)
{
for(c=0;c<=8;c++)
{
A[f][c]=rand()%100;
cout<<A[f][c]<<" ";
s=s+A[f][c];
}
cout<<endl;
}
p=s/81;
//asignando los primeros valores a maximo y minimo
max=A[0][0];
min=A[0][0];
//hallando valor maximo y minimo
for(f=0;f<=8;f++)
{
for(c=0;c<=8;c++)
{
if(A[f][c]>max)max=A[f][c];
if(A[f][c]<min)min=A[f][c];
}
}
//Intercambiando los valores de la diagonal
for(f=0;f<=8;f++)
{
for(c=0;c<=8;c++)
{
if(f==c)
{
aux=A[f][c];
A[f][c]=A[f][8-f];
A[f][8-f]=aux;
}
}
}
cout<<endl<<"Matriz modificada: "<<endl<<endl;
//mostrando la matriz modificada
for(f=0;f<=8;f++)
{
for(c=0;c<=8;c++)
{
cout<<A[f][c]<<" ";
}
cout<<endl;
}
cout<<endl<<"Promedio de todos los numeros: "<<p<<endl;
cout<<"El valor maximo y minimo es: "<<max<<", "<<min<<endl;
system("pause");
return 0;
}
Suscribirse a:
Entradas (Atom)