Strumenti Utente

Strumenti Sito


fisica:informatica:201516:secondoanno:laboratorio_3

Questa è una vecchia versione del documento!


Esercitazione 3

Oggi dovremo di nuovo usare funzioni sui reali.

Ma il C non ha operatori nativi del linguggio per queste operazioni, come la radice quadrata, l'elevamento a potenza o l'arrotondamento.

Per effettuare questa operazione si fa ricorso a funzioni della libreria matematica dichiarata con

 #include <math.h> 
 

che realizza le funzioni matematiche più comuni (assicuratevi di avere l'opzione -lm al momento della compilazione come ultima opzione):

   gcc nome.c -o nome -lm

Alcune funzioni matematiche utili della libreria <math.h>:

double floor(double x)  
 

il più grande intero non maggiore di x (per numeri maggiori di 0, la parte intera di x)

double ceil(double x)  
 

il più piccolo intero non minore di x (per numeri maggiori di 0, la parte intera +1 di x)

double pow(double x, double y) 
 

x elevato alla y

double sqrt(double x)

radice quadrata di x (vedere http://it.wikipedia.org/wiki/Math.h per ulteriori funzioni e dettagli)

Gli esercizi di oggi vanno risolti usando solamente costrutti iterativi. Per chi sapesse come usare gli array, questi non vanno usati per risolvere gli esercizi

Nella propria home directory creare una sotto directory chiamata es03, in cui metteremo tutti i file C di oggi.

Esercizio 1

Scrivere il programma calcolatrice che legge un valore di tipo double, uno di tipo char e poi ancora uno di tipo double. Se il carattere letto è uno dei quattro segni di operazioni aritmetiche (+, -, *, /) il programma esegue l'operazione sui due valori e stampa il risultato. Altrimenti stampa un messaggio di errore. Stampare i risultati con al max 2 cifre decimali.

Esercizio 2

Nella morra due giocatori si sfidano scegliendo un simbolo ciascuno tra sasso, forbici e carta: due simboli uguali pareggiano, mentre il sasso batte le forbici, le forbici battono la carta, e la carta batte il sasso.

Scrivere il programma morra che gestisce una sfida tra PC e utente:

  • (i) generando un numero casuale da 1 a 3 così definiti:
    • 1: sasso,
    • 2: forbici,
    • 3: carta (utilizzare il costrutto #define per rendere leggibile l'associazione tra il numero e il simbolo)
  • (ii) leggendo un carattere ('s': sasso, 'f': forbici, 'c': carta)
  • (iii) stampando l'esito del confronto.

Se l'utente immette un carattere diverso da 's', 'f' e 'c' allora perde comunque.

Esercizio 3

Scrivere un programma che esegue istruzioni for per stampare le seguenti serie di numeri:

  • (i) 1, 2, 3, 4, 5, 6, 7
  • (ii) 3, 8, 13, 18, 23
  • (iii) 20, 14, 8, 2, -4, -10
  • (iv) 19, 27, 35, 43, 51

Esercizio 4

Modificare il programma precedente in modo da usare solo istruzioni while per i cicli

Esercizio 5

Scrivere un programma che calcoli e visualizzi la somma degli interi pari da 2 a 1000 (estremi compresi)

Esercizio 6

Scrivere un programma che chieda all'utente di inserire una sequenza di interi maggiori di 0 (terminata quando l'utente inserisce uno zero, che non fa parte della sequenza). Calcolare e stampare la somma e la media dei valori inseriti.

Esercizio 7

Scrivere un programma che chieda all'utente di inserire una sequenza di interi maggiori di 0 (terminata quando l'utente inserisce uno zero, che non fa parte della sequenza). Stampare il minimo e il massimo della sequenza, il numero di occorrenze del minimo e il numero di occorrenze del massimo.

Esercizio 8

Scrivere un programma rettangolo che legge due interi positivi A e B e quindi stampa un rettangolo di dimensioni AxB usando il carattere '*'. Esempio di rettangolo 5*3:

*****
*****
*****

Esercizio 9

Scrivere un programma isoscele che chieda all'utente un intero n e stampi un triangolo isoscele di asterischi, di altezza lunga n e base lunga 2n-1. (Se il valore letto è negativo si consideri il suo valore assoluto).

Esempio di interazione con il programma:

Inserisci l'altezza: 6

     *   
    ***   
   *****   
  *******
 *********
***********

Suggerimento: per allineare correttamente le righe, stampare su ogni riga il giusto numero di spazi prima degli asterischi.

Esercizio 10

Modificare il programma precedente per stampare un rombo vuoto. Nota: accettare solo numeri dispari come altezza.

Esempio di interazione con il programma:

Inserisci l'altezza (dispari): 8
Inserisci l'altezza (dispari): 9
     *
    * *
   *   *
  *     *
 *       *
  *     *
   *   *
    * *
     *

Esercizio 11

Modificare il programma 17 per stampare un triangolo isoscele di altezza lunga n (con n compreso tra 0 e 9 ) e base lunga 2n-1 fatto come sotto.

Se il valore letto è non è compreso tra 0 e 9 si chieda all'utente un nuovo valore finché l'intero immesso non appartenga all'intervallo richiesto.

Esempio di interazione con il programma:

Dammi un numero intero positivo compreso tra 0 e 9: -2
Dammi un numero intero positivo compreso tra 0 e 9: 5
   
    1
   212
  32123
 4321234
543212345
Modificare il programma 17 per stampare un triangolo isoscele
di altezza 
lunga n (con n compreso tra 0 e 9 ) e base lunga 2n-1 fatto come
sotto.
Se il valore letto è non è compreso tra 0 e 9 si chieda all'utente
un nuovo 
valore finché l'intero immesso non appartenga all'intervallo
richiesto.
Esempio di interazione con il programma:
Dammi un numero intero positivo compreso tra 0 e 9: -2
Dammi un numero intero positivo compreso tra 0 e 9: 5
    1
   212
  32123
 4321234
543212345
fisica/informatica/201516/secondoanno/laboratorio_3.1457086356.txt.gz · Ultima modifica: 04/03/2016 alle 10:12 (9 anni fa) da Roberta Gori

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki