Está en la página 1de 6

ESTRUCTURA DE DATOS

viernes, 11 de septiembre de 2009


Ejercicios con array bidimencionales
Ejercicios con array bidimensionales
1) El dueño de una cadena de tiendas de articulo deportivos desea controlar sus
ventas por medio de una computadora son:
a) El número de tiendas(1 a 50)
b) Un numero que indica el departamento del articulo (1 a 20)
c) El costo del artículo.
Hacer un pseudocódigo que escriba al final del día lo siguiente:
1) Las ventas totales en el día para cada tienda
2) Las ventas totales para cada uno de los deportes
3) Las ventas totales de todas las tiendas.
Solución

{
class MainClass
{
public static void Main(string[] args)
{
int[,] tiendas=new int[3,50];
int [,] prod=new int[3,20];
int [] ventadepor=new int[20];
int x=1,y=1,y1=1;
int posx,posy,s=0;
Random obj=new Random();
Random obj1=new Random();

//Llena los productos por deporte


for(int f=0;f<3;f++){
for(int c=0;c<20;c++){
prod[f,c]=obj.Next(1,10);
}
}

//mostar los productos por deporte


for(int c=0;c<20;c++){
if (((c%10)==0)&&(c>0)){y+=6; x=1;}
Console.SetCursorPosition(x,y);Console.Write("D{0}",c);
for(int f=0;f<3;f++){
Console.SetCursorPosition(x,y+y1);Console.Write(prod[f,c]);
y1=y1+1;
}
x=x+5;
y1=1;
}

//Ventas de loos productos en la tienda


for(int f=0;f<3;f++){
for(int c=0;c<50;c++){
posy=obj.Next(0,20);//selleciona el deporte
posx=obj1.Next(0,3);
tiendas[f,c]=prod[posx,posy];
ventadepor[posy]=ventadepor[posy]+prod[posx,posy];
}
}
Console.ReadKey();
Console.Clear();
x=1;y=1;y1=1;
// mostrar los productos por de las tiendas
for(int c=0;c<50;c++){
if (((c%10)==0)&&(c>0)){y+=6; x=1;}
Console.SetCursorPosition(x,y);Console.Write("T{0}",c);
for(int f=0;f<3;f++){
Console.SetCursorPosition(x,y+y1);Console.Write(tiendas[f,c]);
y1=y1+1;
}
x=x+5;
y1=1;
}
Console.ReadKey();
Console.Clear();
x=1;y=1;y1=1;
//ventas por cada tienda
for(int c=0;c<50;c++){
if (((c%10)==0)&&(c>0)){y+=3; x=1;}
Console.SetCursorPosition(x,y);Console.Write("To{0}",c);
for(int f=0;f<3;f++){
s=s+tiendas[f,c];
}
Console.SetCursorPosition(x,y+1);Console.Write("{0}",s);
x=x+5;
s=0;

Console.ReadKey();
Console.Clear();
x=1;y=1;
//ventas por los productos por deporte
for(int c=0;c<20;c++){
if (((c%10)==0)&&(c>0)){y+=3; x=1;}
Console.SetCursorPosition(x,y);Console.Write("D{0}",c);
Console.SetCursorPosition(x,y+1);Console.Write(ventadepor[c]);
x=x+5;
}
Console.ReadKey();
Console.Clear();
s=0;
for(int c=0;c<50;c++){
for(int f=0;f<3;f++){
s=s+tiendas[f,c];
}
}
Console.WriteLine("El total de todas las tiendas es:{0}",s);
Console.ReadKey();
}
}
}
2) El departamento de la policía de la ciudad de tuxtepec ha acumulado información
referente a las infracciones de los límites de velocidad durante un determinado
período de tiempo.
El departamento a dividido la ciudad en 4 cuadrantes y desea realizar una
estadísticas de las infracciones a los limites de velocidad en cada uno de ellos.
Para cada infracción se ha preparado una tarjeta que contiene la siguiente
información:
1) Numero de registro de vehículo.
2) cuadrante en el que se produjo la infracción.
3) Limites de velocidad en milla por hora

Diseñe un diagrama para producir 2 informes; el 1ero. Que tiene una lista de la
multa de velocidad recolectada.

SOLUCIÓN

{
class MainClass
{

public static void Main(string[] args)


{
double [,]tarje=new double[10,5];
int ca1=80,ca2=50,ca3=70,ca4=90;//limites de velocidad por cuadrante
char op;
double d=0,sc1=0,sc2=0,sc3=0,sc4=0;
int cont1=0,cont2=0,cont3=0,cont4=0;
int f=0,c=0,cuadrant,col=0;
do{
Console.Clear();
Console.Write("Ingrese el Registro del Vehiculo: ");
tarje[f,c]=float.Parse(Console.ReadLine());
Console.Write("Ingrese el Numero del cuadrante: ");
cuadrant=int.Parse(Console.ReadLine());
tarje[f,c+1]=cuadrant;
Console.Write("Ingrese la Velocidad: ");
tarje[f,c+2]=float.Parse(Console.ReadLine());
switch(cuadrant){
case 1:
if (tarje[f,c+2]>ca1){
d=tarje[f,c+2]-ca1;
tarje[f,c+3]=(20.000+1.250)*d;
tarje[f,c+4]=ca1;
}
break;
case 2:
if (tarje[f,c+2]>ca2){
d=tarje[f,c+2]-ca2;
tarje[f,c+3]=(20.000+1.250)*d;
tarje[f,c+4]=ca2;
}
break;
case 3:
if (tarje[f,c+2]>ca3){
d=tarje[f,c+2]-ca3;
tarje[f,c+3]=(20.000+1.250)*d;
tarje[f,c+4]=ca3;
}
break;
case 4:
if (tarje[f,c+2]>ca4){
d=tarje[f,c+2]-ca4;
tarje[f,c+3]=(20.000+1.250)*d;
tarje[f,c+4]=ca4;
}
break;
default:
break;

}//wwitch

do{
Console.Write("desea seguiringresando[s/n]:");
op=char.Parse(Console.ReadLine());
}while((op!='s')&&(op!='n'));
if(op=='s'){f++;}
}while((op!='n')&&(f<10));

//mostrar

Console.Clear();
Console.WriteLine("Registro Vehi Velocidad Registra Velocidad al Limte
Multasrealizad");
for(int fil=0;fil<=f;fil++){
Console.WriteLine("{0} {1} {2}
{3}",tarje[fil,col],tarje[fil,col+2],tarje[fil,col+4],tarje[fil,col+3]);
}
Console.ReadKey();

Console.Clear();
//cuadrante 1
col=0;
for(int fil=0;fil<=f;fil++){
if(tarje[fil,col+1]==1){
cont1++;
sc1=sc1+tarje[fil,col+3];
}
if(tarje[fil,col+1]==2){
cont2++;
sc2=sc2+tarje[fil,col+3];
}
if(tarje[fil,col+1]==3){
cont3++;
sc3=sc3+tarje[fil,col+3];
}
if(tarje[fil,col+1]==4){
cont4++;
sc4=sc4+tarje[fil,col+3];

}
}
sc1=sc1/cont1;
sc2=sc2/cont2;
sc3=sc3/cont3;
sc4=sc4/cont4;
Console.WriteLine("Num de infraccion del cuadrant 1 : {0} prom de multa
{1}",cont1,sc1);
Console.WriteLine("Num de infraccion del cuadrant 2 : {0} prom de multa
{1}",cont2,sc2);
Console.WriteLine("Num de infraccion del cuadrant 3 : {0} prom de multa
{1}",cont3,sc3);
Console.WriteLine("Num de infraccion del cuadrant 4 : {0} prom de multa
{1}",cont4,sc4);
Console.ReadKey();

}
}
}
3) Obtener la información sobre las calificaciones de las materias de Lenguajes
Algorítmicos. Diseñe un pseudocódigo que imprima:
a) Cantidad de alumnos que aprobaron la materia.
b) Cantidad de alumnos que tiene derecho a nivelación.
c) El(o los) números(s)de control de los(s)que haya(n)obtiene la máxima
calificación final.
Solución
{
class MainClass
{
public static void Main(string[] args)
{

int [,] alumnos= new int[50,5];


int fi=0,co=0;
int col=0,cont=0;
char op;
do{
Console.Clear();
Console.Write("Ingresar el Control de los Alumnos....: ");
alumnos[fi,co]=int.Parse(Console.ReadLine());

Console.Write("Ingresar la Nota1: ");


alumnos[fi,co+1]=int.Parse(Console.ReadLine());

Console.Write("Ingresar la Nota2: ");


alumnos[fi,co+2]=int.Parse(Console.ReadLine());

Console.Write("Ingresar la Nota3: ");


alumnos[fi,co+3]=int.Parse(Console.ReadLine());
//promedio
alumnos[fi,co+4]= (alumnos[fi,co+1]+ alumnos[fi,co+2]+ alumnos[fi,co+3]);

do{
Console.Write("Quiere seguir ingresando[s/n]:");
op=char.Parse(Console.ReadLine());
}while((op!='s')&&(op!='n'));
if(op=='s'){fi++;}
}while((op!='n')&&(fi<50));

Console.Clear();
//Cuenta cantidad de alumnos para nivelacion
col=4;
for(int fil=0;fil<=fi;fil++){
if((alumnos[fil,col]>25)&&(alumnos[fil,col]<40)){
cont++;
}
}
Console.WriteLine("Los alumnos a nivelacion son: {0}",cont);
Console.ReadKey();

Console.Clear();
col=4;
//Muestra el control alumnos con mayor calificacion
for(int fil=0;fil<=fi;fil++){
if((alumnos[fil,col]==60)){
Console.WriteLine("Control de los alumno...: {0}",alumnos[fil,0]);
}
}

Console.ReadKey();
}
}
}
Publicado por Carlos Contreras en 16:47
No hay comentarios:
Publicar un comentario

Entrada antiguaInicio
Suscribirse a: Enviar comentarios (Atom)
Ciudad de burgos
Ciudad de burgos
talento
Seguidores

Archivo del blog


▼ 2009 (2)
▼ septiembre (2)
Ejercicios con array bidimencionales
Ejercicios con métodos en c#
Datos personales
CARLOS CONTRERAS
Ver todo mi perfil

También podría gustarte