Esercizi_estivi_23-24/5 STRUTTURE DATI COMPLESSE ...
Mr SL1D3R deed0640a1 Aggiunti SOLO README 2024-06-12 19:11:15 +02:00
..
README.md Aggiunti SOLO README 2024-06-12 19:11:15 +02:00

README.md

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.