Aggiunti SOLO README
This commit is contained in:
parent
e356a2c95b
commit
deed0640a1
|
@ -0,0 +1,9 @@
|
|||
### Esercizio 2.1
|
||||
- a) Scrivere un programma in grado di sommare due angoli espressi in gradi, primi e secondi. Per angolo maggiori di 360 gradi occorre ricondursi a valori minori sottraendo un opportuno multiplo di 360 gradi.
|
||||
- b) Scrivere un programma in grado di indicare se un numero intero è divisibile per un altro.
|
||||
- c) Scrivere un programma in grado di indicare quale tra tre numeri è il più piccolo.
|
||||
- d) Scrivere un programma in grado di acquisire quattro numeri reali e stamparli dal più grande al più piccolo.
|
||||
- e) Scrivere un programma che sia in grado di fare la somma di due ore espresse in ore, minuti e secondi.
|
||||
- f) Scrivere un programma in grado di indicare se tre numeri possono essere lati di un triangolo
|
||||
|
||||
(Suggerimento: ad es. i numeri 1, 1, 5 non lo possono essere: la somma di due qualunque di loro deve essere...)
|
|
@ -0,0 +1,4 @@
|
|||
### Esercizio 2.7
|
||||
Un vinaio propone uno sconto a chi acquista una quantità minima di vino. Scrivere un programma che
|
||||
visualizzi quanto l’acquirente spende in base alla quantità di vino acquistata. Aggiungere tutti i dati
|
||||
non specificati.
|
|
@ -0,0 +1,3 @@
|
|||
### Esercizio 2.8 (da fare con l’istruzione switch... case)
|
||||
Scrivere un programma che chiede il tipo di una porta logica (AND, OR, NOT, NAND, EXOR...) e poi i
|
||||
valori degli ingressi: ad ogni esecuzione visualizza il valore dell’uscita.
|
|
@ -0,0 +1,21 @@
|
|||
# ALGORITMI CONDIZIONATI
|
||||
Argomenti: istruzione if..else; if nidificati, if in cascata; numerazione binaria, le costanti, operatori
|
||||
aritmetici e logici (AND, OR, NOT).
|
||||
|
||||
### Esercizio 2.1
|
||||
- a) Scrivere un programma in grado di sommare due angoli espressi in gradi, primi e secondi. Per angolo maggiori di 360 gradi occorre ricondursi a valori minori sottraendo un opportuno multiplo di 360 gradi.
|
||||
- b) Scrivere un programma in grado di indicare se un numero intero è divisibile per un altro.
|
||||
- c) Scrivere un programma in grado di indicare quale tra tre numeri è il più piccolo.
|
||||
- d) Scrivere un programma in grado di acquisire quattro numeri reali e stamparli dal più grande al più piccolo.
|
||||
- e) Scrivere un programma che sia in grado di fare la somma di due ore espresse in ore, minuti e secondi.
|
||||
- f) Scrivere un programma in grado di indicare se tre numeri possono essere lati di un triangolo
|
||||
|
||||
(Suggerimento: ad es. i numeri 1, 1, 5 non lo possono essere: la somma di due qualunque di loro deve essere...)
|
||||
### Esercizio 2.7
|
||||
Un vinaio propone uno sconto a chi acquista una quantità minima di vino. Scrivere un programma che
|
||||
visualizzi quanto l’acquirente spende in base alla quantità di vino acquistata. Aggiungere tutti i dati
|
||||
non specificati.
|
||||
|
||||
### Esercizio 2.8 (da fare con l’istruzione switch... case)
|
||||
Scrivere un programma che chiede il tipo di una porta logica (AND, OR, NOT, NAND, EXOR...) e poi i
|
||||
valori degli ingressi: ad ogni esecuzione visualizza il valore dell’uscita.
|
|
@ -0,0 +1,33 @@
|
|||
# ALGORITMI ITERATIVI
|
||||
Argomenti: istruzioni di controllo delle iterazioni: while, do..while, for; scelta delle istruzioni più adatte,
|
||||
flowchart equivalenti delle singole istruzioni; conversione dei flowchart in modo da adattarli alle diverse
|
||||
istruzioni ammesse.
|
||||
|
||||
### Esercizio 3.1
|
||||
- a) Scrivere un programma che stampi una tabella con il quadrato ed il cubo di tutti i numeri interi compresi tra 1 e 2500.
|
||||
- b) Scrivere un programma in grado di stampare tutti i numeri interi multipli di 17 compresi tra 0 e 1000.
|
||||
- c) Scrivere un programma che stampi tutti gli anni bisestili che si sono avuti tra il 1901 e il 1999.
|
||||
|
||||
### Esercizio 3.2
|
||||
Scrivere un programma che richiede diverse volte chi ha fatto punto in una partita di tennis e stampi
|
||||
via via il punteggio, fino a che uno dei due giocatori vince il game.
|
||||
|
||||
### Esercizio 3.3
|
||||
Scrivere un programma che richiede diverse volte chi ha fatto punto in una partita di pallavolo (con il
|
||||
vecchio regolamento: il primo scambio determina chi ha il possesso palla; da quel momento la
|
||||
squadra che vince lo scambio acquisisce un punto se ha il possesso palla, altrimenti acquisisce il
|
||||
possesso della palla; si arriva ai 15 ma con distacco minimo di 2 punti: sul 14-14 si arriva ai 16, sul
|
||||
15-15 si arriva ai 17...) e stampi via via il punteggio, fino a che una delle due squadre vince il set.
|
||||
|
||||
### Esercizio 3.4
|
||||
Modificare l’esercizio 2.8 per chiedere più combinazioni degli ingressi di seguito e più porte logiche di
|
||||
seguito.
|
||||
|
||||
### Esercizio 3.5
|
||||
Scrivere un programma che determina il calcolo si sen(x) con la seguente formula:
|
||||
```bash
|
||||
sen(x) = x – x^3/3! + x^5/5! – x^7/7! +... + (-1)^n x^(2n+1)/(2n+1)!
|
||||
```
|
||||
Il programma usa tanti termini quanti sono necessari ad ottenere una approssimazione di sen(x)
|
||||
inferiore all’uno per cento (Suggerimento: confrontare due risultati successivi, se differiscono “di
|
||||
poco”...)
|
|
@ -0,0 +1,37 @@
|
|||
# LE FUNZIONI
|
||||
Argomenti: definizione di funzione; sintassi e regole per il loro uso; funzioni void; funzioni con valore di
|
||||
ritorno; funzioni con e senza parametri di ingresso; variabili locali e variabili globali; uso delle funzioni per
|
||||
lo sviluppo top down di problemi; passaggio di parametri per valore e per riferimento.
|
||||
|
||||
### Esercizio 4.1
|
||||
Scrivere una funzione per ciascuno dei seguenti semplici problemi:
|
||||
- a) dato un numero restituire il successivo (passo 4 restituisce 5)
|
||||
- b) data una variabile intera ne incrementa il valore (se contiene 33 dopo contiene 34)
|
||||
- c) date due variabili restituisce la somma
|
||||
- d) date tre variabili inserisce la somma delle prime due nella terza
|
||||
- e) chiede all’utente un numero tra min e max (passati) e ne restituisce il valore, consentendo di riprovare se l’input e’ errato
|
||||
- f) dato un numero dice se è primo
|
||||
- g) scambio del contenuto di due variabili intere
|
||||
|
||||
In un unico main chiamare tutte le funzioni e stampare i risultati.
|
||||
|
||||
### Esercizio 4.2
|
||||
Fare diventare delle funzioni almeno cinque dei programmi scritti per gli esercizi dei paragrafi 2 e 3
|
||||
Le funzioni devono eseguire i calcoli richiesti ma non visualizzare nulla: la visualizzazione e la
|
||||
richiesta dei valori di ingresso rimane nel main. Identificare per ogni funzione i parametri di ingresso e
|
||||
eventuali risultati da restituire, verificando se e' il caso di utilizzare delle variabili globali.
|
||||
|
||||
### Esercizio 4.3
|
||||
Realizzare le seguenti funzioni e un main a menù che consenta di eseguirle una alla volta.
|
||||
1. Scomposizione in fattori primi di un numero intero
|
||||
2. Fattoriale di un numero (eventualmente anche con versione ricorsiva)
|
||||
3. Elevamento a potenza intera di un numero reale
|
||||
4. MCD tra due numeri (esistono diverse soluzioni)
|
||||
5. Calcolo del mcm tra due numeri (esistono diverse soluzioni)
|
||||
6. Primalità di un numero intero (N.B. 1 non è considerato numero primo, si parte da due)
|
||||
7. Stampa dei primi N numeri primi
|
||||
8. Calcolo dell'n-esimo numero primo
|
||||
9. Calcolo dei primi N termini della serie di Fibonacci (versione iterativa e/o versione ricorsiva)
|
||||
10. Tabellina pitagorica
|
||||
11. Calcolo della radice quadrata con il metodo dicotomico
|
||||
12. Scambio del contenuto di due variabili
|
|
@ -0,0 +1,50 @@
|
|||
# STRUTTURE DATI COMPLESSE: VETTORI E STRINGHE
|
||||
Argomenti: vettori di tipi primitivi, accesso agli elementi, esplorazione di un vettore, vettori parzialmente
|
||||
riempiti, ordinamento di vettori, le stringhe: definizione, utilizzo, funzioni predefinite (puts e gets) per il
|
||||
loro uso; vettori multidimensionali (matrici); passaggio di vettori alle funzioni.
|
||||
|
||||
### Esercizio 5.1
|
||||
Scrivere queste funzioni di utilità e un main per provarle:
|
||||
- a) una funzione riempi che dato un vettore di numeri reali e la sua dimensione chiede all’utente di inserire tanti valori quanti sono necessari a riempirlo.
|
||||
- b) una funzione riempiRandom che riempie un vettore di dimensione data di valori casuali compresi tra min e max (passati pure loro)
|
||||
- c) una funzione che dato un numero intero lo scopone nei suoi fattori primi e riempie con essi un vettore di dimensioni adeguate
|
||||
- d) una funzione che riempie un vettore di 100 numeri interi con i primi 100 numeri primi
|
||||
- e) una funzione che dato un vettore di 100 numeri interi ne stampa il contenuto ORDINATAMENTE su cinque colonne
|
||||
- f) una funzione che dato un vettore lo riordina in senso crescente con il metodo del selection sort (cerca il più piccolo e lo mette al primo posto, poi cerca il più piccolo tra i rimanenti e lo mette al secondo posto...)
|
||||
- g) una funzione che calcola la media degli elementi presenti in un vettore.
|
||||
- h) una funzione che dato un vettore restituisce quanti elementi sono maggiori della loro media
|
||||
- i) una funzione che scompone un numero intero nei suoi fattori primi e li memorizza in un vettore fornito in input alla funzione stessa assieme al numero. Restituisce quanti fattori sono stati memorizzati (ad esempio: se il numero è 36 memorizza 2, 2, 3, 3 nelle prime quattro celle del vettore e restituisce 4.
|
||||
- j) una funzione che dati due numeri calcola il loro MCD, usando la funzione del punto precedente
|
||||
- k) una funzione che dati due numeri calcola il loro mmc, usando la funzione del punto i)
|
||||
- l) una funzione che dato un numero intero fornisce il numero di fattori primi e il numero di fattori primi distinti (attenzione: deve restituire in qualche modo DUE valori.
|
||||
|
||||
### Esercizio 5.2
|
||||
Scrivere un programma che richiede l'introduzione di 20 numeri interi e produce due vettori, uno che
|
||||
contiene i numeri primi che sono stati introdotti e l'altro gli altri. Dopo richiede all'utente quale dei due
|
||||
vettori deve stampare e produce la visualizzazione richiesta.
|
||||
|
||||
### Esercizio 5.3
|
||||
Scrivere queste funzioni di utilità e un main per provarle:
|
||||
- a) data una stringa restituisce quante vocali contiene.
|
||||
- b) data una stringa ne rovescia il contenuto
|
||||
- c) data una stringa la copia su una seconda stringa rovesciata
|
||||
- d) date due stringhe copia la seconda sulla prima; restituisce quanti caratteri ha copiato;
|
||||
- e) date due stringhe copia la seconda sulla prima ma omettendo le ripetizioni di caratteri;
|
||||
- f) date due stringhe copia la seconda sulla prima mettendo però i caratteri in ordine crescente di codice ASCII;
|
||||
- g) date due stringhe accoda la seconda sulla prima; restituisce la nuova lunghezza della prima stringa.
|
||||
- h) date due stringhe cerca se la seconda è presente all’interno della prima. Se sì restituisce la posizione del primo carattere, altrimenti -1;
|
||||
- i) date due stringhe cerca se la seconda è presente all’interno della prima e restituisce il numero di occorrenze;
|
||||
- j) date due stringhe cerca se la seconda è presente all’interno della prima e la elimina da essa.
|
||||
> Attenzione: possono esserci più occorrenze.
|
||||
- k) Data una stringa e un vettore di 256 interi lo riempie con le occorrenze di ciascuno dei codici ASCII nella stringa.
|
||||
- l) Data una stringa converte tutte le lettere minuscole nelle corrispondenti maiuscole
|
||||
- m)Data una stringa contenente solo cifre restituisce il corrispondente valore intero
|
||||
- n) Dato un numero intero produce una stringa con i separatori delle migliaia (1234 diventa “1.234”).
|
||||
|
||||
### Esercizio 5.5
|
||||
Scrivere una funzione criypt che codifica una stringa in modo da renderla illeggibile a chi non conosce
|
||||
la parola d’ordine di cifratura: ogni lettera della stringa iniziale viene codificata aggiungendo: alla
|
||||
prima la prima lettera della parola d’ordine (es: ‘a’ + ‘c’ diventa ‘d’, ‘y’ + ‘b’ diventa ‘a’); alla seconda la
|
||||
seconda lettera della parola d’ordine e così via. Finita la parola d’ordine si ricomincia. In una prima
|
||||
versione spazi, virgole e caratteri non alfabetici non si toccano.
|
||||
Scrivere poi l’algoritmo e la funzione di decodifica dell’esercizio precedente.
|
|
@ -0,0 +1,15 @@
|
|||
# STRUTTURE DATI COMPLESSE: STRUTTURE
|
||||
Argomenti: definizione di struttura, strutture di dati primitivi, strutture contenenti vettori, strutture di
|
||||
strutture. Definizioni di variabili di tipo struct. Istruzione typedef.
|
||||
|
||||
### Esercizio 6.1
|
||||
Definire una struttura adatta a contenere:
|
||||
- un'ora
|
||||
- una data
|
||||
- un titolo di un brano di un CD e la sua lunghezza
|
||||
- i dati anagrafici di una persona (nome, cognome, data di nascita, indirizio...)
|
||||
- un intero CD compreso di titolo, artista, lista dei brani, costo
|
||||
|
||||
### Esercizio 6.2
|
||||
Scrivere un programma adatto a gestire l’elenco dei film che hai in casa. (tipo, titolo, anno, durata,
|
||||
posizione...).
|
Loading…
Reference in New Issue