6. Acquisizione dati da tastiera
|
|
- Cosima Rossi
- 7 anni fa
- Visualizzazioni
Transcript
1 6. Acquisizione dati da tastiera pag.39 Si sarà notato che gli esempi proposti non acquisiscono mai dati da tastiera ma solo per assegnamento o generazione random di numeri. Tutto questo è imputabile al fatto che, per eseguire una acquisizione dati da tastiera, si rende necessario introdurre le classi di Input e Output di Java. In secondo luogo Java è un linguaggio utile per realizzare interfacce di input di carattere grafico ovvero è più semplice acquisire dati in un campo all interno di una finestra video (vedi ambiente windows) che non direttamente da console o ambiente DOS come usualmente opera il Pascal. Si farà un semplicissimo esempio di acquisizione dati da tastiera senza approfondire tutti i particolari di questo metodo perché è scarsamente utilizzato in un programma Java come si vedrà nei successivi sviluppi Uso dell input da console (tastiera) Le classi di Input e output sono contenute nel package java.io l informazione può essere utile anche se di tali classi si farà un uso limitatissimo e non si entrerà nel dettaglio. L unica istruzione di output utilizzata fino ad ora è stata la System.out.println( ) oppure print( ): la prima equivale alla Writeln() del Pascal e la seconda alla Write( ). Nel seguito si farà uso di una istruzione equivalente alla Read() del Pascal la System.in.read( ). Questa è in grado di leggere solo semplici caratteri o byte da tastiera. Iniziamo da un esempio. esempio 6.1 : Si codifichi il seguente problema semplice costruire un programma che acquisisca la dimensione N dall utente, generi un array di N interi e assegni ad ogni componente i valori 100, N-1 e lo stampi. Richieste: a) Rispettare la seguente scomposizione ad albero: main() chiama leggi() che restituisce un intero, genera il vettore richiesto e lo stampa. leggi() : acquisisce da tastiera un intero che sarà la dimensione N del vettore; b) realizzare il main() program. c) realizzare le procedure leggi() e alt(); main( ) leggi( ) Prima codifica del main( )
2 pag.40 Commenti alla codifica La prima stesura del codice mostra il main che non contiene elementi nuovi, se si esclude l invocazione di leggi(). Questa procedura (più esattamente metodo statico) é scritta in forma di prototipo vuoto. Anche in queste condizioni il programma può essere compilato per testare gli eventuali errori. L intestazione della function ha il seguente significato: int leggi() significa che la leggi() non riceve dati di input ma restituisce un intero (int) in output. Servirà per acquisire un numero che corrisponde alla dimensione del vettore da generare nel main(). Prosecuzione della codifica: codice di leggi(). Le nuove parole chiave sono: import java.io.*; che importa il package di i/o per usare il metodo di lettura da tastiera System.in.read(). throws IOException se non si aggiunge questa istruzione il compilatore segnala errore (Exception). Per ora la si interpreti semplicemente come un ordine al compilatore di non segnalare errori in sede di acquisizione dati. Vedremo in seguito cosa sono le eccezioni. (Notare che il throws è ripetuto nel main()). throws NumberFormatException (tralascia le segnalazioni di eccezione sul formato dei numeri) se non si aggiunge questa istruzione il compilatore segnala errore. Per ora interpretiamola semplicemente come un ordine al compilatore di non segnalare errori in sede di trasformazione di una stringa in intero operata dal metodo r= Integer.parseInt(s); La chiamata di questo metodo statico associato agli oggetti Integer trasforma la stringa s di input in un int r restituito in output. Il ciclo while (<cond>) { <blocco> }; - acquisisce singoli caratteri da tastiera con la System.in.read() e li pone nella stringa s fino al RETURN= \n.
3 pag.41 s=s+string.valueof(c); è un metodo statico associato agli oggetti Stringa che, applicato al carattere (c), lo trasforma in una stringa che poi appende a s. s=s.substring(in, fin); è un metodo associato agli oggetti Stringa che, applicato alla stringa s con parametri interi (in, fin), restituisce la sottostringa da in a fin e la assegna a s stessa. (Serve ad eliminare da s il carattere di RETURN appeso dal ciclo precedente). Si può notare che le istruzioni del main() i=leggi(); V=new int[i]; consentono di dimensionare in corsa il vettore. A differenza del linguaggio Pascal i vettori di Java hanno un comportamento dinamico. Il Run da console Dopo la compilazione del programma si passa all esecuzione che avverrà (a differenza dell esecuzione dei programmi precedenti) con l opzione: Build: Run with Console e non con l opzione Build: Rum application. La ragione dell uso di questa diversa opzione di RUN risiede nel fatto che per la prima volta il programma non deve mostrare solo un OUTPUT ma anche acquisire in INPUT; questo impone l uso della finestra di tipo Console. Di seguito si nota la console di Input Output con i risultati:
4 6.2. Parametri in Pascal e in Java pag.42 Si è visto che per codificare un sottoproblema in Pascal si utilizza lo strumento della Procedure e della Function. Tale strumento è utile per stabilire quali dati di input riceve e quali dati in output deve restituire il sottoproblema individuato. In Java è definito il concetto equivalente di Metodo e lo si è usato con analoghe modalità. Per Metodo si intende una funzione che riceve dati di input, dal programma invocante, esegue certe operazioni su uno o più oggetti predefiniti e restituisce al termine, eventuali dati di output al programma che lo ha invocato. L'interfaccia o intestazione di un metodo Java trova quindi una corrispondenza nelle intestazioni di procedure o function del Pascal. Di seguito si cercheranno di individuare criteri tesi a stabilire l'esatta corrispondenza tra questi strumenti di codifica nei due linguaggi e di conseguenza permettere di trasformare procedure del Pascal in Metodi di Java. Si è fatto uso di metodi Java statici (static) e di metodi dinamici il cui diverso funzionamento è stato schematizzato con un diverso utilizzo della memoria del computer per l'allocazione dei valori assegnati. Si tratta ora di capire come questi due tipi di strumento possano essere usati correttamente per risolvere sottoproblemi. In sintesi si potrebbe dire che un metodo statico corrisponde al concetto di Function (o procedure) del Pascal in quanto può essere interpretato come uno spezzone di codice che riceve dati di input e restituisce risultati in output senza essere vincolato a nessuna Classe o Oggetto dinamico. Un Metodo dinamico è invece sempre definito in una Classe e viene sempre applicato ad una sua istanza (Oggetto). Gli oggetti possono essere manipolati solo con l'invocazione di questi metodi dinamici. Vediamo queste differenze attraverso esempi. Il sottoproblema, ormai risolto tante volte, che calcola il Massimo Comun Divisore tra due numeri Naturali, potrebbe essere schematizzato con le seguenti intestazioni: Intestazione sottoproblema Esempio di invocazione Pascal Function MCD (a, b :integer):integer; Var c:integer; c:=mcd(12, 18); Java public static int MCD( int a, int b); int c=mcd(12, 18) (a.1) Java public (*)Naturale MCD(Naturale b); (*)Se esistesse la Classe Naturale in Java Naturale a, b, c; a = new Naturale(12); b = new Naturale(18); c = a.mcd(b); (b.1) Nei tre casi precedenti si può interpretare l intestazione di MCD() come una "entità" che riceve due numeri interi (a,b) e restituisce l intero o il Naturale (c). a, b c MCD
5 pag.43 La terza riga della tabella individua un terzo caso puramente teorico, in quanto la classe Naturale non esiste in Java, ma serve per mostrare che l'invocazione di un metodo dinamico in Java ha una forma diversa e deve sempre essere chiamato anteponendo all'identificatore del metodo l'oggetto a cui è associato: in questo caso è un Naturale. <oggetto>. metodo( <parametri> ); Se ci si sofferma sul significato dei parametri di invocazione di un metodo si nota che l'intestazione può avere due forme: (a) Metodo statico intestazione: public static <tipo par. out> nome_metodo ( <par. input> ); (a.1) invocazione di metodo statico definito all interno di una classe: ris = nome_metodo(<par. Input>); (a.2) invocazione metodo statico associato ad una classe: ris = <Classe>.nome_metodo(<par. Input>); (b) Metodo dinamico intestazione: public < tipo par. out > nome_metodo ( <par. input> ); (b.1) invocazione metodo dinamico ris = <Oggetto>.nome_metodo(<par. input>); Quali sono nei due casi (a) e (b) i parametri di input e quelli di output? Nel metodo statico (a.1) l'invocazione è analoga a quella di una Function del Pascal. I parametri di input sono tutti e solo quelli che compaiono entro le parentesi tonde (<par. input>), quelli restituiti devono sempre comparire raggruppati in una unica variabile (eventualmente strutturata) il cui tipo viene dichiarato davanti all'identificatore del metodo <tipo par. out>. I metodi int leggi() e void alt() dell esempio precedente erano di questo tipo. Nel metodo statico associato ad una classe (a.2) l'invocazione richiede che si anteponga all'identificatore del metodo la corrispondente class di Java <classe>. I parametri di input di output sono esattamente gli stessi caso (a.1). I metodi usati nell esempio precedente: int i = Integer.parseInt(String); String s = String.valueOf( char ); erano del tipo (a.2). Nel metodo dinamico, sempre associato a una classe (b.1) l'invocazione richiede che si anteponga all'identificatore del metodo un oggetto <oggetto> allocato in precedenza con new. I parametri di input sono tutti quelli che compaiono entro le parentesi tonde, a cui si deve aggiungere l'oggetto con cui è invocato. Quelli di output sono quindi identici a quelli del precedente caso (a.1) I metodi di String e StringBuffer del capitolo precedente: String S = A.substring(int, int); è applicato all aggetto A che deve essere allocato e riceve in input i due parametri di tipo int, restituisce in output la sottostringa S.
6 Se A,B sono due StringBuffer allocati con caratteri, l invocazione pag.44 StringBuffer C = A.appen(B); Applica all oggetto referenziato A l operazione di append dell oggetto in input B e restituisce l oggetto C modificato in output. Un sottoproblema che determini la prima è l'ultima occorrenza di un carattere assegnato in stringa ha le seguenti intestazioni: Intestazione sottoproblema Esempio di invocazione Pascal Procedure pri_ult(s : string; ch : char; Var p,u : integer); Var p,u : integer; pri_ult('banana', 'a', p,u); writeln(p," ", u); Java public static coppia pri_ult(string s, char ch); class coppia { int p, int u } Java public coppia pri_ult(ch:char); (*) (*)Se esistesse il metodo in String coppia c; c = pri_ult("banana", 'a' ); (a.1) System.out.println(c.p+" "+c.u); String s="banana"; coppia c; c = s.pri_ult('a'); (b.1) System.out.println(c.p+" "+c.u); Si nota che un metodo statico o dinamico restituisce sempre un solo tipo di dato, è di conseguenza sempre necessario definire il tipo di dato da restituire, sia che questo tipo di dato appartenga a quelli predefiniti del linguaggio, sia che si tratti di un tipo di dato strutturato di nostra definizione. Nel caso particolare siccome devono essere restituiti due interi si dovrà dichiarare una classe coppia che diviene il contenitore unico dei due valori restituiti in output dal metodo. Anche in questo caso i tre sottoproblemi possono essere interpretati dal seguente "schema" s, ch c Pri_ult (c) non è più un tipo semplice ma è costituito dalla coppia (c.p, c.u). Un sottoproblema che elimini un carattere di posizione assegnata in una sequenza di caratteri ha le seguenti intestazioni; Pascal Intestazione sottoproblema Esempio di invocazione Function deletecharat(s:string; ind:integer ):string; Var sr : string; sr := deletecharat ('fico', 3); Pascal Procedure deletechatat(var s:string, ind:integer); Var s:straing; s := 'fico'; Java public static StringBuffer deletecharat (StringBuffer s, int ind); deletecharat (s, 3); StringBuffer sr, s; s = new StringBuffer("fico"); sr = deletecharat(s, 3) (a.1) Java public StringBuffer deletecharat(int ind); (*) (*) metodo presente in StringBuffer StringBuffer sr, s; s = new StringBuffer("fico"); sr= s.deletecharat(ind);
7 pag.45 6.E Esercizi Realizzazione o Conversione di sottoproblemi (con dati assegnati nel programma) con acquisizione dell input da tastiera. Uso dei metodi di String, StringBuffer, Integer, Float, Double per risolvere problemi. 6.1 (conversione 5.2) Si desidera costruire un programma che acquisita da tastiera una stringa che contenga sia lettere che numeri determini e stampi quante sono le prime e quanti i secondi e stampi a video il risultato. Richiesta: realizzare un main() che invochi una function leggi_stri() analoga a leggi_int() dell esercizio svolto del paragrafo 6.1. e fare uso dei metodi di String e StringBuffer. 6.2 (conversione 5.3) Si desidera costruire un programma che acquisita da tastiera una stringa che contenga sia lettere che numeri sostituisca tutti i numeri con in carattere x e stampi vecchia e nuova stringa a video. Richiesta: realizzare un main() che invochi una function leggi_stri() analoga a leggi_int() dell esercizio svolto del paragrafo 6.1. e fare uso dei metodi di String e StringBuffer. 6.3 (conversione 5.1) Realizzare un programma che acquisita da tastiera una stringa e un carattere determini quante volte il carattere ricorre nella stringa e stampi a video il risultato. Richiesta: rispettare la seguente scomposizione ad albero in sottoproblemi: leggi stri() main() leggi char() conta() main() deve invocare in sequenza leggi_stri(), leggi_char(), conta() e quindi stampare sulla console la stringa, il carattere e la sua ricorrenza; leggi_stri() deve acquisire da tastiera la stringa (String o StringBuffer); leggi_char() deve acquisire da tastiera il carattere necessario; conta() deve restituire il conteggio delle ricorrenze. Nota: le procedure leggi_xx() possono essere realizzate in analogia a leggi_int() dell esercizio svolto del paragrafo (conversione 5.4) Realizzare un programma che acquisita da tastiera la dimensione N<=20 di un vettore (di Integer), lo generi in modo random con interi compresi tra 0 e 99. Stampi a video tutte le componenti dell array e la somma.. Richiesta: rispettare la seguente scomposizione ad albero in sottoproblemi: leggi dim() main() somma() stampa()
8 pag.46 main() deve invocare in sequenza leggi_dim(), somma(), stampa(); leggi_dim() deve acquisire da tastiera la dim<=20 del vettore. somma() solo eseguire e restituire la somma, inviando gli opportuni parametri di input; stampa() deve ricevere i dati da stampare ed eseguire la stampa a video. Nota: la procedura leggi_dim() può essere realizzata in analogia a leggi_int() dell esercizio svolto del paragrafo (conversione 5.7) Si desidera costruire un programma che generi un array di dimensione dim<=30 di oggetti Number, immettendo in modo casuale nelle componenti sia Integer compresi tra 1 e 30 che Double compresi tra e e infine stampi e verifichi la distribuzione generata. Richieste: rispettare la seguente scomposizione in procedure: leggi_dim() scelta() main() gen_int() gen_double() stampa() - main(): invoca dim=leggi_dim() per acquisire la dimensione dim<=30 dell array da allocare, alloca l array di Number e quindi all interno di un ciclo invochi ripetutamente la procedura scelta() e, a seconda del numero generato da questa, saranno invocate gen_int() o gen_double() per generare l oggetto desiderato e assegnarlo alla componente dell array. Infine, fuori dal ciclo, sarà invocata la procedura stampa() che mostrerà a video il contenuto dell array. - scelta(): restituisce casualmente (random) 0 oppure 1. Zero indica la necessità di invocare gen_int() per assegnare un Integer all array, Uno di invocare gen_double() per assegnare un Double all array; - gen_int(): genera un int compreso tra 1 e 30; - gen_double(): genera un double compreso tra e stampa(): stampa l array. 6.6 Si desidera costruire un programma che generi un array di dimensione dim<=30 di oggetti Number, come il precedente 6.5. Oltre alla stampa delle componenti dell array come il precedente, stampi a fianco di ogni componente il tipo di dato (la classe a cui appartiene). Vedi esercizio 5.8. Esempio di stampa: V[0] = Double V[1] = 23 Integer V[2] = 2 Integer Ecc.
6.1 L uso di istruzioni di input da console con la classe Tastiera
appunti java Capitolo 6 pag. 1 6. Acquisizione dati da tastiera e sottoprogrammi Si sarà notato che gli esempi proposti non acquisiscono mai dati da tastiera, ma solo per assegnamento o generazione random
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA2 2.1- Funzioni 1 Prerequisiti Programmazione elementare in Java Tecnica top-down Concetto matematico di funzione Compilazione e link di programmi Esecuzione di funzioni
DettagliEsempi di programmi. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E01. A. Miola Settembre 2007
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E01 Esempi di programmi A. Miola Settembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Esempi di programmi - 1 1 Contenuti
DettagliLe classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:
Le classi in java Un semplice programma java, formato da una sola classe, assume la seguente struttura: class Domanda static void main(string args[]) System.out.println( Quanti anni hai? ); La classe dichiarata
Dettagli7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari
7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa
DettagliProgrammazione I - corso B a.a prof. Viviana Bono
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 2009-10 prof. Viviana Bono Blocco 12 Riepilogo e complementi sui tipi Ripasso del sistema di tipi
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA A - Array // Prerequisiti Variabili semplici Operazioni su variabili Strutture di controllo // Introduzione In molte situazioni reali può capitare di elaborare elenchi
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Struttura di un programma Java
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA 1 Struttura di un programma Java Un programma Java consiste in un insieme di definizioni di classi. In genere
DettagliFondamenti di Informatica T-1
Fondamenti di Informatica T-1 Input/Output, Variabili, Tipi e Stringhe Tutor: Angelo Feraudo angelo.feraudo2@unibo.it a.a. 2017/2018 Fondamenti di Informatica T-1 Angelo Feraudo 1 / 26 TUTOR Angelo Feraudo
DettagliEsercizi Programmazione I
Esercizi Programmazione I 9 Novembre 201 Esercizio 1 Valutare e dare il tipo delle seguenti espressioni condizionali. 1 char a= a, b= b ; // a ha v a l o r e decimale 97 2 i n t i= 1, j= 2 ; 3 double x=
DettagliProgrammazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013
Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Sommario Array Array monodimensionali Array bidimensionali Esercizi 16/01/2013 2 ARRAY Gli array sono oggetti utilizzati in Java per memorizzare
DettagliCapitolo 5. Array e collezioni. c 2005 Pearson Education Italia Capitolo 5-1 / 61
Capitolo 5 Array e collezioni c 2005 Pearson Education Italia Capitolo 5-1 / 61 Sommario: Array e collezioni 1 Array Array di oggetti Lunghezza di un array Accesso agli elementi di un array Array e cicli
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione
DettagliUso di metodi statici. Walter Didimo
Uso di metodi statici Walter Didimo Metodi di istanza Fino ad ora abbiamo imparato a creare oggetti e ad invocare metodi su tali oggetti i metodi venivano eseguiti dagli oggetti un metodo invocato su un
DettagliUnità A1 Funzioni MODULO Java 2
Dare una breve descrizione dei termini introdotti: (A) CONOSCENZA TERMINOLOGICA Passaggio parametri per valore Passaggio parametri per indirizzo Parametri formali e attuali Regole di visibilità Ambiente
DettagliC: primi elementi. Lezione 4
C: primi elementi Lezione 4 Evoluzione del BCPL (1967) e B (1970), entrambi typeless Sviluppato da Dennis Ritchie nel 1972 ed implementato per il PDP-11 Usato per lo sviluppo del sistema operativo UNIX
DettagliFunzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2018/2019 Argomenti del Corso Ogni lezione consta di una spiegazione assistita da slide,
DettagliCorso di Informatica
Corso di Informatica Modulo T -Struttura vettore 0/08/0 Prerequisiti Programmazione elementare Passaggio parametri per indirizzo 0/08/0 Introduzione I dati di tipo semplice (Intero, Reale, Carattere, Booleano)
DettagliConcetti base programmazione. Antonio Gallo
Concetti base programmazione Antonio Gallo info@laboratoriolibero.com Programma Insieme di istruzioni: Strtturato Ad oggetti Strutturato Ha una struttura più lineare Basato sui concetti di sequenza, selezione,
Dettagli9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
9 - Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea
DettagliIl primo programma C++
Il primo programma C++ Un programma in qualsiasi linguaggio evoluto è una sequenza di istruzioni che la CPU dopo opportune conversioni esegue. La sintassi dei linguaggi di programmazione è molto piu rigida
DettagliDati due punti sul piano calcolare la loro distanza
Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12
Dettagli-! $% '.! / %! % ) & & RAM Statica Progr. Java. Var statiche del Progr. RAM. Statica Progr. Java. Var statiche del Progr. 3 ####
! " # $ % #()* +, $ ( -! $%.! / %! % ) 012 334 *4 5 (/5 i k 114 635 /67(!3% i k RAM Statica Progr. Java Var statiche del Progr. RAM Statica Progr. Java Var statiche del Progr. 3 #### RAM Dinamica o RAM
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA7 A1 Vector, Arrays e StringBuffer 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Algoritmi notevoli sul vettore 2 1 Introduzione In questa
DettagliLe basi del linguaggio Java
Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una
DettagliDo...While() Break Continue Concetto di Funzione e Procedura METODI in Java
Fondamenti di Informatica Do...While() Break Continue Concetto di Funzione e Procedura METODI in Java Prof.Angela Bonifati 1 Istruzione while int vet1[] = new int[20]; int vet2[] = new int[20]; for(int
DettagliJava Gli array. Array
Java Gli array 1 Gli array In generale un array è una sequenza di locazioni di memoria, che contengono entità dello stesso tipo, e a cui si può fare riferimento con un nome comune Le entità che compongono
DettagliIntroduzione Programmazione Java
Introduzione Programmazione Java Paolo Tomeo paolo.tomeo@poliba.it Regole basilari Java è case sensitive quindi prestare attenzione alle maiuscole Il commento si inserisce con // all'inizio della linea
DettagliAutore: Prof. Agostino Sorbara ITIS "M. M. Milano" Polistena (RC)
con questo nome si indica in genere un pezzo di programma, dotato di una propria identità: un modulo, ad esempio, potrebbe essere l insieme di alcune funzioni C, o Pascal, che risiedono in un unico file
DettagliJava Gli array. Array
Java Gli array 1 Gli array In generale un array è una sequenza di locazioni di memoria, che contengono entità dello stesso tipo, e a cui si può fare riferimento con un nome comune Le entità che compongono
DettagliLezione 6 Introduzione al C++ Mauro Piccolo
Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,
DettagliIntroduzione all uso degli oggetti in Java (parte I) Walter Didimo
Introduzione all uso degli oggetti in Java (parte I) Walter Didimo Java Java è un linguaggio di programmazione orientato agli oggetti; nel seguito vedremo: come sono strutturati i programmi Java come si
Dettagli19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso
DettagliCorso di Informatica A.A
Corso di Informatica A.A. 2009-2010 Lezione 9 Lezione 9 1 Il linguaggio C Istruzioni di input/output Arrays La funzione printf() La funzione printf() consente di mostrare sullo standard output (normalmente
DettagliProgrammazione M.A. Alberti. Comunicazione digitale AA 2009/ Classi in Java 1. Le classi in Java. Oggetti. Classi. Classi. Visibilità dei dati
Oggetti Le classi in Java Corso di laurea in Un oggetto è definito dal suo stato - descrive le sue caratteristiche comportamento - quello che può fare Ad esempio: il modello di una moneta Una moneta può
DettagliInformatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter
Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Funzionamento macchina di von Neumann clock Memoria Centrale: Tutta l informazione prima di essere
DettagliFondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario La classe String Lettura da input di dati numerici (tipo int) Stampa di dati numerici Uno sguardo al codice Esercizi 21/03/2011 2
DettagliLa Programmazione. Cos è la programmazione? Concetti preliminari
La Programmazione Cos è la programmazione? Concetti preliminari 1 Sommario La programmazione, questa sconosciuta Programmiamo Macchine Astratte Linguaggi di basso e alto livello e loro implementazione
Dettagli3. La sintassi di Java
pag.9 3. La sintassi di Java 3.1 I tipi di dati statici In Java, come in Pascal, esistono tipi di dati statici predefiniti e sono i seguenti: byte 8 bit da -128 a 127 short 16 bit coincide con l integer
DettagliOctave. Luca Abeni. Informatica Luca Abeni 1 / 21
Luca Abeni Informatica Luca Abeni 1 / 21 Linguaggi di Programmazione di Alto Livello Parole chiave: possibilmente con significato in inglese Ma agli informatici piacciono molto contrazioni e acronimi...
DettagliConcetto di Funzione e Procedura METODI in Java
Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile
DettagliFondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java
Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java AA 2018/2019 Tutor Lorenzo Rosa lorenzo.rosa@unibo.it 2 Programma Introduzione al calcolatore e Java Linguaggio Java, basi e
DettagliFunzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
DettagliInformatica per Statistica Riassunto della lezione del 21/10/2011
Informatica per Statistica Riassunto della lezione del 1/10/011 Igor Melatti Costrutti del linguaggio C: ripasso Si consideri il programma C alla Figura 1 ci sono due dichiarazioni di funzioni, insertion
DettagliEsercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni
Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizio 1 Dire quale è la complessità temporale del seguente metodo, espressa con notazione asintotica O(.) (con la migliore
DettagliLaboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 5 31/10/2013
Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 5 31/10/2013 Original work Copyright Sara Migliorini, University of Verona Modifications Copyright Damiano Macedonio, University
DettagliVariabili e Funzioni. Informatica 1 / 19
Variabili e Funzioni Informatica 1 / 19 Programmi C e Un programma C e composto da funzioni e variabili Variabile: memorizza valori appartenenti ad un insieme di definizione (dipendente dal tipo) Funzione:
DettagliProgramma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
DettagliA. Ferrari. informatica. Java basi del linguaggio. Alberto Ferrari Informatica
informatica Java basi del linguaggio Alberto Ferrari Informatica struttura di un programma Java /** * Classe EsempioProgramma * Un esempio di programmazione in Java * @author 4A Informatica */ public class
DettagliProgrammazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013
Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Sommario Metodi statici Parametri attuali e formali Passaggio dei parametri Effetti collaterali Metodi statici per Array Esercizi 16/01/2013
DettagliCorso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4
Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4 Domanda n. 1 Argomento: Rappresentazione dell'informazione Domanda: Il numero binario
DettagliProgrammazione in Java (I modulo)
Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto
DettagliFondamenti di Informatica T-1
Fondamenti di Informatica T-1 Input/Output, Variabili, Tipi e Stringhe Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2016/2017 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 19 VARIABILI
DettagliImpariamo a programmare in. Lezione 7
Impariamo a programmare in Ancora Stringhe Sequenze di escape Proviamo a stampare una stringa che contiene delle virgolette Hello, World! // NON FUNZIONA! System.out.println("Hello, "World"!"); Il compilatore
DettagliFunzioni, puntatori, strutture. Lab. Calc. AA 2006/07
Funzioni, puntatori, strutture sommario In questa lezione integriamo le informazioni fornite su puntatori e funzioni approfondendo i seguenti punti Puntatori a puntatori Puntatori e array come parametri
DettagliMetodi statici. Dichiarazione e chiamata di metodi statici
Metodi statici Dichiarazione e chiamata di metodi statici Cos è un metodo Un metodo è un blocco di istruzioni che fornisce una funzionalità e viene identificato con un nome Può avere dei parametri ed un
DettagliL oggetto creato. Creazione di Oggetti. Rectangle: il concetto 10. Costruzione. Lo spazio di memoria del linguaggio Java. Rectangle: l oggetto
Usare e costruire oggetti Variabili e Oggetti Lo spazio di memoria di Java Le API di Java Gli oggetti sono entità di un programma che si possono manipolare invocando i metodi System.out oggetto della classe
DettagliMetodi statci. Dichiarazione e chiamata di metodi statci
Metodi statci Dichiarazione e chiamata di metodi statci Cos è un metodo Un metodo è un blocco di istruzioni che fornisce una funzionalità e viene identificato con un nome Può avere dei parametri ed un
DettagliLaboratorio di Informatica
Record Laboratorio di Informatica Ingegneria Meccanica Lezione 9, 6 dicembre 2007 versione 18 dicembre 2007 Renato Menicocci Array: collezione di dati omogenei
DettagliPassare argomenti al programma
Passare argomenti al programma Quando si invoca un programma è possibile passare degli argomenti ad esso durante la chiamata. Gli argomenti ricevuti saranno stringhe (array di char) quindi l insieme di
DettagliAssegnazione di una variabile
Assegnazione di una variabile Per scrivere un valore dentro una variabile si usa l operatore di assegnazione, che è rappresentato dal simbolo =. Quindi, se scrivo int a; a = 12; assegno alla variabile
DettagliLa Gestione della Memoria. Carla Binucci e Walter Didimo
La Gestione della Memoria Carla Binucci e Walter Didimo Esecuzione di programmi Java L esecuzione di un programma Java richiede: la compilazione del codice Java in bytecode Java (un linguaggio macchina
DettagliFondamenti di Informatica T-1
Fondamenti di Informatica T-1 Input/Output e Interi Tutor: Angelo Feraudo angelo.feraudo2@unibo.it a.a. 2018/2019 Fondamenti di Informatica T-1 Angelo Feraudo 1 / 19 TUTOR Angelo Feraudo Email: angelo.feraudo2@unibo.it
DettagliFondamenti di Informatica T-1
Fondamenti di Informatica T-1 Introduzione al linguaggio Java - Input/Output, Variabili, Tipi Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De
DettagliI CARATTERI E LE STRINGHE
I CARATTERI E LE STRINGHE IL CODICE ASCII Per memorizzare i simboli grafici corrispondenti ai caratteri bisogna associare un numero intero a ciascuno di essi Il codice ASCII / æski/ (American Standard
DettagliCicli annidati ed Array multidimensionali
Linguaggio C Cicli annidati ed Array multidimensionali Cicli Annidati In C abbiamo 3 tipi di cicli: while(exp) { do { while(exp); for(exp;exp;exp3) { Cicli annidati: un ciclo all interno del corpo di un
DettagliVerso i puntatori: Cosa è una variabile?
Verso i puntatori: Cosa è una variabile? Quando si dichiara una variabile, ad es. int a; si rende noto il nome e il tipo della variabile. Il compilatore alloca l opportuno numero di byte di memoria per
DettagliCICLO FOR. for contatore:= valore_iniziale to valore_finale do begin istruzione 1; istruzione 2; istruzione n; end;
CICLO FOR Il ciclo FOR è una particolare struttura iterativa che viene utilizzata per ripetere un blocco di istruzioni per un numero di volte che è noto a priori, a differenza del ciclo REPEAT-UNTIL e
Dettagli! Intro metodi/sottoprogrammi. ! Definizione (intestazione e corpo) e uso. ! Parametri formali e attuali, associazione
Dove siamo I metodi - II Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 10! Mattoni, Programmazione
DettagliL input da tastiera in Java. Dott. Ing. M. Banci, PhD
L input da tastiera in Java Dott. Ing. M. Banci, PhD La lettura di un flusso di input in Java avviene attraverso l'oggetto in della classe System. System.in appartiene alla classe InputStream (letteralmente
DettagliPuntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori
Puntatori Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori 1 Il puntatore Un tipo puntatore è un tipo scalare per
DettagliProgrammazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo
Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy
Dettagli4. Un ambiente di sviluppo per Java
pag.15 4. Un ambiente di sviluppo per Java Esistono in commercio molti ambienti di sviluppo utilizzati dai programmatori Java, in particolare si tratta di editor complessi che mettono a disposizione tools
DettagliPuntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori
Puntatori Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori 1 Il puntatore Un tipo puntatore è un tipo scalare per
DettagliIntroduzione al linguaggio C Funzioni
Introduzione al linguaggio C Funzioni Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati
DettagliProgrammazione a oggetti
Programmazione a oggetti Quanti oggetti, tra di loro parlando, fanno programmi. Pilu Crescenzi piluc@dsi.unifi.it Università di Firenze Programmazione a oggetti p.1/32 Cosa è un oggetto Una scatola software
DettagliEsercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)
Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Selezione di prove di esame al calcolatore Esercizio 1 (esame del 13/01/2006) La classe Matrice definisce oggetti che rappresentano matrici
DettagliCast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double
Il cast Cast implicito Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto Per esempio: byte short int long float double int x = 10; float f; f = x; Il valore di
DettagliLe basi del linguaggio Java
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 10 Le basi del linguaggio Java Aprile 2010 Le basi del linguaggio Java 1 Prerequisiti Nozioni generali sulla sintassi e semantica del
DettagliFondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Effetti collaterali Metodi ricorsivi Esercizi proposti 19/04/2011 2 import javax.swing.joptionpane; public class esempioarrayg{ public
DettagliFUNZIONI. Esempi (pseudo-c): dare un nome a una espressione rendere tale espressione parametrica. float f(){ * sin(0.75); } float f1(int x) {
Spesso può essere utile avere la possibilità di costruire nuove istruzioni che risolvano parti specifiche di un problema Una funzione permette di dare un nome a una espressione rendere tale espressione
DettagliIntroduzione al linguaggio C
Linguaggio C Introduzione al linguaggio C Sistemi di sviluppo integrati Noti anche come IDE: Integrated Development Environment Un pacchetto software che permette di scrivere, preprocessare, compilare,
DettagliMETODI in Java. Prof.Angela Bonifati. Metodi e Sottoprogrammi
Fondamenti di Informatica METODI in Java Prof.Angela Bonifati 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile definire nuovi tipi di dati, tramite i metodi è possibile
DettagliLo scopo. Il primo esperimento. Soluzione informale. Le variabili
Lo scopo 2 Il primo esperimento Si vuole scrivere un programma in linguaggio C che chieda all utente di introdurre da tastiera due numeri interi e visualizzi il valore della loro somma sul video Ver. 2.4
DettagliRETI DI CALCOLATORI Linguaggio Java: Eccezioni
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI RETI DI CALCOLATORI Linguaggio Java: Eccezioni Prof. Franco Zambonelli Lucidi realizzati in collaborazione
DettagliL'Allocazione Dinamica della Memoria nel linguaggio C
L'Allocazione Dinamica della Memoria nel linguaggio C Prof. Rio Chierego riochierego@libero.it http://www.riochierego.it/informatica.htm Sommario Questo documento tratta l'allocazione dinamica della memoria
DettagliCorso di Informatica A.A
Corso di Informatica A.A. 2009-2010 Lezione 11 Corso di Informatica 2009-2010 Lezione 11 1 Utilizzo dei puntatori Funzioni Perche i Puntatori? I puntatori hanno tre importanti applicazioni: 1. Passaggio
DettagliFUNZIONI. Esempi (pseudo-c): dare un nome a una espressione rendere tale espressione parametrica. float f(){ * sin(0.75); } float f1(int x) {
Spesso può essere utile avere la possibilità di costruire nuove istruzioni che risolvano parti specifiche di un problema Una funzione permette di dare un nome a una espressione rendere tale espressione
DettagliUna funzione riceve dati di ingresso in corrispondenza ai parametri
FUNZIONI Spesso può essere utile avere la possibilità di costruire nuove istruzioni che risolvano parti specifiche di un problema Una funzione permette di dare un nome a una espressione rendere tale espressione
DettagliEsercitazione di Reti degli elaboratori
Esercitazione di Prof.ssa Chiara Petrioli Christian Cardia, Gabriele Saturni Cosa vedremo in questa lezione? Gli Array Gli array multidimensionali Le stringhe I puntatori Esercizi Pagina 1 Gli Array Definizione
Dettagli