PROBLEMAS  RESUELTOS  DE ARREGLOS

 

 

Ing. Gladys García V.

 

PROBLEMA NRO 1

/* ENUNCIADO :  Hacer un programa que calcule la nota de un alumno en una prueba 10 preguntas de opciones múltiples ('a',...o,'e'). Cada pregunta se evalúa con dos puntos.  Debe inicializa un arreglo con las respuestas correctas.

El programa debe mostrar el nombre, el arreglo de respuestas correctas y el arreglo de respuestas del alumno y la nota del alumno.  

*/

// LIBRERIAS

#include<iostream.h>       // cin y cout

#include<iomanip.h>        // setw()

#include<conio.h>             // getch() o getche()

#include<stdlib.h>             // toupper y tolower

#include<stdio.h>              // gets()

void  main()

{           // Inicializa el array

            char RptaOK[] = {'A','C','E','D','B','C','D','E','B','C'};

            char ARpta[10];

            char nombre[20];

            int i, nota;

            cout<<"Ingrese nombre del alumno : "<<endl;gets(nombre);

            cout<<"Ingrese el array de respuestas: "<<endl;

                // Lee  array  ARpta

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

            {           cin>>ARpta[i];

                        // convierte a mayusculas elementos de ARpta

                        ARpta[i] = toupper(ARpta[i]);

            }

            // calcula la nota del alumno  

            nota = 0;

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

            {      if (ARpta[i] == RptaOK[i])

                        { nota = nota + 2; }

            }

            // muestra el nombre del alumno

            cout<<"Alumno : "<<nombre<<endl;

            // muestra los dos arreglos respuestas

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

            {    cout<<setw(10)<<RptaOK[i]<<setw(10)<<ARpta[i]<<endl; }

            cout<<endl;

            cout<<"nota =  "<<nota<<endl;

            getch();

}  

 

PROBLEMA  NRO 2

/*

ENUNCIADO : Hacer un programa que obtenga el maximo numero de canastas convertido por el equipo de basket en los N partidos que jugo en el campeonato

sudamericano. Defina N como constante al inicio del programa.  */

// PROGRAMA C++

// LIBRERIAS

#include<iostream.h>

#include<iomanip.h>

#include<stdlib.h>

#include<stdio.h>

#include<conio.h>

const int N = 5;

void main()

{           // se declara array de tamaño N

            int Canastas[N],i,Max;

            // Lectura del array  A

            cout<<"Ingrese los elementos del array Canastas"<<endl;

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

            {           cin>>Canastas[i];  }

            // Obtener EL MAXIMO VALOR

            Max = Canastas[0];

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

            {           if (Canastas[i]>Max)

                        {  Max = Canastas[i]; }

            }

            // MUESTRA EL VALOR MAXIMO Y A QUE INDICE CORRESPONDE

            cout<<"Max = "<<Max<<endl;

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

            {           if (Canastas[i]==Max)

                        {  cout<<" i = "<<setw(5)<<i; } 

            }

            cout<<endl;

            getch();

}

 

   

 

PROBLEMA  NRO 3

/*

ENUNCIADO : Hacer un programa que obtenga la Mínima talla de un grupo de N atletas.  Defina N como constante al inicio del programa.   */

// LIBRERIAS

#include<iostream.h>

#include<iomanip.h>

#include<stdlib.h>

#include<stdio.h>

#include<conio.h>

const int N = 5;

void main()

{          

                // se declara array de tamaño N

            double Talla[N],Min;

            int i;

            // Lectura del array  A

            cout<<"Ingrese los elementos del array Talla"<<endl;

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

            {           cin>>Talla[i];  }

            // Obtener EL MINIMO VALOR

            Min = Talla[0];

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

            {           if (Talla[i] < Min)

                        {  Min = Talla[i]; }

            }

            // MUESTRA EL VALOR MINIMO Y A QUE INDICE CORRESPONDE

            cout<<"Min = "<<Min<<endl;

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

            {           if (Talla[i]==Min)

                        {  cout<<" i = "<<setw(5)<<i; } 

            }

            cout<<endl;

            getch();

}  

 

 

 

PROBLEMA NRO 4:

/*ENUNCIADO : Hacer un programa que permita ordenar alfabeticamente una lista

de nombres de tamaño N considerado constante. El tamaño maximo de las cadenas considerela 20. */

 

// LIBRERIAS C++

#include <iostream.h>   // cin y cout

#include <iomanip.h>    // setw()

#include <conio.h>        // getch()

#include <stdio.h>         // gets()

#include <string.h>        // strcmp() y strcpy()

 

const int N = 4, TC = 20;

void main()

{

            char nom[N][TC],auxN[TC];

            int i,j,k,v;

                // LEE EL ARRAY DE NOMBRES           

            cout<<"Ingrese los nombres : "<<endl;

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

            { gets(nom[i]);}

                // ORDENA EN ORDEN ALFABETICO

            for(k=0;k<N-1;k++)               // numero de pasos

            {

for(j=0;j<N-1-k;j++)   // numero de conbinaciones

                        {  

                                   // pregunta si nom[j] es mayor que num[j+1]

                                   if (strcmp(nom[j],nom[j+1]) > 0) 

                                   {          

                                          strcpy(auxN,nom[j]);  // a auxN le asigna nom[j]

                                          strcpy(nom[j],nom[j+1]);       // a nom[j] le asigna nom[j+1]

                                          strcpy(nom[j+1],auxN);         // a nom[j+1] le asigna auxN

                                   }

                        }

            }

            cout<<endl;

            // MUESTRA EL ARRAY EN ORDEN ALFABETICO

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

            {  cout<<setw(15)<<nom[i]<<endl; }  

            cout<<endl;getch();

}  

 

 

PROBLEMA NRO 5

/* ENUNCIADO : Hacer un programa que ordene las notas de N alumnos en orden

decreciente, mostrando el reporte:

Nombre           Nota

xxxx                 99

xxxx                 99

-----                 ----

Promedio        99        */

// Librerias c++

#include<iostream.h>

#include<conio.h>

#include<iomanip.h>

#include<stdio.h>

#include<string.h>

const int N = 5, TC = 20;

void main()

{    double nota[N],auxNt, SNota, PromN;

      char nom[N][TC],auxN[TC];

      int i,j,k;

      // lectura de loa arrays nom y nota

      SNota = 0;

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

      {     cout<<"nombre: "<<endl;gets(nom[i]);

            cout<<"nota  : ";cin>>nota[i];

            SNota = SNota + nota[i];

      }

      PromN = SNota/N;

        // ordenamiento de notas de mayor a menor

      for(k=0;k<N-1;k++)  // nro de pasos

      {     for(j=0;j<N-1-k;j++)   // nro de comparaciones

            {     // compara las notas

                  if  (nota[j]<nota[j+1])

                  {    // intercambio de notas

                        auxNt = nota[j];

                        nota[j] = nota[j+1];

                        nota[j+1] = auxNt;

                        // intercambio de nombres

                        strcpy (auxN , nom[ j ]);

                        strcpy (nom[ j ], nom[ j+1]);

                        strcpy (nom[ j + 1], auxN);

                  }

            }

      }

        // muestra los arrays paralelos ordenados

      cout<<setw(20)<<"nombre"<<setw(20)<<"nota"<<endl;

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

      {     cout<<setw(20)<<nom[i]<<setw(20)<<nota[i]<<endl;         }

      cout<<setw(40)<<"-----"<<endl; cout<<setw(40)<<PromN<<endl; getch();

}

 

 

PROBLEMA NRO 6

/* ENUNCIADO : Hacer un programa que ordene los nombres de N alumnos en sentido inverso al alfabético. Debe mostrar este reporte:

Nombre                      Nota

xxxxxx             99

xxxxxx             99

                                   ----

Promedio        99

*/

// Librerias C++

#include<iostream.h>

#include<conio.h>

#include<iomanip.h>

#include<stdlib.h>

#include<stdio.h>

#include<string.h>

const int N = 5, TC = 20;

void main()

{   double nota[N], auxNt;     // auxiliar de nota

    char nom[N][TC], auxN[TC]; // auxiliar de nombre

    int rpta,i,j,k,v;

    // lectura de loa arrays nom y nota

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

    {   cout<<"nombre: "<<endl;gets(nom[i]);

        cout<<"nota : ";cin>>nota[i];

    }

    // ordenamiento de notas de mayor a menor

    for (k=0;k< N-1;k++)         // nro de pasos

    {

        for (j=0;j<N-1-k;j++)      // nro de comparac.

        {   if (strcmp(nom[j],nom[j+1])<0)

            {   // intercambio de notas

                auxNt = nota[j];

                nota[j] = nota[j+1];

                nota[j+1] = auxNt;

                // intercambio de nombres

                strcpy(auxN , nom[j]);

                strcpy(nom[j], nom[j+1]);

                strcpy(nom[j+1], auxN);

            }

        }

    }

    // muestra los arrays paralelos ordenados

    cout<<setw(25)<<"nombre"<<setw(25)<<"nota"<<endl;

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

    { cout<<setw(25)<<nom[i]<<setw(25)<<nota[i]<<endl; }

    getch();

}  

 

PROBLEMA NRO 7

/* ENUNCIADO : Hacer un programa que calcule el valor numérico de un polinomio de grado N cuyos coeficientes , grado y valor de x son ingresados con teclado.  Considere un grado máximo de 99

**/

#include<iostream.h>

#include<conio.h>

#include<math.h>

const int N = 100;

void main()

{

      int G,i;

      double Poli[100], X, VN;

      cout<<"Ingrese el grado del polinomio : ";cin>>G;

      cout<<"Ingrese el valor de X = ";cin>>X;

        // Lectura DE los coeficientes del polinomio

      cout<<"Ingrese los coeficientes del polinomio: "<<endl;

      for(i=0;i<G+1;i=i+1)

      {

      cout<<"Poli[ "<<i<<"] = ";cin>>Poli[i];

      }

     

      // calculo del valor numerico:

      VN = 0;

      for(i=0;i<G+1;i=i+1)

      {

            VN = VN + Poli[i] * pow(X,i) ;

      }

 

      cout<<"Valor numerico = "<<VN<<endl;

      getch();

}            

     

PROBLEMA NRO 8

/* ENUNCIADO : Hacer un programa que calcule los costos de producción de n productos ingresados por teclado, si se conocen los costos unitarios y las unidades producidas de cada uno de los productos

*/

#include<iostream.h>

#include<conio.h>

#include<iomanip.h>

const int N = 15;

void main()

{

      double CosUni[N], costo[N],CosTot;

      int UnidProd[N],n,i;

      cout<<"Ingrese el tamaño de los arrays ";cin>>n;

        // LEER LOS ARRAYS CosUni y UnidProd

      cout<<"Ingrese elementos de CosuUni y UnidProd : "<<endl;

      for(i=0;i<n;i=i+1)

      {     cin>>CosUni[i];

            cin>>UnidProd[i];    

      }

        // Calculo del array Costo :

      for(i=0;i<n;i=i+1)

      {     costo[i]= CosUni[i]*UnidProd[i]; }

      // Calculo del costo total CosTot

      CosTot =0;

      for(i=0;i<n;i=i+1)

      {     CosTot = CosTot + costo[i]; }

      // mostrar el reporte

      for(i=0;i<n;i=i+1)

      {  cout<<setw(10)<<CosUni[i]<<setw(10)<<UnidProd[i]<<setw(10)<<costo[i]<<endl; }

      cout<<setw(30)<<CosTot<<endl;

      getch();

}

 

 

   

PROBLEMA NRO 9 :

/* ENUNCIADO : Una librería que comercializa 5 productos diversos, maneja los siguientes arrays:

- cosUni    que guarda el Precio costo de cada producto

- preUni    que guarda el Precio venta de cada producto

- UnidVend  que guarda las unidades vendidas en un mes

Hacer un programa que permita calcular:

   el monto de dinero invertido,

   el monto de la venta, la ganancia en cada producto y

   la ganancia total 

Debe mostrar este reporte:

Venta               Costo               Ganancia

999.99              999.99              999.99

999.99              999.99              999.99

.....                   .....                   ......

999.99              999.99              999.99

------                  ------                  ------

999.99              999.99              999.99   */

// Librerias C++

#include <iostream.h>

#include <iomanip.h>

#include <conio.h>

const int N = 5;

void main()

{    double cosUni[N], preUni[N], UnidVend[N], Costo[N],Venta[N],Gan[N],GT;

      int i,j;

        // Lectura de los arrays cosUni, preUni, UnidVend

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

      {     cout<<"cosUni["<<i<<"] = ";cin>>cosUni[i];

            cout<<"preUni["<<i<<"] = ";cin>>preUni[i];

            cout<<"UnidVend["<<i<<"] = ";

            cin>>UnidVend[i];

      }

      GT=0.0;    // inicializa la ganancia total en 0

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

      {     // Genera los arrays MonInver, Venta

            Costo[i] = cosUni[i] * UnidVend[i];

            Venta[i] = preUni[i] * UnidVend[i];

                // Genera el array Gan

            Gan[i] = Venta[i] - Costo[i];

            GT = GT + Gan[i];     // Acumula la ganancia total

      }

        // Muestra Reporte: 

      cout<<"El REPORTE ES EL SIGUIENTE :"<<endl;

      cout<<setw(10)<<"Costo"<<setw(10)<<"Venta"<<setw(10)<<"Ganancia"<<endl;

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

      {     cout<<setw(10)<<Costo[i]<<setw(10)<<Venta[i]<<setw(10)<<Gan[i]<<endl; }

      cout<<setw(30)<<GT<<endl;

      getch();

}