

Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Sette esercizi di laboratorio relativi all'utilizzo di vettori e funzioni in programmazione C. Ogni esercizio presenta obiettivi specifici e contenuti tecnici da indagare. Si tratta di esercizi da svolgere in laboratorio, ad eccezione dell'esercizio 4, che può essere risolto a casa.
Tipologia: Appunti
1 / 3
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!


Obiettivi dell’esercitazione Scrivere programmi che utilizzino caratteri e stringhe Contenuti tecnici Uso avanzato delle funzioni e dei vettori Uso del tipo char Uso delle funzionalità contenute in ctype.h e math.h Da risolvere preferibilmente in laboratorio Esercizio 1. Si scriva un programma C che, dati due vettori di uguale dimensione N (vbase e vexponent), elevi ciascun elemento del vettore vbase alla potenza indicata nell’elemento di vexponent avente lo stesso indice (ossia vbase[i] elevato a vexponent[i]). I risultati dovranno essere memorizzati nella corrispondente posizione di un terzo vettore denominato vres. Si utilizzi la funzione power definita nel corso del precedente laboratorio e avente il seguente prototipo: int power(int base, int exponent); Vengano inseriti prima i valori delle N basi e poi quelli degli N esponenti; vengano alla fine visualizzati i valori di vres. Esempio Siano inseriti dall’utente i valori seguenti (per N pari a 5): vbase 5 2 7 4 9 vexponent 2 6 1 8 3 Il vettore risultato sarà il seguente: vres 25 64 7 65536 729 Suggerimento: richiamare tante volte la funzione power quanti sono gli elementi dei vettori e ogni volta salvare il contenuto in una posizione opportuna di vris. Esercizio 2. Si scriva un programma C che a. nel main chieda all’utente di inserire N valori e li metta in un vettore vett, quindi chieda un ulteriore valore x b. passi sia il vettore sia x ad una funzione che moltiplichi ciascuno degli elementi del vettore per x e il cui prototipo sia void mult(int v[], int n, int x); Il main poi visualizzi il vettore dopo la moltiplicazione. Nota bene: la funzione riceve il vettore per riferimento e quindi può modificare i valori stessi del vettore. Esercizio 3. Si scriva un programma C che acquisisca caratteri da tastiera fino alla ricezione di un “a capo”. Dopo tale evento il programma deve fornire all’utente le seguenti statistiche: a. il numero di caratteri introdotti; b. il numero di caratteri alfabetici; c. il numero di caratteri maiuscoli; d. il numero di cifre decimali;
e. il numero di caratteri di spaziatura; f. Il numero di parole digitate, dove per parola si intende una sequenza di caratteri alfabetici contigui (“ciao 123 mondo !” dà 2 parole). Suggerimento: Si utilizzino le funzioni della libreria standard dichiarate nell’header file <ctype.h> e si utilizzi una singola variabile di tipo carattere per l’acquisizione. Da risolvere a casa Esercizio 4. Si scriva un programma in grado di manipolare gli elementi di un vettore di interi. Tale programma, dopo aver acquisito il contenuto del vettore, invoca due funzioni: a. avgVect: calcola la media degli elementi del vettore, restituendo tale valore alla funzione chiamante; b. upperLimit: conta il numero di elementi che hanno valore superiore ad un certo limite, restituendolo alla funzione chiamante. Il programma deve infine visualizzare la media dei valori del vettore e il numero di elementi che superano la media. Suggerimento: per la funzione mediaVett il prototipo sarà: float avgVect (int v[], int n); mentre per la funzione superanoLimite il prototipo sarà: int upperLimit (int v[], int n, float limit); Approfondimento: si condensino le due funzioni descritte in un’unica funzione che restituisca il valore medio e che memorizzi nella variabile corrispondente al parametro superiori del prototipo il numero di elementi di valore superiore alla media: float over_Avg (int v[], int n, int *superiori); Esercizio 5. Si scriva un programma C che: a. definisca due variabili di tipo carattere; b. ne acquisisca il contenuto da tastiera; c. stabilisca se i caratteri sono entrambi alfabetici: i. in caso positivo, controlli se sono uguali e, se non lo sono, stampi i due caratteri in ordine alfabetico; ii. in caso negativo, specifichi tramite messaggio se almeno uno dei caratteri è una cifra. Esercizio 6. Si realizzi un programma che permetta di inserire da tastiera un testo e che lo stampi su video, cambiando in maiuscolo ogni carattere di inizio parola. Ad esempio se in ingresso viene fornito il seguente testo: fatti non foste per viver come bruti ma per seguir virtute e canoscenza su video deve apparire così: Fatti Non Foste Per Viver Come Bruti Ma Per Seguir Virtute E Canoscenza