Giovedì 2 Settembre 2010
Esercizi Base di programmazione
Esercizi Base di programmazione (le soluzioni arriveranno)

Il numero dell'esercizio è il link al sorgente C dell'esercizio relativo.

SEZIONE 1: input, output e variabili

Esercizio Testo
01x01 Chiedere in input 2 numeri interi e stamparli a video.
01x02 Chiedete in input 2 numeri ed eseguite la media e mostratela a video.
01x03 Chiedete in input il raggio di una circonferenza e mostrate a video il valore del diametro, della circonferenza e dell'area.
01x04 Dati in input 2 numeri in 2 variabili diverse, scambiarli di posizione. (Suggerimento: per lo scambio dei valori, utilizzate una variabile temporanea di supporto).
01x05 Richiedete in input una stringa e stampate solo i primi 5 caratteri (Suggerimento: la funzione scanf permette varie opzioni di acquisizione, scopritele).
01x06 Richiedete in input una stringa e stampare a video l'indirizzo della variabile (Suggerimento: la funzione printf permette anch'essa varie opzioni)

SEZIONE 2: if-else e switch

Esercizio Testo
02x01 Chiedere in input 2 numeri interi e stamparli in ordine crescente.
02x02 Chiedete in input 3 numeri interi e stamparli in ordine decrescente.
02x03 Dati in input 2 numeri interi, sommarli e stampare il risultato solo se è dispari.
02x04 Date in input due stringhe, determinare se sono uguali. (Suggerimento: in C/C++ non si possono eguagliare 2 stringhe, al massimo si possono confrontare carattere per carattere. Per questo esiste la funzione strcmp(string1,string2) nella libreria <string.h>)
02x05a
02x05b
Dato in input un numero dall'1 al 12, stampare a video il nome del mese corrispondente (Suggerimento: fatelo sia con l'if-else che con lo switch, così capite bene la convenienza)
02x06 Dato in input il numero del giorno, il numero del mese e l'anno, dire se il numero del giorno è corretto (Per esempio il 31 aprile deve dare errore, e il 29 febbraio deve essere verificato solo nei mesi bisestili).
02x07 Chiedere in input 2 numeri reali e chiedere all'utente l'operazione da eseguire ( + , - , / , * , radice quadrata , potenza).
(Suggermimento: per la radice quadrata viene preso solo il primo numero e la funzione che la esegue si chiama sqrt(numero), mentre per la potenza il primo numero è la base, il secondo è l'esponente e la funzione è pow(base,esponente), ricordarsi che la base NON può essere negaiva! Per entrambi le funzioni serve aggiungere la libreria <math.h>)
02x08 Dato in input un importo tra 0 e 1000000,00 di euro scrivere il numero in parole.
Esempio:
input: 1435,35
output: millequattrocentotrentacinque euro e trentacinque centesimi

SEZIONE 3: Cicli while, do-while e for

Esercizio Testo
03x01a
03x01b
03x01c
Stampare a video i primi 100 numeri interi (Provare con tutti i tipi di cicli).
03x02 Tramite il ciclo do-while acquisire un numero tra lo 0 e il 50 e stamparlo (Fate in modo che ciò che stampate sia sempre un numero "validato")
03x03 Dati in input due numeri (il primo minore del secondo, eseguire l'input in un ciclo do-while) eseguire un ciclo while che stampi a video tutti i numeri compresi (estremi inclusi) tra i due.
03x04 Dato in input un numero calcolarne il fattoriale (l'operatore fattoriale è definito SOLO sui numeri interi positivi).
Attenzione!! Per problemi di dimensioni delle variabili (si suppone l'uso di variabili di tipo INT) l'operazione fattoriale è valida fino al fattoriale di 12 in quanto oltre il tipo INT non è più in grado di rappresentare il numero.
03x05 Dati in input 2 numeri eseguire la potenza del primo numero elevato al secondo numero, senza usare la funzione pow().
03x06 Dato in input un numero intero positivo (validarlo) scrivere la sequenza dei numeri primi tra 0 e quel numero. (Suggerimento: per verificare che un numero sia primo, il resto della divisione tra il numero e tutti i suoi predecessori, escluso l'1, deve dare un risultato diverso da 0. l'operatore "resto della divisione" è il %)
03x07 Implementare il gioco del Black Jack.
Inizialmente sul tavolo si trova una carta scoperta, l'utente sceglie se scoprirne un'altra o meno. Se ne scopre un altra il punteggio viene sommato e se sfora il giocatore è fuori, altrimenti può continuare a giocare. Se decide di fermarsi allora il computer scoprirà le sue carte fino a che o avrà raggiunto o superato il punteggio di 17 o fino a che non avrà superato il punteggio dell'utente (in base a ciò che gli conviene).

Per estrarre una carta usate la funzione rand() che restituisce un numero tra 0 e 1 in modo pseudocasuale (necessita di una inizializzazione e della libreria <time.h>).

All'inizio del programma dovete inizializzare i numeri casuali in questo modo:
time_t t;
srand(time(&t));

SEZIONE 4: Le funzioni

Esercizio Testo
04x01 Scrivere una funzione che dati in input due variabili, le scambia di posizione (01x04).
04x02 Implementare la funzione double mypow (double base, double esponente).
04x03 Implementare una funzione bool isFirst ( int ) che dato in input un numero stabilisce se è primo (Ritornando un dato booleano).
04x04 Creare una funzione ricorsiva che, dato in input un numero intero positivo, ritorna il valore della sequenza di fibonacci corrispondente.
04x05 Creare una funzione ricorsiva che calcoli la divisione tra due numeri (Ovviamente senza l'utilizzo dell'operatore '/')
04x06 Date in input 2 date nel formato gg-mm-aaaa, create due funzioni: la prima, data in input una stringa con una data nel formato sopracitato, verifichi che sia corretta; la seconda date in input 2 stringhe con le date nel solito formato, stabilisca quale delle due è quella più vecchia.

Torna indietro


Commenti: 0

Nome:
Messaggio:
Riscrivi il codice:

Non รจ stato inviato nessun commento!

Filtra per Tag:

-Windows (9)
-HowTo (7)
-Server (6)
-Linux (4)
-Hardware (4)
-e-commerce (3)
-Programmazione (2)
-Wireless (2)
-eMule (2)
-nVidia (2)
-PDF (1)
-Arduino (1)
-Elettronica (1)
-WEB (1)
-Trashware (1)
-IRC (1)
-Puttanate (1)