Esercizi_estivi_23-24/5 STRUTTURE DATI COMPLESSE .../README.md

50 lines
4.4 KiB
Markdown
Raw Normal View History

2024-06-12 17:11:15 +00:00
# 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.