• Non ci sono risultati.

Tracce di esercizi Programmi 1.

N/A
N/A
Protected

Academic year: 2021

Condividi "Tracce di esercizi Programmi 1."

Copied!
2
0
0

Testo completo

(1)

Corso di Laurea in Ingegneria Energetica - Corso di Elementi di Informatica – a.a. 2020/21 Prof. G. A. Di Lucca

Tracce di esercizi

Programmi

1. Data una sequenza di n numeri interi, calcolare la somma dei pari ed il prodotto dei dispari

2. Dati n numeri reali calcolarne la media aritmetica e dire quale è il valore di essi per il quale si registra il massimo scostamento

3. Data una sequenza di numeri visualizzare il numero massimo e quello minimo

4. Dati tre numeri reali dire se essi possono essere la misura dei lati di un triangolo ed in tal caso dire che tipo di triangolo essi formano.

5. Data una sequenza di caratteri alfabetici dire quante volte è presente in essa una data lettera.

6. Data una sequenza di caratteri alfabetici dire quante volte è presente in essa ciascuna lettera.

7. Dato un numero intero n calcolare: la sommatoria e la produttoria dei numeri che precedono ciascun numero da 1 a n;

calcolare inoltre quadrato, il cubo ed il fattoriale di ciascun numero da 1 a n.

8. Risoluzione di un sistema di 2 equazioni in 2 incognite.

9. Risoluzione di un’equazione di II grado.

10. Dato in input un numero compreso tra 1 e 12 indicare, il nome del mese corrispondente, il numero di giorni componenti il mese corrispondente a quel numero (per febbraio si assume sempre 28 giorni) e stampare un asterisco ‘*’ se il mese è un mese invernale, il segno ‘+’ se è estivo, il segno ‘=‘ se primaverile o autunnale (si considera come stagione quella corrente all’inizio del mese)

11. Data, in input da tastiera, una sequenza di 40 numeri interi tutti compresi tra 10 e 20 (estremi inclusi) determinare:

 che il numero dato in input sia compreso nell'intervallo definito, se non lo è bisogna ripetere l’immissione

 quanti dei numeri immessi sono multipli di 3 e visualizza il valore di tale conteggio

 la media di tutti i numeri immessi

12. Scrivere, producendo la necessaria documentazione, un programma che data una sequenza di 30 numeri interi, determini la sommatoria dei numeri con valore pari e la produttoria dei numeri con valore dispari. Inoltre si contino quanti numeri pari e dispari sono stati immessi.

13. Ricerca del valore massimo e del valore minimo in un array monodimensionale di reali con cardinalità 30, con indicazione della loro posizione.

14. Riempire un array monodimensionale di interi con cardinalità 100 con valori uguali al fattoriale dell’indice della rispettiva posizione.

15. Ricerca di un dato valore in un array monodimensionale di interi con cardinalità 60, con indicazione della posizione in cui questo si trova (se il valore è presente più volte indicare il numero delle volte e le rispettive posizioni)

16. Dato un array monodimensionale di interi costruire, a partire dai valori contenuti in questo, un nuovo array in cui ci sono prima tutti i valori pari del primo array e poi tutti quelli dispari.

17. Dato un array monodimensionale di interi costruire, a partire dai valori contenuti in questo, un nuovo array in cui ci sono prima tutti i valori nelle posizioni di indice pari del primo array e poi tutti quelli nelle posizioni di indice dispari (l’indice zero è considerato pari). Calcolare inoltre la sommatoria degli elementi di valore pari e la sommatoria degli elementi di valore dispari

18. Effettuare l’ordinamento decrescente dei valori di un array monodimesionale di reali con cardinalità 50 usando il metodo di selezione

19. Inserire m nuovi valori in un array monodimensionale ordinato di interi (con riempimento r e di cardinalità n>m+r) mantenendo l’ordinamento.

20. Ricerca di una dato carattere in un array monodimensionale di caratteri ordinato utilizzando il metodo della ricerca binaria (o del dimezzamento), con indicazione della posizione in cui questo si trova

21. Dato un array monodimensionale di caratteri ed un dato carattere verificare l’esistenza di tale carattere nello array ed eliminarlo, compattando poi lo array (se l’elemento dato è presente più volte eliminare tutte le sue occorrenze e compattare lo array).

22. Costruire una libreria di sottoprogrammi che effettuano operazioni su array monodimesionali (inserimento, stampa, ordinamento, aggiunta di valori, ricerca, etc.) ed un programma per la sua gestione in modo che un utente possa scegliere quali operazioni effettuare.

23. Data una stringa di caratteri dire quante volte è contenuta in essa la sottostringa 'con'.

24. Data una stringa di caratteri dire quante volte è contenuta in essa una parola data in input.

25. Data una stringa di caratteri, lunga al massimo 250 caratteri, contare gli spazi in essa contenuti.

26. Data una stringa di caratteri, lunga al massimo 250 caratteri, dire quali segni di punteggiatura (quali virgola, punto, punto e virgola, due punti, punto interrogativo, punto esclamativo, ecc.) vi sono in essa e quante volte compare ciascuno di essi.

27. Data una stringa di caratteri dire quante volte compare in essa ciascun carattere (compresi gli spazi ed i segni di punteggiatura) che la costituisce. Registrare la stringa su un file sequenziale

28. Data una stringa di caratteri, lunga al massimo 300 caratteri, inserire il carattere * (asterisco) dopo ogni lettera A che si trova in essa e far stampare la nuova stringa così ottenuta.

29. Data una stringa di caratteri, lunga al massimo 300 caratteri, eliminare tutti gli spazi contenuti in essa compattando e stampando la stringa così ottenuta.

30. Costruire una libreria di sottoprogrammi che effettuano operazioni su stringhe di caratteri (lettura di una stringa, aggiunta di un carattere in una stringa, eliminazione di un carattere in una stringa, ricerca di un carattere in una stringa, ricerca di una sottostringa in una stringa, stampa di una stringa, etc.) ed un programma per la sua gestione in modo che un utente possa scegliere quali operazioni effettuare.

31. Ricerca del valore massimo e del valore minimo in un array bidimensionale di reali, con indicazione della loro posizione.

(2)

Corso di Laurea in Ingegneria Energetica - Corso di Elementi di Informatica – a.a. 2020/21 Prof. G. A. Di Lucca

32. Ricerca di un dato carattere in un array bidimensionale di caratteri, con indicazione della posizione in cui questo si trova (se il valore è presente più volte indicare il numero delle volte e le rispettive posizioni)

33. Dati due array bidimensionali di interi trovare gli elementi con lo stesso valore ed indicarne la posizione.

34. Dato un array bidimensionale di interi trovare il valore massimo e quello minimo per ogni riga.

35. Dato un array bidimensionale di interi trovare il valore massimo e quello minimo per ogni colonna.

36. Dato un array bidimensionale di interi calcolare la sommatoria degli elementi di ciascuna riga e la produttoria degli elementi in ciascuna colonna. Registrare lo array, la sommatoria e la produttoria ottenute su un file sequenziale

37. Dato un array bidimensionale di caratteri eliminare tutti i caratteri doppioni e sostituirli con il carattere ‘?’.

38. Effettuare il prodotto matriciale (riga per colonna) tra due array bidimensionali di reali.

39. Effettuare il prodotto vettoriale tra due array monodimensionali di interi.

40. Dato un array bidimensionale di reali ed un numero reale eliminare dallo array tutte le righe per cui la sommatoria dei relativi elementi è maggiore del numero dato e compattare man mano lo array.

41. Dato un array bidimensionale di reali, formato da 10 righe e 10 colonne, effettuare la sommatoria degli elementi appartenenti alla diagonale principale e delle diagonali parallele a questa.

42. Dato un array bidimensionale di reali determinare la riga per cui la sommatoria degli elementi è massima.

43. Costruire una matrice M di interi in cui ciascun elemento M(i,j) è pari a M(i,j)=(i! + j!).

44. Calcolare la trasposta di una matrice di reali. Registrare su un file sequenziale sia la matrice di partenza che la sua trasposta.

45. Realizzare, utilizzando un array monodimensionale di record, un elenco degli studenti del corso riportante il cognome, nome, numero di matricola, numero di giorni di presenza al corso per ciascuno di essi ed ordinarlo in modo crescente rispetto al numero di presenze. Registrare l’elenco su un file sequenziale.

46. Registrare su un file sequenziale un elenco degli studenti del corso riportante il cognome, nome, numero di matricola, numero di giorni di presenza al corso per ciascuno di essi, voto ottenuto in sede di esame, e calcolare la media dei voti. Una volta riempito il file, leggerne il contenuto e stamparlo.

47. Realizzare, utilizzando un array monodimensionale di record, un elenco degli studenti del corso riportante il cognome, nome, numero di matricola, numero di giorni di presenza al corso per ciascuno di essi ed ordinarlo in modo crescente rispetto al numero di matricola. Registrare l’elenco su un file sequenziale.

48. Calcolare la trasposta di una matrice di reali. Registrare su un file sequenziale sia la matrice di partenza che la sua trasposta.

49. Realizzare, utilizzando un array monodimensionale di record, un elenco degli studenti del corso riportante il cognome, nome, numero di matricola, numero di giorni di presenza al corso per ciascuno di essi ed ordinarlo in modo crescente rispetto al numero di presenze. Registrare l’elenco su un file sequenziale.

50. Registrare su un file sequenziale un elenco degli studenti del corso riportante il cognome, nome, numero di matricola, numero di giorni di presenza al corso per ciascuno di essi, voto ottenuto in sede di esame, e calcolare la media dei voti. Una volta riempito il file, leggerne il contenuto e stamparlo.

51. Realizzare, utilizzando un array monodimensionale di record, un elenco degli studenti del corso riportante il cognome, nome, numero di matricola, numero di giorni di presenza al corso per ciascuno di essi ed ordinarlo in modo crescente rispetto al numero di matricola. Registrare l’elenco su un file sequenziale.

52. Scrivere un programma per la gestione di una pila (stack) di massimo 80 elementi: la pila (implementata tramite un array statico) contiene delle monete di euro (di vario valore) e si vuole sapere il valore totale di tutte le monete inserite nella pila ed il valore totale di tutte quelle estratte da essa.

53. Realizzare, utilizzando un array monodimensionale di record, un elenco degli studenti del corso riportante il cognome, nome, numero di matricola, numero di giorni di presenza al corso per ciascuno di essi ed ordinarlo in modo crescente rispetto al cognome. Registrare l’elenco su un file casuale.

54. Registrare su un file ad accesso casuale i prodotti esistenti in un magazzino riportando, per ogni prodotto, il codice (un numero intero progressivo che individua univocamente quel prodotto e che indica la posizione della registrazione nel file), il nome, la casa produttrice, il prezzo di vendita unitario, il costo di acquisto unitario, la giacenza in magazzino, in numero totale di pezzi venduti. Il programma, inoltre, deve poter accedere ad un prodotto (identificato tramite il codice ) in modo che possa essere aggiornata la giacenza e il numero totale di pezzi venduti, o cancellare quel prodotto dal file. Il magazzino gestisce al più 300 prodotti diversi.

55. Scrivere un programma per la gestione di una coda di massimo 120 elementi: la coda (implementata tramite un array statico) contiene record con il cognome e nome di persone che aspettano il loro turno ad uno sportello di un ufficio postale.

56. Scrivere un programma per la gestione di una tabella (creazione, accesso e modifica di una riga, aggiunta/eliminazione di una riga) riportante le informazioni di autoveicoli (n.ro di targa, marca, modello, cilindrata, tipo alimentazione, prezzo). La tabella, implementata con un array statico, può contenere al massimo 300 righe. Registrare le informazioni contenute nella tabella in un file ad accesso casuale.

Note per sostenere la verifica finale in laboratorio:

Lo studente svilupperà almeno 5 programmi tra quelli riportati nella precedente lista, di cui almeno 4 dovranno essere tra quelli non realizzati durante le lezioni/esercitazioni del Corso, almeno uno sviluppato utilizzando sottoprogrammi, ed almeno uno utilizzante file (ad accesso sequenziale o casuale).

Ciascun programma dovrà essere accompagnato da una adeguata documentazione, come indicato durante il Corso, ed implementato utilizzando il linguaggio di programmazione C.

Gli elaborati così realizzati dovranno essere presentati in sede di esame sia in forma stampata che su supporto di memoria di massa non fisso (es. USB stick, SSD, etc.), su cui essi saranno registrati, in modo da poterne verificare l’esecuzione in sede di verifica finale in laboratorio.

Riferimenti

Documenti correlati

Esercizio 2a: Dato un meccanismo di message passing sincrono (dotato delle chiamate ssend sreceive viste a lezione) im- plementare un sistema di supporto per il message passing

Esercizio 0: Scrivere correttamente il proprio nome, cognome e numero di matricola in ogni foglio prima di svolgere ogni altro esercizio seguente.. Esercizio 1: Un semaforo ternario `

request è utile per riattivare un processo in attesa; xmf può valere m (sblocca un processo in attesa maschile) f (riattiva un processo in attesa femminile) a (any, sblocca

Quando un processo ha necessità di operare in mutua esclusione spedisce il gettone al proprio thread di gestione del gettone, questo non appena riceve il gettone lo mantiene (non

Dato un supporto di semafori Fair caratterizzato dalle chiamate P e V implementare un supporto per semafori unfair, che quindi rispettino gli invarianti del semafori ma che

Esercizio 5: Indicare le modifiche da apportare al codice dell'esercizio 1 per gestire classi di messaggi con diversa priorità, ipotizzare che la funzione class(f) restituisca

Tutte le comunicazioni sono asincrone, i ritardi sono impredicibili ma in genere inferiori a t millisecondi, ad eccezione della comunicazione fra il clock e l'handler che ha

Realizzare, utilizzando un array monodimensionale di record, un elenco degli studenti del corso riportante il cognome, nome, numero di matricola, numero di giorni