













Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
c++ programmazione vettori e array
Tipologia: Esercizi
1 / 21
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!














Elementi di Informatica e Programmazione – Università di Brescia Prof. M. Giacomin
Elementi di Informatica e Programmazione – Università di Brescia Esercizio 1^ Sviluppare un programma che acquisisce dall’utente al massimo 50numeri interi positivi (interrompendo l’acquisizione se vieneinserito il numero 0), li inserisce in un vettoreProf. M. Giacomin
vet_1^ e produce
un vettore^ vet_
che li contiene in ordine inverso.
Elementi di Informatica e Programmazione – Università di Brescia Algoritmo (per la parte di inversione)Prof. M. Giacomin
Supponiamo
n^ sia l’ultima posizione del vettore (3 in questo caso):
i=1 i= 3-i3-i
Esercizio 1^ Sviluppare un programma che acquisisce dall’utente al massimo 50numeri interi positivi (interrompendo l’acquisizione se vieneinserito il numero 0), li inserisce in un vettore^ for(i=0; i<=n; i++)vet_2[n-i]=vet_1[i];
vet_1^ e produce
un vettore^ vet_
che li contiene in ordine inverso.
Elementi di Informatica e Programmazione – Università di Brescia printf("Inserisci al massimo 50 numeri positivi (0 per terminare)\n");i=0;^ // prossima posizione libera da occuparedo{scanf("%d", &num);if(num!=0){vet_1[i]=num;i++;} } while(num!=0 && i<50);n=i-1; //ora n indica l’ultima posizione occupata del vettorefor(i=0; i<=n; i++)vet_2[n-i]=vet_1[i];printf("Vettore invertito\n");for(i=0; i<=n; i++)printf("%d\n", vet_2[i]);Prof. M. Giacomin
Elementi di Informatica e Programmazione – Università di Brescia Esercizio 2^ Sviluppare un programma che acquisisca da tastiera due arraycontenenti 10 numeri interi (int num1[10], int num2[10]),assicurandosi (per ogni array) che l’utente non inserisca unnumero già inserito (in questo caso, ripetere l’acquisizionedi ogni elemento che sia già stato inserito).Si trovino quindi tutti gli elementi comuni ad entrambi gli arraye si stampi un messaggio indicante, per ogni elemento comune,l’indice occupato nel primo array e nel secondo.Prof. M. Giacomin
Elementi di Informatica e Programmazione – Università di Brescia Acquisizione di un vettore con esclusione di numeri già inseriti^ for(i=0; i<10; i++){do scanf(“%d”, &num);while(
Acquisisci in num un numeroche non sia già stato inserito
Elementi di Informatica e Programmazione – Università di Brescia Identificazione degli elementi in comune tra v1 e v2^ Per ogni elemento v1[i] Prof. M. Giacomin
con i=0, …
Elementi di Informatica e Programmazione – Università di Brescia Identificazione degli elementi in comune tra v1 e v2^ Per ogni elemento v1[i] Prof. M. Giacomin
con i=0, …
Elementi di Informatica e Programmazione – Università di Brescia Esercizio 3 (ing. informatica 8 feb 2010) Si sviluppi un programma in linguaggio C che riceva in ingressodue vettori di interi, ciascuno di 10 elementi. Supponendo che i duevettori siano inseriti già ordinati in modo crescenteProf. M. Giacomin
, il programma deve
creare e stampare un terzo vettore che rappresenti la “fusione” dei duevettori acquisiti, ovvero che contenga tutti i 20 elementi ordinati tra loroin modo crescente.Ad esempio, se il primo vettore contiene gli elementi2 5 9 14 15 20 25 27 30 32e il secondo vettore contiene gli elementi3 5 10 11 12 22 23 24 26
Il programma crea e stampa un vettore contenente i seguenti elementi:2 3 5 5 9 10 11 12 14 15 20 22 23 24 25 26 27 27 30 32
Elementi di Informatica e Programmazione – Università di Brescia Idea chiave^ • Ciclo per mettere ordinatamente gli elementi del primo e secondovettore in un terzo vettore Prof. M. Giacomin
vett
vett
Elementi di Informatica e Programmazione – Università di Brescia Ordinamento “iniziale”^ i=0;^ Prof. M. Giacomin
//elemento da considerare nel primo vettore j=0;^
//elemento da considerare nel secondo vettore z=0;^
//indice del posto libero nel terzo vettore (NB: = i+j) while(i<10 && j<10)if(vett1[i]<vett2[j]){vett3[z]=vett1[i];i++;z++;} else{vett3[z]=vett2[j];j++;z++;}
Elementi di Informatica e Programmazione – Università di Brescia Inserimento finale e stampa^ if(i<10)for(;i<10;i++)vett3[z++]=vett1[i];elsefor(;j<10;j++)vett3[z++]=vett2[j];printf("Stampa vettore ordinato\n");for(z=0;z<20;z++)printf("%d ", vett3[z]);printf("\n");system("PAUSE");return 0;} Prof. M. Giacomin
Elementi di Informatica e Programmazione – Università di Brescia Il codice: inserimento del vettore ordinato^ printf("Inserisci in ordine crescente al massimo 19 numeri\n");scanf("%d", &num);vett[0]=num;n=1;^ Prof. M. Giacomin
// indice in cui inserire il prossimo elemento nonordinato=0;
// nonordinato posto a 1 se inserimento numero// non ordinato do{scanf("%d", &num);if(num>vett[n-1]){vett[n]=num;n++;} else nonordinato=1;} while(nonordinato==0 && n<19);
Elementi di Informatica e Programmazione – Università di Brescia Stampa vettore ordinato e acquisizione numero da inserire^ n=n-1;^ // posizione ultimo elemento inseritofor(i=0; i<=n; i++)printf("%d ", vett[i]);printf("Inserisci numero da inserire nel vettore\n");scanf("%d", &num); Prof. M. Giacomin