Introduzione alla programmazione

Documenti analoghi
la traduzione dei programmi ed introduzione a Java

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

Laboratorio di Programmazione Laurea in Bioinformatica

Capitolo 1. Introduzione. Cay S. Horstmann Concetti di informatica e fondamenti di Java

Programmazione in Java e gestione della grafica (I modulo) Lezione 2: Prime nozioni di Java

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Introduzione alla programmazione

Introduzione alla programmazione. Walter Didimo

Corso sul linguaggio Java

Introduzione a Java. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 07. Oggetti e Java. Marzo Programmazione Java 1

Introduzione al C Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Uni n t i à 1

CdL in Medicina Veterinaria - STPA AA

Programmazione Procedurale in Linguaggio C++

Linguaggi di alto livello, compilatori e interpreti

Linguaggi di alto livello, compilatori e interpreti

Le basi del linguaggio Java

Introduzione all informatica

Linguaggi, Traduttori e le Basi della Programmazione

Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java

Cosa è l Informatica?

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma

Strumenti per la programmazione

FONDAMENTI DI INFORMATICA

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Elementi di programmazione

Introduzione alla programmazione

Introduzione al Linguaggio C ed all IDE DEV-C++

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 4 24/10/2013

Introduzione all uso degli oggetti in Java (parte I) Walter Didimo

AMBIENTI DI PROGRAMMAZIONE

Guida all uso dell ambiente di sviluppo 1 integrato o IDE JCreator LE

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Struttura di un programma Java

Concetti Introduttivi

Concetti introduttivi

3) Descrivere l architettura di un elaboratore tramite astrazione a livelli

LINGUAGGI DI ALTO LIVELLO

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:

Informatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 20 ottobre Corso di laurea in Economia

Esonero di Informatica I. Ingegneria Medica

Programmazione C Massimo Callisto De Donato

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Introduzione al corso. Obiettivo del corso

Elementi di programmazione

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1

Informatica 1. 4 Programmazione e Sviluppo del software. ing. Luigi Puzone

Informatica. Come si risolve un problema?

I Linguaggi di Programmazione

Fondamenti di Informatica T-1

Lezione n. 2i Informatica e tecnologia informatica Sistema di elaborazione Algoritmo Linguaggi di programmazione Realizzazione di un programma

Informatica Problema Algoritmo Programma

Cosa è un programma. Informatica di Base -- R.Gaeta 18

L ELABORATORE ELETTRONICO

Il software: dall algoritmo al linguaggio macchina

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

Sommario FONDAMENTI DI INFORMATICA. Definizione formale di algoritmo. Informatica e algoritmi. ALGORITMI E LINGUAGGIO PYTHON Introduzione

Esecuzione di Programmi Esercitazione

Programmazione Procedurale in Linguaggio C++

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Fondamenti di Informatica T1 Introduzione al linguaggio Java Input/Output-Variabili-Tipi

Modulo 2: Strutture fondamentali della programmazione Java

PROBLEMI E ALGORITMI

Macchine astratte, linguaggi, interpretazione, compilazione

EI è parte della nostra vita quotidiana: es. ricerca di un numero di telefono. Algoritmo. Esecutore. Elenco Telefonico

Il calcolatore. Architettura di un calcolatore (Hardware)

3. Programmi e algoritmi

ELEMENTI DI INFORMATICA L. Ing. Claudia Chiusoli

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

ciclo di vita della soluzione (informatica) di un problema

Introduzione al Linguaggio C ed all IDE DEV-C++

Linguaggi di Programmazione

Linguaggi di programmazione

A. Ferrari. informatica. introduzione a Java. Alberto Ferrari Informatica

FONDAMENTI DI INFORMATICA

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Algoritmi, linguaggi e programmi. Emilio Di Giacomo e Walter Didimo

L informatica comprende: INFORMATICA. Varie definizioni: Definizione proposta: ELABORATORE ELETTRONICO ( COMPUTER ) L ELABORATORE

Programmazione Procedurale in Linguaggio C++

Introduzione alla Programmazione. Giselda De Vita

Calcolo numerico e programmazione Programmazione

Linguaggi di programmazione

Introduzione a Java A. FERRARI

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori

INFORMATICA. Scienza degli elaboratori elettronici (Computer. informazione

Concetti introduttivi

Cosa fare prima di iniziare. Laboratorio Primo Impatto. Hello World. L editor. Compilazione da riga di comando. Compilazione da riga di comando

Esempio. Le istruzioni corrispondono a quelle di sopra, ma sono scritte in modo simbolico. E indipendente dalla machina

Linguaggi di Programmazione e Paradigmi. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Transcript:

Introduzione alla programmazione Cosa è un calcolatore? Hardware Processore Memoria Periferiche Funzionamento Esegue istruzioni elementari Esegue istruzioni molto velocemente Deve essere programmato Il software, cioè i programmi, caratterizzano il compito che esso svolge Componenti di un calcolatore

Schema di un calcolatore Linguaggi per la programmazione di un calcolatore Linguaggio macchina 21 40 16 100 163 240 Linguaggio assemblativo (Assembler) iload intrate bipush 100 if_icmpgt interror Linguaggi ad alto livello if (intrate > 100)... Programma I programmi caratterizzano il compito che il calcolatore svolge. Un programma (indipendentemente dal linguaggio in cui è scritto) è costituito da due aspetti fondamentali: rappresentazione delle informazioni (dati) relative al dominio di interesse: oggetti manipolazioni della rappresentazione che realizzano le funzionalità richieste: operazioni Per scrivere un programma si devono affrontare entrambi gli aspetti. Realizzazione delle operazioni: algoritmi

In genere, si realizza un'operazione quando deve essere risolto un problema. Esempio: dato un nominativo, trovare il corrispondente numero telefonico su un elenco telefonico. Per delegare ad un calcolatore la soluzione di un problema è necessario individuare un algoritmo che risolve il problema. Algoritmo: procedimento risolutivo attraverso il quale otteniamo la soluzione ad un problema, ovvero un insieme di passi che, eseguiti in ordine, permettono di calcolare i risultati a partire dalle informazioni date in ingresso. Un algoritmo è caratterizzato da: non ambiguità: le istruzioni devono essere univocamente interpretabili dall esecutore eseguibilità: ogni istruzione deve poter essere eseguita (in tempo finito) con le risorse a disposizione Esempio di algoritmo: scandire sequenzialmente i nominativi presenti nell'elenco fino a che non si trova quello cercato, restituire il numero di telefono associato al nominativo. Esistono altri algoritmi per risolvere lo stesso problema? Si! Una volta individuato l'algoritmo, questo va codificato nel linguaggio di programmazione prescelto. Paradigmi di programmazione Esistono differenti paradigmi di programmazione che si distinguono per l'enfasi che pongono sui due aspetti fondamentali: oggetti e operazioni. I paradigmi di programmazioni principali sono: 1. imperativo: enfasi sulle operazioni intese come azioni/comandi/istruzioni che cambiano lo stato dell'elaborazione; gli oggetti sono funzionali alla elaborazione 2. funzionale: enfasi sulle operazioni intese come funzioni che calcolano risultati; gli oggetti sono funzionali alla elaborazione 3. orientato agli oggetti: enfasi sugli oggetti che complessivamente rappresentano il dominio di interesse; le operazioni sono funzionali alla rappresentazione In genere in un programma sono utilizzati più paradigmi di programmazione. Quindi i linguaggi di programmazione forniscono supporto (in misura diversa) per i vari paradigmi. Un esempio: Java

Come esempio, useremo il linguaggio di programmazione Java. Java è un linguaggio di programmazione moderno ad alto livello, orientato agli oggetti, ma che supporta anche il paradigma imperativo e il paradigma funzionale. Caratteristiche generali di Java: semplice indipendente dalla piattaforma (lo stesso programma è eseguibile in Windows, Unix, MacOS, ecc.) dispone di librerie di programma ricche e ben sviluppate progettato per Internet basato su una macchina virtuale (vedi dopo) sicuro (la macchina virtuale impedisce accessi indesiderati da applicazioni via Internet) Il primo programma Java import java.lang.*; public class Primo { public static void main(string[] args) { System.out.println("Questo e' il mio primo programma Java."); Le istruzioni hanno il seguente significato: import java.lang.*; richiesta di utilizzare librerie di classi/programmi predefiniti (in realtà la libreria java.lang è importata automaticamente, quindi questa istruzione può essere omessa) public class Primo {... definizione di una classe/programma chiamata Primo public static void main(string[] args) {... definizione del metodo main (un metodo è la realizzazione di un'operazione in Java) System.out.println("Questo e' il mio primo programma Java."); istruzione di stampa su video System.out oggetto/istanza predefinito della classe predefinita PrintStream println metodo della classe PrintStream applicato all'oggetto System.out "Questo e' il mio primo programma Java." oggetto della classe String che rappresenta la frase da visualizzare Nota: Java è case-sensitive, cioè distingue tra caratteri minuscoli e caratteri maiuscoli, es. class è diverso da Class. Secondo programma public class Secondo { public static void main(string[] args) { System.out.println("Questo e' il mio secondo programma Java..."); System.out.println("...e non sara' l'ultimo."); La sequenza di due istruzioni comporta l'esecuzione delle due istruzioni nell'ordine in cui sono scritte. Scrivere, compilare ed eseguire un programma Java

1. preparazione del testo del programma 2. compilazione del programma 3. esecuzione del programma compilato 1. Preparazione del testo del programma La preparazione del testo di un programma comporta la scrittura di un file contenente il programma. Per un programma Java il nome del file deve essere NomeClasse.java dove NomeClasse è il nome della classe definita dal programma. Es. Primo.java La scrittura di un programma può essere effettuata con qualsiasi programma che consenta la scrittura di un testo (editor). Es. Edit, NotePad, Emacs,... Esempio: 2. Compilazione del programma La compilazione del programma serve a tradurre il programma in una sequenza di comandi direttamente eseguibili dal calcolatore. Il compilatore Java standard, fornito con il Java Standard Development Kit (Java SDK), si chiama javac. Per usarlo occorre eseguire il comando: javac NomeClasse.java La compilazione produce come risultato un file chiamato NomeClasse.class che contiene i comandi direttamente eseguibili dal calcolatore. Ad esempio: javac Primo.java crea il file Primo.class

3. Esecuzione del programma compilato L'esecuzione di un programma si può effettuare solo dopo la compilazione, cioè quando si ha il file NomeProgramma.class In Java l'esecuzione del programma avviene attraverso il comando java NomeClasse (senza.class). Ad esempio il comando java Primo comporta l'esecuzione del programma Primo (o meglio del metodo main della classe Primo) e quindi la visualizzazione di Questo e' il mio primo programma Java. Ambiente di programmazione Esistono delle applicazioni chiamate ambienti di programmazione che consentono di realizzare i passi di scrittura, compilazione ed esecuzione in maniera integrata. Alcuni esempi di ambienti di programmazione per Java sono: JavaONE, JBuilder, JCreator, ecc. La figura seguente si riferisce a BlueJ, un ambiente di programmazione sviluppato per la didattica dalla Monash University, Australia, e dalla University of Southern Denmark.

Dal codice sorgente al programma eseguibile (riassunto)

Nota sulla portabilità di Java Il compilatore Java non produce direttamente codice eseguibile dal calcolatore, ma produce un codice indipendente dal particolare calcolatore denominato Java bytecode. Il risultato della compilazione di un programma Java è quindi indipendente dalla piattaforma. Ciò comporta l'uso di un apposito programma per eseguire il bytecode: l'interprete del bytecode, noto come Macchina Virtuale Java (Java Virtual Machine), che viene attivato con il comando java. Per eseguire un programma Java compilato su una qualsiasi piattaforma è sufficiente avere l'interprete per il Java bytecode. Questa indipendenza dalla piattaforma è una delle caratteristiche che hanno portato ed una così rapida diffusione di Java. Errori Il seguente programma contiene diversi errori. public class Errori { public static void main(string[] args) { System.out.println("Questi sono i miei primi errori Java...") Sistem.out.println("...e non saranno gli ultm!!!"); Programma corretto public class Errori { public static void main(string[] args) { System.out.println("Questi sono i miei primi errori Java..."); System.out.println("...e non saranno gli ultimi!!!"); Tipi di errori: Errori di sintassi, cioè errori dovuti alla violazione delle regole sintattiche del linguaggio esempio: System.out.println(...) manca il ; sono individuati dal compilatore Errori semantici, cioè errori dovuti alla impossibilità di assegnare un significato ad un'istruzione esempio: Sistem.out.println(...); errore di ortografia nella parola System a volte sono individuati dal compilatore (errori di semantica statica), altre volte sono individuati a tempo di esecuzione (errori di semantica dinamica)

Errori logici, cioè errori relativi alle funzionalità realizzate dal programma (differenti da quelle desiderate) esempio: System.out.println("...e non saranno gli ultm!!!"); : la stringa da stampare non è corretta possono essere individuati solo analizzando o eseguendo test di verifica del programma Il ciclo Edita-Compila-Verifica