Il sito di Yahoo Answers verrà chiuso il 4 maggio 2021 (ora della costa est degli USA) e dal 20 aprile 2021 (ora della costa est degli USA) sarà in modalità di sola lettura. Non verranno apportate modifiche ad altre proprietà o servizi di Yahoo o al tuo account Yahoo. Puoi trovare maggiori informazioni sulla chiusura di Yahoo Answers e su come scaricare i tuoi dati in questa pagina di aiuto.

c++: mi fate qualche esempio sull'utilizzo dell'array?

9 risposte

Classificazione
  • Anonimo
    2 mesi fa
    Risposta preferita

    Gli "array" sono Vettori individuati da una Variabile Indicizzata. Possono essere composti sia da elementi numerici che stringa, cioè puoi assegnare sia numeri, che caratteri, o stringhe intere. Ad esempio con la dichiarazione:

    int (o float, o double) a[10] dichiari un vettore "a" di 10 elementi di tipo Intero (Float, o Double), mentre con:

    string a[3] = {"Casa","Bottega", "Prete"} dichiari un vettore "a" di 3 stringhe. Puoi anche dichiararne uno di tipo char, o short, con:

    char (short) a[n], ovvero un vettore "a" con n elementi di tipo char (o short). Puoi anche dichiarare un vettore di "struct", ad esempio:

    struct {float a; int b}v[n];

    dichiari che v[n] è un vettore di "n" struct. Un po' più complessi sono i Vettori di vettori, generalmente noti con il nome di Matrici, o vettori a più di una dimensione.

    Nell'esercizio seguente, proposto su Answer, era chiesto di inserire un certo numero di moto aventi un nome, una cilindrata e un prezzo, di indicare la marca con il prezzo più alto, quella con il prezzo minore e la media dei prezzi delle moto la cui cilindrata è 50 cc. Ho scelto di utilizzare i dati organizzati in una "struct" in modo da avere elementi di natura diversa (stringa e numero) nello stesso vettore chiamandolo moto[N], dove N è un valore scelto nella #define in epigrafe. Nota l'uso del punto per l'accesso ai membri della struct sia in lettura che scrittura:

    #include <iostream>

    #define N 3

    using namespace std;

    main()

    {

     struct {

      string marca;

      int cilin, prezzo;

     }moto[N];

    string nma,nmi;

     int n,i,ma=0,mi=9999,so50=0,n50=0;

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

     {

      cout << "Marca-Modello della moto: ";

      cin >> moto[i].marca;

      cout << "Cilindrata: ";

      cin >> moto[i].cilin;

      cout << "Prezzo: ";

      cin >> moto[i].prezzo;

        }

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

        {

         if(moto[n].prezzo>ma)

         {

          ma = moto[n].prezzo;

          nma = moto[n].marca;

         }

         if(moto[n].prezzo<mi)

         {

          mi = moto[n].prezzo;

          nmi = moto[n].marca;

         }

         if(moto[n].cilin==50)

         {

              so50 += moto[n].prezzo;

              n50++;

            }

     }

        cout << "Moto con prezzo maggiore: " << nma << " " << ma;

        cout << "\nMoto con prezzo minore: " << nmi << " " << mi;

        cout << "\nMedia prezzo moto 50cc: " << so50/n50;

    }

    In quest'altro esercizio, sempre proposto su Answer, si chiedeva di determinare la stagione relativa ad un giorno di un mese numerico (1-12). E' stato conveniente dichiarare un vettore, mesi[], contenenti le 12 stringhe:

    #include <iostream>

    using namespace std;

    main()

    {

      string mesi[]={"","gennaio","febbraio","marzo","aprile",\

     "maggio","giugno","luglio","agosto","settembre",\

     "ottobre","novembre","dicembre"};

      int giorno,mese,m; 

      do

      {

       do

      {

       cout << "Inserisci il giorno (0 = Esce): ";

       cin >> giorno;

       if(giorno==0)

        exit(0);

       cout << "Inserisci il mese: ";

       cin >> mese;

       }while((giorno<1 && giorno>31) && (mese<1 && mese>12));

        if(giorno<21)

         switch(mese) 

        {

          case 1:

          case 2:

          case 3: cout << "Mese: "<< mesi[mese] << ": INVERNO.\n"; break;

          case 4:

          case 5:

          case 6:cout << "Mese: "<< mesi[mese] << ": PRIMAVERA.\n"; break;

          case 7:

          case 8:

          case 9: cout << "Mese: "<< mesi[mese] << ": ESTATE.\n"; break;

          case 10:

          case 11:

          case 12: cout << "Mese: "<< mesi[mese] << ": AUTUNNO.\n"; break;

        }

        else

        {

         switch(mese)

         {

          case 12:

          case 1:

          case 2: cout << "Mese: "<< mesi[mese] << ": INVERNO.\n"; break;

          case 3:

          case 4:

          case 5: cout << "Mese: "<< mesi[mese] << ": PRIMAVERA.\n"; break;

          case 6:

          case 7:

          case 8: cout << "Mese: "<< mesi[mese] << ": ESTATE.\n"; break;

          case 9:

          case 10:

          case 11: cout << "Mese: "<< mesi[mese] << ": AUTUNNO.\n"; break;

         }

        }

      }while(mese);

    }

    Nota la stringa vuota iniziale nel vettore mesi[] necessaria per assegnare correttamente a gennaio l'1.

    Nell'esercizio successivo, sempre su Answer, veniva richiesto di generare una Matrice n x n, di riempirla con elementi random e calcolarne la somma:

    #include <iostream>

    #include <ctime>

    #include <stdlib.h>

    using namespace std;

    main()

    {

     int r,c,i,l,so=0;

     srand(time(NULL));

     cout << "\nInserisci il numero di righe: ";

     cin >> r;

     c = r;

     int m[r][c];

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

     {

      for(l=0;l<c;l++)

      {

        m[i][l] = rand()%101+100;

        cout << m[i][l] << " ";

        so += m[i][l];

         }

         cout << "\n";

        }

        cout << "\nLa somma è: "<< so;

    }

    Mi auguro sia stato utile.

  • 2 mesi fa

    Dimmi tu cosa vuoi. Inizializzazione dell'Array? Magari casuale, da tastiera, lettura da file? Lettura Array? Ordinamento?

     

    Ce n'è di roba, basta cercare su internet

     

    Va bene ti nel frattempo ti ho fatto un programma di esempio di utilizzo di un array

     

    #include <iostream>

    #include <ctime>

    #include <cstdlib>

    #define lunghezza 50

    using namespace std;

    int array[lunghezza]; // creo array di 50 elementi

    void stampaArray();

    int main()

    {

     srand(time(NULL));

     // inizializzazione da tastiera

     cout << "Inizializzazione da tastiera" << endl;

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

      cout << "Dammi l'elemento n " << i << ": ";

      cin >> array[i];

     }

     stampaArray();

     // inizializzazione casuale

     cout << "Ora l'array verra' riempito casualmente dal computer\n" << endl;

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

      array[i] = rand();

     stampaArray();

     // ordinamento tramite l'algoritmo bubble sort

     cout << "Ora verra' riordinato in ordine crescente\n" << endl;

     int aux;

     for(int i = lunghezza; i > 0; i --)

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

       if(array[j] > array[j+1]) {

        aux = array[j];

        array[j] = array[j+1];

        array[j+1] = aux;

       }

     stampaArray();

     return 0;

    }

    void stampaArray() {

     // stampa array

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

      cout << array[i] << endl;

    }

     

    scusami per l'indentazione ma il sito non conserva quella originale dell'editor di testo che ho utilizzato

    P.S. Guerriera questa sezione non è come sdg: non si accettano risposte inutili, ma che possano aiutare gli altri utenti. Scrivere che sai solo "Mettere le mani sui codici CSS", non serve a niente in questo caso. Anche perché il CSS c'entra con la programmazione come un criceto c'entra con un motocoltivatore, in quanto è solo un linguaggio che definisce lo stile delle pagine web ed è Turing completo allo 0%, cioè meno di quanto lo sia Excel.

    Senza contare che probabilmente hai detto una sciocchezza, dato che per usare il CSS occorre una conoscenza almeno basilare dell'HTML

     

    @Il buio, l'alba

    Orco cane è vero, me ne sono accorto solo ora

  • Anonimo
    2 mesi fa

    Il programma calcola la somma di un array inserito dall'utente.

    #include <iostream>

    using namespace std;

    int main()

    {

     int n; // Il numero di elementi che l'utente vuole inserire nell'array

     float x[n];

     float somma;

      cout<< "Quanti elementi vuoi inserire nell'array?"<< endl;

      cin>> n;

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

      cout<< "Inserisci il "<< i+1<< "° elemento: ";

      cin>> x[i];

     }

     somma = 0;

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

      somma = somma + x[i];

     }

      cout<< "La somma dell'array è "<< somma<< endl;

    }

  • Anonimo
    2 mesi fa

                     

  • Che ne pensi delle risposte? Puoi accedere per votare la risposta.
  • 2 mesi fa

    Sul libro ce ne saranno a centinaia.

  • 2 mesi fa

    ciao.

    Gli Array o Matrici sono variabili multi-dimensionali:

    Variabile normale: INT MyVar = 1;

    Variabile Matrice: INT MyVar[1] = 2;

    Variabile Array: INT MyVar[1][1] = 3;

    Allora mettiamo caso che tu voglia memorizzare  tre campi recursivi

    nome, cognome,e-mail

    #include <stdio.h>

    #include <string.h>

    //#include <string.h> è necessario per usare la funzione strcpy

    int main(){

    // inizializiamo 3 variabili numeriche per avere un riferimento alla dimensione.

    // altrimenti avresti valori numerici e dovresti ricordarti a memoria a cosa

    // corrispondono.

    int ciclo;

    int nome = 0;

    int cognome = 1;

    int email = 2;

    // inizializiamo un'array stringa dove assegniamo:

    // Prima dimensione 10 (corrisponde al numero di utenti memorizzabili)

    // Seconda dimensione 3 (Corrispone al numero di campi per ogni utente)

    // Terza dimensione 30 ( Essendo stringa deve memorizzare ogni singolo carattere

    // in ogni dimensione

    char utente[10][3][30];

    //intestazione

    strcpy(utente[0][nome], "Nome\0");

    strcpy(utente[0][cognome], "Cognome\0" );

    strcpy(utente[0][email], "E-Mail\0" );

    //prima tabella

    strcpy(utente[1][nome], "Pinco\0");

    strcpy(utente[1][cognome], "Pallino\0" );

    strcpy(utente[1][email], "pinco@pallino.com\0" );

    //seconda tabella

    strcpy(utente[2][nome], "Giorgio\0");

    strcpy(utente[2][cognome], "Pattino\0" );

    strcpy(utente[2][email], "giorgio@pattino.com\0" );

    //terza tabella

    strcpy(utente[3][nome], "Aldo\0");

    strcpy(utente[3][cognome], "Pallido\0" );

    strcpy(utente[3][email], "pallid@mail.com\0" );

    //Questa stampera solo il contenuto della prima tabella

    printf("\n Nome: %s Cognome: %s E-Mail: %s \n", utente[0][nome],utente[0][cognome],utente[0][email]);

    printf("\n ___ _ _ _ __");

    //questo ciclo stampera il contenuto di tutte e tre le tabelle

    for (ciclo=1; ciclo<=3; ciclo++){

        //inserendo la variabile all'interno dell'array questa cambierà utente[ciclo][][]

        //permettendoti di avere piu dati richiamati da una routine o funzione o altro.

        printf("\n --------- ------ --------------");

        printf("\n Nome: %s Cognome: %s E-Mail: %s \n", utente[ciclo][nome],utente[ciclo][cognome],utente[ciclo][email]);

    }

    return 0;

    }

  • 2 mesi fa

    boh             

  • 2 mesi fa

    ho programmato in C, C++ non l'ho mai imparato ma per quanto riguarda la parte di programmazione procedurale non dovrebbe esserci molta differenza

    riempiamo un array di elementi con valore ascendente da 50 a 99

    int array[50]; 

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

    array[i] = i + 50;

    un array è una "collezione" (termine improprio) finita di elementi omogenei ovvero appartenenti allo stesso dominio (tutti int o tutti double per intenderci)

    @Muflone guarda che l'ha postata su SdG 😂

  • ?
    Lv 7
    2 mesi fa

    Io so mettere solo un pò le mani nei codici CSS

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