• Non ci sono risultati.

Il linguaggio C

N/A
N/A
Protected

Academic year: 2021

Condividi "Il linguaggio C"

Copied!
77
0
0

Testo completo

(1)

Il linguaggio C

prima parte

Prof. Daniele Contarino

(2)

❑Introduzione

❑La sintassi

❑Le variabili e la gestione del I/O

❑La gestione del flusso

Indice degli argomenti

(3)

Il linguaggio C – prima parte 3 di 77 Daniele Contarino

Il linguaggio C è uno dei principali linguaggi di

programmazione al mondo. Nato insieme a UNIX, viene usato per realizzare sistemi operativi, driver, giochi e programmi altamente preformanti.

Per via della sua diffusione, molti altri linguaggi nati dopo il C hanno adottato una sintassi simile alla sua (C++, Java, C#,

PHP, etc. ) e la sintassi di questi linguaggi viene detta C-Like

Il linguaggio C

(4)

Il linguaggio C è stato inventato da Dennis Ritchie nei Bell Labs della AT&T nel 1972 per realizzare una nuova

versione del sistema operativo UNIX.

Prima di allora per la realizzazione di UNIX si usava il

linguaggio Assembly (che era a basso livello) e linguaggio C (che era ad alto livello) ha

permesso di semplificare il processo di sviluppo del

Il linguaggio C – La storia

(5)

Il linguaggio C – prima parte 5 di 77 Daniele Contarino

Gli ambienti di sviluppo disponibili

Compilatore Sistema operativo Free? Sito

GCC Unix – MacOS (in Xcode)

Windows (in MinGW) SI https://gcc.gnu.org/

Dev-C++ Windows SI https://sourceforge.net/

projects/orwelldevcpp/

Eclipse IDE

for C/C++ Developers

Unix – MacOS –

Windows SI https://www.eclipse.org/

Visual Studio

Community edition Windows SI https://www.visualstudio.

com/it/vs/community/

Netbeans

C and C++ Development

Unix – MacOS –

Windows SI https://netbeans.org/

(6)

✓ Introduzione

❑La sintassi

❑Le variabili e la gestione del I/O

❑La gestione del flusso

Indice degli argomenti

(7)

Il linguaggio C – prima parte 7 di 77 Daniele Contarino

La sintassi

• Qualunque programma in C inizia con il codice contenuto dentro la funzione main;

• Ogni blocco di codice è contenuto dentro le parentesi graffe { … }

• Per richiamare le librerie esterne si usa l’istruzione

#include <…>

• Ogni istruzione finisce con il punto e virgola ;

(8)

La sintassi

Ci sono alcune parole chiave (o parole riservate) che caratterizzano il linguaggio e che permettono di usare il linguaggio usando esse più alcune librerie:

auto break case char const

default do

double else

enum

float for goto if

int

register return short signed sizeof

struct switch typedef union

unsigned

volatile

while

(9)

Il linguaggio C – prima parte 9 di 77 Daniele Contarino

Hello World!

#include <stdio.h>

int main(){

// Il mio primo programma!

printf("Hello World!");

return 0;

}

(10)

Hello World!

(11)

Il linguaggio C – prima parte 11 di 77 Daniele Contarino

Hello World!

#include <stdio.h>

int main(){

// Il mio primo programma!

printf("Hello World!");

return 0;

}

Chiama il preprocessore per includere all’interno del programma la

libreria che gestisce l’input/output, lo

STanDard Input/Output

(12)

Hello World!

#include <stdio.h>

int main(){

// Il mio primo programma!

printf("Hello World!");

return 0;

}

La funzione principale (main in inglese) di ogni programma. Il codice scritto tra le sue

parantesi graffe verrà

eseguito all’avvio del

programma

(13)

Il linguaggio C – prima parte 13 di 77 Daniele Contarino

Hello World!

#include <stdio.h>

int main(){

// Il mio primo programma!

printf("Hello World!");

return 0;

}

Tutto quello che viene scritto dopo // è un commento del

programmatore e non viene elaborato dal compilatore.

Il commento multiriga viene inserito tra

/* …. */

(14)

Hello World!

#include <stdio.h>

int main(){

// Il mio primo programma!

printf("Hello World!");

return 0;

}

Stampa sullo schermo la frase Hello World!

sfruttando la funzione

printf contenuta dentro

stdio.h

(15)

Il linguaggio C – prima parte 15 di 77 Daniele Contarino

Hello World!

#include <stdio.h>

int main(){

// Il mio primo programma!

printf("Hello World!");

return 0;

}

Comunica al sistema operativo che il

programma è terminato

senza errori

(16)

Indentazione

Per migliorare la qualità della lettura del codice, si usa l’indentazione, ovvero spostare verso destra di un tab (ovvero 4 spazi) il sotto-blocco del codice, in maniera tale da capire immediatamente quale codice

appartiene a un blocco piuttosto che un altro.

#include <stdio.h>

int main(){

████printf("Hello World!");

(17)

Il linguaggio C – prima parte 17 di 77 Daniele Contarino

✓ Introduzione

✓ La sintassi

❑Le variabili e la gestione del I/O

❑La gestione del flusso

Indice degli argomenti

(18)

Le variabili

In informatica la variabile è un piccolo spazio (o allocazione) di memoria che contiene un valore che cambia nel corso dell’esecuzione del

programma.

Memoria RAM

005da28c 005da290 005da284

a02 -279

????

(19)

Il linguaggio C – prima parte 19 di 77 Daniele Contarino

Le variabili

Pippo

5 Pluto

f

(20)

Le variabili

Alcune delle parole riservate riguardano quelle che si chiamano i tipi di dato primitivi

auto break case char const

continue

default do

double else

enum extern

float for goto if

int long

register return short signed sizeof static

struct switch typedef union

unsigned void

volatile

while

(21)

Il linguaggio C – prima parte 21 di 77 Daniele Contarino

Le variabili

Tipo Dimensione Cosa contiene Segno Valore minimo Valore massimo

char

1 byte Singolo carattere signed -128 +127

unsigned 0 +255

short

2 byte Numero intero signed -32.768 32.767

unsigned 0 65.535

int

2 byte Numero intero signed -32.768 32.767

unsigned 0 65.535

long

4 byte Numero intero signed -2.147.483.647 2.147.483.647

unsigned 0 4.294.967.295

long long

8 byte Numero intero signed -9.223.372.036.854.775.808 9.223.372.036.854.775.807

unsigned 0 18.446.744.073.709.551.615

float

4 byte Numero a virgola

mobile - 1.175494e-38 3.402823e+38

double

8 byte Numero a virgola

mobile 2.225074e-308 1.797693e+308

long double 10 byte Numero a virgola

mobile - 3.362103e-4932 1.189731e+4932

(22)

Utilizzo delle variabili

#include <stdio.h>

int main(){

<TIPO> <NOME VARIABILE 1>;

<TIPO> <NOME VARIABILE 2>;

...

}

(23)

Il linguaggio C – prima parte 23 di 77 Daniele Contarino

Utilizzo delle variabili

#include <stdio.h>

int main(){

int var1; // Dichiarazione int var2;

int somma;

var1 = 2; // Assegnazione var2 = 3;

somma = var1 + var2; // Assegnazione printf("La somma e’ %d", somma);

return 0;

}

(24)

Utilizzo delle variabili

#include <stdio.h>

int main(){

int var1; // Dichiarazione int var2;

int somma;

var1 = 2; // Assegnazione var2 = 3;

somma = var1 + var2; // Assegnazione printf("La somma e’ %d", somma);

return 0;

}

(25)

Il linguaggio C – prima parte 25 di 77 Daniele Contarino

Utilizzo delle variabili

#include <stdio.h>

int main(){

int var1; // Dichiarazione int var2;

int somma;

var1 = 2; // Assegnazione var2 = 3;

somma = var1 + var2; // Assegnazione printf("La somma e’ %d", somma);

return 0;

}

(26)

Utilizzo delle variabili

(27)

Il linguaggio C – prima parte 27 di 77 Daniele Contarino

printf

Tipo variabile Formato Esempio

char %c

printf ("%c", ‘s’); s

int %d - %i

printf ("%d", 45); 45

int %o

printf ("%o", 45); 55

int %x - %X

printf ("%x - %X", 45, 45); 2d – 2D

int %u

printf ("%u", -45); 45

char * (stringa) %s

printf ("Ciao %s!", "Pippo"); Ciao Pippo!

float - double %f

printf ("%f", -18.4568); -18.456800

float - double %e - %E

printf ("%e - %E", -18.4568); -1.845680e+001 -1.845680E+001

float - double %g - %G

printf ("%g", -18.4568); -18.4568

(28)

Esercizi

❖ Fai un programma che con due numeri effettua le 4 operazioni aritmetiche (somma, sottrazione,

moltiplicazione e divisione);

❖ Fai un programma che con un numero effettui la sua elevazione al quadrato

❖ Fai un programma che con un

numero ed un esponente effettui

la sua elevazione a potenza

(29)

Il linguaggio C – prima parte 29 di 77 Daniele Contarino

Acquisizione di dati dal mondo esterno

#include <stdio.h>

int main(){

int var1; // Dichiarazione int var2;

int somma;

// Aquisizione

printf("Dammi il primo numero: %d\n");

scanf("%d", &var1);

printf("Dammi il secondo numero: %d\n");

scanf("%d", &var2);

somma = var1 + var2; // Assegnazione printf("La somma e’ %d", somma);

return 0;

}

(30)

Acquisizione di dati dal mondo esterno

#include <stdio.h>

int main(){

int var1; // Dichiarazione int var2;

int somma;

// Aquisizione

printf("Dammi il primo numero: %d\n");

scanf("%d", &var1);

printf("Dammi il secondo numero: %d\n");

scanf("%d", &var2);

somma = var1 + var2; // Assegnazione printf("La somma e’ %d", somma);

return 0;

(31)

Il linguaggio C – prima parte 31 di 77 Daniele Contarino

Acquisizione di dati dal mondo esterno

(32)

scanf

Tipo variabile Formato Esempio

char %c scanf ("%c", &varChar);

int %d - %i scanf ("%d", &varInt);

int %o scanf ("%o", &varInt);

int %x - %X scanf ("%x", &varInt);

int %u scanf ("%u", &varInt);

char * (stringa) %s scanf ("%s", frase);

float - double %f scanf ("%f", &varDouble);

float - double %e - %E scanf ("%e", &varDouble);

(33)

Il linguaggio C – prima parte 33 di 77 Daniele Contarino

Esercizi

❖ Fai un programma che dati in input due numeri effettua le 4 operazioni aritmetiche (somma, sottrazione, moltiplicazione e divisione);

❖ Fai un programma che dato in input un numero effettui la sua elevazione al

quadrato

❖ Fai un programma che dato in

input un numero ed un esponente

effettui la sua elevazione a potenza

(34)

✓ Introduzione

✓ La sintassi

✓ Le variabili e la gestione del I/O

❑La gestione del flusso

Indice degli argomenti

(35)

Il linguaggio C – prima parte 35 di 77 Daniele Contarino

Gestione del flusso

Oggi pioverà

Se è vero

Se è falso

(36)

Gestione del flusso

Esattamente come con il meteo, in cui noi adattiamo il nostro abbigliamento in base alle condizioni climatiche, anche il programma si deve adattare in base alle

informazioni ricevute dal mondo esterno (ovvero dai dati

che riceve in ingresso)

(37)

Il linguaggio C – prima parte 37 di 77 Daniele Contarino

Gestione del flusso

Alcune delle parole riservate viste prime riguardano i comandi per la gestione del flusso del programma.

auto break case char const

continue

default do

double else enum extern

float for goto if

int long

register return short signed sizeof static

struct switch typedef union

unsigned void

volatile

while

(38)

Gestione del flusso

Esempio

"Un numero è divisibile per qualsiasi altro numero tranne per zero"

Nel programma di prima, nel caso della divisione bisogna

prevedere il caso in cui l’utente inserisce il numero zero

come divisore.

(39)

Il linguaggio C – prima parte 39 di 77 Daniele Contarino

Gestione del flusso

#include <stdio.h>

int main(){

int var1;

int var2;

float quoziente;

printf("Dammi il primo numero: %d\n");

scanf("%d", &var1);

printf("Dammi il secondo numero: %d\n");

scanf("%d", &var2);

// se var2 e’ uguale a zero

printf(“Errore! Il divisore e’ uguale a zero");

// altrimenti stampa il risultato quoziente = var1/var2;

printf("La divisione e’ %g", quoziente);

return 0;

}

(40)

Gestione del flusso

Cosa inseriamo al posto dei commenti?

Il costrutto

IF – ELSE

(se - altrimenti)

(41)

Il linguaggio C – prima parte 41 di 77 Daniele Contarino

If … Else

if(/* condizione */){

//Blocco di istruzioni se la condizione e’ VERA

} else {

//Blocco di istruzioni se la condizione e’ FALSA

}

Condizione

Blocco ELSE

FALSO

Blocco IF

VERO

(42)

Gestione del flusso

#include <stdio.h>

int main(){

int var1;

int var2;

float quoziente;

printf("Dammi il primo numero: %d\n");

scanf("%d", &var1);

printf("Dammi il secondo numero: %d\n");

scanf("%d", &var2);

if(var2 == 0){

printf(“Errore! Il divisore e’ uguale a zero");

} else {

quoziente = var1/var2;

printf("La divisione e’ %g", quoziente);

}

(43)

Il linguaggio C – prima parte 43 di 77 Daniele Contarino

Operatori di confronto

== Uguale

!= Diverso

> Maggiore

< Minore

>= Maggiore o uguale

<= Minore o uguale

(44)

Operatori di confronto

3 == 5 FALSO 4 == 4 VERO

3 != 5 VERO 4 != 4 FALSO

3 > 5 FALSO 6 > 4 VERO

3 < 5 VERO 6 < 4 FALSO

3 >= 5 FALSO 4 >= 4 VERO

3 <= 5 VERO 4 <= 4 VERO

(45)

Il linguaggio C – prima parte 45 di 77 Daniele Contarino

Operatori di confronto

=

Assegnazione a = 5

a contiene il valore 5

==

Confronto a == 5

a è uguale a 5?

(46)

Operatori logici

! NOT Negazione

&& AND Congiunzione

|| OR Disgiunzione inclusiva

(47)

Il linguaggio C – prima parte 47 di 77 Daniele Contarino

Operatori logici – NOT

Piove Stendo i vestiti

NO SI

SI NO

"Se piove NON stendo i vestiti"

(48)

Operatori logici – AND logico

Papà ha i soldi Mamma ha le ferie Si và in vacanza

NO NO NO

NO SI NO

SI NO NO

SI SI SI

"Andiamo in vacanza se papà ha i soldi e se a mamma

danno le ferie"

(49)

Il linguaggio C – prima parte 49 di 77 Daniele Contarino

Operatori logici – AND logico

A B A && B

FALSO FALSO FALSO

FALSO VERO FALSO

VERO FALSO FALSO

VERO VERO VERO

Tabella di verità della funzione AND

(50)

Operatori logici – OR logico

"Oggi mangiamo se Fabio o Elena hanno fatto la spesa"

Fabio ha fatto la

spesa Elena ha fatto la spesa

Si mangia

NO NO NO

NO SI SI

SI NO SI

SI SI SI

(51)

Il linguaggio C – prima parte 51 di 77 Daniele Contarino

Operatori logici – OR logico

A B A || B

FALSO FALSO FALSO

FALSO VERO VERO

VERO FALSO VERO

VERO VERO VERO

Tabella di verità della funzione OR

(52)

Controlli multipli

Un altro caso sono i controlli multipli. Essi spesso si risolvono con i

cosiddetti if a cascata

(53)

Il linguaggio C – prima parte 53 di 77 Daniele Contarino

Controlli multipli

Esempio

Sviluppare un menu per una calcolatrice

-- Programma calcolatrice –

Premi 1 per fare una addizione;

Premi 2 per fare una sottrazione;

Premi 3 per fare una moltiplicazione;

Premi 4 per fare una divisione.

(54)

Controlli multipli

#include <stdio.h>

int main(){

int scelta, var1, var2;

float risultato;

printf("– Programma calcolatrice--\n");

printf("Premi 1 per fare una addizione\n");

printf("Premi 2 per fare una sottrazione;\n");

printf(" Premi 3 per fare una moltiplicazione;\n ");

printf("Premi 4 per fare una divisione.\n");

scanf("%d", & scelta);

// continua ...

(55)

Il linguaggio C – prima parte 55 di 77 Daniele Contarino

Controlli multipli

if(scelta == 1){

// Istruzioni per eseguire la somma } else if(scelta == 2) {

// Istruzioni per eseguire la sottrazione } else if(scelta == 3) {

// Istruzioni per eseguire la moltiplicazione } else if(scelta == 4) {

// Istruzioni per eseguire la divisione } else {

// Messaggio di errore }

return 0;

}

(56)

Gestione del flusso

Lo stesso procedimento è possibile farlo usando

Il costrutto

SWITCH - CASE

(smistare - caso)

(57)

Il linguaggio C – prima parte 57 di 77 Daniele Contarino

Controlli multipli

#include <stdio.h>

int main(){

int scelta, var1, var2;

float risultato;

printf("– Programma calcolatrice--\n");

printf("Premi 1 per fare una addizione\n");

printf("Premi 2 per fare una sottrazione;\n");

printf(" Premi 3 per fare una moltiplicazione;\n ");

printf("Premi 4 per fare una divisione.\n");

scanf("%d", & scelta);

// continua ...

(58)

Controlli multipli

switch(scelta){

case 1:

// Istruzioni per eseguire la somma break;

case 2:

// Istruzioni per eseguire la sottrazione break;

case 3:

// Istruzioni per eseguire la moltiplicazione break;

case 4:

// Istruzioni per eseguire la divisione break;

default:

// Messaggio di errore

}

(59)

Il linguaggio C – prima parte 59 di 77 Daniele Contarino

Esercizi

❖ Preso in input un numero dire se questo è maggiore di zero;

❖ Dati in input 3 numeri dire quale di questi è il maggiore e il minore;

❖ Presa in input una lettera dire se questa è una vocale o una

consonante;

❖ Preso in input un voto (numero)

compreso tra 1 e 10 dire se il voto è

scarso, medio o buono;

(60)

I cicli

Spesso all’interno di un programma abbiamo la necessità di ripetere un blocco di codice diverse volte.

Per ripetere un blocco di codice abbiamo tre strumenti:

❖ WHILE

❖ FOR

❖ DO … WHILE

(61)

Il linguaggio C – prima parte 61 di 77 Daniele Contarino

I cicli

Esempio

"Effettuare una moltiplicazione SENZA usare l’operatore *"

Esempio di calcolo

4 x 3 = 4 + 4 + 4

(62)

Gestione del flusso

#include <stdio.h>

int main(){

int mul1, mul2, prodotto;

prodotto = 0;

printf("Dammi il primo numero: %d\n");

scanf("%d", &mul1);

printf("Dammi il secondo numero: %d\n");

scanf("%d", &mul2);

prodotto = prodotto + mul1;

// ripeti mul2 volte l’ultima istruzione // ...

printf("il prodotto e’ %d", prodotto);

return 0;

}

(63)

Il linguaggio C – prima parte 63 di 77 Daniele Contarino

Gestione del flusso

Cosa inseriamo al posto dei commenti?

Il costrutto

WHILE

(altrimenti)

(64)

Il ciclo WHILE

while(/* condizione */){

//Blocco di istruzioni da ripetere finchè // la condizione e’ VERA

}

Condizione

Istruzioni WHILE

FALSO

VERO

(65)

Il linguaggio C – prima parte 65 di 77 Daniele Contarino

Il ciclo WHILE

#include <stdio.h>

int main(){

int mul1, mul2, prodotto, contatore;

prodotto = 0;

contatore = 0;

printf("Dammi il primo numero: %d\n");

scanf("%d", &mul1);

printf("Dammi il secondo numero: %d\n");

scanf("%d", &mul2);

// ciclo WHILE

while(contatore < mul2){

prodotto = prodotto + mul1;

contatore = contatore + 1;

}

printf("il prodotto e’ %d", prodotto);

return 0;

}

(66)

Operatori unitari

I C troviamo alcuni operatori che permettono

contemporaneamente all’assegnazione anche alcune operazioni aritmetiche

var1 ++;

var1 += var2;

var1 --;

var1 -= var2;

var1 = var1 + 1;

var1 = var1 + var2;

var1 = var1 - 1;

var1 = var1 - var2;

(67)

Il linguaggio C – prima parte 67 di 77 Daniele Contarino

Il ciclo WHILE con gli operatori unitari

#include <stdio.h>

int main(){

int mul1, mul2, prodotto, contatore;

prodotto = 0;

contatore = 0;

printf("Dammi il primo numero: %d\n");

scanf("%d", &mul1);

printf("Dammi il secondo numero: %d\n");

scanf("%d", &mul2);

// ciclo WHILE

while(contatore < mul2){

prodotto += mul1;

contatore ++;

}

printf("il prodotto e’ %d", prodotto);

return 0;

}

(68)

Gestione del flusso

Una versione contratta del ciclo WHILE che include il contatore è

Il costrutto

FOR

(per)

(69)

Il linguaggio C – prima parte 69 di 77 Daniele Contarino

Il ciclo FOR

Condizione

Istruzioni FOR

FALSO

Istruzioni successive

VERO

for(/*init*/;/*condizione*/; /*operazione ad ogni ciclo*/){

//Blocco di istruzioni da ripetere finchè // la condizione e’ VERA

}

Init

Operazione ad ogni ciclo

(70)

Il ciclo FOR

#include <stdio.h>

int main(){

int mul1, mul2, prodotto, contatore;

prodotto = 0;

printf("Dammi il primo numero: %d\n");

scanf("%d", &mul1);

printf("Dammi il secondo numero: %d\n");

scanf("%d", &mul2);

// ciclo FOR

for(contatore = 0; contatore < mul2; contatore++){

prodotto += mul1;

}

printf("il prodotto e’ %d", prodotto);

return 0;

(71)

Il linguaggio C – prima parte 71 di 77 Daniele Contarino

Il ciclo FOR

(72)

Il ciclo DO … WHILE

Riprendiamo in esame il blocco di codice di prima sulla divisione e sul suo controllo in cui il divisore deve essere

diverso da 0

(73)

Il linguaggio C – prima parte 73 di 77 Daniele Contarino

Il ciclo DO … WHILE

#include <stdio.h>

int main(){

int var1;

int var2;

float quoziente;

printf("Dammi il primo numero: %d\n");

scanf("%d", &var1);

printf("Dammi il secondo numero: %d\n");

scanf("%d", &var2);

if(var2 == 0){

printf(“Errore! Il divisore e’ uguale a zero");

} else {

quoziente = var1/var2;

printf("La divisione e’ %g", quoziente);

}

return 0;

}

(74)

Il ciclo DO … WHILE

Modifichiamo il codice in maniera tale che l’utente sia invitato a reinserire il divisore in maniera tale da permettere la divisione.

Siccome il controllo avverrà solo

DOPO l’immissione del dato, abbiamo bisogno del costrutto DO … WHILE che pospone il controllo al blocco di

Condiz ione

Istruzione 2

VERO

FALSO

Istruzione 1

(75)

Il linguaggio C – prima parte 75 di 77 Daniele Contarino

Il ciclo DO … WHILE

#include <stdio.h>

int main(){

int var1;

int var2;

float quoziente;

printf("Dammi il primo numero: %d\n");

scanf("%d", &var1);

// ciclo DO ... WHILE do {

printf("Dammi il secondo numero: %d\n");

scanf("%d", &var2);

} while(var2 == 0);

quoziente = var1/var2;

printf("La divisione e’ %g", quoziente);

return 0;

}

(76)

Esercizi

❖ Dato un numero in input n, stampare a video tutti i numeri tra 0 e n;

❖ Dato un numero in input n, calcolare e stampare a video n! (fattoriale) n! = n * (n-1) * … * 2 *1;

❖ Completare l’esercizio della calcolatrice con il menu

(a posto dei numeri usare le lettere);

❖ Calcolare X

Y

usando la moltiplicazione;

(77)

Il linguaggio C

Prof. Daniele Contarino

Questa presentazione è disponibile su danielecontarino.it

Tutti i marchi riportati appartengono ai legittimi proprietari; marchi di terzi, nomi di prodotti, nomi commerciali, nomi corporativi e società citati possono essere marchi di proprietà dei rispettivi titolari o marchi registrati d’altre società e sono stati utilizzati a puro scopo esplicativo ed a beneficio del possessore, senza alcun fine di violazione dei diritti di Copyright vigenti.

Riferimenti

Documenti correlati

Dividi sia il dividendo che il divisore per il numero indicato e poi esegui la divisione; calcola tutto in riga come

Occorre precisare che, poiché per ogni macrostrato sono state presi in esami due inviluppi delle velocità e due inviluppi del decadimento del modulo di taglio, le regressioni

[r]

[r]

NEI NUMERI RAZIONALI LA MOLTIPLICAZIONE SI RISOLVE SVOLGENDO IL PRODOTTO FRA. NUMERATORE E NUMERATORE

• FileOutputStream implementa questi metodi nel caso parti- colare in cui l’output è un file, il cui nome è passato al costrut- tore di FileOutputStream ; in alternativa si

Siano dati in input le informazioni su n libri di una biblioteca creando quattro vettori con il codice del libro, i loro prezzi, il codice della casa editrice e l’anno di

¨  Se la stringa di formato contiene un white space, la scanf legge zero o più white space, che verranno scartati, fino al primo carattere non white space.