From deed0640a19c7a11eae0a9c464896002307b7e4a Mon Sep 17 00:00:00 2001 From: Mr SL1D3R <76396365+Mr-sl1d3r@users.noreply.github.com> Date: Wed, 12 Jun 2024 19:11:15 +0200 Subject: [PATCH] Aggiunti SOLO README --- 2 ALGORITMI CONDIZIONATI/Es 1/README.md | 9 ++++ 2 ALGORITMI CONDIZIONATI/Es 7/README.md | 4 ++ 2 ALGORITMI CONDIZIONATI/Es 8/README.md | 3 ++ 2 ALGORITMI CONDIZIONATI/README.md | 21 ++++++++ 3 ALGORITMI ITERATIVI/README.md | 33 ++++++++++++ 4 LE FUNZIONI/README.md | 37 ++++++++++++++ .../README.md | 50 +++++++++++++++++++ .../README.md | 15 ++++++ 8 files changed, 172 insertions(+) create mode 100644 2 ALGORITMI CONDIZIONATI/Es 1/README.md create mode 100644 2 ALGORITMI CONDIZIONATI/Es 7/README.md create mode 100644 2 ALGORITMI CONDIZIONATI/Es 8/README.md create mode 100644 2 ALGORITMI CONDIZIONATI/README.md create mode 100644 3 ALGORITMI ITERATIVI/README.md create mode 100644 4 LE FUNZIONI/README.md create mode 100644 5 STRUTTURE DATI COMPLESSE VETTORI E STRINGHE/README.md create mode 100644 6 STRUTTURE DATI COMPLESSE STRUTTURE/README.md diff --git a/2 ALGORITMI CONDIZIONATI/Es 1/README.md b/2 ALGORITMI CONDIZIONATI/Es 1/README.md new file mode 100644 index 0000000..d9637fa --- /dev/null +++ b/2 ALGORITMI CONDIZIONATI/Es 1/README.md @@ -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...) diff --git a/2 ALGORITMI CONDIZIONATI/Es 7/README.md b/2 ALGORITMI CONDIZIONATI/Es 7/README.md new file mode 100644 index 0000000..e6434ad --- /dev/null +++ b/2 ALGORITMI CONDIZIONATI/Es 7/README.md @@ -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. diff --git a/2 ALGORITMI CONDIZIONATI/Es 8/README.md b/2 ALGORITMI CONDIZIONATI/Es 8/README.md new file mode 100644 index 0000000..f52de9e --- /dev/null +++ b/2 ALGORITMI CONDIZIONATI/Es 8/README.md @@ -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. \ No newline at end of file diff --git a/2 ALGORITMI CONDIZIONATI/README.md b/2 ALGORITMI CONDIZIONATI/README.md new file mode 100644 index 0000000..310f892 --- /dev/null +++ b/2 ALGORITMI CONDIZIONATI/README.md @@ -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. \ No newline at end of file diff --git a/3 ALGORITMI ITERATIVI/README.md b/3 ALGORITMI ITERATIVI/README.md new file mode 100644 index 0000000..c5e036d --- /dev/null +++ b/3 ALGORITMI ITERATIVI/README.md @@ -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”...) \ No newline at end of file diff --git a/4 LE FUNZIONI/README.md b/4 LE FUNZIONI/README.md new file mode 100644 index 0000000..c25bd07 --- /dev/null +++ b/4 LE FUNZIONI/README.md @@ -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 \ No newline at end of file diff --git a/5 STRUTTURE DATI COMPLESSE VETTORI E STRINGHE/README.md b/5 STRUTTURE DATI COMPLESSE VETTORI E STRINGHE/README.md new file mode 100644 index 0000000..f87eaff --- /dev/null +++ b/5 STRUTTURE DATI COMPLESSE VETTORI E STRINGHE/README.md @@ -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. \ No newline at end of file diff --git a/6 STRUTTURE DATI COMPLESSE STRUTTURE/README.md b/6 STRUTTURE DATI COMPLESSE STRUTTURE/README.md new file mode 100644 index 0000000..f6c958a --- /dev/null +++ b/6 STRUTTURE DATI COMPLESSE STRUTTURE/README.md @@ -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...). \ No newline at end of file