Вы находитесь на странице: 1из 6

Codifica

Introduzione
Lobiettivo della dispensa chiarire il penultimo punto della metodologia illustrata in precedenza per risolvere un problema con lausilio del calcolatore. Abbiamo visto che le fasi da seguire sono: 1. Analisi del problema mediante individuazione a. dei dai iniziali b. dei risultati attesi c. del procedimento risolutivo (algoritmo) 2. Formalizzazione dellanalisi (scrittura dellalgoritmo) 3. Codifica nel linguaggio di programmazione scelto (scrittura del programma) 4. Verifica della correttezza del programma Il penultimo punto si riferisce alla scrittura del programma (codifica) nel linguaggio di programmazione scelto.

Dove eravamo arrivati


Il problema da cui siamo partiti : Dati due numeri interi, determinare la loro somma. Abbiamo individuato i dati ID num1 num2 somma Descrizione Primo addendo Secondo addendo Somma dei due addendi I/O I I O Tipo numero intero numero intero numero intero

e lalgoritmo, espresso mediante diagramma di flusso


Start

input (num1)

input (num2)

somma= num1+num2

output (somma)

End

Autore: Cinzia Bocchi Ultimo aggiornamento: 08/08/11

Per passare dalla rappresentazione grafica/tabellare al codice esistono alcune regole di traduzione molto semplici.

Traduzione della tabella dei dati


I dati presenti nella tabella devono essere tutti dichiarati specificando il loro nome e tipo. Utilizzeremo quindi le colonne ID e Tipo della tabella precedente, per ottenere le dichiarazioni seguenti: int num1; int num2; int somma; o in modo equivalente int num1, num2, somma; La dichiarazione dei dati ha come effetto quello di riservare, nella memoria del computer, lo spazio necessario per memorizzare i valori delle tre variabili. In particolare, per ciascuna variabile saranno riservati 32 bit, poich il tipo int. Esempio Tanto per farvi unidea potete pensare alla memoria del computer come ad una cassettiera dotata di cassetti di varie misure. Ogni cassetto ha unetichetta che indica il suo contenuto (o ci che pu contenere), un nome e pu contenere un solo oggetto alla volta. La dichiarazione consiste nel trovare un cassetto della giusta dimensione e apporvi sopra letichetta che indica il suo nome e il tipo di valori contenuti.

int num1 int num2 int somma

La domanda che ci poniamo ora dove collocare le dichiarazioni delle variabili. Riprendendo la struttura di un programma Java, le dichiarazioni devono essere collocate convenzionalmente subito dopo la dichiarazione del main e prima di ogni altra istruzione. Si tratta di una convenzione adottata in questo corso e non una regola di validit generale. In realt, le variabili possono essere dichiarate ovunque allinterno del codice, ma sempre prima del loro uso. A questo punto non ci rimane altro da fare che scegliere un nome per il nostro programma (Addizione) e iniziare a scrivere il codice.

Autore: Cinzia Bocchi Ultimo aggiornamento: 08/08/11

class Addizione { public static void main(String args[]) { //Dichiarazioni di variabili int num1,num2,somma; ............................ } }

Traduzione del diagramma di flusso


La traduzione diversa a seconda del simbolo (parallelogramma-rettangolorombo) e del suo contenuto. I simboli ovali non vengono tradotti. simbolo/contenuto Parallelogramma utilizzato per linput di dati traduzione in Java La traduzione dipende dal tipo del dato x e dalla metodologia scelta per lacquisizione di input. Utilizzando la classe Scanner si scriver: o x= console.nextInt(); o x= console.nextDouble(); o x= console.nextLine(); a seconda che la variabile x sia rispettivamente di tipo int, double o String. Occorrer, inoltre, aggiungere una linea di codice che dichiari la variabile console.

input(x)

Parallelogramma utilizzato per loutput di dati

Vedremo con un esempio come avviene la traduzione se si utilizza la classe Scanner o le finestre di dialogo. Si scrive o System.out.println (x); oppure o System.out.print (x);

output(x)

Con il metodo println si va a capo automaticamente dopo la scrittura delloutput. Rettangolo utilizzato per lassegnazione Si scrive o
x= espressione

x= espressione;

Autore: Cinzia Bocchi Ultimo aggiornamento: 08/08/11

Torniamo al nostro esempio


Start

input (num1)

num1= console.nextInt(); num2= console.nextInt(); somma= num1+num2; System.out.println(somma);

input (num2)

somma= num1+num2

output (somma)

End

Il nostro compito successivo collocare nella giusta posizione le istruzioni, ricordando anche di inserire il codice aggiuntivo necessario per linput di dati. import java.util.*; class Addizione { public static void main(String args[]) { //Dichiarazioni di variabili int num1,num2,somma; Scanner console= new Scanner(System.in); //Istruzioni num1= console.nextInt(); num2= console.nextInt(); somma= num1+num2; System.out.println(somma); } }

Che cosa manca


Manca una minima interfaccia per lutente. Infatti, se provate ad eseguire il codice precedente, vi troverete di fronte ad uno schermo nero con un cursore lampeggiante, senza nessuna indicazione su come procedere. Il programma in esecuzione si aspetta che qualcuno inserisca il primo numero ma lutente che si trova davanti al computer non lo pu sapere se non lo informiamo prontamente. Per risolvere questo problema sufficiente far precedere ogni istruzione di input da una istruzione di output mediante la quale si chiede allutente di svolgere il compito richiesto (cio inserire un numero intero).
Autore: Cinzia Bocchi Ultimo aggiornamento: 08/08/11

import java.util.*; class Addizione { public static void main(String args[]) { //Dichiarazioni di variabili int num1,num2,somma; Scanner console= new Scanner(System.in); //Istruzioni System.out.println(Inserisci il primo addendo); num1= console.nextInt(); System.out.println(Inserisci il secondo addendo); num2= console.nextInt(); somma= num1+num2; System.out.println(somma); } } Un analogo problema si presenta per loutput: lutente vede comparire un numero (il risultato delladdizione) senza che questo sia accompagnato da una frase esplicativa. Il problema pu essere risolto modificando listruzione di output di somma mediante linserimento di una frase opportuna, tipo Il risultato delloperazione richiesta : oppure La somma :. import java.util.*; class Addizione { public static void main(String args[]) { //Dichiarazioni di variabili int num1,num2,somma; Scanner console= new Scanner(System.in); //Istruzioni System.out.println(Inserisci il primo addendo); num1= console.nextInt(); System.out.println(Inserisci il secondo addendo); num2= console.nextInt(); somma= num1+num2; System.out.println(La somma e: + somma); } }

Autore: Cinzia Bocchi Ultimo aggiornamento: 08/08/11

Traduzione con uso di finestre di dialogo per linput/output


import javax.swing.*; class Addizione { public static void main(String args[]) { //Dichiarazioni di variabili int num1,num2,somma; //Istruzioni num1=Integer.parseInt(JOptionPane.showInputDialog(Inseris ci il primo addendo)); num2=Integer.parseInt(JOptionPane.showInputDialog(Inseris ci il secondo addendo)); somma= num1+num2; JOptionPane.showMessageDialog(null,La somma e: + somma); } }

_______________________________________________________________________
Quest'opera stata rilasciata con licenza Creative Commons Attribution-ShareAlike 3.0 Unported. Per leggere una copia della licenza visita il sito web http://creativecommons.org/licenses/by-sa/3.0/ o spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.

Autore: Cinzia Bocchi Ultimo aggiornamento: 08/08/11

Вам также может понравиться