Elenet.net
+1 voto
/*

caricare due vettori con due funzioni e fare la somma dei singoli elementi dei due vettori.

*/

#include <iostream>

using namespace std;

void vettore1(int lunghezza);

void vettore2(int lunghezza);

void sommavettori(int lunghezza);

int i;

int main(int argc, char **argv)

{

            int lungh=10;

            int somma;

           vettore1 (lungh);

            vettore2 (lungh);

            sommavettori(somma);

            return 0;

}

void vettore1(int lunghezza)

{

            double vettore1 [lunghezza];

            for(int i=0; i<11; i++)

            {

                        cout<<"inserisci numero posizione "<<i<<": ";

                        cin>>vettore1[i];

                        }         

}

void vettore2(int lunghezza)

{

    double vettore2 [lunghezza];

            for( int i=0; i<11; i++)

            {

                        cout<<"inserisci numero posizione "<<i<<": ";

                        cin>>vettore2[i];

 }

}

void sommavettori(int lunghezza)

{

            float somma=0;

            for( int i=0; i<11; i++)

            {

somma=vettore1[i]+vettore2[i];

cout<<"la somma degli elementi dei vettori che si trovano nella posizione "<<i<<" è: "<<somma;

somma=0;

}

}
quesito posto 16 Marzo 2017 in Classe terza da GiuseppeL.Cangialosi (34 punti)
  

2 Risposte

+1 voto
Risposta migliore
#include <iostream>

using namespace std;

void vettore1(int lunghezza);

void vettore2(int lunghezza);

void sommavettori(int lunghezza);

int i;

int main(int argc, char **argv)

{

            int lungh=10;

            int somma;

           vettore1 (lungh);

            vettore2 (lungh);
            
            // qui c'è un errore , quanto vale somma?
            // somma non è inizializzata
            // NON SI PUO' PASSARE UN PARAMETRO PER VALORE SE IL SUO VALORE
            // E' SCONOSCIUTO

            sommavettori(somma);

            return 0;

}

void vettore1(int lunghezza)

{
// errore è preferibile chiamare il vettore con un nome diverso dal nome di  funzione

            double vettore1 [lunghezza];  

            for(int i=0; i<11; i++)

            {

                        cout<<"inserisci numero posizione "<<i<<": ";

                        cin>>vettore1[i];

                        }         

}

void vettore2(int lunghezza)

{
// STESSO ERRORE DI PRIMA
    double vettore2 [lunghezza];

            for( int i=0; i<11; i++)

            {

                        cout<<"inserisci numero posizione "<<i<<": ";

                        cin>>vettore2[i];

 }

}

void sommavettori(int lunghezza)

{

            float somma=0;
// PERCHE' 11?
            for( int i=0; i<11; i++)

            {

somma=vettore1[i]+vettore2[i];

cout<<"la somma degli elementi dei vettori che si trovano nella posizione "<<i<<" è: "<<somma;

somma=0;

}

}

IMPORTANTE :  TU HAI SVILUPPATO I DUE VETTORI ALL'INTERNO DELLE DUE  FUNZIONI
 QUINDI SONO VETTORI O VARIABILI LOCALI E NON SONO CONOSCIUTI ALL'ESTERNO
 DELLE FUNZIONI ... QUINDI LA SOLUZZIONE CONSISTE NEL FAR PASSARE I VETTORI COME
 PARAMETRI NELLE FUNZIONI IN MODO CHE PASSINO PER INDIRIZZO
 AD ESEMPIO usando il prototipo di funzione
 void carica_vettore ( int vettore[10] );
risposta inviata 16 Marzo 2017 da nicolo' guarino Esperto (687 punti)
Selezionata 18 Marzo 2017 da GiuseppeL.Cangialosi
+1 voto
più usi le funzioni meglio ti viene a programmare , perchè usando le funzioni scrivi meno codice, sfrutta le funzioni messe da parte..
Ad esempio fatti una libreria tua personale
una funzione che carica un vettore di interi
un'altra che ti faccia la somma di due vettori
un'altra che ti cerca un elemento all'interno di un vettore
un'altra che ti faccia lo scambio tra due elementi
ecc.. ecc...
Quando scrivi un nuovo programma richiama le funzioni che hai scritto in precedenza , in questo modo scrivi meno codice, il codice è più controllato, ecc. ecc.. con tutti i vantaggi della programmazione modulare ...
risposta inviata 17 Marzo 2017 da nicolo' guarino Esperto (687 punti)

Domande correlate

+2 voti
1 risposta
+6 voti
3 risposte
quesito posto 20 Gennaio 2016 in Classe terza da Gianni Messina Esperto (736 punti) | 3,387 visite
+9 voti
6 risposte
quesito posto 20 Gennaio 2016 in Classe terza da Gianni Messina Esperto (736 punti) | 472 visite
778 domande
1,565 risposte
639 commenti
1,445 utenti