Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


programmazione vettori e array c++, Esercizi di Elementi di Informatica

c++ programmazione vettori e array

Tipologia: Esercizi

2018/2019

Caricato il 17/09/2019

sdifelice_3di
sdifelice_3di 🇮🇹

4.6

(29)

57 documenti

1 / 21

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Elementi di Informatica e Programmazione – Università di Brescia 1
Prof. M. Giacomin
ESERCIZI
DI PROGRAMMAZIONE
DA TEMI D’ESAME
- vettori -
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15

Anteprima parziale del testo

Scarica programmazione vettori e array c++ e più Esercizi in PDF di Elementi di Informatica solo su Docsity!

Elementi di Informatica e Programmazione – Università di Brescia Prof. M. Giacomin

ESERCIZI

DI PROGRAMMAZIONEDA TEMI D’ESAME

- vettori -

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

vet_1^^0 1 2^4

Supponiamo

n^ sia l’ultima posizione del vettore (3 in questo caso):

vet_2^^0 1 2 …

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();v1[i]=num;} Prof. M. Giacomin

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, …

  • scorri tutti gli elementi v2[j] con j=0..9- se v1[i]= v2[j] allora stampa messaggio

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, …

  • scorri tutti gli elementi v2[j] con j=0..9- se v1[i]= v2[j] allora stampa messaggio for(i=0;i<10;i++)for(j=0; j<10; j++)if(v1[i]==v2[j])printf("Elemento in comune %d, in posizione %d e %d\n", v1[i], i, j);

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

  • mantengo due variabili i e j, che rappresentano l’indice del valoreda considerare nel primo e secondo vettore- pongo in vett3 l’elemento minore e incrementol’indice corrispondente- esco dal ciclo quando uno dei due vettori è stato completamenteinserito in^ vett3 • Uscito dal ciclo proseguo inserendo tutti gli elementi del vettorenon completamente inserito in

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