ripasso e recupero estivo

Conversione da Gradi Fahrenheit a Gradi Celsius
Descrivere un algoritmo in linguaggio C che calcoli la temperatura in gradi Celsius data una temperatura in
gradi Fahrenheit (la formula da usare è C = 5 (F - 32)).
Calcolo delle 2 Cifre Meno Significative di un Intero
Descrivere un algoritmo in linguaggio C che dato un numero intero calcoli da quante unità e decine è
composto. Esempio, 74536 è composto da 6 unità e 3 decine.
Il Problema del Cassiere
Descrivere un algoritmo in linguaggio C che data una cifra espressa in euro, calcoli per ogni banconota e
moneta il numero di pezzi che occorrono per formarla, tenendo conto che il numero di pezzi totale deve
essere minimo. Ad esempio il numero minimo di pezzi per formare la cifra 979,48 è: 1 da 500, 2 da 200, 1
da 50, 1 da 20, 1 da 5, 2 da 2, 2 da 20cents, 1 da 5 cents, 1 da 2 cents, 1 da 1 cents.
Differenza di due tempi
Scrivere un programma che dati due tempi espressi in ore, minuti e secondi, ne calcoli la differenza,
esprimendola in ore, minuti e secondi.
Minimo di due tempi
Scrivere un programma che dati due tempi espressi in ore, minuti e secondi, stabilisca qual è il più piccolo.
Minimo fra quattro numeri
Scrivere un programma che calcoli il minimo di 4 numeri.
Somma numeri dispari
Scrivere un programma C che stampi l’elenco e la somma dei primi n numeri dispari > 1, dove n è un dato
di tipo intero letto da input standard. Esempio, se n = 4 il programma dovrà stampare l’elenco 1,3,5,7 e la
loro somma, 16.
Primalità
Scrivere un programma C che dato un intero p stabilisca se questo è primo o meno;
Fattoriale
Scrivere un programma C che dato in ingresso un intero N calcoli N !
Occorrenza dello zero in un numero
Scrivere un programma C che dato un intero N, stabilisca se tra le cifre di N occorre la cifra zero. Esempio:
la cifra zero non occorre nel numero 1854732, mentre occorre nel numero 360709.
Contrario di un intero
Scrivere un programma C che fornito in input un intero N, calcoli l'intero M ottenuto scrivendo al contrario
le cifre di N. Esempio se N=843098 allora M=890348.
Somma di una sequenza di numeri
Scrivere un programma C che legge da input standard una sequenza di interi terminata dallo 0 (cioè non si
sa a priori quanti elementi ci sono nella sequenza, ma si sa che l'ultimo elemento è lo 0). Il programma
deve stampare la somma di tutti gli elementi della sequenza. Esempio, se la sequenza è composta da
1,2,3,3,-1,-1,-1,0, il programma dovrà stampare 6.
Minimo fra quattro numeri
Scrivere un programma C che calcoli la sequenza dei primi N numeri primi, dove N è fornito in input.
Elenco dei Fattori Primi di un Intero
Scrivere un programma C che dato in ingresso un intero N > 1 fornisca su standard output l’elenco dei
fattori primi di N .
Fattorizzazione di un Intero
Scrivere un programma C che dato in ingresso un intero N > 1 fornisca su standard output la fattorizzazione
di N .
Triangolo di Tartaglia
Scrivere un programma C che dato un intero M>0, stampi le prime M righe del triangolo di Tartaglia.
Elenco di Numeri Primi
Scrivere un programma che calcoli la sequenza dei primi N numeri primi, dove N ≤ 1000 è fornito in input.
Merge di Due Vettori Ordinati
Scrivere una funzione C che dati due vettori ordinati di 1000 interi v1 e v2 restituisca attraverso un
parametro formale v3 la fusione ordinata di v1 e v2.
Ricerca Dicotomica
Scrivere una funzione C che implementi la ricerca dicotomica su un vettore di 1000 interi.
Posizione del Minimo di un Vettore
Scrivere una funzione C che dato un parametro formale vett di tipo vettore di 1000 interi restituisce
attraverso il valore di ritorno la posizione del primo valore minimo.
Ordinamento di un Vettore
Scrivere tre funzioni C che ordinino un vettore di 1000 interi secondo gli algoritmi shaker-sort, select-sort,
insert-sort.
Radice quadrata intera
Dato un numero naturale X, la radice quadrata intera di X è il più grande numero intero y tale che
y2 < X. Quindi la radice quadrata intera di 34 è 5.
Scrivere una funzione C che dato un intero ne calcoli la radice quadrata intera.
Elenchi di potenze
• Scrivere un programma C che dati due interi base ed esponente, stampi il valore di base1, base2, . . . ,
baseesponente ;
• Scrivere un programma C che dati due interi baseMax e espMax, stampi il valore di base1, base2, . . . ,
baseespMax , per base che varia tra 2 e baseMax
es. baseMax=4 e espMax=3: ( 21 22 23 31 32 33 41 42 43 )
2 4 8 3 9 27 4 16 64
Elenchi di somme
• Scrivere un programma C che dato un numero naturale N stampi l’elenco di tutte le possibili somme del
tipo x+y, dove 1 ≤ x , y ≤ N ;
• Scrivere un programma C che dato un numero naturale N stampi l’elenco di tutte le possibili somme del
tipo x + y, dove 1 ≤ x ≤ y ≤ N ;
Elenco di Numeri Primi con il Metodo del Crivello
Scivere un programma che calcoli la sequenza dei primi N numeri primi, dove N è fornito in input,
utilizzando il metodo del crivello di Eratostene.
Vari
a) Scrivere una funzione C con due parametri interi A e B che restituisce 1 se A è divisibile per B, 0
altrimenti.
b) Scrivere una funzione C che riceve attraverso un parametro A un intero e che restituisce attraverso un
opportuno parametro il numero di divisori di A.
c) Scrivere una funzione C che riceve attraverso un parametro A un intero e che restituisce attraverso un
opportuno parametro il massimo dei divisori di A.
d) Scrivere una funzione C che riceve attraverso un parametro A un intero e che restituisce attraverso un
opportuno parametro il minimo dei divisori di A.
e) Scrivere una funzione C che riceve un float A positivo e restituisce il più piccolo intero maggiore di A.
f) Scrivere una funzione C che riceve un float A positivo e restituisce il più grande intero minore di A.
g) Scrivere una funzione C che riceve attraverso un parametro A di tipo char un carattere e restituisce il
carattere successivo.
h) Scrivere una funzione C con due parametri A di tipo char e B di tipo int che restituisce il B-esimo
carattere dopo A.
i) Scrivere una funzione C che riceve attraverso un parametro A di tipo char un carattere e restituisce il
carattere minuscolo se A è un carattere maiuscolo, altrimenti restituisce il carattere A.
j) Scrivere una funzione C con due parametri, A e B di tipo char, che restituisce il numero di caratteri tra A
e B inclusi. Non è detto carattere A preceda B.
k) Scrivere una funzione C che riceve attraverso un parametro A un intero e restituisce 1 se A rappresenta
un anno bisestile, 0 altrimenti. Si ricorda che un anno è bisestile se è divisibile per 4 eccetto per gli anni
di inizio secolo che sono bisestili solo se divisibili per 400.
l) Scrivere una funzione C che riceve attraverso un parametro A un tempo in secondi (int) e restituisce
attraverso tre parametri, le ore, i minuti ed i secondi contenuti in A.
m) Scrivere un programma C che ricevuto in input un intero n (con 1 ≤ n ≤ 5) stampi un quadrato costituito
da nxn quadrati di asterischi di dimensione nxn.
es. n=3
Data la definizione di tipo: typedef int TArray[100];
(a) Scrivere una funzione con un parametro v di tipo TArray che inverte v restituendo il risultato
attraverso un opportuno parametro.
esempio: se alla chiamata della funzione v contiene 10579, quando la funzione termina v deve contenere
97501.
(b) Scrivere una funzione con un parametro v di tipo TArray che restituisce 1 se gli elementi di v sono
ordinati in modo strettamente decrescente, 0 altrimenti.
(c) Scrivere una funzione con parametro v di tipo TArray e parametro k di tipo intero, che restituisce la
somma degli elementi di v che sono strettamente maggiori di k.
(d) Scrivere una funzione con parametro v di tipo TArray che restituisce 1 se v contiene almeno due
elementi uguali in posizioni consecutive.
esempi: se v contiene 9799010102 allora la funzione deve restituire 1. Se v contiene 97980120 allora la
funzione deve restituire 0.
(e) Scrivere una funzione con parametro v di tipo TArray che restituisce il massimo numero di elementi
uguali in posizioni consecutive.
esempio: se V contiene 979990112 allora la funzione deve restituire 3.
(f ) Negli esercizi precedenti, ove possibile scrivere le funzioni in modo che il risultato venga restituito sia
come parametro che come valore di ritorno.