ARRAY-VETTORE MonoDimensionale-INFORMATICA-c++?

Ciao a tutti.

Vorrei dei chiarimenti su quanto riguarda l'array nel linguaggio c++:

1) Innanzi tutto vorrei sapere come si inizializza.

Devo già sapere di quante caselle è composto il vettore, e quindi scrivere ' vet[10] ' (per esempio)

oppure posso inizializzare non sapendo di quante caselle è composto il vettore, scrivendo quindi

' vet[n] '

[[stampando quindi cout<<"inserisci lunghezza vettore";

cin>>n;

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

2) quando ho inserito i valori del vettore, per esempio 5 valori come faccio a stamparli a video?

per esempio cout<<"i valori inseriti sono.....";

e se volessi fare una somma, sottrazione o media.... come dovrei fare?

DUNQUE: qualcuno mi farebbe un programma stupido per chiarirmi bene le idee fondamentali dell'array monodimensionale? grazie:

Magari potreste farmi un programma con queste consegne:

inseriti 'n' numeri dell'array:

-mostrarli a video

-fare la media e mostrare la media dell'array

GRAZIE A CHI MI AIUTA ^_^ OVVIAMENTE 10 PUNTI A CHI FA IL PROGRAMMA PIU' SEMPLICE DA CAPIRE E CORRETTO! GRAZIE ^_^

Aggiornamento:

non riesco bene a capire come faccio a fare la media dei valori dell'array D:

4 risposte

Classificazione
  • Nicola
    Lv 6
    8 anni fa
    Risposta preferita

    1)Per inizializzare un array ci sono due modi, il primo in maniera costante mettendo i valori tra due graffe separati da una virgola

    int vett[3]={1,2,3};

    Il secondo è quello di accedere alle singole locazioni e inizializzarle come fosse una qualsiasi variabile fondamentale immettendo i dati da tastiera(o con una qualche funzione o artificio per dare i giusti valori alle celle)

    int vett[3];

    for(int a=0;a<3;a++)

    cin>>vett[a];

    Puoi renderlo anche automatico come hai fatto te, inserendo la lunghezza da tastiera(se a lunghezza variabile)

    Ricorda che se un vettore ha dimensione n ha n-1 celle(ne ha n però è compreso lo zero quindi l'ultima cella stà in posizione n-1, se guardi il ciclo for qui sopra ho inserito la condizione finchè a<3 non a<=3)

    2)Per stampare i valori basta che accedi alle celle del vettore come hai fatto per l'inizializzazione, ricorda che un vettore non sono altro che una serie di variabili a cui accedi con un indice int vett[3] è equivalente ad avere 3 variabili int, e come tale ti comporti, se le vuoi mostrare a video devi usare la funzione cout per tutte le celle(puoi anche usare solo il nome del vettore e il cout ti dà tutto il contenuto del vettore ma ha bisogno di condizioni più restrittive)

    for(int a=0;a<3;a++)

    cout<<vett[a]<<' ';

    cout<<endl;

    cout<<vett<<endl;//qui non sono compresi spazi tra i valori(molto utile per le stringhe)

    Per farci delle operazioni vale la stessa cosa che ho detto prima è come lavorare con normalissime variabili solo che ci accedi con un indice quindi ti devicomportare di conseguenza

    Eccoil programma:

    #include <iostream>

    using namespace std;

    int main(){

    int n;

    int media(0);

    do{

    cout<<"Inserisci lunghezza vettore: ";

    cin>>n;

    if(n<0){

    cout<<"Dimensione errata"<<endl;

    system("pause");

    system("cls");

    }

    }while(n<0);

    int vett[n];//alcuni IDE non lo accettano in tal caso: int* vett=new int[n];

    for(int a=0;a<n;a++){

    cout<<"Inserisci valore nella "<<a+1<<"* cella: ";

    cin>>vett[a];

    }

    for(int a=0;a<n;a++){

    cout<<a+1<<"* cella: "<<vett[a]<<endl;

    media+=vett[a];

    }

    media/=n;

    cout<<"Media valori: "<<media<<endl;

    system("pause");

    return 0;

    }

    Se qualcosa non è chiaro scrivi

    ********************

    Hai ragione anche te XD mi sono dimenticato di dividere per n, quella che ho fatto è solo la somma di tutti gli elementi, l'ho aggiustato

  • 8 anni fa

    per quanto riguarda l'accesso ai dati devi sempre accedere dato per dato (perchè in realtà, se dichiari int array [20]; la variabile array contiene un puntatore al primo elemento dell'array e non "all'array stesso").

    per calcolare la media devi applicare l'algoritmo della media:

    #include <iostream>

    using namespace std;

    int main(){

    int n;

    do{ cout << "Quanti numeri vuoi inserire? "; cin >> n;} while(n<=0);

    int *array=new int[n];

    for (int i=0;i<n;i++){

    cout << endl << "inserisci il " << i+1 <<"^o Elemento: "; cin >> array[i];

    }

    /* Calcolo la Media*/

    int somma=0;

    for (int i=0;i<n;i++) somma+=array[i];

    double media= ((double) somma)/((double) n); /*la conversione in double è necessaria se no la media tra 1 e 2 per lui sarebbe 1 perchè lo calcola come intero e elimina tutto ciò che c'è dopo la virgola*/

    cout << endl << "La media e': " << media;

    delete [] array;

    cin >> n; //mette in pausa

    return 0;

    }

  • 8 anni fa

    1) In C++, è possibile inizializzare un array usando una variabile come specificatore della dimensione.

    Chiaramente, la dimensione dell'array è comunque fissa. Se dichiari vet[n], vet avrà come dimensione il valore di n nel momento in cui dichiari l'array. Se poi il valore di n cambia, la dimensione dell'array non la segue.

    2) Per operare sugli array, si usa solitamente un ciclo for.

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

    cout << vet[i];

  • Anonimo
    8 anni fa

    Ciao!

    Se hai bisogno di aiuto visita ed iscriviti su http://www.cplobby.it/ . Si tratta di un forum nato da poco riguardante l'informatica, la programmazione e l'elettronica in generale, lì sapranno aiutarti senza dubbio! Basta che ti iscrivi (ovviamente gratuitamente) e in 1 minuto puoi aprire la discussione con il tuo problema! Vedrai che te lo risolveranno subito! E poi puoi aiutare un forum emergente a crescere grazie anche al tuo contributo, magari diventando anche un membro dello staff! http://www.cplobby.it/

Altre domande? Fai una domanda e ottieni le risposte che cerchi.