Programma in c++

di il
7 risposte

Programma in c++

Sto creando un programma seguendo le seguenti istruzioni:
Sviluppo delle funzioni
? Scrivere la funzione double CalcolaMedia(vector<double> v), che calcoli
la media degli elementi del vettore passato come argomento
? Scrivere la funzione int IndiceMinimo(vector<double> v), che ritorni
l’indice corrispondente al valore minimo contenuto nel vettore v passato in ingresso
Programma principale
? Dichiarare tre vector (date e temperature)
? Leggere con un ciclo il file di input e, per ogni riga del file:
? salvare le temperature lette in un ulteriore vector
? Usare la funzione CalcolaMedia() sviluppata in precedenza per trovare la
media delle temperature lette per un dato giorno
? Usare la funzione IndiceMinimo() sviluppata in precedenza per
determinare quale, tra le temperature di un dato giorno, è quella minima, e
inserirla nel vettore delle temperature minime giornaliere
? Avendo svolto il punto precedente si dispone della temperatura media
giornaliera, per cui si può aggiungere un elemento al vettore delle date e uno
a quello delle temperature medie
? In un secondo ciclo si usa il contenuto dei vettori riempiti in precedenza per scrivere il
file di output
? Infine, usando di nuovo la funzione IndiceMinimo(), questa volta sui vettori
contenenti le medie e le minime giornaliere, si identifica l’indice corrispondente alla
media più bassa e alla minima assoluta, e si stampano su terminale le temperature
trovate e le date in cui si sono verificate
[/i][/i][/i]

devo iniziare l'ultimo punto ma credo di aver fatto casino con il terzo e non so da dove iniziare.. Ho comprato un libro apposta ma sono ferma alle funzioni e devo ancora fare la parte di vettori e input... ho cercato di seguire altri es che avevo fatto e quel poco che so
#include <iostream>
#include <fstream>
#include <string>
#include <vector>

using namespace std;

double CalcolaMedia(vector<double> v)
{   
    for(int i = 0; i <= 5 ; i++)
    {
      int somma += v[i];
    }
  return (somma/5);
}

int IndiceMinimo(vector<double> v)
{
    int vmin;
    for(int i = 0; i <=5; i+)
      {
       v[i] = vmin;
       if (vmin > v[i])
       v[i] = vmin;
      }

return vmin;
}

int main() {
    string fileName;
    cout << "Inserisci il nome del file : ";
    cin >> fileName;

    
 ifstream ifile(fileName);
  if(!ifile.good()) {
    cerr << "Errore nella lettura del file: " << nomeFile << endl;
    return 1;
  }

  //dichiaro tre vettori

vector<int> date;
vector<double> mediumtemp;
vector<double> mintemp;

// con un ciclo while leggo il file di input 
// e li inserisco in un vettore
   
   double cursor = 1;
   vector<double> inputfile;
    do (ifile >> cursor)
     {
       inputfile.push_back(cursor); 
     cursor ++;
     }
     while(cursor<=6);

    coursor = v;
    double media = somma[cursor]/5;
    date += 1;
    mediumtemp += 1;

    vmin = cursor;
    mintemp[cursor];

// scrivo un file di output
  string fileName;
    cout << " medie.dat " << endl;

    ofstream medie ;
    medie.open("medie.dat");
    while( cursor = 1)
    cursor =+5;

    cout << "giorno " << endl;
    cout << date[cursor] << endl;

    while( cursor = 2 )
     
    cout << "temperatura media " << endl;
    cout << mediumtemp[cursor] << endl;

    while(cursor = 3)

    cout << "temperatura minima " << endl;
    cout << mintemp[coursor];
}

7 Risposte

  • Re: Programma in c++

    Cioè non capisco come inserire tutti i valori tranne il primo di ogni riga in un vettore
    devo fare un vettore per ogni riga?
  • Re: Programma in c++

    Ho provato a modificarlo.. ma mi resta sempre quel problema
    [/code]
    vector<int> day = 0;
    vector<double> temp = 1;
    double temperature = 1;
    while (ifile >> day >> temp)
    {
    temp.push_back(temperature);
    cursor ++;
    }


    if (temperature <=6)
    {temp[temperature] = v;
    temperature ++;
    double media = somma[temperature]/5;
    date += 1;
    mediumtemp += 1;

    vmin = temperature;
    mintemp[temperature];
    }

    // scrivo un file di output
    string fileName;
    cout << " medie.dat " << endl;

    ofstream medie ;
    medie.open("medie.dat");
    while( date >> ofile)
    date =+5;

    cout << "giorno " << endl;
    cout << date[day] << endl;

    while( temperature = 1 )

    cout << "temperatura media " << endl;
    cout << mediumtemp[temperature] << endl;

    while(temperature = 2)

    cout << "temperatura minima " << endl;
    cout << mintemp[temperature];
    }
    [/code]
  • Re: Programma in c++

    Implementa le cose nell'ordine in cui sono state date.
    fai dei test per ogni funzione che hai implementato.

    la lettura del file la fai come penultimo passo e mettere il tutto assieme come ultimo.

    per fare i test, popoli dei vettori 'da codice', in modo da sapere 'esattamente' quale DEVE essere il risultato.
  • Re: Programma in c++

    tipa98 ha scritto:


    double CalcolaMedia(vector<double> v)
    {   
        for(int i = 0; i <= 5 ; i++)
        {
          int somma += v[i];
        }
      return (somma/5);
    }
    Ma veramente?
    
    double CalcolaMedia(vector<double> v){  
        double somma = 0.0;
        for(int i = 0; i < v.size(); i++)
            somma += v[i];
        return somma/v.size();
    }
    
  • Re: Programma in c++

    tipa98 ha scritto:


    int IndiceMinimo(vector<double> v)
    {
        int vmin;
        for(int i = 0; i <=5; i+)
          {
           v[i] = vmin;
           if (vmin > v[i])
           v[i] = vmin;
          }
    
    return vmin;
    }
    
    int IndiceMinimo(vector<double> v){
        int ind = 0, vmin = v[0];
        for(int i = 1; i < v.size(); i++)
           if(vmin > v[i]){
           	vmin = v[i];
           	ind = i;
           }
        return ind;
    }
  • Re: Programma in c++

    Ho provato ad aggiustarlo .. mi da errore solo index = temp.. ma non so perche.. palle
    #include <iostream>
    #include <fstream>
    #include <string>
    #include <vector>

    using namespace std;

    // inserisco le due funzioni globali
    // indicate nella spiegazione dell'esecizio

    double CalcolaMedia(vector<double> v)
    {
    double somma = 0.0;
    for(int i = 0; i < v.size(); i++)
    somma += v;
    return somma/v.size();
    }

    int IndiceMinimo(vector<double> v)
    {
    int ind = 0, vmin = v[0];
    for(int i = 1; i < v.size(); i++)
    if(vmin > v){
    vmin = v;
    ind = i;
    }
    return ind;
    }

    int main() {
    string fileName;
    cout << "Inserisci il nome del file : ";
    cin >> fileName;


    ifstream ifile(fileName);
    if(!ifile.good()) {
    cerr << "Errore nella lettura del file: " << fileName << endl;
    return 1;
    }

    //dichiaro tre vettori

    vector<int> date;
    vector<double> mediumtemp;
    vector<double> mintemp;

    // con un ciclo while leggo il file di input
    // e inserisco i valori in un vettore

    double day = 0;
    double temp[5]; // 5 è il numero di temperature per ogni riga
    vector <double> Temp[30]; //30 è il numero di righe

    // così calcolo tutti i vettori in una volta

    (ifile >> day >> temp[5]);

    while (ifile >> day >> temp[5])
    {
    //prima però inserisco tutti i valori del file in un vettore
    vector<double> inputfile;


    for(int i=1;i<=inputfile.size()/30;i++)
    {
    Temp[30].push_back(inputfile);
    i++;

    }

    }

    for (int i = 0; i < 30 ; i++)
    {double media = CalcolaMedia(Temp);
    mediumtemp.push_back(media);

    double index = IndiceMinimo(Temp);
    if(index > Temp)
    {
    Temp = index;
    }
    mintemp.push_back(index);
    }

    vector<double> day+=1;
    vector<double> medium+=1;

    // scrivo un file di output
    string fileName;
    cout << " medie.dat " << endl;

    ofstream medie ;
    medie.open("medie.dat");

    (ofile >> date >> mediumtemp >> mintemp)
  • Re: Programma in c++

    Oddio grazie a tutti credo di avercela fatta manca quel pezzo ma ci sono grazieee a tutti
Devi accedere o registrarti per scrivere nel forum
7 risposte