09/02/12 12:28
Daviducci0
Salve a tutti ragazzi... sono un neo studente di ingegneria informatica con conoscenza 0 del linguaggio e l'unica cosa che ancora non riesco a capire è come funzione il passaggio delle variabili tra il main e la funzione, ovvero quando bisogna mettere l'* o la &.
Ho questo compito: Carica un vettore da file e calcolare il massimo e contare quante volte è ripetuto il massimo.
Inserendo tutte le istruzioni nel main, il programma riesco a farlo, funziona e fa tutto quello che deve fare ma se voglio creare delle funzioni vado in panico e non riesco più a farlo. Ora vi riporto il codice con la divisione dei sottoprogrammi e i relativi algoritmi, potete spiegarmi dove e come inserire le varie variabili?
Ho questo compito: Carica un vettore da file e calcolare il massimo e contare quante volte è ripetuto il massimo.
Inserendo tutte le istruzioni nel main, il programma riesco a farlo, funziona e fa tutto quello che deve fare ma se voglio creare delle funzioni vado in panico e non riesco più a farlo. Ora vi riporto il codice con la divisione dei sottoprogrammi e i relativi algoritmi, potete spiegarmi dove e come inserire le varie variabili?
#include <iostream> #include <fstream> #include <cstdlib> using namespace std; void carica_vet(char, int, int); void calcola_conta_max(int, int, int ,int) void stampa_vet(int, int) int main() { void carica_vet(); void stampa_vet(); void calcola_conta_max(); system("pause"); return 0; } void carica_vet(char path[], int vet[], int riemp) { riemp = 1; //Inserimento da tastiera del percorso del file da aprire cout <<"Inserire nome del file da aprire:" << endl; cin >> path; // Apro il file fstream f; f.open(path, ios::in); if (!f) // Controllo file { cout << "Errore nell'apertura del file" << endl;; exit(-1); } //Inserisco elementi dal file nel vettore f >> vet[0]; while (!f.eof()) //Continua finché non trovi l'end of file f >> vet[riemp++]; //Inserisci elementi nel vettore riemp--; f.close(); //Chiudo File } void stampa_vet() { cout << "Il vettore inserito e:" << endl; for(int i = 0; i < riemp; i++) { cout << vet[i] << endl; } } void calcola_conta_max(int vet[], int riemp, int max, int contatore) { //Ricerca massimo max=vet[0]; for(int i = 0; i < riemp; i++) { if (vet[i] > max) max = vet[i]; } //Calcolo ripetizione del massimo contatore = 0; for (int i = 0;i < riemp;i++) { if (vet[i] == max) contatore++; } cout <<"Il valore massimo e':" << max << " ed e' ripetuto " << contatore << " volte." << endl; }
aaa