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 ^_^
non riesco bene a capire come faccio a fare la media dei valori dell'array D:
4 risposte
- NicolaLv 68 anni faRisposta 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
- V RoninLv 78 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;
}
- BluNotteLv 78 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];
- Anonimo8 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/