Sequenza Selezione Iterazione Funzioni Ricorsione Operat. su interi Stringhe Vettori Array
Tabelle File Liste Alberi Esami Maturità Preparazione esami Database Macchina di Turing Automi
Algebra Geometria Giochi            

Esercizi sui Vettori

 

1

Costruire un vettore di N elementi con valori letti da tastiera.

2

Costruire un vettore di N posizioni, inserendo in ogni elemento il valore del suo indice.

3

Caricare un vettore di N posizioni, stampando la somma dei suoi elementi.

4

Dato un vettore di N elementi, determinare se ciascun elemento è pari o dispari.

5

Caricare da tastiera un vettore di N elementi. Scorrendo il vettore, al primo zero incontrato stampare la somma di tutti gli elementi considerati e il loro numero.

6

Dato un vettore di N posizioni, stampare la somma dei numeri pari in esso contenuti e la somma dei numeri dispari.

7

Dato un vettore numerico di N posizioni determinare la somma delle componenti positive e quella delle componenti negative.

8

Dato un vettore numerico di N posizioni stampare la media aritmetica dei valori pari e dei valori dispari.

9

Dato un vettore di N elementi stampare l'elemento maggiore e il suo indice.

10

Dato un vettore numerico di N posizioni caricato in memoria determinare il valore più grande e quello immediatamente inferiore (il secondo), indicandone la posizione.

11

Dato un vettore di N posizioni determinare l'elemento minimo, l'elemento massimo e le loro posizioni.

12

Dato un vettore numerico di N posizioni al primo elemento dispari stampare quanti valori diversi da zero si sono incontrati, il numero dispari incontrato e la sua posizione nel vettore.

13

Dato un vettore numerico di N posizioni caricato in memoria, ordinarlo in ordine crescente e stamparlo.

14

Mettere il contenuto della prima posizione di un vettore nell'ultima e quello dell'ultima nella prima; il secondo nella penultima, ecc. (Vettore di dimensione N).

15

Dato un elenco di nomi, controlla se un nome è compreso nell'elenco.

16

Dati due array di numeri naturali A(N), B(M) e supponendo che essi siano stati ordinati in modo crescente, costruire un array F con N + M elementi ordinati nello stesso modo.

17

Data una stringa di N caratteri alfabetici caricata in un vettore, calcolare la frequenza di una lettera data in input.

18

Caricare in memoria un vettore numerico di N posizioni e calcolare la media degli elementi interni all'intervallo [A..B] (estremi compresi) e la media di quelli esterni; calcolare altresì la percentuale degli elementi esterni ed interni all'intervallo.
 

19

Leggere N numeri reali e memorizzarli in un vettore NUM di N elementi. Calcolare i quadrati degli N numeri e memorizzarli ordinatamente in un vettore QUADR di N elementi. Stampare i numeri ed i loro quadrati in una tabella opportuna.

20

Nei vettori A e B, ciascuno di N elementi, sono memorizzate due parole di N caratteri ciascuna, un carattere per ogni elemento di vettore. Verificare se le due parole sono uguali ed in caso contrario determinare quale delle due parole precede l'altra nell'ordine alfabetico.

21

Si leggano dall'esterno N numeri reali e si memorizzino in un vettore. Verificare che il vettore sia ordinato nel seguente modo:

  • il primo numero sia maggiore di tutti gli altri;

  • il secondo numero sia minore di quelli che seguono;

  • il terzo numero sia maggiore di quelli che seguono;

  • il quarto numero sia minore di quelli che seguono e così via con lo stesso criterio.

Se il vettore non è ordinato metterlo in ordine. Il vettore deve essere stampato secondo un prospetto del tipo seguente:

INDICE ELEM.

VALORE INDICE ELEM. VALORE
1 350.54 2 6.45
3 330.85 4 8.12
5 317.19 6 13.70
... ... ... ...
... ... ... ...

 

22

Leggere dall'esterno N numeri aventi al massimo 3 cifre, interi positivi, e memorizzarli in un vettore VET di N elementi. Contare le frequenze con le quali i numeri si ripartiscono nelle decadi 0-9, 10-19, ...., 980-999 e memorizzare tali frequenze nel vettore DEC. Stampare i risultati.

23

Dopo aver caricato un vettore numerico, confrontare la somma delle componenti di indice pari con la somma delle componenti pari e dire se la somma maggiore è divisibile per un assegnato valore K (K<>0).

24

Dato un vettore di N elementi, contenente valori numerici, separare i valori positivi da quelli negativi, memorizzandoli in due vettori distinti. Segnalare la posizione occupata all'interno del vettore dagli elementi nulli e calcolarne il numero.
 

25

In un vettore alfanumerico trovare la stringa (o le stringhe) di lunghezza maggiore, precisandone la posizione occupata all'interno del vettore.

26

Ordinare un vettore alfanumerico in base alla lunghezza delle sue componenti (per prima la stringa di lunghezza minore, e così via fino all'ultima stringa che è quella di lunghezza maggiore).

27

Gli elaboratori sono spesso usati per eliminare voci doppie da un elenco. Negli esempi si possono includere l'elaborazione di elenchi di firme per una petizione, elenchi e nomi di indirizzi, elenchi di numeri di identificazione (come il numero di codice fiscale). Dato quindi un elenco di voci ottenerne un altro senza le voci duplicate, e con le voci rimanenti sempre nello stesso ordine dell'elenco originale e stamparlo.

28

Dato un vettore di N elementi costruire due vettori tali che contengano uno gli elementi dei posti pari e l'altro dei posti dispari.

29

Memorizzata in un vettore una frase lunga N caratteri (un carattere per ogni posizione) trovare le parole formate da tre lettere.

30

Dati 2 vettori V1 e V2 di dimensione N e M costruire il vettore V3 somma degli altri due prendendo in considerazione N = M oppure N * M.

31

Stampare il calendario del 1990 sapendo che l'ultimo giorno del 1989 sarà domenica.

32

Dato un vettore di dimensione N trovare il massimo, stamparne la posizione e sostituirlo con zero; trovare il successivo massimo stamparne la posizione e sostituirlo con zero, e così via fino a quando tutti gli elementi del vettore risulteranno nulli.

33

Si vuole stampare un calendario per un anno compreso tra il 1975 ed il 1999. Si sa che il primo gennaio 1975 era mercoledì. Inoltre si sa che gli anni bisestili sono quelli divisibili per 4, ma non sono bisestili quegli anni che sono divisibili per 100 e non per 400. Il dato di ingresso è un numero compreso tra 1975 e 1999. Il calendario deve essere in forma tabellare così:

GENNAIO

FEBBRAIO

D

L

M

M

G

V

S

......

 

 

 

1

2

3

4

......

5

6

7

8

9

10

11

......

12

13

14

15

16

17

18

......

...

...

...

...

...

...

...

......

...

...

...

...

...

...

...

......

 

34

Supponiamo di avere, già registrate nella memoria del nostro calcolatore, due serie di numeri, costituite da 20 elementi ciascuna. Gli elementi sono numeri interi e sono in disordine. Si desidera:

  • ordinare gli elementi di ciascuna serie in ordine crescente;

  • dopo aver ordinato le due serie, fonderle in un'unica serie formata da 40 elementi senza distruggere le due serie già ordinate precedenti;

  • stampare gli elementi della serie finale secondo un idoneo tracciato.

35

Dati 2 vettori numerici A e B, di dimensione N, trovare il minimo e il massimo e stabilire quale dei due vettori ha il massimo campo di variazione (elemento MAX - elemento MIN).

36

Dato un vettore numerico di N posizioni calcolare la media aritmetica delle componenti in posizione dispari e la media aritmetica di quelle in posizione pari. Determinare quale è la media maggiore.

37

Dato un vettore numerico di N posizioni, memorizzare in un vettore gli indici degli elementi uguali a K. Stampare il vettore V indicandone il numero di elementi.

38

Dato un vettore numerico, di dimensione N, costruire due vettori A e B contenenti rispettivamente gli elementi pari e quelli dispari e stamparli.

39

Dato un vettore numerico V, di dimensione N, costruire 2 vettori A e B contenenti rispettivamente gli elementi negativi e positivi (escludere gli elementi nulli). Costruire un vettore C contenente alternativamente un elemento dispari e uno pari. Se i vettori A e B hanno dimensioni diverse procedere alla costruzione di C fino a quando ci sono elementi sia di A che di B. Stampare il vettore C e quanti elementi sono rimasti inutilizzati del vettore più lungo.

40

Dati 2 vettori numerici B e E, di dimensione N, contenenti rispettivamente base ed esponente, determinare qual è la potenza maggiore, la potenza minore e i loro indici.
 

41

Dato un vettore numerico, di dimensione N, determinare il valore minore, quante volte questo ricorre e le posizioni all'interno della lista.

42

Per N città vengono lette il nome la temperatura massima e minima registrate in una giornata. Stampare il una tabella le temperature e i nomi delle città. Alla fine stampare le città con la temperatura più fredda e quelle con la temperatura più calda.

43

Le temperature minime registrate nei giorni di un mese sono organizzate in una tabella. Calcolare la media delle temperature rilevate nel mese e stampare la media. Si stampino poi i giorni del mese in cui le temperature sono state inferiori alla media mensile.

44

Dato un elenco di studenti con la lingua straniera scelta, estrarre i nomi degli studenti che hanno scelto di studiare inglese e di questi fare l'elenco alfabetico.

45

Dato un vettore numerico, di dimensione N, calcolare la media aritmetica e stampare gli elementi inferiori a tale valore.

46

Dato un elenco di libri con autore, argomento e prezzo determinare il volume con il prezzo minimo, il volume con il prezzo massimo scegliendoli fra quelli che riguardano un argomento dato in input. Se non vi sono volumi corrispondenti all'argomento proposto stampare un appropriato messaggio.

47

È dato un elenco di N studenti con nome, classe, voto finale. Stampare il voto più basso, quello più alto e il nome e la classe degli studenti ai quali appartengono. Calcolare la media aritmetica dei voti e verificare se è sufficiente o insufficiente. Stampare nome e classe degli studenti che hanno il voto finale inferiore alla media aritmetica dei voti. Contare il numero dei promossi e dei respinti e calcolarne le rispettive percentuali. Stampare l'elenco dei promossi cioè di coloro che hanno il voto finale sufficiente.

48

Dato un vettore numerico, di dimensione N, trovare il più piccolo e il più grande divisore di K e la loro posizione all'interno del vettore.

49

Si ha un elenco di articoli di magazzino formato da descrizione, giacenza, prezzo acquisto, prezzo vendita IVA esclusa. Determinare la valorizzazione di magazzino e stampare un listino alfabetico riportante descrizione, prezzo di vendita senza IVA e con IVA 20%.

50

In un concorso pubblico ogni candidato ha affrontato due prove: una scritta e una orale. Eseguire la media aritmetica dei punteggi di ciascun candidato e memorizzarla in un apposito vettore. Stampare due elenchi, come sotto specificato:

  • ordine alfabetico per nominativo;

  • ordine in base al punteggio (dal più alto al più basso).

Gli elenchi devono riportare: nominativo, punteggio medio, IDONEO/NON IDONEO. Sono idonei i candidati che hanno ottenuto un punteggio medio sufficiente. Determinare infine la percentuale degli idonei e dei non idonei.

51

In un concorso pubblico ogni candidato deve affrontare due prove, una scritta e una orale. Accedono alla prova orale i candidati che hanno ottenuto un punteggio sufficiente nella prova scritta. Caricare in un vettore i nominativi e i punteggi della prova scritta e stampare un elenco alfabetico riportandovi nominativo, punteggio, IDONEO/NON IDONEO. Caricare in un ulteriore vettore i punteggi della prova orale dei soli candidati idonei all'orale. Stilare la graduatoria definitiva per punteggio (media delle due prove), dal più alto al più basso. Determinare infine:

  • % degli idonei all'orale;

  • % dei non idonei all'orale;

  • % degli idonei nella graduatoria definitiva;

  • % dei non idonei nella graduatoria definitiva.

52

Si ha un elenco di N studenti, formato da nome, classe, giudizio scritto, giudizio orale. Determinare:

  • nome e classe dello studente con migliore giudizio scritto;

  • nome e classe dello studente con peggiore giudizio scritto;

  • nome e classe dello studente con migliore giudizio orale;

  • nome e classe dello studente con peggiore giudizio orale;

  • nome e classe dello studente con migliore giudizio globale;

  • nome e classe dello studente con peggiore giudizio globale;

  • percentuale dei promossi e dei respinti.

53

Si ha un elenco di studenti, formato da nome, classe, sesso. Stampare l'elenco alfabetico dei maschi e l'elenco alfabetico delle femmine.

54

Si ha un elenco di studenti di scuola media formato da nome e classe. Stampare gli elenchi alfabetici della classe prima, seconda, terza.

55

Dato un elenco di libri, formato da titolo, autore, argomento, stampare l'elenco alfabetico per autore dei volumi riguardanti un argomento dato in input.

56

Si conoscono i movimenti effettuati su un C/C di una banca. Ogni movimento è definito da data, causale, somma. Conoscendo il saldo iniziale determinare il saldo finale in base ai movimenti effettuati, producendo un prospetto come sotto evidenziato:

DATA

DESCRIZ.

DARE

AVERE

SALDO

..........

..........

..........

..........

..........

..........

..........

..........

..........

..........

..........

..........

..........

..........

..........

Se la somma è positiva è in DARE, se negativa è in AVERE.
 

57

Si hanno N schede di magazzino riportanti: codice, descrizione, giacenza, prezzo di acquisto, prezzo di vendita. Leggere i movimenti effettuati durante una giornata lavorativa aggiornare le schede del magazzino. I movimenti di magazzini sono descritti da codice articolo e quantità (se la quantità è positiva si tratta di un carico se invece è negativa di uno scarico).

Se un articolo non è in magazzino, stampare il messaggio:
"ARTICOLO ..... NON IN MAGAZZINO".
 

Se la giacenza è zero, stampare il messaggio:
"ARTICOLO ..... CON GIACENZA A ZERO".

Se la quantità disponibile è inferiore a quella richiesta, stampare il messaggio:
"ARTICOLO ..... Q/TA' ..... - quantità non sufficiente-",

e richiedere nuovamente la quantità da scaricare.

Stampare la situazione di magazzino dopo la movimentazione producendo un prospetto ordinato per codice.

Stampare il valore della merce presa in carico e il valore della merce venduta.

58

Dato un vettore numerico verificare se i suoi n elementi sono in ordine crescente.

59

Riempire un vettore numerico di n elementi con valori compresi fra 0 e 10 e che abbiano parte decimale uguale a zero o 0.5.

60

Dati 2 vettori verificare se contengono gli stessi elementi.

61

Dato un vettore numerico di n elementi determinare qual è l'elemento (o gli elementi) che si ripete più volte e quante volte si ripete.

62

Cercare un elemento X nella porzione di vettore delimitata da due indici (non negativi per ipotesi).

63

Dato un vettore numerico di N posizioni, verificare se i suoi elementi sono in ordine crescente.

64

Dato un vettore numerico di N elementi, verificare se un valore dato è presente fra i suoi componenti; se è compreso evidenziare il numero di volte che si ripete in caso contrario dare in uscita un opportuno messaggio.

65

Dato un vettore di N elementi verificare se al suo interno ci sono elementi posti in una sequenza data e quante volte vi è contenuta.

66

Dati due vettori, entrambi di N elementi, verificare se contengono gli stessi elementi.

67

Dato un vettore numerico determinare qual è l'elemento (o gli elementi) che si ripete più volte e con quale frequenza.

68

Leggere un vettore di interi positivi (max 50 numeri, ma possono essere anche di meno) e dire se questi hanno un divisore intero comune e dire quale.

Esempio 1:

se il vettore contiene:

30 15 9 12 6 18 6 18 21

il divisore comune esiste ed è 3

Esempio 2:

se il vettore contiene:

5 9 18 15 31

allora il divisore comune non esiste.

69

Leggere tre vettori di float (max 50 numeri l'uno, e non necessariamente lunghi uguali) e dire se uno dei tre vettori contiene esattamente l'insieme dei valori che rappresenta l'intersezione degli insiemi di valori contenuti dagli altri due.

Esempio:

Vettore 1 --> 3 5 1 4 3 7 1 2

Vettore 2 --> 5 1 4 2

Vettore 3 --> 4 1 10 15 2 5 9

il vettore 2 è l'intersezione dei vettori 1 e 3.

70

Realizzare un programma in linguaggio C che, letto un vettore di 100 reali, dica quante volte avviene che, prendendo tre reali consecutivi del vettore R1, R2 e R3, sia verificata una delle seguenti condizioni:

R1 + R2 = R3

R1 - R2 = R3

R1 * R2 = R.

71

Leggere un vettore A[1..N] di interi e scrivere gli indici degli elementi di massimo o minimo relativo. Un elemento A[I] è di massimo (minimo) relativo quando il precedente A[I-1] e il successivo A[i+1] sono entrambi minori (maggiori) di A[I].

72

Leggere e memorizzare in due vettori due insiemi A e B di interi compresi fra 1 e un certo Kmax. Costruire quindi un terzo vettore C costituito dall'unione degli altri due.

73

Come il precedente per l'intersezione di A e B.

74

Dato un vettore di numeri reali si vuole produrre in uscita la corrispondente sequenza normalizzata, cioè la sequenza dei numeri compresi tra -1 e 1 ottenuti dividendo ciascun numero per il massimo valore assoluto di tutta la sequenza.

75

Dato un vettore di numeri interi (positivi e negativi) si vuole sapere qual è la porzione di sequenza che rende massima la somma dei suoi elementi.

Ad esempio, dato il vettore:

31

-41

59

26

-53

58

97

-93

-23

84

 

 

á

 

 

 

á

 

 

 

 

 

(3)

 

 

 

(7)

 

 

 

si deve restituire 3 e 7 come indici delimitatori della porzione richiesta.