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.