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

50 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.