Author Topic: Ejemplo de "Vectores" en C++ [para los del ITCA]  (Read 22168 times)

0 Members and 1 Guest are viewing this topic.

Offline vlad

  • Global Moderator
  • The Communiter-
  • *
  • Posts: 6351
    • Qualium.net
Ejemplo de "Vectores" en C++ [para los del ITCA]
« on: March 28, 2008, 10:25:17 pm »
Un communiter me pidio cierta ayuda con unas cosas de C++, pero según me expreso que por pena no quizo hacer la pregunta en este sub-foro.

Quisiera dejarles el problema y el codigo correspondiente, no soy muy buen programador de C++ y me gustaria que dieran sus opiniones sobre el código para que de esta forma tanto la persona que me pregunto como yo sepamos un poquito mas de este lenguaje.

Este es el problema de la tarea que les dejaron [literalmente de como me lo envío en el MP]:


Aplicar los elementos de la fase de resolución de un problema para cada ejercicio.  Utilizar bucle For.

   1. Calcular la suma de todos los elementos de un vector de dimensión 50, así como su media aritmética y su producto.
   2. Calcular el número de elementos negativos, cero y positivos de un vector dado de 100 elementos.
   3. Calcular el mayor de una lista L de n elementos.
   4. Dada una lista L de n elementos, calcular la suma de los números pares y la de los impares de forma independiente.
   5. Hacer diferentes listados de una lista de 15 números según el siguiente criterio:

    Si número >=0 y <50, ponerlo en lista1
    Si número >=50 y <100, ponerlo en lista2
    Si número>=100 y <=150, ponerlo en lista3


Mi intento:


Code: [Select]
#include <iostream>
#include <vector>
 
using namespace std;

int main(int argc, char *argv[])
{
//Vlad @ Todosv.com para ######
//Tarea ITCA. Probado con Dev-C++ 4.9.9.2
    //1.
    vector<int> v1(50);
    vector<int>::iterator iter;
    unsigned long suma = 0;
    srand( time(NULL) );
    //cout << "Items:" << endl;
    for(iter = v1.begin(); iter != v1.end(); iter++) {
    *iter = rand();
    //cout << *iter << endl;
    suma += *iter;
    }
    cout << "suma: " << suma << endl;
    //2. 3. y 4.
    unsigned int numNegativos = 0;
    unsigned int numPositivos = 0;
    unsigned int numCeros = 0;
    long sumaPares = 0;
    long sumaImpares = 0;
   
    v1.resize(100);
    for(iter = v1.begin(); iter != v1.end(); iter++) {
    *iter = rand()-rand();
    //cout << *iter << endl;
    if (*iter){
       if(*iter>0){
       numPositivos++;
       }
       else {
       numNegativos++;
       }
    }           
    else {
    numCeros++;
    }
    if(*iter%2) {
    sumaPares += *iter;
    }
    else {
    sumaImpares  += *iter;
    }
}                       
    cout << "numNegativos: " << numNegativos << endl;
    cout << "numPositivos: " << numPositivos << endl;
    cout << "numCeros: " << numCeros << endl;
    cout << "sumaPares: " << sumaPares << endl;
    cout << "sumaImpares: " << sumaImpares << endl;
    sort(v1.begin(),v1.end());
    cout << "numMayor: " << v1.back() << endl;
   
//5.
v1.resize(15);
vector<int> lista1;   
vector<int> lista2;
vector<int> lista3;
for(iter = v1.begin(); iter != v1.end(); iter++) {
*iter = rand() % 150;
//cout << *iter << endl;
if(*iter>=0 && *iter<50){lista1.push_back(*iter);}
if(*iter>=50 && *iter<100){lista2.push_back(*iter);}
if(*iter>=100 && *iter<=150){lista3.push_back(*iter);}
}
cout << "Lista 1." << endl;
for(iter = lista1.begin(); iter != lista1.end(); iter++) {
cout << *iter << endl;
}
cout << "Lista 2." << endl;
for(iter = lista2.begin(); iter != lista2.end(); iter++) {
cout << *iter << endl;
}
cout << "Lista 3." << endl;
for(iter = lista3.begin(); iter != lista3.end(); iter++) {
cout << *iter << endl;
}

system("PAUSE");
return 0;
}