Tracce degli esercizi di programmazione per il recupero per le classi terze



ESERCIZI DI PROGRAMMAZIONE



Esercizi di programmazione sulla Sequenza

1
Calcolare il perimetro di un rettangolo date le misure dell'area e della base.
2
Calcolare l'area di un rettangolo date le misure del perimetro e dell'altezza.
3
Calcolare l'area di un triangolo rettangolo sapendo che un cateto è 3/5 dell'altro.
4
Calcolare il costo necessario a dipingere le pareti di una stanza con una porta e due finestre.
5
Calcolare il costo necessario a pavimentare una stanza di forma rettangolare.
6
Di un libro si conosce il prezzo comprensivo dell'IVA del 19%; determinare il prezzo netto.
7
Di un oggetto si conosce il prezzo comprensivo dell'IVA; determinarne il prezzo netto.
8
Un'automobile percorre 20 km con un litro di benzina. Calcolare la spesa necessaria a percorrere 100 km.
9
Conoscendo il numero di km che un'automobile percorre con un litro di benzina, determinare la spesa necessaria a percorrere 100 km.
10
Un dollaro vale 1540 lire e 2.80 marchi. Cambiare i marchi in lire.
11
Calcolare il successivo del doppio del quadrato di un numero.
12
Calcolare il quadrato del successivo del doppio di un numero.
13
Calcolare la differenza tra il quadrato di un numero e il numero stesso.
14
Calcolare l'area di un trapezio, conoscendo la base maggiore e sapendo che l'altezza è doppia della base minore, mentre la loro somma è uguale alla base maggiore.
15
Una scultura è formata da un cubo, sormontato da altri due cubi di lato rispettivamente doppio e triplo. Determinare la superficie laterale della scultura.
16
Una merce subisce un certo aumento in percentuale. Il negoziante però pratica ai clienti abituali uno sconto pari all'aumento. Calcolate la differenza tra il nuovo prezzo scontato e il vecchio prezzo.
17
Sapendo che l'incasso del totocalcio viene ripartito in parti uguali tra erario, CONI, montepremi, stabilire le quote dei vincitori con 13 e 12 punti.
19
Un rappresentante di commercio guadagna un fisso mensile di lire 1.000.000 più lire 200.000 per ogni enciclopedia venduta. Quanto guadagna al mese, sapendo che gli viene trattenuto il 18%?
19
Un rettangolo ha il perimetro di cm 10. Impostare un metodo per determinare quello di area massima.
20
Un rettangolo ha l'area di cm2 16. Impostare un metodo per determinare quello di perimetro minimo.
Esercizi di programmazione sulla Selezione

1
Stabilire se due numeri interi sono uguali.
2
Dati due numeri stampare il maggiore.
3
Stabilire se una persona può votare alle elezioni.
4
Dati due numeri A e B verificare se A è il quadrato di B.
5
Stabilire se un numero è un quadrato perfetto.
6
Dati due numeri stamparli in ordine crescente.
7
Determinare se un numero naturale A è il precedente del numero naturale B.
8
Dato un numero intero, trovare il suo valore assoluto.
9
Dato un numero intero N, stabilire se è pari o dispari.
10
Dato un numero intero N, stabilire se è divisibile per A. (Controllare il resto della divisione).
11
Dato un numero qualunque, stabilire se esso è intero oppure no.
12
Dato un numero stabilire se è naturale.
13
Dato un numero razionale assoluto, calcolarne, se possibile, il reciproco.
14
Calcolare, se possibile, la radice quadrata di un numero.
15
Dati tre numeri stampare il maggiore.
15
Dati due numeri A e B controllare se A è minore, uguale o maggiore di B.
16
Dato un numero N verificare se è interno o esterno ad un intervallo [A..B].
17
Dato un numero N razionale assoluto calcolare la differenza con il numero intero più vicino, esprimendola come grandezza positiva.
 
18
Date le misure di tre angoli, stabilire se si tratta degli angoli di un triangolo.
19
Date le misure dei lati di un triangolo, stabilire e il triangolo è equilatero, isoscele o scaleno.
20
Date le misure degli angoli di un triangolo, stabilire se il triangolo è rettangolo.
21
Date le misure di tre segmenti, stabilire se possono costituire i lati di un triangolo.
22
Date le dimensioni di due rettangoli calcolarne l'area e determinare quale dei due ha superficie maggiore.
23
Dati un quadrato di lato L ed una circonferenza di raggio R stabilire quale delle due figure ha perimetro maggiore e quale delle due ha area maggiore.
24
Conoscendo l'ipotenusa e il cateto di un triangolo rettangolo e il lato di un quadrato verificare se le due figure sono equivalenti.
25
Dato il cateto e l'ipotenusa di un triangolo rettangolo e il lato di un quadrato stabilire se le due figure sono isoperimetriche.
26
Immessa da tastiera la base e l'altezza di un rettangolo ed il lato di un quadrato stabilire se i due poligoni sono isoperimetrici.
 
27
Date le dimensioni di due rettangoli verificare se sono isoperimetrici.
28
Verificare se un numero dato in input è divisibile sia per 3 sia per 5.
29
Verificare se un numero dato in input è divisibile per 3 o per 7.
30
Verificare se un numero dato in input è divisibile per 3 ma non per 5.
31
Dati due numeri naturali A e B, con A diverso da B, sottrarre il più piccolo dal più grande.
32
Dati due numeri naturali A e B, con A diverso da B, aggiungere al più grande la somma dei due numeri.
33
Dati quattro numeri verificare se costituiscono una proporzione.
34
Dati 3 numeri stampare il più piccolo, il più grande e la loro media aritmetica.
35
Determinare se il prodotto di due numeri naturali A e B è maggiore di 0.
36
Dati 2 numeri naturali A e B, con A diverso da B, aggiungere 10 al più grande.
37
Dato un numero intero stabilire se è negativo, positivo oppure uguale a zero.
38
Stabilire se un angolo è acuto, ottuso o retto.
39
Stabilire se un angolo è retto, piatto, giro o qualsiasi.
40
Determinare se un numero A ha la stessa parità di un numero B. (Due numeri hanno la stessa parità se sono entrambi pari o entrambi dispari).
41
Dati A e B interi e diversi da 0, stabilire se A è divisibile per B.
42
Determinare se il quoziente di due numeri naturali è uguale a 1 (senza effettuare l'operazione).
43
Stabilire se il prodotto di due numeri naturali qualsiasi, diversi da zero, è pari o dispari.
44
Stabilire se un numero naturale N, diverso da zero, è divisore di altri due numeri qualsiasi.
45
Determinare, senza eseguire l'operazione, se il prodotto di due numeri naturali è uguale a zero.
46
Immessi da tastiera due numeri relativi stabilire se sono: uguali, concordi o discordi, uno l'inverso dell'altro, opposti.
47
Calcolare la differenza fra due numeri nel campo dei naturali.
48
Determinare se la potenza an è un numero pari (senza effettuare l'operazione).
49
Determinare se la potenza an è uguale a 1 (senza effettuare l'operazione).
50
Determinare se la potenza an è uguale a zero (senza effettuare l'operazione).
51
Stabilire se un numero naturale qualsiasi, diverso da zero, è divisore di 36.
52
Dati due numeri naturali A e B, con A diverso da B, aggiungere al più piccolo la somma dei due numeri.
53
Dati due numeri naturali A e B, con A diverso da B, sottrarre il più piccolo dal più grande.
54
Classificare un triangolo rispetto agli angoli.
55
Risoluzione di una equazione di I grado. La risoluzione di una equazione di I grado a una incognita ammette tre casi:
  1. esiste una soluzione;
  2. esistono infinite soluzioni (eq. indeterminata);
  3. non esistono soluzioni (eq. impossibile).
56
Dato il peso ed il volume di un oggetto calcolare il peso specifico e stabilire se può essere di vetro (ps=2,5).
 
57
Stabilire se un numero è dispari controllando la cifra meno significativa.
58
Date le misure A e B di un potenziale rettangolo si vuole sapere se si tratta in effetti di un rettangolo, di un segmento o di un punto (A e B possono essere nulle).
59
Date le misure a, b, c di un parallelepipedo potenziale dire se si tratta o meno di un solido (ed in particolare di un cubo), di un rettangolo, di un segmento o di un punto.
60
Stabilire se un intero n è multiplo di un intero m e, in caso affermativo, scrivere il corrispondente fattore moltiplicativo. Ad esempio se n=36 ed m=4 si deve dare in uscita: FATTORE = 9.
61
Dato il numeratore e il denominatore di una frazione, stabilire se tale frazione è propria, impropria o apparente.
62
Un viaggiatore di commercio percorre ogni giorno un certo numero di chilometri con la propria autovettura. Al ritorno può chiedere alla sua ditta un rimborso spese sotto una delle diverse forme:

* un euro al km;

* euro 90 più 10 litri di benzina ogni 100 km.

Costruire un programma che, in base ai chilometri percorsi, determini quale forma di rimborso è più conveniente.
63
In un negozio un cliente, avendo speso una certa cifra, paga con una banconota o una moneta tra le seguenti: 500, 200, 100, 50, 10, 5, 1, 0,50, 0,20, 0,10, 0,5, 0,02, 0,01.
Scrivere un programma che calcoli l'ammontare e la composizione del resto in banconote e/o monete, in maniera tale che tale resto risulti composto dal minimo numero di pezzi.
64
Dato un numero decimale euro 50 trasformarlo nella numerazione romana.
65
Stabilire se un anno A è bisestile. Un anno è bisestile se è divisibile per 4. Fanno eccezione gli anni fine secolo che sono bisestili soltanto se sono divisibili per 400.
66
Un garage fa pagare 3 euro per un'ora o frazione di un'ora, più 1 euro per ogni ora o frazione oltre la prima, fino ad un massimo, per 24 ore, di 15 euro. Scrivete un programma che calcoli il prezzo da pagare per un cliente del garage.
67
Un'azienda elettrica ha stabilito le seguenti tariffe:
 
KILOWATT ORA
COSTO IN LIRE
0 - 500
20.000
501 - 1000
20.000 + 80 per ogni kwh oltre 200
1001 e oltre
25.000 + 50 per ogni kwh oltre 1000
Scrivere un programma che dato il consumo mensile calcoli e stampi l'importo della bolletta.
68
Supponendo che la multa per il superamento del limite di velocità sia basata sull'entità del superamento del limite stabilito e venga calcolata nel seguente modo:
 
SUPERAMENTO DEI LIMITI (km/ora)
MULTA (migliaia di lire)
1 - 10
100
11 - 20
150
21 - 30
250
31 - 40
300
+ 40
400
Scrivete un programma che, al momento dell'esecuzione chieda il limite di velocità e la velocità e stampi l'importo della multa.
69
Supponendo che la bolletta del telefono venga calcolata nel seguente modo:
  • minimo 7.500 lire per i primi 80 scatti
  • più 60 lire/scatto per i successivi 60
  • più 50 lire/scatto per i successivi 60
  • più 40 lire scatto per quelli oltre i 200
scrivete un programma che calcoli l'importo da pagare, avendo come input il numero di scatti.
70
Il BONUS di un rappresentante per le vendite è:
  • zero se il valore delle vendite è minore di due milioni;
  • il 10% del valore delle vendite se queste sono comprese fra due e cinque milioni;
  • lire più il 5% dell'eccesso di vendite oltre i cinque milioni quando viene sorpassato quest'ultimo valore.
Calcolare il BONUS conoscendo il valore delle vendite.
71
Una società immobiliare vende appartamenti al mare ai seguenti prezzi:
 
DISTANZA DAL MARE
LIRE AL MQ.
meno di 200 m
1.800.000
da 201 m a 500 m
1.500.000
oltre 500 m
1.000.000
Data la misura della superficie dell'appartamento in mq. e la distanza dal mare, calcolare il prezzo.
72
Calcola il consumo di gas e stampa la bolletta per N utenti; di ciascuno viene dato il nominativo, il consumo precedente, il consumo attuale e la data.
Sui metri cubi consumati calcola l'importo secondo la seguente tabella:
 
CONSUMO
COSTO
fino a 150 mc
300 £/mc
da 151 mc a 200 mc
350 £/mc
oltre 200 mc
410 £/mc
Calcolare l'importo da pagare, aggiungendo l'IVA del 20%.
73
Scrivere un programma che consenta la elaborazione di una ipotetica scheda di pedaggio autostradale.
Il programma deve quindi prevedere:

- la immissione di:

a) chilometri percorsi

b) codice tariffa:
  1. per il Nord
  2. per il Centro
  3. per il Sud
- il calcolo del pedaggio sulla base della tariffa scelta e cioè:
  • Lire 150 al km per il Nord
  •  "    120 " " " " Centro
  •  "    100 " " " " Sud
Al valore ottenuto dovrà essere aggiunto un supplemento di spese in ragione di Lire 10 al km per i primi 100 km e Lire 5 al km per il successivi km percorsi.
74
Su una somma di denaro, viene applicata una trattenuta fiscale secondo il seguente schema:
  • se la somma è minore di 3 milioni, viene trattenuto il 10%;
  • se la somma è minore di 4 milioni, viene trattenuto il 15%;
  • se la somma è minore di 5 milioni, viene trattenuto il 16%;
  • altrimenti la trattenuta è del 20%.
Data la somma, calcola l'ammontare della trattenuta.
75
Un'automobile viene affittata a queste condizioni:
  • 15.000 al giorno;
  • 300 lire per ognuno dei primi 100 km;
  • 200 lire per ognuno dei successivi km.
Ponete come input i giorni di utilizzo, la distanza percorsa e calcolate l'affitto totale.
76
Una ditta propone le seguenti forme di pagamento:
  1. ordinario a 30 gg;
  2. con sconto del 10% per pagamento immediato;
  3. con un aumento del 10% se a 60 giorni dalla consegna.
Ponete come input la forma di pagamento e il prezzo; l'output è dato dalla somma da pagare.
77
Supponete che la parità di scambio tra Euro e Dollaro sia la seguente: 1 € = 1,23 $. Il programma deve chiedere all'utente se intende cambiare:
  1. Dollari in Euro;
  2. Euro in Dollari.
Data una somma di denaro calcolare il controvalore.
78
Il D.P.R. 12/1/1991 stabilisce le tariffe del servizio di telefono SIP. Per un abbonamento singolo della categoria B (il normale abbonamento telefonico in abitazione privata) esso prevede che la bolletta bimestrale sia così calcolata:
  • canone d'abbonamento: L. 18.600
  • costo degli scatti:
    • fino a 100 L. 50
    • oltre 100 L. 127
Inoltre, all'utente che effettui «un numero di scatti superiore a 140, il numero di scatti a L. 50 è ridotto di uno ogni scatto oltre il 140, con conseguente addebito degli stessi a L. 127. Ne consegue che al raggiungimento dei 240 scatti bimestrali tutto il traffico sarà tassato a L. 127» (tratto dall'elenco abbonati 1991/92, p.10).
Scrivere un programma che, noto il numero degli scatti, determini l'importo dovuto.
(A proposito, non dimenticare che tale importo è soggetto al pagamento dell'IVA al 20%).

Esercizi di programmazione sulla Iterazione

1
Stampare i primi N numeri interi.
2
Stampare i numeri pari minori di N.
3
Stampare i numeri pari minori di N in ordine decrescente.
4
Stampare multipli di A minori di N.
5
Stampare i primi N multipli di un numero.
6
Stampare i dieci numeri pari successivi al numero N.
7
Calcolare la somma dei primi N numeri naturali.
8
Dati N numeri effettuarne la somma.
9
Dati N numeri contare quanti sono i valori pari e quelli dispari.
10
Dati N numeri contare quanti sono i multipli di 3.
11
Dati N numeri contare quanti sono i multipli di A.
12
Dati N numeri contare quanti sono positivi, negativi e uguali a zero.
13
Determinare quanti numeri multipli di K sono compresi nell'intervallo [A..B] (estremi compresi).
14
Dati N numeri stampare la somma di quelli pari e di quelli dispari.
15
Determinare la somma dei numeri negativi e positivi di un insieme di N numeri relativi.
16
Dati N numeri calcolare la media aritmetica.
17
Dati N numeri calcolare la media aritmetica dei valori pari e quella dei valori dispari.
18
Dati N numeri determinare il valore più piccolo tra quelli incontrati, indicandone il numero d'ordine.
19
Dati N numeri determinare il valore maggiore e quante volte esso ricorre.
20
Data una serie di N numeri determinare il valore più grande e quello immediatamente inferiore (il secondo).
21
Date N misure x1, x2, x3,.....,xn calcolare la media geometrica.
22
Determinare il fattoriale di un numero intero N; valgono le seguenti relazioni:
N! = N (N-1) (N-2) ...1 , 0! = 1 , 1! = 1.
23
Date N terne di numeri calcolare di ciascuna la media aritmetica. Determinare anche di quanto la media si discosta da un numero prefissato, uguale per tutte le medie.
24
Date N coppie di numeri contare e stampare quelle la cui somma è compresa in un intervallo [A..B] (estremi compresi
25
Date N coppie di numeri contare e stampare quelle che hanno i valori l'uno l'opposto dell'altro.
26
Date N coppie di numeri contare e stampare quelle che hanno i valori l'uno il reciproco dell'altro.
27
Date N coppie di numeri determinare quante sono concordi e quante discordi.
28
Date N coppie di numeri reali contare quelle che generano un prodotto pari, dispari o uguale a zero. (Anche senza eseguire l'operazione).
29
Date N coppie di numeri reali contare quelle che generano un prodotto negativo, positivo o uguale a zero. (Anche senza eseguire l'operazione).
30
Date n coppie di numeri reali contare quelle che generano una somma positiva o negativa. (Anche senza eseguire l'operazione).
31
Trovare i divisori propri di un numero.
32
Trovare il minor numero di banconote da 100000, 50000, 10000, 5000, 1000, necessarie per pagare una assegnata cifra C.
33
Verificare se un numero è una potenza del 2 e se lo è determinare l'esponente.
34
Date N assicurazioni di automobili: l'importo viene aumentato del 10% se vi è stato più di un incidente, altrimenti viene scontato del 6%. Calcola la somma degli importi e stampa il risultato.
35
Lo stipendio di un dipendente è formato da 3 parti: A, B, C. Sulla parte A si applica la trattenuta del 19%, sulla parte B il 16%, sulla parte C il 2%. Sul totale A+B+C viene trattenuto lo 0.5%. Stampa il nome del dipendente, il totale delle trattenute e lo stipendio finale netto. Ripeti il procedimento per N dipendenti.
36
Determinare il massimo con relativa molteplicità tra N numeri dati in input uno alla volta.
37
Date in input una alla volta N frazioni riconoscere quelle irriducibili.
38
Determinare l'ammontare dell'interesse composto avendo in input il capitale, la percentuale ed il numero di anni.
39
Dato un elenco di N città con la loro distanza in km da Roma, stampa il tempo impiegato da un mezzo avente velocità media di 120 km/h per raggiungere Roma.
40
Dato un elenco di N studenti (nome + comune di provenienza) conta quanti sono quelli che abitano a Torino e calcola la percentuale di questi sul totale degli studenti.
41
Dati N numeri, sommali 4 a 4.
42
Scrivi i dieci numeri pari successivi al numero N.
43
Stampa i primi N numeri dispari successivi al numero A.
44
Tra N codici di avviamento postale, scegli quelli che hanno le prime due cifre uguali a 20 e contali. Stampa il risultato.
45
Trovare il primo termine della successione di Fibonacci che supera N (la successione di Fibonacci è una successione di numeri interi non negativi in cui ogni termine viene ottenuto sommando i due termini precedenti: 0 1 1 2 3 5 8 ...).
46
Date N persone, di ciascuna sono dati il peso e l'altezza. Calcolare per ognuna l'indice di obesità = peso diviso l'altezza. Si conti man mano il numero di quelle che hanno obesità maggiore di un valore K prefissato.
47
In un mese una società di assicurazioni ha stipulato N contratti di assicurazione su motociclette secondo la seguente formula:
  • se la moto ha cilindrata maggiore di 350, il costo dell'assicurazione è uguale a una quota fissa Q più L. 30.000 per ogni milione del prezzo della moto;
  • altrimenti il costo è uguale alla quota fissa Q più L. 20.000 per ogni milione del prezzo della moto.
Quanto ha incassato la società alla fine del mese?
48
In un quiz vengono poste a un concorrente un certo numero di domande facili e difficili. Se risponde giusto a una domanda facile guadagna 2 punti, a una domanda difficile 4 punti. Se risponde sbagliato a una domanda facile perde 4 punti, a una domanda difficile perde 2 punti?
49
Conoscendo le vendite di copie di un quotidiano in un mese, calcolare la media giornaliera di copie vendute e trovare il giorno in cui si è registrata la vendita massima.
(Controllare l'esattezza del numero di giorni del mese).
50
Per N città vengono registrate le temperature minime e massime di una giornata. Stampare alla fine il nome della città più fredda e di quella più calda. È un problema di ricerca del minimo e del massimo. La città più fredda si intende quella con la temperatura più bassa. La più calda è quella con temperatura più alta.
51
Dato un elenco di persone, con nome, città e data di nascita, stampare il nome del più giovane della città di Milano.
52
Dati N numeri reali, determinare il massimo divisore di un numero K arbitrario.
53
Dati N numeri determinare il massimo dei numeri pari e di quelli dispari.
54
Dato un elenco di N numeri, scegli quelli che sono maggiori di 10 e minori di 100. Di questi calcola la somma e stampa il risultato.
55
Dato un numero N calcolare il suo quadrato sommando i primi N numeri dispari.
Esempio: N = 7 quadrato di 7 = 49
Ordine numeri dispari:
1 2 3 4 5 6 7 8 9 10
numero dispari:
1 3 5 7 9 11 13 15 17 19
Somma numeri dispari:
1 4 9 16 25 36 49 64 81 100.
56
Progettate un algoritmo che legga un numero primo b < a e scriva quante volte a è divisibile per b. Per esempio se a=162 e b=3, a è divisibile 4 volte per b.
 
57
Progettate un algoritmo che scriva tutte le coppie di numeri che danno per prodotto 60.
58
Progettate un algoritmo che scriva tutte le coppie di numeri pari la cui somma è 20.
59
Progettate un algoritmo che scriva tutte le coppie di numeri naturali la cui somma è 20.
60
Costruite un algoritmo in grado di individuare quali, tra i numeri naturali di una lista, sono uguali a (o maggiori, o minori di) un assegnato numero k.
61
Determinare i quadrati perfetti da 1 a 100.
62
Calcolare il quoziente fra due numeri applicando il metodo delle sottrazioni ripetute.
63
Calcolare il prodotto fra due numeri applicando il metodo delle addizioni ripetute.
64
Calcolare la potenza applicando il metodo delle moltiplicazioni ripetute.
65
Date le altezze di N persone, calcola e stampa la loro altezza media. Inoltre se la media è maggiore o uguale a 170 stampa il messaggio "GIGANTI" altrimenti il messaggio "BASSOTTI".
66
Dati N voti calcolare e stampare la loro media. Inoltre se la media è >=6 stampare il messaggio "PROMOSSO" altrimenti il messaggio "RESPINTO".
67
Dati N numeri visualizzare solo i pari.
68
Dato un numero naturale N stamparne la tabellina.
69
Determinare i numeri primi da 2 fino ad N.
70
Determinare i divisori di un numero naturale N.
71
Scomporre un numero in fattori primi.
72
Stampare i numeri naturali da 0 a 100.
73
Stampare i numeri dispari da 1 a 99.
74
Stampare i numeri pari da 100 a 0.
75
Scrivere un algoritmo che visualizzi sullo schermo i numeri naturali da 1 a 10, il loro quadrato, il loro cubo.
76
Scrivere un programma che visualizzi i numeri da 100 a 5 ad intervalli di 5.
77
Dati N quadrati, calcolarne il perimetro e l'area.
78
È dato un elenco di N oggetti formato da: nome della sostanza, peso, volume. Di ciascun oggetto calcola il peso specifico e comunica il nome delle sostanze che hanno peso specifico maggiore di 1.
79
Dati dieci numeri in ingresso, calcolare la somma di quelli di posto dispari (il 1º più il 3º più il 5º, ecc.) e la somma di quelli di posto pari (il 2º più il 4º più il 6º, ecc.). Calcolare poi la differenza tra le due somme e mandare in uscita, dei dieci numeri, solo quelli che non superano tale differenza.
80
Dati N numeri interi determinare il minimo fra i valori dispari.
81
Leggere due sequenze ordinate di interi e stabilire se vi sono degli elementi in comune.

Esercizi di programmazione sulla Cicli Indefiniti

1
Leggere una sequenza di numeri; al primo zero incontrato, determinare quanti numeri sono stati letti e la loro somma.
2
Leggere una sequenza di numeri. Terminare la lettura quando si incontra un numero dispari e stampare quanti numeri sono stati letti e quanti fra essi sono risultati diversi da zero.
3
Leggere una sequenza di numeri interi. Terminare la lettura quando si incontra un valore pari a 9999. Determinare quanti sono stati i valori pari e i valori dispari.
4
Leggere e sommare una quantità indefinita di numeri reali finché‚ la loro somma diventa uguale a zero.
5
Leggere una sequenza di numeri finché non viene superato il numero N. Determinare la somma dei multipli di un numero A.
6
Leggere una sequenza di numeri reali; determinare quanti valori sono interi (senza la parte decimale) ed effettuarne la somma. Terminare la lettura quando si incontra un valore uguale a -999.
7
Leggere da tastiera un numero imprecisato di coppie di numeri interi. Terminare la lettura quando il primo dei due termini risulta uguale a zero. Contare le coppie che hanno il prodotto multiplo di un numero intero K.
8
Leggere una sequenza di numeri reali; determinare il numero di valori che sono vicini ad un numero K arbitrario meno di 0.5. Terminare la lettura quando si incontra un valore uguale a 999.
9
Realizzare una operazione di 'input controllato' in modo che vengano accettati soltanto numeri il cui valore assoluto sia compreso tra 5 e 10.
10
Alla fine dell'anno vengono esaminati i risultati studente per studente: si contino i bocciati e i promossi delle classi prime e si calcolino le percentuali di bocciati e promossi sul totale degli studenti contati. In questo caso supponiamo di non conoscere il numero esatto degli studenti da esaminare. Stabiliremo perciò che l'inserimento del carattere «0» (ad esempio) durante la richiesta della classe, abbia significato di 'fine inserimento dati' e quindi di chiusura dell'iterazione.
11
Inserire da tastiera una sequenza di numeri, finché‚ la loro somma non supera il valore 200, e contarli.
12
«La mamma va al mercato e compra n1 kg di una merce avente costo unitario c1, n2 kg di una merce avente costo c2, ..., e così via. Si vuole sapere quanto ha speso in totale la mamma per ogni tipo di merce e quanto ha speso in totale». Scrivere un programma che risolve questo problema facendo la convenzione che l'elenco si ritiene esaurito quando si legge una quantità di merce pari a 0.
13
Leggere una sequenza di interi e fermarsi quando si sono letti tutti i numeri interi compresi fra k1 e k2. Segnalare l'eventuale presenza di numeri già inseriti. Dare ogni volta l'elenco di tutti i numeri forniti nel caso venga fornito un numero non compreso fra k1 e k2.
Esercizi di programmazione sulla Ricorsione

1
Descrivere una procedura ricorsiva che calcoli l'n-esimo elemento della successione di Fibonacci.
2
Il M.C.D.(a,b) può essere calcolato con un procedimento ricorsivo basato sulle seguenti relazioni:

1. se a>b

2. allora M.C.D.(a,b)=M.C.D.(a-b,b);

3. (a,b)=M.C.D.(b,a);

4. (a,a)=a.

Descrivere una procedura ricorsiva, basata sulle relazioni precedenti, che calcoli M.C.D.(a,b).
3
L'algoritmo di ricerca binaria si presta anche ad una realizzazione come procedura ricorsiva. Infatti il processo di suddivisione della tabella può essere applicato ricorsivamente alle varie sottotabelle individuate fino a quando la sottotabella non si riduce ad un unico elemento. Scrivere una tale procedura tenendo conto delle seguenti convenzioni: la chiave da ricercare è K, l'insieme su cui operare è un vettore V di N elementi, i limiti inferiore e superiore della sottotabella individuata sono indicati da t e u rispettivamente.
4
Scrivere un programma per il calcolo del fattoriale di un numero (con 0!=1 per definizione) in modo ricorsivo.
5
Definizione ricorsiva dei coefficienti binomiali.
Definiamo per n e k interi, 
 si chiama coefficiente binomiale.

Ad esempio 


Dare una definizione per ricorrenza di , con n fissato e scrivere un programma basato su tale definizione.
 
6
Scrivere un programma che calcoli la somma di due interi x e y in modo ricorsivo come segue:
a] x + 0 • x
b] x + (y+1) = (x+y) + 1.
7
Scrivere un programma che calcoli il prodotto di due interi x e y in modo ricorsivo come segue:
a] x • 0 = 0
b] x • (y+1) = x • y + x.
8
Scrivere un programma che calcoli la potenza di un intero x elevato ad un altro intero y in modo ricorsivo come segue:
a] x0 = 1
b] xy+1 = xy • x.
9
La letteratura popolare riporta questa filastrocca:
"C'era una volta un re, seduto su un sofà,
che disse alla sua serva: "Raccontami una storia! "
E la serva cominciò:
"C'era una volta un re, seduto su un sofà,
che disse alla sua serva: "Raccontami una storia!"
E la serva cominciò:
"C'era una volta un re, .....

Si vuole una procedura ricorsiva per la stampa della filastrocca; poiché‚ tale procedura non ha, evidentemente, condizioni di terminazione, prevedere l'introduzione di un parametro che permetta la conclusione del racconto.
10
Scrivere una function ricorsiva che stabilisca se una data stringa è palindroma. Un stringa è palindroma quando risulta uguale al suo rovesciamento.
Esempi: 'AMA', 'ESSE', ...
11
Scrivere una function ricorsiva che effettui la ricerca binaria su una sequenza vettoriale ordinata A[INF..SUP].
12
Scrivere una function ricorsiva che calcoli il prodotto di due numeri naturali tenendo presente che si dispone soltanto dell'operazione di somma, di moltiplicazione per 2 e di divisione per 2.

Esercizi di programmazione: Operatori sugli Interi

1
Dato un numero intero N, stabilire se è pari o dispari.
2
Dato un numero intero N, stabilire se è divisibile per A. (Controllare il resto della divisione).
3
Verificare se un numero dato in input è divisibile sia per 3 sia per 5.
4
Verificare se un numero dato in input è divisibile per 3 o per 7.
5
Verificare se un numero dato in input è divisibile per 3 ma non per 5.
6
Determinare se un numero A ha la stessa parità di un numero B. (Due numeri hanno la stessa parità se sono entrambi pari o entrambi dispari).
7
Stabilire se un numero naturale N, diverso da zero, è divisore di altri due numeri qualsiasi.
8
Determinare se la potenza an è un numero pari (senza effettuare l'operazione).
9
Dato il numeratore e il denominatore di una frazione, stabilire se tale frazione è propria, impropria o apparente.
10
Dati due numeri interi, stabilire, senza effettuare il calcolo, se la loro somma è pari o dispari.
11
Data la base e l'esponente intero di una potenza, stabilire senza effettuare il calcolo, il segno di tale potenza.
12
Data la base intera e l'esponente intero di una potenza, stabilire senza effettuare il calcolo, se tale potenza risulta pari o dispari.
13
Conoscendo la misura di un tempo espressa in minuti, convertirla in ore e minuti.
Esempio: se il numero dei minuti è 100, si dovrà ottenere, in uscita dal programma, 1h 40m.
14
Conoscendo la misura di un tempo espressa in secondi, convertirla in ore, minuti e secondi.
Esempio: se il numero dei secondi è 1630, si dovrà ottenere, in uscita dal programma, 0h 27m 10s.
15
Considerare due misure di tempo espresse in ore e minuti primi; scrivere un programma che calcoli la differenza fra la prima e la seconda misura esprimendola in ore e minuti primi.
16
Considerare due misure di tempo espresse in ore e minuti primi; scrivere un programma che calcoli la somma fra la prima e la seconda misura esprimendola in ore e minuti primi.

Esercizi di programmazione sulle Stringhe

1
Data una stringa di caratteri di lunghezza assegnata determinare quante volte un certo carattere vi è contenuto.
2
Date due  stringhe, la prima di lunghezza m e la seconda di lunghezza n (m>n) riconoscere se la seconda stringa è contenuta nella prima.
3
Data una stringa di lunghezza assegnata costruirne altre due una coi caratteri di posto dispari (della prima) e l'altra coi caratteri di posto pari. Determinare il numero di caratteri delle due stringhe costruite.
4
Date due stringhe di uguale lunghezza costruire una terza stringa contenente tutti i caratteri delle  precedenti posti alternativamente uno della prima e uno della seconda.
5
Dato in cifre decimali un numero intero minore di 100 scriverlo in lettere. (Si faccia attenzione alla  irregolarità dei nomi dei numeri da 1 a 20).
6
Dato in cifre decimali un numero intero minore di 1000 scriverlo in lettere. (Si utilizzi la esperienza/acquisita  risolvendo  l'esercizio precedente).
7
Data una stringa ricavare una stringa contenente solo lettere dell'alfabeto (maiuscole e minu­scole)  lasciando al posto di altri caratteri degli spazi bianchi.
8
Data una stringa di n caratteri trasformare la prima lettera in maiuscolo.
9
Data una stringa di n caratteri  stampare  tutte le lettere in maiuscolo.
10
Si debba risolvere il problema di tradurre un numero in lettere per la stampa di assegni bancari. Si scriva un sottoprogramma che, ricevendo il numero da tradurre, in forma opportuna, ed il nome  dell'area  che deve contenere la traduzione, provveda a fornire tale traduzione. Si supponga il numero intero, al massimo di 9 cifre.
11
Trasformare una data nella forma gg/mm/aa nella forma in lettere.        
Esempio: 10/10/88  -->  10 ottobre 1988.
12
Una somma di denaro viene versata il giorno G1 e viene ritirata il giorno G2. Calcolare la diffe­renza  in  giorni  fra le due date che sono digitate nella forma GG/MM/AA.
13
Stabilire se un numero N è naturale oppure no senza la funzione INT.
14
Immessa da tastiera una parola determinare da quante lettere è formata.
15
Stabilire di quante cifre è composto un numero.
16
Determinare se una parola inizia per vocale o consonante.
17
Stabilire, senza la funzione INT, se un numero è divisibile per 100.
18
Stabilire se un numero è divisibile per 4 applicando il relativo criterio di divisibilità.
19
Dato un numero stabilire se è divisibile per 7 applicando il relativo criterio di divisibilità.
20
Stabilire se un numero è divisibile per  3 applicando il relativo criterio di divisibilità.
21
Stabilire se un numero è divisibile per 1000.
22
Scrivere un programma che elimini gli spazi bianchi da una stringa S letta in ingresso.
23
Scrivere il numero di vocali contenute in una stringa S.
24
Immesso da tastiera un verbo, comunicarne la desinenza.
25
Stabilire se un numero è dispari controllando la cifra meno significativa.
26
Stampare una parola in ordine inverso a quello in cui è stata scritta.
27
Dato un vettore contenente n caratteri verificare se al suo interno ci sono elementi posti in una  sequenza data e quante volte vi è contenuta.
28
Una "palindrome" è una parola che può essere letta nello stesso modo sia da destra verso sinistra che da sinistra verso destra, ad esempio:  otto, Ada.  Descrivere un algoritmo che, data una paro­la  costituita da k lettere rappresentate come x1, x2, x3 ...,xk, stabilisce se la parola è una palindrome oppure no.
29
Si scrivano le seguenti funzioni personali per la elaborazione di stringhe di  caratteri,  che realizzano le seguenti operazioni:
  1. concatenazione di due stringhe;
  2. ricerca di una stringa in una data;
  3.  determinazione della lunghezza di una stringa;
  4.  conversione di una stringa con caratteri numerici in un numero;
  5.  conversione di un numero in una stringa di caratteri;
  6.  confronto fra due stringhe;

30
Eliminare, da una frase, gli spazi ripetuti lasciandone uno solo.
31
Leggere un vettore di parole terminante la con parola fine. Restituire lo stesso vettore con le parole  scritte al contrario.
Esempio:           PIPPO CASA .... FINE --> OPPIP ASAC   ....   FINE.
32
Contare, su 70 caratteri dati da tastiera, quante  volte c'è il carattere '$'.
33
Data una stringa di caratteri determinare se vi è contenuta una sottostringa data S di K caratteri e quante volte ricorre.
34
Costruire due frasi (lunghe max 300 caratteri l'una) contenenti parole (lunghe max 20 caratteri l'una) e risolvere i seguenti problemi:  
  1. dire quale delle due frasi contiene più parole;
  2. dire in quale frase è presente la parola più lunga ed in quale quella più corta (stamparle);
  3. stampare le parole in comune tra le due frasi;
  4. stampare le parole presenti nella 1ª frase ma non nella seconda, e viceversa;
  5. costruire una terza frase con le parole del punto "C" e stamparla;
  6. ordinare in modo alfabetico le parole della frase costruita nel punto "E", creando quindi una 4ª frase e stamparla;
  7. dire se nella 1ª frase ci sono parole ripetute più volte (stamparle);
  8. fare lo stesso del punto "G" sulla 2ª frase.

35
  Data una sequenza di parole terminata dalla parola "FINE", si vuole sapere, per ogni parola, se è formata da più vocali o da più consonanti.
  1. descrivere un possibile algoritmo che risolva l'esercizio proposto;
  2. sviluppare il procedimento in Linguaggio di Progetto;
  3. realizzare il programma corrispondente in linguaggio C.
36
Data una stringa dire se in essa risultano correttamente bilanciate le parentesi tonde, quadre e graffe.
37
Realizzare in linguaggio C un programma che leggendo in ingresso una sequenza di parole ter­minata con "FINE", conti quante di esse hanno almeno una delle seguenti consonanti doppie: "p", "r", "s", "t".
38
Determinare quante volte un elemento è ripetuto in una certa stringa di n elementi.

Esercizi sugli Array monodimensionali (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.
VALOREINDICE ELEM.VALORE
1350.5426.45
3330.8548.12
5317.19613.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.
Esercizi sugli Array bidimensionali (matrici)

1
Caricare da tastiera una matrice MAT di N righe per M colonne.
2
Memorizzare in una matrice a dieci righe e dieci colonne i valori della tabellina pitagorica.
3
Memorizzare in una matrice a 30 righe e 3 colonne, il cognome, il nome e la città di residenza di 30 ragazzi.
4
Memorizzare in una matrice a N righe e 3 colonne, i primi N numeri interi, i loro quadrati, i loro cubi e stamparla.
5
Caricare una matrice MAT di N righe per M colonne, inserendo in ogni elemento il prodotto fra i suoi indici.
6
Caricare da tastiera una matrice MAT di N righe per M colonne e stampare la somma di tutti i suoi elementi.
7
Supposto di aver caricata in memoria una matrice MAT di N righe per M colonne, ordinare ogni riga in ordine crescente.
8
Ad una gara partecipano N concorrenti: di ogni partecipante si conosce il numero di iscrizione, il nome, il tempo impiegato. Stampare il numero e il tempo di quelli che hanno impiegato meno di 2 ore. Determinato poi il tempo del vincitore, stampare l'elenco dei distacchi degli altri concorrenti.
9
Ad ogni persona che fa parte di un gruppo corrisponde un codice e un nome. Vengono introdotti in input N nomi con il codice. Scrivere poi il procedimento che consente di stampare il nome della persona corrispondente al codice richiesto.
10
Confronta la colonna vincente del totocalcio con le N colonne giocate. Per ciascuna colonna fornisci il numero dei risultati esatti.
11
Data una matrice quadrata di numeri reali cioè costituita da N righe ed N colonne, determinare la matrice trasposta della matrice data, cioè la matrice ottenuta da quella di partenza scambiando le righe con le colonne.
12
Determinare il massimo ed il minimo elemento di un array bidimensionale A(M,N) fornendo anche la posizione, indice di riga e indice di colonna, all'interno dell'array.
13
Determinare il valore della somma degli elementi delle colonne di un array bidimensionale A(M,N).
14
Riempire un vettore con i nomi di N ragazzi. Riempire altresì una matrice numerica di dimensioni N x 5 con i voti di N studenti. I voti per ciascun ragazzo dovranno essere al massimo 5. Calcolare la media dei voti di ciascuno studente e memorizzarla in un vettore MEDIA di N posizioni. Calcolare anche la media globale degli N studenti. Infine stampare una tabella riportante i nomi degli studenti, la media e il relativo giudizio (sufficiente, buono,....).
15
Data una tabella contenente la classifica generale del campionato di calcio di serie A e una tabella contenente i risultati di una giornata di campionato, aggiornare la classifica generale.
16
Controllare se in una tabella che rappresenta la classifica generale del campionato di calcio di serie A sono contenuti errori nelle colonne delle reti, delle partite, dei punti e della media (cioè controllare la consistenza dei dati: per esempio la somma di tutte le reti fatte da tutte le squadre deve essere uguale a quella di tutte le reti subite ....).
17
Conoscendo la classifica generale al termine di una certa tappa del giro d'Italia e l'ordine di arrivo della tappa successiva con l'indicazione del tempo impiegato dal primo e dei distacchi di tutti gli altri, calcolare la nuova classifica generale. Si supponga che non ci siano stati ritiri e si ricordi che la classifica generale è una tabella ordinata per tempi crescenti.
19
Nella tabella seguente sono presentate le vendite settimanali (in milioni di lire) di una catena di tre supermercati ognuno dei quali è diviso in quattro reparti:
Supermercato
1
2
3
4
1
21
8
22
41
2
31
11
11
36
3
15
19
23
29
Scrivere un programma che accetti come input i dati di un array di ordine 3 x 4 dando come output le vendite complessive settimanali del singolo supermercato e della catena nel suo insieme.
19
Scrivere un programma che legga dati, riga dopo riga, da una tabella simile a quella mostrata qui sotto. Dopo aver letto tutte le righe della tabella, il programma dovrebbe visualizzare il numero della riga in cui la somma dei valori risulti massima, il valore di tale somma, e il contenuto della linea trova in questo modo.
Esempio :
91 46 55

43 59 83

64 47 45

94 25 91

51 24 96
Il programma dovrebbe gestire un numero variabile di linee in ingresso. L'uscita dovrebbe avere approssimativamente il seguente formato:
SOMMA MASSIMA: 210
NELLA RIGA: 4
CONTENUTO: 94 25 91.
 
20
Leggete 6 valori interi da ognuna delle 12 righe immesse (72 valori in tutto). Mettete i dati in un vettore bidimensionale con 12 righe e 6 colonne: ogni riga corrisponde ai dati di una linea. Riordinate i dati in ogni colonna in modo che il valore più piccolo appaia nella prima riga, ed i valori successivamente più grandi nelle righe successive. Visualizzare infine tutti i valori del vettore ordinato. Generalizzare il problema.
21
Data una matrice di ordine N costruire un vettore che contenga gli elementi dispari della matrice.
22
Data una matrice di N righe e M colonne che contenga una sotto matrice con gli elementi uguale a 1, determinare il numero di righe e di colonne di questa sotto matrice.
x x x x x x x x
x 1 1 1 x x x x
x 1 1 1 x x x x
x 1 1 1 x x x x
x 1 1 1 x x x x
x x x x x x x x

23
Data una matrice N x M trasferire la somma di tutti i numeri della prima riga nel primo elemento del vettore, la somma di tutti i numeri della seconda riga nel secondo elemento del vettore e così via.
24
Data una matrice 3 x 3 determinare il determinante di Sarrus.
25
Data una lista di alberghi, scegli quello più costoso e calcola il prezzo di pernottamento per una settimana.
26
Vengono introdotti N vocaboli con la loro traduzione in lingua straniera. Introdotto poi un testo formato da vocaboli compresi nell'elenco, tradurre il testo vocabolo per vocabolo.
27
Data una matrice quadrata caricare la sua diagonale principale in un vettore e trovarne il massimo.
28
Scrivere un programma che, lette due matrici dello stesso tipo, stampi la matrice somma.
29
Scrivere un programma che, lette due matrici conformabili, stampi la matrice prodotto.
30
Scrivere un programma che letta una matrice A e una costante k, stampi la matrice ottenuta moltiplicando per k tutti gli elementi di A; la nuova matrice è indicata con k x A.
31
Scrivere un programma che letta una matrice A, stampi la matrice -A i cui elementi sono gli opposti dei corrispondenti elementi di A.
32
Data una matrice A scrivere il vettore V i cui elementi sono la somma degli elementi delle corrispondenti righe di A.
33
Data una matrice A scrivere il vettore V i cui elementi sono la somma degli elementi delle corrispondenti colonne di A.
34
Scrivere un programma che letta una matrice A calcoli e stampi la somma dei valori assoluti dei suoi elementi.
35
 Scrivere un programma che, letta una matrice A, calcoli e stampi la somma (senza valore assoluto) degli elementi.
36
Scrivere un programma che, letta una matrice, stampi l'elemento di valore assoluto massimo e quello di valore assoluto minimo.
37
Scrivere un programma che, letta una matrice A, calcoli e stampi la "C" norma di A ovvero la maggiore tra le somme dei valori assoluti degli elementi di ogni colonna della matrice.
(Stampare oltre alla C-norma anche il numero della colonna alla quale corrisponde).
38
Scrivere un programma che, letta una matrice A, calcoli e stampi la "R" norma di A ovvero la maggiore tra le somme dei valori assoluti degli elementi di ogni riga della matrice.
(Stampare oltre alla R-norma anche il numero della riga alla quale corrisponde).
39
Scrivere un programma che, letta una matrice A, calcoli la norma euclidea di A ovvero la radice quadrata della somma dei quadrati degli elementi di A.
40
Sia data una matrice contenente in ciascuna delle sue n righe la data e la colonna vincente del totocalcio. Letta poi una matrice dello stesso tipo di m righe calcolare per ciascuna colonna i punti realizzati (inoltre se si tratta di un dodici o di un tredici).
Controllare che la schedina abbia la data inclusa fra quelle della matrice risultati.
41
Un viandante si trova ad attraversare un ruscello nel quale affiorano dei sassi. Il problema è quello di trovare un percorso che gli permetta di arrivare dall'altra parte senza percorrere giri viziosi. Si supponga di rappresentare il ruscello come una matrice a valori booleani, nella quale il valore di verità true rappresenta un sasso, mentre il valore false rappresenta assenza di sasso. Si suppone altresì che il viandante si trovi nella posizione 1,1 della matrice e che debba arrivare nella posizione n,n. I vincoli posti riguardano i movimenti i quali debbono consentire il passaggio da un sasso ad un altro a condizione che questi siano contigui tra di loro o per linee orizzontali o per linee verticali o per diagonale.
42
Si numerino le 64 casella di una scacchiera come illustrato in figura. Una casella è così individuata da due numeri. Scrivere un algoritmo che, date due coppie di numeri che individuano due caselle, stabilisca se le due caselle sono dello stesso colore oppure no.
1
2
3
4
5
6
7
8
1
X
X
X
X
2
X
X
X
X
3
X
X
X
X
4
X
X
X
X
5
X
X
X
X
6
X
X
X
X
7
X
X
X
X
8
X
X
X
X

43
Ordinare una matrice sia per righe che per colonne.
44
Data una matrice numerica di ordine N x M determinare qual è la riga con il massimo campo di variazione (diff. fra max e min).
45
Data una matrice quadrata di ordine N determinare la somma degli elementi sopra e sotto la diagonale principale.
46
Data una matrice quadrata di ordine N determinare la somma degli elementi sopra e sotto la diagonale secondaria.
47
Data una matrice quadrata di ordine N determinare la somma dei suoi elementi, esclusi quelli delle due diagonali.
48
Data una matrice di ordine N x M calcolare la somma degli elementi della corona esterna.
49
Siano dati i primi n numeri naturali: 1, 2, ...., n. Si dice quadrato latino di ordine n una matrice quadrata di n righe e di n colonne avente in ogni riga e colonna una delle n! permutazioni dei numeri dati, con la condizione che in ogni riga e colonna non vi siano due numeri uguali.
Ecco, ad esempio, un quadrato latino di ordine 4:
1
2
3
4
3
1
4
2
2
4
1
3
4
3
2
1

50
Un quadrato latino si dice normalizzato quando la 1ª riga e la 1ª colonna sono formate dalla permutazione fondamentale 1, 2, 3, ..., n. E' stato dimostrato che i quadrati latini normalizzati di ordine 2, 3, 4, 5, 6, 7 sono rispettivamente in numero di 1, 1, 4, 56, 9408, 16 942 080.
Trovare tutti i quadrati latini normalizzati di ordine 2, 3, 4, 5 e alcuni di ordine 6, 7, 8.
51
Scrivere un programma che, letta una matrice, stampi l'elemento di valore massimo e quello di valore minimo.
52
Modificare il programma dell'es. precedente, stampando l'elemento di valore assoluto massimo e quello di valore assoluto minimo.
53
Modificare il programma dell'es. 57, stampando oltre all'elemento di valore massimo e minimo anche il numero di riga e di colonna dove si trovano.
54
Modificare il programma dell'es. 58 onde stampare anche il numero della riga e della colonna nelle quali si trovano gli elementi di valore assoluto massimo e minimo.
55
Sia data una matrice in cui gli indici di riga rappresentano il tipo di vestito e gli indici delle colonne rappresentano la taglia. In ciascuna posizione della matrice sono memorizzati i mq di stoffa necessari per la confezione di ciascun vestito. Si supponga poi di avere un'altra matrice di N righe per 3 colonne; ogni colonna contiene rispettivamente il tipo del vestito da confezionare, il numero di taglia e la quantità di vestiti.
Si vuole sapere, dopo aver creato tutti i vestiti se è avanzata della stoffa e quanta ne è avanzata.
 fonte: http://www.alphabeto.it/

Commenti

  1. Calcolo inverso codice fiscale http://www.codicefiscaleinverso.com/

    This Service it too good because i used it & got 100% best result

    RispondiElimina

Posta un commento

Post popolari in questo blog

Simulazioni di reti (con Cisco Packet Tracer)

Esercizi sulla rappresentazione della virgola mobile IEEE 754 (Floating Point)