Aggiunti SOLO README

This commit is contained in:
Mr SL1D3R 2024-06-12 19:11:15 +02:00
parent e356a2c95b
commit deed0640a1
8 changed files with 172 additions and 0 deletions

View File

@ -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...)

View File

@ -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 lacquirente spende in base alla quantità di vino acquistata. Aggiungere tutti i dati
non specificati.

View File

@ -0,0 +1,3 @@
### Esercizio 2.8 (da fare con listruzione 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 delluscita.

View File

@ -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 lacquirente spende in base alla quantità di vino acquistata. Aggiungere tutti i dati
non specificati.
### Esercizio 2.8 (da fare con listruzione 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 delluscita.

View File

@ -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 lesercizio 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 alluno per cento (Suggerimento: confrontare due risultati successivi, se differiscono “di
poco”...)

37
4 LE FUNZIONI/README.md Normal file
View File

@ -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 allutente un numero tra min e max (passati) e ne restituisce il valore, consentendo di riprovare se linput 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

View File

@ -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 allutente 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 allinterno della prima. Se sì restituisce la posizione del primo carattere, altrimenti -1;
- i) date due stringhe cerca se la seconda è presente allinterno della prima e restituisce il numero di occorrenze;
- j) date due stringhe cerca se la seconda è presente allinterno 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 dordine di cifratura: ogni lettera della stringa iniziale viene codificata aggiungendo: alla
prima la prima lettera della parola dordine (es: a + c diventa d, y + b diventa a); alla seconda la
seconda lettera della parola dordine e così via. Finita la parola dordine si ricomincia. In una prima
versione spazi, virgole e caratteri non alfabetici non si toccano.
Scrivere poi lalgoritmo e la funzione di decodifica dellesercizio precedente.

View File

@ -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 lelenco dei film che hai in casa. (tipo, titolo, anno, durata,
posizione...).