martes, 31 de mayo de 2011

Ordenamiento de Vectores (Diferente al Borbuja)



 /*Realizar un programa que permita ingresar datos a dos arreglos llamados EMPLEADOS y SALARIOS.
Suponer que la empresa tiene E empleados.
Ordenar los arreglos en orden descendente del mayor al menor salario.
Calcular el porcentaje de empleados que ganan mas del promedio de sueldos.
Calcular el porcentaje de empleados que ganan menos o igual al del promedio de sueldos.
Imprimir: Arreglos Ordenados, calculos realizados
*/
#include<iostream>
#include<iomanip>
#include<conio.h>
#include<string.h>
using namespace System;
using namespace std;
void main()
{
      int E;
      cout<<"\n Digite el numero de empleados de la empresa: (m\xA0ximo 15) ";
      cin>>E;

      char EMPLEADOS[15][30];
      float SALARIOS[15];

      int y=0;
      while(y<=E-1)
      {
            cout<<"\n Digite el nombre para el empleado "<<y+1<<"\n";
            cin.ignore();//evita el retorno de carro
            cin.getline(EMPLEADOS[y],30);

            cout<<"\n Digite el salario de "<<EMPLEADOS[y]<<"\n";
            cin>>SALARIOS[y];
            y++;
      }

      //ORDENAMIENTO DEL VECTOR

      for(int A=0; A<=E-2; A++)//Indice para los datos que se comparan contra los demás datos
      {
            for(int B=A+1; B<=E-1; B++)//Indice para los datos contra los que se compara
            {
                  if(SALARIOS[A]<SALARIOS[B])
                  {
                        float TEMPORAL=SALARIOS[B];
                        SALARIOS[B]=SALARIOS[A];
                        SALARIOS[A]=TEMPORAL;
                       
                        char TEMP[15];
                        strcpy(TEMP, EMPLEADOS[B]);
                        strcpy(EMPLEADOS[B], EMPLEADOS[A]);
                        strcpy(EMPLEADOS[A], TEMP);
                  }
            }

      }
      for(int g=0; g<=E-1; g++)
      {
            cout<<"\n\t"<<EMPLEADOS[g]<<" gana $ "<<SALARIOS[g];
      }
      getch();


}



Otro ejemplo de arreglo!


/* Realizar un programa que permita crear un vector llamado DATOS, de K
posiciones.
Se pide:
1. Ingresar datos al arreglo DATOS.
2. Calcular e imprimir la suma de los datos pares del arreglo DATOS.
3. Calcular el promedio de los datos que estan en POSICIONES PARES (para
un usuario) del arreglo DATOS.
4. Hallar el mayor y el menor dato del arreglo DATOS.
5. Imprimir todos los calculos y hallazgos.
*/
#include<iostream>
#include<iomanip>
#include<conio.h>
using namespace System;
using namespace std;
#define NP 18
void main ()

{
Console::Title::set("Diego Alberto Rodriguez Mora");//titulo
Console::BackgroundColor::set(ConsoleColor::White);//fondo blanco
Console::ForegroundColor::set(ConsoleColor::DarkMagenta);//Color de letra
Console::Clear();//borra tolo lo negro
int K;
cout<<"\n Cu\xA0ntos datos va a procesar? ";
cin>>K;

int DATOS[NP];
//************
//Cómo ingresarle datos a un arreglo con estructura WHILE?
int i=0;
while(i<=K-1)
{
cout<<"\nDATO ["<<i+1<<"] = ";
cin>>DATOS[i];
i++;
}
//Procesamiento de datos
float SUMPAR=0, SUMPPAR=0, CONPPAR=0;
int MAYDATO=DATOS[0], MENDATO=DATOS[0];
int INDICE=0;
do
{
//Sumar datos pares
if(DATOS[INDICE]%2==0)
{
SUMPAR+=DATOS[INDICE];
}
//Sumar datos en posiciones pares para el usuario
if(INDICE%2!=0)
{
SUMPPAR+=DATOS[INDICE];
CONPPAR++;
}
//Hallar mayor dato
if(DATOS[INDICE]>MAYDATO)
{
MAYDATO=DATOS[INDICE];
}
//Hallar el menor dato
if(DATOS[INDICE]<MENDATO)
{
MENDATO=DATOS[INDICE];
}
INDICE++;
}
while(INDICE<=K-1);
//*********************
Console::ForegroundColor::set(ConsoleColor::DarkGreen);
cout<<"\n\t La suma de los datos pares es: "<<SUMPAR;
cout<<"\n\t El promedio de datos que est\xA0n en las posiciones pares es: "<<SUMPPAR/CONPPAR;
cout<<"\n\t El mayor dato es: "<<MAYDATO;
cout<<"\n\t El menor dato es: "<<MENDATO;
cout<<"\n\n\t\tPulse una tecla para terminar";
getch();

}
 

No hay comentarios:

Publicar un comentario