Anteprima
Vedrai una selezione di 5 pagine su 19
Informatica e java Pag. 1 Informatica e java Pag. 2
Anteprima di 5 pagg. su 19.
Scarica il documento per vederlo tutto.
Informatica e java Pag. 6
Anteprima di 5 pagg. su 19.
Scarica il documento per vederlo tutto.
Informatica e java Pag. 11
Anteprima di 5 pagg. su 19.
Scarica il documento per vederlo tutto.
Informatica e java Pag. 16
1 su 19
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Anatomia di un Calcolatore:

  • Parte software ➔ istruzioni semplici ed eseguibili rapidamente
  • Parte hardware
    • CPU (central processing unit) ➔ di transistor; controlla l'esecuzione dei programmi e l'elaborazione dei dati
      • si occupa di operazioni: aritmetiche e logiche
      • esegue istruzioni macchina (stringa di codice binario) ➔ linguaggio poco produttore e difficile da comprendere
      • si usano linguaggi di programmazione di alto livello, tradotti in L.M. da un compilatore

Vantaggi di Java:

  • sicurezza
  • portabilità
  • scelta vasta di librerie
  • designed for the Internet
  • dati utili alle CPU sono recuperati da:
    • memoria principale: RAM ➔ volatile
    • memoria secondaria: hard disk (o SSD) ➔ anche senza alimentazione

Scrivere un programma in Java

  • serve un editor di testo ➔ ce ne sono di appositi per la programmazione
  • si scrive il file sorgente nell'editor, salvando con l'estensione .java ➔ case sensitive
  • questo è dato in input al compilatore per essere tradotto in codice macchina
  • il file sorgente viene tradotto in class file, che contiene istruzioni per la JVM
  • si dà comandi testuali tramite prompt dei comandi:
    • editor ➔ Source file ➔ Compilatore ➔ class file ➔ JVM ➔ running program (library files)

Alcuni Comandi:

  • folder ➔ cartella in cui mi trovo
  • cd nome cartella/file ➔ per spostarsi da una cartella a un'altra
  • ls ➔ lista di tutte le cartelle
  • per compilare: javac file_java ➔ creazione di un file eseguibile (class)
  • per eseguire: java file

Errori:

  • di sintassi/compilazione: non viene prodotto il file class
  • logici (RUNTIME error): programma sintatticamente corretto, ma non fa quello che dovrebbe (non risolve quel task)

Eccezioni:

avviene al runtime e genera un messaggio della JVM, per errori logici gravi (es. division by zero)

Algoritmo:

Sequenza di passi per risolvere un task

  • non ambiguo
  • eseguibile
  • terminating (deve risolvere il task in un tempo finito)

Descritta da uno pseudocodice ➔ testo informale e comprensibile, poi da tradurre in Java e compilazione del programma

Analisi di un programma

Classe [PrintStream o System.out(), String]

  • definisce un insieme di oggetti con lo stesso comportamento (stessi metodi)
  • può essere public, cioè può essere usata anche in altri file
  • in ogni classe sono dichiarati alcuni metodi (main)
  • contiene oggetti diversi, manipolabili solo dai metodi di quella classe

Oggetti [System.out]

  • entità manipolabile con invocazioni di metodi
  • tengono dati memorizzati al loro interno
  • identificazione = tipo gruppo = identificativo
  • possono richiedere argomenti o parametri

- creare un oggetto -> (new) vengono recuperate celle di memoria - si tiene memorizzata dentro una variabile (es.box) - può essere mandato in output con println

Variabili

  • zone di memoria dotate di un nome [String, Int, Double]
  • quando si dichiara è meglio specificare un valore iniziale = inizializzazione
  • definite da identificatori: 1^ lettera, cifra, underscore, $
  • Regole:
    • non può iniziare con un numero
    • non usare spazi all'interno
    • non parole che fanno già parte del linguaggio Java
    • case sensitive
    • camelcase

Commenti

  • // oppure /* */
  • Per spiegare una spiegazione e rendere il codice riutilizzabile

Operatori di assegnazione

  • = serve per assegnare un valore a una variabile (se è stato assegnato uno iniziale)
  • dopo l'uguale può esserci un'operazione matematica

Metodi

  • -> sequenza di istruzioni di programmazione che descrivono come svolgere un certo task
  • ogni applicazione Java deve avere un metodo (main), contiene enunciati (terminano con ;)
  • eseguito uno dopo l’altro dall’avvio del programma
  • può essere necessario un argomento, che contiene info sul racchiuso da parentesi

Invocare un metodo: (si fa per usare un oggetto)

  • classe di appartenenza [String]
  • - numero e tipo di ciascun argomento -> river.replace("p", "s")
  • tipo del valore di ritorno [se void non c'è]
  • in una classe, possono esserci due metodi con lo stesso nome e argomenti diversi -> overloaded

3 categorie di metodi

  • metodi di accesso = leggono solamente i dati dell'oggetto, senza modificarli
  • metodi di trasformazione = fanno cambiare i dati (translate(4, 5))

- tutti i metodi di una classe costituiscono la sua public interface, specificano cosa si può fare con gli oggetti della classe.

Documentation API

(Application Programming Interface)

  • Raggruppa classi e metodi delle librerie Java per essere usate dall'Application Programmer
  • pacchetto = implementazioni di System da Programmer;
  • classi organizzate in pacchetti -> Java essere importati nella prima riga per usarli

Cap. 5 - decisioni

  • if
    • enunciato che consente al programma di compiere azioni diverse in base alla natura dei dati
      • condizioni visualizzabili col diagrammi di flusso
    • sintassi: if(condizione) { enunciati 1; } else { enunciati 2; }
  • operatori relazionali
    • = per il confronto di numeri
    • == > >= < meglio verificare che il numeroso sufficientemente prossimo a un valore soglia ε (inizializzato come costante)
  • Confronto di stringhe
    • (metodo equals) [ string1.equals(stringa2) ] oppure equalsIgnoreCase() ]
    • per valutare l'ordine lessicografico -> metodo compareTo( )
    • # le lettere maiuscole precedono tutte le minuscole e i numeri precedono le lettere
  • Confronto di oggetti
    • rispetto == , verifica se due riferimenti puntano allo stesso oggetto
    • per confrontare i contenuti di oggetti, si usa il metodo equals (se è definito nella classe)
    • e sì si nul come valore per denotare, perché valido come tutti gli altri numeri (# non si diverte da una stringa vuota)
  • Costrutti IF/ELSE composti
    • bisogna verificare prima le condizioni più specifiche, poi quelle più generiche (altrimenti le condizioni più stringenti, non verrebbero controllate)
    • if(condizione) {enunciati 1;} else if(condizione ...) {enunciati 2;}
  • Diremazioni ANNIDATE (nested branches)
    • si ha quando all'interno di una condizione if, è presente un intero blocco IF/ELSE
    • servono per risolvere problemi che richiedono decisioni su più livelli (es. tasseu)
  • Code Coverage
    • senza costrutti di decisione, tutte le situazioni sono eseguite, in serie (black box testing)
    • Se invece ne abbiamo, vengono eseguite alcune al di dati incerti, => per collaudarlo, bisogna tenere conto della struttura interna del programma ==> white box testing
  • =>si esamina ogni diramazione if/else, anche con valori anomomali (casi limite)
  • espresioni booleane, -> due valori: TRUE/FALSE
    • quando una metodo restituisce valore booleano, si dice metodo predicato
    • (non è implementato in tutte le classi)
    • si usa il specifici operatori booleani che combinano condizioni:
      • && (and) e || (or), cioè and ha la precedenza su or
      • per invertire una condizione, => ! (not)
  • dalle origini a diagrammi di flusso differenti e ci sono TRASLIE di VERITÀ
  • FLAG:
Dettagli
A.A. 2018-2019
19 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher silviaastolfi99 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 Rodà Antonio.