Estratto del documento

Fondamenti di Informatica

1.1 Calcolatori e programmi

I calcolatori eseguono istruzioni estremamente elementari a velocità molto elevata.

Di per sé, un computer è una macchina che immagazzina dati (numeri, parole, immagini), interagisce

con dispositivi (lo schermo, gli altoparlanti, la stampante) ed esegue programmi. Un programma per

calcolatore spiega con grande dettaglio al calcolatore quale sia la sequenza di passi che devono

hardware

essere messi in atto per risolvere un problema. Chiamiamo l’insieme costituito dalla parte

software.

fisica del calcolatore e dai suoi dispositivi periferici, mentre i programmi eseguiti sono il

progettazione

La e la realizzazione di programmi per computer sono due attività che prendono il

nome di programmazione. Essa consiste quindi nella progettazione e nella realizzazione di

programmi per computer.

1.2 Anatomia di un calcolatore

Nel cuore del calcolatore si trova l’unità centrale di elaborazione (CPU, centrai processing unit). La

CPU si occupa del controllo dell’esecuzione dei programmi e dell’elaborazione dei dati, cioè

individua ed esegue le istruzioni del programma: effettua le operazioni aritmetiche, recupera i dati

dalla memoria esterna o dai dispositivi periferici, per poi memorizzarvi i risultati delle elaborazioni.

Esistono due tipi di memoria:

memoria principale,

La detta anche semplicemente “memoria”, è costituita da circuiti elettronici

• che sono in grado di memorizzare dati quando sono alimentati elettricamente.

memoria secondaria,

La che generalmente è un disco rigido (hard disk) oppure un dispositivo allo

• stato solido, consente un’archiviazione dei dati meno costosa e più lenta, che, però, viene

mantenuta anche in assenza di elettricità.

N.B: Quando viene avviato un programma, le sue istruzioni vengono copiate nella memoria, dove la

CPU le può leggere: la CPU legge ed esegue un’istruzione per volta. A seconda delle direttive

espresse da tali istruzioni, la CPU legge dati, li modifica e li scrive nuovamente nella memoria

principale o nella memoria secondaria.

1.3 Linguaggio di programmazione java semplici istruzioni,

Un programma per computer è costituito da un gran numero di per tale motivo

sono stati ideati i linguaggi di programmazione di alto livello, mediante i quali si possono specificare

compilatore

le azioni che devono essere svolte da un programma, dopodiché sarà un a tradurre le

istruzioni di alto livello nelle più dettagliate istruzioni necessarie alla CPU, che vengono chiamate

codice macchina. libreria

Java ha una ricca che permette di scrivere programmi portabili (cioè “trasferibili”) da un

sicurezza portabilità.

sistema operativo all’altro. Inoltre esso ha due qualità: e

L’ambiente Java consente a chiunque di eseguire programmi all’interno del proprio browser senza

• alcun timore: le caratteristiche di sicurezza previste dal linguaggio Java garantiscono l’interruzione

dell’esecuzione di un programma nel momento in cui questo tenti di compiere azioni

potenzialmente non sicure.

L’altro vantaggio di Java è la portabilità: il compilatore Java non traduce i programmi Java

• direttamente in istruzioni per la CPU. I programmi Java compilati contengono, invece, istruzioni

eseguibili dalla macchina virtuale Java, un programma che simula il funzionamento di una CPU

reale per questo motivi può operare in molti sistemi operativi.

I diversi sistemi operativi richiedono azioni significativamente differenti per mettere in esecuzione

editor,

l’ambiente di sviluppo Java. Bisogna innanzitutto eseguire un cioè un programma che svolge

una funzione analoga a un elaboratore di testi, poi è necessario aprire una finestra per l’esecuzione

di comandi o “finestra di terminale”, dove digitare i comandi che eseguono il programma realizzato.

N.B: Prima di poter eseguire il programma, il compilatore Java traduce il file sorgente, cioè gli

enunciati che avete scritto, in file di classi, contenenti istruzioni per la macchina virtuale Java. Dopo

che il compilatore ha tradotto il codice sorgente in istruzioni per la macchina virtuale, questa le può

eseguire. Durante l’esecuzione, la macchina virtuale accede a una libreria di codice precompilato.

1.6 Errori

In java possono presentarsi diversi tipi di errore quali:

Errore in fase di compilazione

1. (compile-time error) o errore di sintassi: in base alle regole del

linguaggio c’è qualcosa di sbagliato e il compilatore se ne accorge.

Errore in fase di esecuzione

2. o errori logici : il programma è sintatticamente corretto e fa

qualcosa, ma non quello che dovrebbe fare.

3. Altri errori logici, invece, sono tanto gravi da generare un’eccezione: un messaggio d’errore

emesso dalla macchina virtuale Java.

1.7 Il concetto di algoritmo

Per fornire una risposta a un problema che preveda il calcolo di una risposta, un programma per

calcolatore deve seguire una sequenza di passi che:

Non sia ambigua

• Sia eseguibile

• Arrivi a compimento (in un tempo finito)

• Una sequenza di passi che non sia ambigua, che sia eseguibile e che termini in un tempo finito

algoritmo.

prende il nome di

Lo pseudo codice, inoltre, è una descrizione informale di una sequenza di passi che risolvono un

problema.

Utilizzare Oggetti (Capitolo 2)

INVOCAZIONE DICHIARAZIONE

Variabili ASSEGNAZIONE,

/ Scrittura: tipo nome= valore vale solo per le

Es: int width=20; variabili. Esso o inizializza la variabile

oppure modifica il valore assunto dalla

variabile precedentemente.

Es: width=20; /

width= width+10;/

width= height;

Metodi Invoco un metodo che altri hanno già creato. I Descrivo che cosa fa il metodo. Siamo /

metodi sono usati per manipolare gli oggetti. noi a specificare le istruzioni/parametri

che dovrà eseguire. Per la dichiarazione

tipo dei parametri

Scrittura: oggetto.metodo(); abbiamo bisogno del e

tipo del valore restituito.

Es: del

String greeting= “hello, World!”;

• Int numberOfCharacters= greeting. length(); Scrittura: public tipovalorerestituito

String river= “Mississippi” ; metodo (tipoargomento argomento)

• String bigRiver= river.toUppercase(); Es:

String river= “Mississippi” ; public String replace(String target,

• •

String river= river.replace(“issipp”, “our”); String replacement)

box.translate(15,20); public void println (int output)

• •

N.B: si possono invocare più metodi alla volta con

“l’invocazione a cascata”

Es—> greeting.replace(“World”, “Dave”). length();

oggetto del metodo

Oggetti COSTRUZIONE OGGETTI

/ / , si usa

new

l’operatore seguito dal nome della

classe e da parametri opportuni.

Es: new Rectangle(5,10,30,15)

operatore

Dopo averlo creato questo si può salvare

variabile oggetto

in una che deve avere

come tipo la classe dell’oggetto.

All’interno della variabile non c’è l’oggetto

ma solo un riferimento ad esso che ne

descrive la sua posizione in memoria.

Es: box=

Rectangle new Rectangle(5,9,3,4);

tipo

Pacchetto / / La documentazione Api contiene

pacchetti in cui sono organizzate classi:

per utilizzarle bisogna sempre importare

questi pacchetti.

Es: import nomepacchetto.nomeclasse;

N.B: le variabili possono essere di tipo: Differenze:

1. Locale: sono dichiarate e inizializzate nel corpo del metodo ed entrano in vita quando - Parametri, locali sempre inizializzate

si invoca il metodo; muoiono alla fine dell’istruzione. (istanza no)

appartengono ai metodi

2. Parametro: vanno dichiarate e inizializzate con il nell’argomento del

valore di chiamata - Istanza, visibili in tutto il programma (altre

metodo, entrano in vita quando si invoca il metodo; muoiono alla fine dell’istruzione. no)

3. Di Istanza: entrano in vita quando viene creato l’oggetto, muoiono quando non viene - Istanza sempre “vive” fintanto che

più utilizzato l’oggetto. Possono non essere inizializzate perché assumono un valore l’oggetto viene usato. Le altre muoiono

appartiene agli oggetti

iniziale di default (0 per i numeri, null per le variabili oggetto). quando finisce l’istruzione del metodo

Realizzare Classi (Capitolo 3)

Struttura Dichiarazione Metodi

CLASSI Interfaccia Pubblica La classe descrive i comportamenti di un All’interno della classe i metodi si

Essa specifica cosa si può fare con gli oggetti insieme di oggetti e definisce dei metodi invocano e si dichiarano secondo la

della sua classe. È formata da che vengono utilizzati per manipolare gli classica struttura.

I. oggetti stessi. In generale la sintassi per

Intestazione dei metodi pubblici:

Struttura: ModalitàdiAccesso tipo nomeMetodo() la dichiarazione di una classe è: Es: Metodi Classe Counter

-

Es: public void deposit(double amount) click, incrementa di una unità il

public double getBalance() Scrittura: valore del contatore

-

ModalitàdiAccesso class NomeClasse getValue, restituisce il valore

II. I costruttori { variabili esemplare attuale del conteggio

Dichiarazione dei costruttori.

impostano valori iniziali per i dati degli oggetti, costruttori

cioè inizializzano gli oggetti. Il nome del metodi

costruttore è sempre uguale al nome della }

classe; essi non definiscono il tipo del valore N.B:

restituito. Quella dentro le graffe è la

variabile di istanza.

dichiarazione della

Struttura: modalitàdiAccesso nomeCostruttore() Essa memorizza i dati necessari per

l’esecuzione dei propri metodi.

Implementazione privata

Essa comprende le variabili di esemplare Es: public class NomedelleClasse

(descrivono i dati interni dell’oggetto), il corpo di { private tipo nomeVariabile }

costruttori(inizializza gli oggetti) e metodi info private del progettista

(istruzioni che modificano le variabili di istanza).

N.B: nell’implementazione di un metodo si

definisce una variabile parametro per ogni

argomento che si vuole ricevere ma non viene

analogamente definita una variabile parametro

per memorizzare l’oggetto con cui il metodo verrà

invocato, quest’ultimo è il parametro implicito

Tutte le variabili parametro, invece, sono i

(THIS).

parametri espliciti.

File BankAccount.java File BankAccountTester.java

Esempio completo public class BankAccount public class BankAccountTester

{ {

private double balance; //collauda i metodi della classe BankAccount

public BankAccount()

{ balance=0; public static void main (String[] args )

} {

public BankAccount(double initialBalance) BankAccount harrysChecking= new BankAccount();

{ harrysChecking.deposit(2000);

balance=initialBalance; harrysChecking.withdraw(500);

} System.out.println(harrysChecking.getBalance());

public void deposit (double amount) System.out.println(“expected: 1500”);

{ }

balance= balance+amount; }

}

public void withdraw (double amount)

{

balance= balance-amount; N.B:

} In questo caso devo salvare i due file nella stessa directory e

public double getBalance() successivamente:

{ Compilare entrambi i file;

return balance; Eseguire solo il programma tester.

}

}

N.B: Qui si può utilizzare anche un altro metodo, il

metodo transfer che trasferisce il saldo da un

conto a un altro.

Scrittura: public void transfer (BankAccount

finale, double amount)

{

this.withdrow (amount);

finale.deposit(amount);

}

Tipi di dati fondamentali (Capitolo 4)

Numeri Aritmetica Dati in ingresso e in uscita Stringhe

I tipi Operatori aritmetici Per acquisire dati tramite la Una stringa è una sequenza

Java ha otto tipi primitivi, tra i quali : Java consente l’esecuzione delle quattro tastiera, all’interno di una di caratteri (caratteri= valori

- quattro tipi numerici interi: operazioni aritmetiche basilari: addizione, finestra di console, si usa la di tipo char).

int, byte, short, CLASSE SCANNER. ↓

sottrazione, divisione, moltiplicazione.

long; Scrittura: I caratteri hanno valori

N.B: Incrementazione:

All’interno delle variabili di tipo intero Scrittura: numerici e letterali (‘H’, solo

—>items=

si possono inserire solo numeri compresi items++ items+1; import java.util.Scanner; un apice). I metodi principali

• Decrementazione:

in un certo range (tra circa -2 miliardi e +2 Scanner in= new Scanner di tipo char sono:

miliardi). Perciò per i valori più grandi si Items- - —>items= items-1; (System.in); charAt: restituisce un

• Creo oggetto di tipo Scanner

Divisione intera:

utilizza il tipo long, per quelli più piccoli il valore di tipo char estratto

per leggere dalla testiera

tipo short. intero/intero restituisce un numero intero e ignora da una stringa. I caratteri

il resto della divisione. Per avere anche la parte System.out.print(“please di ciascuna stringa hanno

- si

due tipi numerici in virgola mobile: decimale è necessario utilizzare il tipo double. enter the number: ”); una propria posizione:

• parte sempre a contare

Modulo: operatore che restituisce il resto della Int numer= in.nextInt();

double, float;

- Definisce una variabile per dalla posizione 0.

Un tipo per memorizzare caratteri: divisione intera (7%4)

char;

- memorizzare il valore Scrittura:

un tipo che può assumere solo due La libreria java contiene molte funzioni Public char charAt (int

acquisito

valori, vero o falso: boolean. matematiche tra cui le più importanti: posizione)

Errori n

x N.B: L’istruzione Es:

• Math.pow (x,n) —> ;

Errori di overflows: questi errori avvengono next—> legge una parola; String nome= “Harry”;

quando il risultato di un calcolo non rientra nextLine—> una riga; char start= nome.charAt(0);

x

• Math.sqrt (x) —> ;

nell’intervallo di variabilità del tipo nextInt—> un numero int; Char last= nome.charAt(4);

• Math.round (x) —> metodo che arrotonda il

numerico; nextdouble—> un numero

valore all’intero più vicino, il valore che viene

Errore di arrotondamento: i calcolatori double. substring: restituisce una

restituito è di tipo long.

rappresentano i numeri con il sistema parte della stringa a

binario nel quale non esiste una partire dalla pos iniziale

N.B: metodo statico

Il è un metodo che non

rappresentazione esatta di certi numeri fino alla pos finale-1.

opera su nessun oggetto. Essi infatti non

razionali perciò si sfocia in un errore di Es:

vengono invocati nel metodo usuale ma viene

arrotondamento; String hi= “Hello!”;

specificata la classe al posto dell’oggetto.

Errori di assegnazione: non si può String sub=hi.substring(1,4);

assegnare un valore di tipo double in una Scrittura:

variabile intera. nomeClasse.nomeMetodoStatico(argomento)

Costanti CashRegisterSimulator.java

Essi sono dei valori che non vengono import java.util.Scanner;

modificati e che hanno un significato ben

preciso all’interno dell’elaborazione. Per public class CashRegisterSimulator

definire tali variabili si usa l’attributo { public static void main(String[] args)

FINAL. { Scanner in = new Scanner(system.in);

Scrittura: CashRegister register = new CashRegister();

final TipoVariabile NOMEVARIABILE=

Valorevariabile; System.out.print("Enter price: ");

Definita nel corpo del metodo visibile solo lì. double price = in.nextDouble();

register.recordPurchase(price);

Se esse devono essere utilizzate in più

metodi, è conveniente dichiararle assieme System.out.print("Enter dollars: ");

alle variabili di istanza int dollars = in.nextInt();

Scrittura: System.out.print("Enter quarters: ");

p u b l i c s t a t i c fi n a l t i p o V a r i a b i l e int quarters = in.nextInt();

NOMEVARIABILE= Valorevariabile; System.out.print("Enter dimes: ");

int dimes = in.nextInt();

System.out.print("Enter nickels: ");

int nickels = in.nextInt();

System.out.print("Enter pennies: ");

int pennies = in.nextInt();

register.enterPayment (dollars, quarters, dimes, nickels,

pennies);

System.out.print("Your change: ");

System.out.println(register.giveChange());

}

}

Decisioni (Capitolo 5)

Enunciato if Def: L’enunciato if con

Anteprima
Vedrai una selezione di 9 pagine su 37
Fondamenti di Informatica Pag. 1 Fondamenti di Informatica Pag. 2
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Fondamenti di Informatica Pag. 6
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Fondamenti di Informatica Pag. 11
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Fondamenti di Informatica Pag. 16
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Fondamenti di Informatica Pag. 21
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Fondamenti di Informatica Pag. 26
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Fondamenti di Informatica Pag. 31
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Fondamenti di Informatica Pag. 36
1 su 37
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Ludonora di informazioni apprese con la frequenza delle lezioni di Fondamenti di informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Padova o del prof Pini Maria Silvia.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community