Struttura del programma Intestazione Lista di istruzioni Esempio: Hello { public class Hello { main (String [] args){ public static void main (String []

Slides:



Advertisements
Presentazioni simili
Introduzione al linguaggio C++
Advertisements

INFORMATICA Altre Istruzioni di I/O
Sottoprogrammi: funzioni e procedure
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A2 Java: le basi del linguaggio.
Algoritmi e Programmazione
Introduzione al linguaggio C
Introduzione al linguaggio C
INFORMATICA Strutture iterative
Programmazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++
Programmazione in Java (3)
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
Funzioni definite dall’utente
Tipi di dato e controllo del flusso Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 12 (19 novembre 2008) Programmazione in Java: i metodi statici.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 11 (19 novembre 2008) Programmazione in Java: controllo del flusso (iterazione)
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
Introduzione alla programmazione lll
Lezione 4: Costrutti Condizionali Prof. Raffaele Montella.
Fondamenti di Informatica I a.a Il linguaggio C Il controllo di flusso La selezione condizionale Listruzione switch I cicli Le istruzioni break,
Istruzioni di ripetizione in Java
Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.
Selezione (=scelta) con “if-else”
Dichiarazioni e tipi predefiniti nel linguaggio C
Il Linguaggio C.
Le funzioni.
Programmazione in Java
Programmazione in Java Claudia Raibulet
CODIFICA Da flow-chart a C++.
Il linguaggio C Le funzioni C Language Il passaggio dei parametri
Cicli in Fortran I cicli consentono di eseguire una sequenza di istruzioni più di una volta due tipi: Cicli iterativi Cicli while.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
Ripetizione La vera potenza dei programmi per computer risiede nella capacità di ripetere lo stesso calcolo o sequenza di istruzioni più volte, ogni volta.
Il linguaggio Fortran 90: 3. Procedure e Funzioni
Sintassi: Programma e classi Program::=prog {ClassDeclList {StatList}} ClassDeclList::=ClassDecl ClassDeclList |  ClassDecl::=class Ide c [StaticMetDefList]
Introduzione a Javascript
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 11 Ottobre 2014.
Corso di Algoritmi e Strutture Dati APPUNTI SUL LINGUAGGIO C
Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Strutture di controllo Esercizi!. Utilizzare i metodi: I modi per poter richiamare un metodo, di una classe (ad esempio SavitchIn) sono due. 1) E’ sempre.
Classi: class Foo { public int x; public int y; public void swap (boolean z) { if (z) {int temp = x; x = y; y = temp;}; }; } Ambienti per le classi: Cenv.
Programmazione in Java
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Nucleo di Java: Struttura e Semantica Espressioni Assegnamento Controllo di sequenza Dichiarazioni.
Lo stato  I domini della semantica restano invariati: Ide, Val (Int  { ,  }) Loc (locazioni di memoria), FunctDecl. ma definiamo 2 funzioni: Loc :
public class volume { public static void main (String[] args) { final double bott_vol =2.0; final double latt_vol = 0.355; int bott_num = 4; int latt_num.
Sommario Oggetti immutabili e non Tipi Primitivi: String, Arrays.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
FI - Algoritmi e Programmazione 1 Variabili Consentono di aumentare notevolmente la potenza espressiva. Una variabile è caratterizzata da:  Un nome 
Copyright © Istituto Italiano Edizioni Atlas
Fondamenti di informatica T-A Esercitazione 2 : Linguaggio Java, basi e controllo del flusso AA 2012/2013 Tutor : Domenico Di Carlo.
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (III)
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Strutture di controllo
13/08/02Input 1 Interagire con il computer Da tastiera Da riga di comando Funzioni di conversione.
1 Metodo I metodi sono uno strumento che i programmatori usano per strutturare i programmi, sia per renderli più facili da capire che per permettere il.
Basi di Java Strutture base di Java. Basi di java ▪Variabili ▪Operatori ▪Condizioni e Cicli ▪Array.
Introduzione alle Classi e agli Oggetti in Java 1.
Transcript della presentazione:

Struttura del programma Intestazione Lista di istruzioni Esempio: Hello { public class Hello { main (String [] args){ public static void main (String [] args){ System.out.println System.out.println(”Ciao come stai?");

La grammatica di Java (non completa) Program::= [Imports] public class Ide MainDef Imports::= Import ; Imports | Import Import::= import java.ide.(ide | * ) MethodList::=MainDef MainDef::= {public static main ([String [ ] args]) {StatementList}

La grammatica di Java (non completa) StatementList::=Statement StatementList |  Statement::= Command | Declaration Command::= System.out.print[ln](Exp) Exp::= Exp + Exp | (Exp) | Ide | Literal |.... Literal::= StringLiteral | IntegerLiteral | FloatingLiteral | CharacterLiteral | BooleanLiteral | NullLiteral

La grammatica di Java (non completa) Ide::= Char CharSeq StringLiteral::= “CharSeq” CharSeq::= Char CharSeq |  Char::= a | b |... z | A |... | Z | 0 |... | 9 |... IntegerLiteral ::= (+ | -) Integer | 0 Integer ::= Digit DigitSeq Digit ::= 0 | 1 | 2 |... | 9 DigitSeq ::= Digit DigitSeq | 

Stampa di dati in Java Stampa di dati in Java (Output) Si stampano sequenze di caratteri (String). Sia s una stringa System.out.print(s); stampa la stringa s System.out.println(s); stampa s e va a capo La stringa s può essere: 1. 1.una sequenza di caratteri racchiusi tra “ ” 2. 2.stringhe concatenate s1+s2 (+ operatore di concatenazione) 3. 3.qualunque valore che puo` essere convertito in stringa ad es. i numeri (attenzione al + vedi es.)

Tipi di dati primitivi in Java numeri: – –interi 1,+22,-133, int, long, short – –razionali 0.345, 56.54, 9, float, double booleani: ( true,false ) boolean caratteri: ‘a’,... ‘A’ char

public class volume { public static void main (String[] args) //calcolo della quantita` totale di bibite { final double bottVol =2.0; final double lattVol = 0.355; int bottNum = 4; int lattNum = 10; double totale = bottVol * bottNum + lattVol * lattNum; System.out.println(“volume totale ” + totale + “ litri” ); }} Un altro esempio

La sintassi di Java La sintassi di Java (le dichiarazioni) Declaration ::=[DescSeq] Type Ide [= Exp]; DescSeq ::= Desc DescSeq |  Desc ::= public | private | static | final Command::= System.out.print[ln](Exp) Type ::= int | boolean | double | float | char | Ide

Costanti final Type Ide=Exp; Ide è una costante cioè un nome a cui è associato un valore (analogamente alle variabili) di tipo T, a cui però può essere assegnato un valore una sola volta. Vantaggi: Aumentano la leggibilità Se cambia il valore della costante devo modificarlo solo nell’inizializzazione

Commenti Aumentano la leggibilita` se usati con criterio. In Java ci sono due modi di inserire commenti: commenti su una sola riga //: //calcolo della quantita` totale di bibite commenti su piu` righe /* */: /* Commenti racchiusi tra parentesi */

Comandi Linux per Java Per eseguire abbiamo visto: java nomeClasse Per compilare : javac nomeClasse.java dove nomeClasse.java è il nome del file contenente il (sorgente del) programma Java, editato usando emacs o un altro editor di testi.

Per eseguire un programma: Occorre: – –scrivere il programma in un file (usando ad esempio emacs) dandogli come nome il nome della classe che ha come metodo statico main con aggiunto il suffisso “.java” – –compilare il programma con il comando javac – –eseguire il programma con il comando java

Lettura di dati in Java Lettura di dati in Java (Input) Non useremo la lettura standard perchè un po’ troppo complessa, esempio: – –c e` una variabile che: va dichiarata come segue: ConsoleReader c=new ConsoleReader (System.in) – –i comandi a disposizione sono readInt: c.readInt readLine: c.readLine() readDouble: c.readDouble() readChar: c.readChar()

La sintassi di Java () La sintassi di Java (non completa) Exp::= Exp + Exp | (Exp) | Ide | Literal | new ConsoleReader (System.in); | c.readLine(); | c.readDouble(); | c.readInt(); | c.readChar();

Astrazione sui valori Introduzione di nomi con associati dei valori Esempio: Hello { public class Hello { main (String [] args){ public static void main (String [] args){ System.out.println System.out.println(”Come ti chiami "); ConsoleReader c=new ConsoleReader (System.in); String nome=c.readLine(); System.out.println System.out.println(”Ciao "+nome);}}

Altri tipi predefiniti :double, e float per i razionali Costanti 0.0, 1.2, 5.89 ecc. Tutte le operazioni sugli interi:+.-.*,/ È possibile anche fare operazioni miste (operandi int e double) il risultato è un double 3*1.2=3.6 Assegnamento: int  float  double – –int x=7; double y; y=x; y ora vale 7.0 (esempio) – –x=y/2  errore x=(int)y cast

Composizione di istruzioni Sequenzializzazione: le istruzioni vengono eseguite in sequenza: S 1 S 2... S k Lo stato in cui viene eseguita S 2 è lo stato risultante dopo l’esecuzioni di S 1 nello stato di partenza, ecc. lo stato in cui viene eseguita S i è lo stato risultante dopo l’esecuzioni di S i-1. Sintassi della sequenzializzazione: StatementList::=Statement StatementList | 

Composizione di istruzioni Condizionale: le istruzioni eseguite dipendono dal verificarsi o meno di una condizione. Due forme: Sintassi if (Cond) C 1 else C if (Cond) C 1 Semantica informale Nello stato di partenza viene verificata la condizione (Cond) che è un’espressione boolena. Se la condizione è verificata viene eseguito S 1 altrimenti nella forma 1 si esegue S 2, nella forma 2 si prosegue con l’istruzione successiva. S 1 ed S 2 sono comandi

Esempio di condizionale: massimo di due numeri public class CalcolaMassimo2 { public static void main (String [] args) {... int n1=console.readInt(); int n2=console.readInt(); if (n1>n2) System.out.println(”Massimo "+n1); else System.out.println(”Massimo "+n2); else System.out.println(”Massimo "+n2);}}

Assegnamento Modifica di variabile: Sintassi Ide = Exp 2. 2.Semantica informale Nello stato di partenza viene valutata l’espressione Exp, ottenendo il valore v espressione che deve essere dello stesso tipo (o compatibile) con il tipo di Ide. Ide deve essere dichiarata nello stato di partenza. Lo stato risultante è lo stato di partenza in cui Ide ha come valore v

Esempio di condizionale: massimo di tre numeri public class CalcolaMassimo3 { public static void main (String [] args){ int max=console.readInt(); int n1=console.readInt(); int n2=console.readInt(); if (n1>max) max=n1; if (n2>max) max=n2; System.out.println("Numero massimo e` "+max);}}

Composizione di istruzioni Iteratori: le istruzioni del corpo dell’iteratore vengono eseguite ripetutamente. La ripetizione è avviene se è verificata una condizione. Esistono tre forme di iterazione in Java: while do - while for Gli iteratori in Java sono tutti equivalenti (si può sempre sostituire un iteratore con un altro di diversa forma. Forme diverse si adattano diversamente alle varie situazioni. Il risultato è che se si sceglie la giusta forma il programma è più leggibile.

while Il corpo S dell’iteratore viene eseguito finchè la condizione (cond) è vera. Sintassi: while (cond) S Semantica informale: Si valuta la condizione (cond) nello stato di partenza, se è vera si esegue il corpo S, nello stato risultante dall’esecuzione di S si rivaluta l’intero while.

Esempio while: massimo di k numeri public class CalcolaMassimoKWhile { public static void main (String [] args){ final int k=10; System.out.print("Scrivi il primo numero > "); int max=c.readInt();int n;int i=2; while(i<=k) { System.out.print("Scrivi il "+i+" numero> "); n=c.readInt(); if(n>max) max=n; i++; } System.out.println("Il valore massimo e` "+max);}}

While con variabili booleane La definizione di variabili booleane inizializzate true utilizzate nella condizione di un while permettono di terminare quando la condizione diventa falsa (dimostrazione per assurdo). Vedi esempio LeggiFinoAlPunto.

Un altro iteratore il for for ([T] Ide =Exp1; BE ; Ide=Exp2) C |... Com::=... | for ([T] Ide =Exp1; BE ; Ide=Exp2) C |... contatore 4 corpo 1) Inizializzazione del contatore. Dichiarazione o assegnamento 3 aggiornamento del contatore 2) condizione Il for in Java è equivalente al while (vedi semantica) cambia solo la sintassi.

La sintassi di Java: comandi Command::= Ide= Exp; | {StatementList} | if (Exp) C1 else C2; | if (Exp) C; | while (Exp) C; | do C while (Exp); | for([Type] Ide = Exp; Exp; Ide=Exp) C; | System.out.print[ln](Exp);

public class FigureGeometriche{ public static void main (String[] args) {System.out.println(“Scrivi C per Cerchio”); System.out.println(“Scrivi R per Rettangolo”); System.out.println(“Scrivi T per Triangolo”); char c =Leggi(); if(c==‘C’) faiCerchio; //Blocco per Cerchio else if(c==‘R’) faiRettangolo; /*Blocco per Rettangolo*/ else if(c==‘T’) faiTriangolo; //Blocco per Triangolo else System.out.println(“Errore figura sconosciuta”);}} Esempio Figure geometriche

faiCerchio: {System.out.println(“Dammi il raggio del cerchio”); final double pigreco=3.14; double raggio=leggi(); double area=raggio*raggio*pigreco; System.out.println(“Area del cerchio di raggio “+raggio+”e` ”+ area) } Esempio - Figure geometriche Cerchio

faiRettangolo: {System.out.println(“Dammi la base del rettangolo”); double base=leggi(); System.out.println(“Dammi l’altezza del rettangolo”); double altezza=leggi(); System.out.println(“Area del rettangolo di base “ +base+” e altezza “+altezza+ “ e` ”+ base*altezza} Esempio Figure geometriche:Rettangolo

faiTriangolo: {System.out.println(“Dammi la base del triangolo”); double base=leggi(); System.out.println(“Dammi l’altezza del triangolo”); double altezza=leggi(); System.out.println(“Area del triangolo di base “ +base+” e altezza “+altezza+ “ e` ”+ base*altezza/2} Esempio Figure geometriche:Triangolo

Programmazione strutturata Problemi complessi si risolvono suddividendo il problema in problemi più semplici ciascuno risolto da un programma – –es: faiCerchio, faiRettangolo e faiTriangolo sono pezzi di programma che assolvono un compito, in questo caso quello di leggere e calcolare per una data fig. geometrica. I programmi definiti dentro un programma più generale si chiamano procedure o funzioni nei linguaggi o-o (Java): metodi.

“Sottoprogrammi” Trasferimento del controllo (cambia il flusso delle istruzioni) Concetti di programma chiamante e programma invocato Scambio di dati tra programma invocato e programma chiamante – –parametri formali e – –parametri attuali – –risultato del programma invocato – –ambiente del programma invocato

public static Type Ide (Type Ide1, Type Ide2) {StmtList }... Ide(Val1,Val2).... Definizione e invocazione di “sottoprogrammi” nome metodo parametri formali parametri attuali corpo del metodo tipo del risultato corrispondenza formali attuali

Le classi in Java Le classi rappresentano insiemi di entità con le stesse caratteristiche. Nei linguaggi object-oriented il modello privilegia la rappresentazione delle entità. Ogni programma Java prevede la definizione di almeno una classe. In questa fase la classe è vista come un contenitore di metodi (“sottoprogrammi”)

Astrazione procedurale in Java: Metodi statici (static) Permettono di definire funzioni di uso comune non legate a specifiche entità che sono rappresentate nel programma Sono sempre definiti in una classe Anche il main (programma principale) è un metodo statico della classe che viene passata come argomento al comando Linux: java nomeClasse che provoca l’esecuzione del programma

Strutturazione del programma definendo più classi Invece di aggiungere i metodi alla classe in cui è definito il main è possibile definire i metodi in una classe diversa. In questo modi possono raggruppare metodi che svolgono funzioni analoghe (es. Geometria e Num) L’invocazione diventa: IdeClass.Ide(Val 1,..Val k )