Dall analisi alla codifica (2)

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Dall analisi alla codifica (2)"

Transcript

1 Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 09 Dall analisi alla codifica (2) Dall analisi alla codifica (2) 1

2 Contenuti Problemi di ingresso e uscita - esercizi Lunghezza di una sequenza di numeri interi Perimetro di un triangolo Equazioni di primo e secondo grado Elevamento a potenza Dall analisi alla codifica (2) 2

3 Esercizi Per tutti gli esercizi che seguono svolgere i seguenti passi: Definire la specifica del problema indicando sinteticamente: Il problema I dati di input Le pre-condizioni che devono soddisfare i dati di input I dati di output Le post-condizioni che devono soddisfare i dati di output Scrivere l algoritmo risolutivo in pseudo-codice e/o con il diagramma a blocchi Scrivere la traccia del processo di esecuzione per almeno un dato insieme di dati di input Scrivere la codifica Java ed eseguire il programma su diversi dati di input 3

4 Lunghezza di una sequenza Si consideri il seguente problema di ingresso-uscita si vuole leggere dalla tastiera una sequenza non vuota di numeri interi, disposti su una singola linea e separati da spazi, calcolare la lunghezza della sequenza (ovvero, il numero di elementi della sequenza) e visualizzarla sullo schermo Scrivi una sequenza di numeri interi La lunghezza della sequenza è 4 Dall analisi alla codifica (2) 4

5 Lunghezza di una sequenza Problema lettura di una sequenza di numeri interi e calcolo della lunghezza Dati di ingresso una sequenza di numeri interi A1, A2,..., AN Pre-condizione N>0, i numeri sono disposti su una singola linea e separati da spazi Dati di uscita un numero L Post-condizione L è uguale alla lunghezza N della sequenza A1, A2,..., AN Dall analisi alla codifica (2) 5

6 Lunghezza di una sequenza Una variante del problema della lettura e somma di una sequenza di numeri interi bisogna leggere dalla tastiera una sequenza di numeri interi ma non bisogna calcolarne la somma bisogna piuttosto contare il numero degli elementi È possibile scrivere un algoritmo come adattamento di quello della somma di una sequenza di numeri non ripartendo da zero anziché gestire la variabile somma va gestita una variabile lunghezza che inizialmente deve valere zero ogni volta che viene letto un elemento deve essere incrementata di uno lunghezza viene usata per contare il numero degli elementi della sequenza che sono stati letti al termine, è uguale alla lunghezza della sequenza Dall analisi alla codifica (2) 6

7 Algoritmo per il calcolo della lunghezza di una sequenza (pseudocodifica) 1. leggi una sequenza di numeri interi e calcolane la lunghezza lunghezza 1.1 inizialmente lunghezza vale zero lunghezza = 0; 1.2 finché ci sono altri elementi nella sequenza, leggili e incrementa lunghezza while (!Lettore.in.eoln() ) { leggi un elemento della sequenza numero dalla tastiera numero = Lettore.in.leggiInt(); incrementa lunghezza lunghezza = lunghezza + 1; 2. visualizza lunghezza System.out.println(lunghezza); Dall analisi alla codifica (2) 7

8 Algoritmo per il calcolo della lunghezza di una sequenza (diagramma a blocchi) input (A1,,An) l = 0 Ci sono ancora numeri da leggere? No Si num = numero letto l = l+1 scrivi l Fine assegnazione selezione iterazione 8

9 Lunghezza di una sequenza: codifica import fiji.io.*; /* Applicazione che calcola la lunghezza di una sequenza di numeri dati in input */ class LunghezzaSequenza{ public static void main(string[] args){ int num; int l; //precondizioni sequenza non vuota l=0; System.out.println("Scrivi una sequenza non vuota di numeri interi"); /* finche' non viene dato invio */ while (!Lettore.in.eoln()){ /*lettura di un numero ad ogni iterazione */ num = Lettore.in.leggiInt(); l=l+1; System.out.print("lunghezza calcolata "); System.out.println(l); Dall analisi alla codifica (2) 9

10 Perimetro di un triangolo Si consideri il seguente problema di ingresso-uscita leggere dalla tastiera le coordinate dei vertici di un triangolo, calcolare il perimetro del triangolo e visualizzarlo sullo schermo Scrivi le coordinate del primo vertice: 2 2 Scrivi le coordinate del secondo vertice: 4 6 Scrivi le coordinate del terzo vertice: 8 2 Il perimetro del triangolo è Dall analisi alla codifica (2) 10

11 Perimetro di un triangolo Problema Calcolare il perimetro di un triangolo date le coordinate dei suoi vertici Input Coordinate dei vertici x1,y1 x2,y2 x3,y3 Pre-condizioni nessuna Output Un numero P Post-condizioni P è il perimetro del triangolo di vertici x1,y1 x2,y2 x3,y3 Dall analisi alla codifica (2) 11

12 Perimetro di un triangolo input (x1,y1,x2,y2,x3,y3) assegnazione d12=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)) d13=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3)) d23=sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3)) perimetro = d12 + d13 + d23 Scrivi perimetro Fine 12

13 Perimetro di un triangolo import fiji.io.*; /* Applicazione che calcola e visualizza * il perimetro di un triangolo. */ class PerimetroTriangolo { public static void main(string[] args) { A che serve? Indica che la classe usa classi del package fiji.io, in particolare int x1, y1; // coordinate primo vertice int x2, y2; // coordinate secondo vertice int x3, y3; // coordinate terzo vertice double d12, d13, d23; // distanze tra i vertici double perimetro; // perimetro del triangolo /* imposta le coordinate dei vertici */ System.out.println("CALCOLO DEL PERIMETRO DI UN TRIANGOLO"); System.out.println("scrivi le coordinate del primo vertice"); x1 = Lettore.in.leggiInt(); y1 = Lettore.in.leggiInt(); System.out.println("scrivi le coordinate del secondo vertice"); x2 = Lettore.in.leggiInt(); y2 = Lettore.in.leggiInt(); System.out.println("scrivi le coordinate del terzo vertice"); x3 = Lettore.in.leggiInt(); y3 = Lettore.in.leggiInt(); Dall analisi alla codifica (2) segue...

14 Perimetro di un triangolo Esiste un metodo che calcola la potenza? Math.pow (vedere documentazione classe Math)... segue... /* calcola la distanza tra p1 e p2 */ d12 = Math.sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2)); d13 = Math.sqrt((x1-x3)*(x1-x3) + (y1-y3)*(y1-y3)); d23 = Math.sqrt((x2-x3)*(x2-x3) + (y2-y3)*(y2-y3)); /* calcola il perimetro del triangolo */ perimetro = d12 + d13 + d23; /* visualizza il perimetro */ System.out.print("Il perimetro del triangolo e' "); System.out.println(perimetro); System.out sa eseguire anche una operazione print, che visualizza l argomento, ma senza poi andare a capo (come fa println) Dall analisi alla codifica (2) 14

15 Equazioni di 1 e 2 grado Si consideri il seguente problema di ingresso-uscita Leggere da tastiera i coefficienti di un equazione di primo o secondo grado, calcolare la/e radice/i dell equazione e visualizzarla/e sullo schermo Scrivi i coefficienti dell equazione Le radici dell equazione sono -4 e -1 Dall analisi alla codifica (2) 15

16 Equazioni di 1 e 2 grado Problema Input Calcolo delle radici di un equazione di primo o secondo grado i coefficienti a, b, c dell equazione ax 2 +bx+c Pre-condizioni a e b non entrambi nulli Output le radici dell equazione, x1 e x2, oppure segnalazione di non esistenza di radici Post-condizioni a*x1 2 + b*x1 + c = 0 e a*x2 2 + b*x2 + c = 0 Dall analisi alla codifica (2) 16

17 Equazioni di 1 e 2 grado Si input (a,b,c) a = 0 No selezione assegnazione Si b = 0 No delta = b*b-4*a*c Scrivi no soluzione x1 = -c/b Scrivi 1 soluzione,x1 Si Scrivi no soluzione delta < 0 No x1 =(-b + sqrt(delta))/2*a x2 =(-b - sqrt(delta))/2*a Scrivi x1 e x2 Fine Dall analisi alla codifica (2) 17

18 Equazioni di 1 e 2 grado Programma: Calcolo radici equazione di 1 e 2 grado Variabili: double a, b, c, delta, x1, x2; Istruzioni: input(a,b,c) if (a==0){ if (b==0) scrivi( non esistono soluzioni ); else{ x1 = -c/b; scrivi( unica soluzione, x1); else{ delta = b*b - 4*a*c; if (delta < 0) scrivi( non esistono soluzioni ); else{ x1 = (-b + sqrt(delta))/2*a; x2 = (-b - sqrt(delta))/2*a; scrivi( soluzioni:, x1, x2); Dall analisi alla codifica (2) 18

19 Equazioni di 1 e 2 grado import fiji.io.*; /** Applicazione che calcola le radici reali delle equazioni di secondo grado */ class Equazioni2grado{ public static void main(string[] args){ double a,b,c; //coefficenti dell'equazione double delta; //valore del delta double x1,x2; //radici reali, se esistono /*lettura dei coefficienti da input */ System.out.println("Scrivi i coefficienti dell'equazione"); a = Lettore.in.leggiDouble(); b = Lettore.in.leggiDouble(); c = Lettore.in.leggiDouble(); Dall analisi alla codifica (2) 19

20 Equazioni di 1 e 2 grado if (a==0){ if (b==0) System.out.println("l'eq. non ha soluzioni"); else{ x1 = -c/b; System.out.println("l'eq. ha 1 sola soluzione"); System.out.println(x1); else{ //a<>0 /* calcolo del delta */ delta = b*b-4*a*c; /* verifica se il delta e' positivo o nullo */ if (delta<0) System.out.println("l'equazione non ammette soluzioni"); else{ x1 = (-b+math.sqrt(delta))/(2*a); x2 = (-b-math.sqrt(delta))/(2*a); System.out.print("le soluzioni sono "); System.out.print(x1); System.out.print(" e "); System.out.println(x2); Dall analisi alla codifica (2) 20

21 Elevamento a potenza Si consideri il seguente problema di ingresso-uscita Leggere da tastiera due numeri naturali positivi (o nulli), base ed esponente, calcolare l elevamento a potenza, base esp, e visualizzare il risultato sullo schermo Scrivi la base: 10 Scrivi l esponente: 2 La potenza è 100 Dall analisi alla codifica (2) 21

22 Elevamento a potenza Problema Calcolare l elevamento a potenza tra numeri naturali positivi (o nulli) Input Base, esp Pre-condizioni Base ed esp interi positivi o nulli Base ed esp non entrambi nulli Output pot Post-condizioni pot = base esp Dall analisi alla codifica (2) 22

23 Elevamento a potenza No input (base,esp) base==0 and esp==0 Si selezione assegnazione iterazione pot = 1 esp > 0 Si pot = pot * base No Scrivi errore esp = esp - 1 scrivi pot Fine Dall analisi alla codifica (2) 23

24 Elevamento a potenza Programma: Variabili: Elevamento a potenza int base; int esp; int pot; Istruzioni: 1. input(base, esp) 2. if (base==0 AND esp ==0) 3. scrivi( errore ); else{ 4. pot = 1; 5. while (esp > 0) { 6. pot = pot * base; 7. esp = esp 1; 8. scrivi pot; Dall analisi alla codifica (2) 24

25 Elevamento a potenza: traccia del processo di esecuzione Istruzione base esp pot La variabile pot contiene il valore della potenza Dall analisi alla codifica (2) 25

26 Elevamento a potenza: codifica import fiji.io.*; /* elevamento a potenza tra numeri naturali positivi (o nulli) */ class Potenza { public static void main(string[] args) { /* Definizione variabili */ int base; // base int esp; // esponente int pot; // risultato /** Corpo programma **/ System.out.println("elevamento a potenza:"); System.out.print("base: "); base = Lettore.in.leggiInt(); System.out.print("esponente:"); esp = Lettore.in.leggiInt();... segue... Dall analisi alla codifica (2) 26

27 Elevamento a potenza... segue... if ((base == 0) && (esp == 0)) System.out.println("errore"); else{ pot = 1; while (esp > 0) { pot = pot * base; esp = esp - 1; System.out.println("risultato = " + pot); Dall analisi alla codifica (2) 27

Dall analisi alla codifica (2)

Dall analisi alla codifica (2) Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 10 Dall analisi alla codifica (2) Aprile 2010 Dall analisi alla codifica (2) 1 Contenuti Problemi di ingresso e uscita (esempi ed esercizi)

Dettagli

Esempi di programmi. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E01. A. Miola Settembre 2007

Esempi 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

Dettagli

Dall analisi alla codifica (1)

Dall analisi alla codifica (1) Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 09 Dall analisi alla codifica (1) Aprile 2010 Dall'analisi alla codifica (1) 1 Contenuti... Problemi e algoritmi comprensione del problema

Dettagli

Problemi, algoritmi e oggetti

Problemi, algoritmi e oggetti Fondamenti di informatica Oggetti e Java Luca Cabibbo Capitolo 5 Marzo 2007 1 Fondamenti di informatica: Oggetti e Jav Contenuti... Problemi e algoritmi comprensione del problema identificazione di un

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E04 Esempi di algoritmi e programmi C. Limongelli - A. Miola Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Esempi

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E04 Esempi di algoritmi e programmi C. Limongelli - A. Miola Novembre 2009 http://www.dia.uniroma3.it/~java/fondinf/ Esempi di

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E03 Esempi di algoritmi e programmi A. Miola Novembre 2011 1 Contenuti q Progettazione di algoritmi q Problemi di ingresso - uscita

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E03 Esempi di algoritmi e programmi A. Miola Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Esempi di algoritmi e

Dettagli

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Esercizi sui metodi. Carla Limongelli. Maggio Esercizi 1

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Esercizi sui metodi. Carla Limongelli. Maggio Esercizi 1 Corso di Laurea Ingegneria Civile Fondamenti di Informatica Esercizi sui metodi Carla Limongelli Maggio 2010 Esercizi 1 Passaggio di parametri di tipo primitivo Indicare che cosa viene visualizzato sullo

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E01 Esempi di programmi A. Miola Ottobre 2011 1 Contenuti Vediamo in questa lezione alcuni primi semplici esempi di applicazioni

Dettagli

Corso di Laurea Ingegneria Civile Elementi di Informatica. Esercizi. Carla Limongelli. Esercizi 1

Corso di Laurea Ingegneria Civile Elementi di Informatica. Esercizi. Carla Limongelli. Esercizi 1 Corso di Laurea Ingegneria Civile Elementi di Informatica Esercizi Carla Limongelli Esercizi 1 Quanti giorni in un mese? Scrivere un metodo che ricevuto in input un mese e un anno, restituisca il numero

Dettagli

Iterazione. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E07. C. Limongelli Novembre 2007

Iterazione. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E07. C. Limongelli Novembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E07 Iterazione C. Limongelli Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Iterazione 1 Contenuti Si vogliono formalizzare

Dettagli

Corso di Laurea Ingegneria Elementi di Informatica. Iterazione. C. Limongelli. Iterazione

Corso di Laurea Ingegneria Elementi di Informatica. Iterazione. C. Limongelli. Iterazione Corso di Laurea Ingegneria Elementi di Informatica C. Limongelli 1 Contenuti Si vogliono formalizzare diverse tecniche per la risoluzione di problemi di: Accumulazione Conteggio Verifica esistenziale Verifica

Dettagli

Iterazione. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa E06. C. Limongelli Dicembre 2011

Iterazione. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa E06. C. Limongelli Dicembre 2011 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E06 C. Limongelli Dicembre 2011 1 Contenuti q Si vogliono formalizzare diverse tecniche per la risoluzione di problemi di: Accumulazione

Dettagli

Fondamenti di Informatica T-1. Variabili, costanti e operazioni Selezione

Fondamenti di Informatica T-1. Variabili, costanti e operazioni Selezione Variabili, costanti e operazioni Selezione 2 Variabili Dichiarazione di una variabile: ; Esempio: variabile numerica intera numauto: int numauto; Assegnare alla variabile

Dettagli

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 18. Iterazione. Maggio Iterazione

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 18. Iterazione. Maggio Iterazione Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 18 Maggio 2010 1 Contenuti Si vogliono formalizzare diverse tecniche per la risoluzione di problemi di: Accumulazione Conteggio Verifica

Dettagli

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 15 Definizione di metodi. Carla Limongelli Maggio Definizione di metodi 1

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 15 Definizione di metodi. Carla Limongelli Maggio Definizione di metodi 1 Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 15 Definizione di metodi Carla Limongelli Maggio 2010 Definizione di metodi 1 Contenuti Introduzione alla definizione di metodi Prototipo

Dettagli

Costrutto if. Come utilizzare il costrutto condizionale if

Costrutto if. Come utilizzare il costrutto condizionale if Costrutto if Come utilizzare il costrutto condizionale if Costrutto if (1/2) Il costrutto if permette di effettuare azioni diverse a seconda del valore di una certa condizione booleana. if (condizione)

Dettagli

Costrutto switch. Come utilizzare il costrutto switch

Costrutto switch. Come utilizzare il costrutto switch Costrutto switch Come utilizzare il costrutto switch Costrutto switch (1/4) Il costrutto if-else permette di selezionare le istruzioni da eseguire tra due alternative, a seconda del valore di una condizione

Dettagli

Espressioni. Operatori aritmetici e metodi della classe java.lang.math

Espressioni. Operatori aritmetici e metodi della classe java.lang.math Espressioni Operatori aritmetici e metodi della classe java.lang.math Assicurarsi di aver selezionato il progetto dal Package Explorer Aggiungere il package fiji.jar Selezionare dal menù: Project Properties

Dettagli

Espressioni. Operatori aritmetici e metodi della classe java.lang.math

Espressioni. Operatori aritmetici e metodi della classe java.lang.math Espressioni Operatori aritmetici e metodi della classe java.lang.math Assicurarsi di aver selezionato il progetto dal Package Explorer Aggiungere il package fiji.jar Selezionare dal menù: Project Properties

Dettagli

Metodi statici. Dichiarazione e chiamata di metodi statici

Metodi 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

Dettagli

Istruzioni Condizionali

Istruzioni Condizionali Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 10 Istruzioni Condizionali Carla Limongelli Novembre 2011 http://www.dia.uniroma3.it/~java/fondinf/ Istruzioni condizionali 1 Contenuti

Dettagli

Laboratorio di Informatica 4 Novembre 2005

Laboratorio di Informatica 4 Novembre 2005 Laboratorio di Informatica 4 Novembre 2005 Marco Iarusso Programmazione Java Ringraziamenti Parte della presente dispensa materiale didattico è derivato dalla dispensa prodotta da Luca Cabibbo Dip. Informatica

Dettagli

Metodi statci. Dichiarazione e chiamata di metodi statci

Metodi 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

Dettagli

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]

Dettagli

Richiami di Fondamenti di Informatica - 1

Richiami di Fondamenti di Informatica - 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 2 Richiami di Fondamenti di Informatica - 1 A. Miola Febbraio 2008 http://www.dia.uniroma3.it/~java/fondinf1/ Richiami di FdI-1

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica (L-Z) Corso di Laurea in Ingegneria Gestionale Introduzione alla Programmazione Prof. Stefano Mariani Dott. Alket Cecaj Indice Il concetto di algoritmo Algoritmo vs. programma

Dettagli

Laboratorio di Python

Laboratorio di Python , Input da tastiera, Iterazione incondizionata 7 marzo 2014 Sommario 1 2 3 Outline 1 2 3 Definizione di funzione import modulo Si importa il modulo specificato def nome_f(par 1,, par n ) : Si definiscono

Dettagli

Formalismi per la descrizione di algoritmi

Formalismi per la descrizione di algoritmi Formalismi per la descrizione di algoritmi Per descrivere in passi di un algoritmo bisogna essere precisi e non ambigui Il linguaggio naturale degli esseri umani si presta a interpret non univoche Si usano

Dettagli

Definizione di classi

Definizione di classi Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E05 Definizione di classi A. Miola Novembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Definizione di classi 1 Contenuti

Dettagli

Esercitazione Laboratorio di Informatica 2 Novembre 2005

Esercitazione Laboratorio di Informatica 2 Novembre 2005 Esercitazione Laboratorio di Informatica 2 Novembre 2005 iarusso@dia.uniroma3.it Ricevimento il giovedì 14:00-16:00 Laboratorio Intelligenza Artificiale Via della Vasca Navale, 79, 2 piano Overview Installazione

Dettagli

Classi e array. Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array

Classi e array. Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array Classi e array Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array Si vuole definire una classe Polinomio per la rappresentazione di polinomi a

Dettagli

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla

Dettagli

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

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 07. Oggetti e Java. Marzo Programmazione Java 1 Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 07 Oggetti e Java Marzo 2010 Programmazione Java 1 Contenuti Il linguaggio Java Applicazioni Java e il metodo main Esempi di applicazioni

Dettagli

Istruzioni Condizionali

Istruzioni Condizionali Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 6 Istruzioni Condizionali Carla Limongelli Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Istruzioni condizionali

Dettagli

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi FASE 1: Dare un nome al problema partendo dall analisi del problema FASE 2: Scrivere la specifica funzionale FASE 3: Scrittura dell algoritmo FASE 3.1: Introduzione delle variabili

Dettagli

Esempi di Problemi Iterativi

Esempi di Problemi Iterativi Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E07 C. Limongelli Dicembre 2011 1 Contenuti q Esercizi: Palindroma Anagramma Fibonacci 2 Palindroma q Scrivere un programma che

Dettagli

Capitolo 16 Iterazione

Capitolo 16 Iterazione Capitolo 16 Accesso a sequenze I problemi esaminati in questo capitolo hanno lo scopo di accedere ed elaborare delle sequenze sequenze immesse dall utente lette dalla tastiera di lunghezza nota con un

Dettagli

Iterazione (introduzione)

Iterazione (introduzione) Fondamenti di informatica Oggetti e Java (introduzione) Capitolo 17 (estratto) ottobre 2015 1 Contenuti Accesso a sequenze Accumulazione Conteggio Altre aggregazioni Verifica esistenziale Verifica universale

Dettagli

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

Fondamenti di Informatica T-1. Introduzione al linguaggio Java Input/output, variabili, tipi

Fondamenti di Informatica T-1. Introduzione al linguaggio Java Input/output, variabili, tipi Introduzione al linguaggio Java Input/output, variabili, tipi 2 Programmi e linguaggi Algoritmo sequenza finita di passi per risolvere in un tempo finito un problema Linguaggio di programmazione notazione

Dettagli

Lezione 6 programmazione in Java

Lezione 6 programmazione in Java Lezione 6 programmazione in Java Nicola Drago drago@sci.univr.it Dipartimento di Informatica Università di Verona Anteprima Le costanti I vettori Cos è un vettore Come si usa I vari tipi di vettori Esempi

Dettagli

Esempi di Problemi Iterativi

Esempi di Problemi Iterativi Corso di Laurea Ingegneria Civile Elementi di Informatica Esempi di Problemi Iterativi C. Limongelli Esempi di Problemi Iterativi 1 Contenuti Esercizi: Palindroma Anagramma Fibonacci Esempi di Problemi

Dettagli

Laboratorio di Matematica e Informatica 1

Laboratorio di Matematica e Informatica 1 Laboratorio di Matematica e Informatica 1 Matteo Mondini Antonio E. Porreca matteo.mondini@gmail.com porreca@disco.unimib.it Dipartimento di Informatica, Sistemistica e Comunicazione Università degli Studi

Dettagli

Introduzione al MATLAB c Parte 2

Introduzione al MATLAB c Parte 2 Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 24 settembre 2007 Outline 1 M-file di tipo Script e Function Script Function 2 Elementi di programmazione

Dettagli

Programmazione in Java e gestione della grafica. Lezione 6

Programmazione in Java e gestione della grafica. Lezione 6 Programmazione in Java e gestione della grafica Lezione 6 La scorsa lezione.. Operatori incremento/decremento ++ -- Istruzione while Riscritto programmi precedenti usando istruzione while Esercizio della

Dettagli

Informatica (A-K) 5. Algoritmi e pseudocodifica

Informatica (A-K) 5. Algoritmi e pseudocodifica Vettori e matrici #1 Informatica (A-K) 5. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A Matematica 13/11/2007 Teoria Compito A Domanda 1 Descrivere, eventualmente utilizzando uno schema, gli elementi funzionali di una CPU. Domanda 2 Java è un linguaggio compilato o interpretato? Motivare

Dettagli

print((math.floor(1345/10)%10); print (Math.floor(1345/100)%10); Le funzioni in JavaScript

print((math.floor(1345/10)%10); print (Math.floor(1345/100)%10); Le funzioni in JavaScript Funzioni Funzioni predefinite della libreria matematica Funzioni disponibili: Math.sqrt(x) radice quadrata Math.log(x) logaritmo naturale in base e di x Math.abs(x) valore assoluto di x Math.ceil(x) arrotonda

Dettagli

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

Esercizi su array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa E08. C. Limongelli Gennaio 2012

Esercizi su array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa E08. C. Limongelli Gennaio 2012 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E08 Esercizi su Array C. Limongelli Gennaio 2012 1 Contenuti q Esercizi: Lettura e stampa di un array Massimo elemento di un array

Dettagli

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it

Dettagli

Fondamenti di Informatica T-1

Fondamenti 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

Dettagli

ESEMPIO 1. #include <math.h> void eq2gr(float a, float b, float c, int* reali, float* x1,float* x2)

ESEMPIO 1. #include <math.h> void eq2gr(float a, float b, float c, int* reali, float* x1,float* x2) ESEMPIO 1 Dati tre valori a, b, c, relativi all'equazione di secondo grado ax 2 + bx + c = 0: indicare se le radici sono reali o complesse tramite un intero vero/falso se le radici sono reali, calcolarle.

Dettagli

Esercizi su Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E09. C. Limongelli Novembre 2007

Esercizi su Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E09. C. Limongelli Novembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E09 Esercizi su Array C. Limongelli Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Esercizi su array 1 Contenuti Esercizi:

Dettagli

Risoluzione di un problema

Risoluzione di un problema Algoritmi Risoluzione di un problema Descrizione di un problema! Individuazione di un ALGORITMO! Metodo risolutivo (progetto) Introduzione 2 Algoritmo Sequenza finita di mosse che risolve in un tempo finito

Dettagli

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

INTRODUZIONE 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

Dettagli

PROBLEMI E ALGORITMI

PROBLEMI E ALGORITMI Fondamenti di Informatica PROBLEMI E ALGORITMI Fondamenti di Informatica - D. Talia - UNICAL 1 Specifica di un algoritmo Primo approccio, scrittura diretta del programma: la soluzione coincide con la codifica

Dettagli

Array. Definizione e utilizzo di vettori

Array. Definizione e utilizzo di vettori Array Definizione e utilizzo di vettori Array (1/2) Un array o vettore rappresenta un insieme di elementi dello stesso tipo. Sintassi per la creazione di un array: tipo_elementi[] nome; nome = new tipo_elementi[numero_elementi];

Dettagli

Laboratorio di Python

Laboratorio di Python , Istruzione di condizione 3 marzo 2015 Sommario 1 Outline 1 Scrivere uno script 1 Aprire IDLE di Python. 2 Dal menù del programma aprire un nuovo file. 3 Scrivere la funzione. 4 Salvare ed eseguire il

Dettagli

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione 9 novembre 2016 (Trump Day!) Lo scheletro dei vostri programmi deve essere import java.io.*; import java.util.*; public class... { public static void main( String[] args )

Dettagli

PROGRAMMA SVOLTO DI INFORMATICA ANNO SCOLASTICO 2013/2014. DOCENTE: Villani Chiara

PROGRAMMA SVOLTO DI INFORMATICA ANNO SCOLASTICO 2013/2014. DOCENTE: Villani Chiara LICEO SCIENTIFICO STATALE "FILIPPO LUSSANA" V i a A n g e l o Ma j, 1 2 4 1 2 1 B E R G AMO 035 237502 Fax: 035 236331 Sito e contatti: www.liceolussana.com Codice fiscale: 80026450165 PROGRAMMA SVOLTO

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Vettori e matrici #1 Le variabili definite come coppie sono dette variabili scalari Fondamenti di Informatica 5. Algoritmi e pseudocodifica Una coppia è una variabile

Dettagli

Lab 04 Programmazione Strutturata"

Lab 04 Programmazione Strutturata Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 04 Programmazione Strutturata" Lab04 1 Valutazione in cortocircuito (1)" In C, le espressioni booleane sono valutate

Dettagli

Istruzioni Ripetitive

Istruzioni Ripetitive Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 11 Istruzioni Ripetitive Carla Limongelli Novembre 2011 http://www.dia.uniroma3.it/~java/fondinf/ Istruzioni ripetitive 1 Contenuti

Dettagli

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

Fondamenti di Informatica T1 Introduzione al linguaggio Java Input/Output-Variabili-Tipi Fondamenti di Informatica T1 Introduzione al linguaggio Java Input/Output-Variabili-Tipi Tutor Melissa Licciardello melissa.licciardell2@unibo.it Melissa Licciardello Fondamenti di Informatica T1 1 / 15

Dettagli

PROGRAMMAZIONE: Le strutture di controllo

PROGRAMMAZIONE: Le strutture di controllo PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l

Dettagli

Costrutti iterativi. Utilizzo dei costrutti iterativi

Costrutti iterativi. Utilizzo dei costrutti iterativi Costrutti iterativi Utilizzo dei costrutti iterativi Costrutti iterativi (1/3) I costrutti iterativi permettono di eseguire ripetutamente del codice Il linguaggio Java mette a disposizione tre costrutti

Dettagli

Introduzione agli Algoritmi

Introduzione agli Algoritmi Introduzione agli Algoritmi Informatica Sara Zuppiroli A.A. 2012-2013 Informatica () Introduzione agli Algoritmi A.A. 2012-2013 1 / 25 Risoluzione dei problemi Dalla descrizione del problema all individuazione

Dettagli

Laboratorio di Programmazione Laurea in Bioinformatica

Laboratorio di Programmazione Laurea in Bioinformatica Laboratorio di Programmazione Laurea in Bioinformatica 28 novembre 2007 1 Programmazione strutturata 1.1 Esercizio 1 Si scriva lo pseudocodice di un programma che calcola la media di due numeri reali.

Dettagli

Laboratorio di Programmazione Laurea in Bioinformatica

Laboratorio di Programmazione Laurea in Bioinformatica Laboratorio di Programmazione Laurea in Bioinformatica 15 dicembre 2008 1 Programmazione strutturata 1.1 Esercizio 1 Si scriva lo pseudocodice di un programma che calcola la media di due numeri reali.

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Istruzioni di controllo Iterative Condizionali Algoritmi e Diagrammi di flusso Esercizi 28/03/2011 2 Istruzioni iterative while do

Dettagli

Decomposizione per scelta

Decomposizione per scelta Decomposizione per scelta T C F P1 P2 Codifica if ( C ) T C F P1 P1 P2 else P2 C : condizione da verificare (espressione booleana a valore VERO/FALSO). Parentesi obbligatorie P1 : istruzione da eseguire

Dettagli

Istruzioni Ripetitive

Istruzioni Ripetitive Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 11 Istruzioni Ripetitive Carla Limongelli Novembre 2009 http://www.dia.uniroma3.it/~java/fondinf/ Istruzioni ripetitive 1 Contenuti

Dettagli

Sintassi e semantica delle istruzioni strutturate in Java

Sintassi e semantica delle istruzioni strutturate in Java Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 14 Sintassi e semantica delle istruzioni strutturate in Java Carla Limongelli Aprile 2010 1 Contenuti Classificazione delle istruzioni

Dettagli

INFORMATICA. Strutture iterative

INFORMATICA. Strutture iterative INFORMATICA Strutture iterative Strutture iterative Si dice ciclo (loop) una sequenza di istruzioni che deve essere ripetuta più volte consecutivamente. Si consideri ad esempio il calcolo del fattoriale

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E04 Esempi di algoritmi e programmi C. Limongelli - A. Miola Novembre 2011 1 Contenuti q Somma di una sequenza di numeri interi

Dettagli

Laboratorio di Python

Laboratorio di Python Istruzione di condizione, Input da tastiera, Università di Bologna 6 e 8 marzo 2013 Sommario 1 Tipi di errore e Debugging 2 3 4 Outline Tipi di errore e Debugging 1 Tipi di errore e Debugging 2 3 4 Esercizio

Dettagli

Array mono- e bi-dimensionali Cicli while e do-while

Array mono- e bi-dimensionali Cicli while e do-while 111 Fondamenti di Informatica Array mono- e bi-dimensionali Cicli while e -while Fondamenti di Informatica - D. Talia - UNICAL 1 111 Array Monodimensionali Nell uso di array L operazione sull indice può

Dettagli

IL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

IL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Primo esempio di un programma Java Semplicissimo programma

Dettagli

Sintassi Java PA RTE 1 FONDAMEN TI DI I N FORMAT ICA PER IL CORSO DI LAUREA I N M AT EMAT ICA PA O L A L E C C A

Sintassi Java PA RTE 1 FONDAMEN TI DI I N FORMAT ICA PER IL CORSO DI LAUREA I N M AT EMAT ICA PA O L A L E C C A Sintassi Java PA RTE 1 FONDAMEN TI DI I N FORMAT ICA PER IL CORSO DI LAUREA I N M AT EMAT ICA PA O L A L E C C A D I PA R T I M E N T O D I M AT E M AT I C A, U N I V E R S I TÀ D I T R E N TO paola.lecca@unitn.it

Dettagli

Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato»

Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato» Linguaggio Testuale E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato» Delle volte viene chiamato metalinguaggio, e l algoritmo scritto tramite

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Un oggetto per la lettura dalla tastiera

Un oggetto per la lettura dalla tastiera Fondamenti di informatica Oggetti e Java ottobre 2012 1 Un oggetto per la lettura dalla tastiera Le API di Java hanno un oggetto System.in che rappresenta la tastiera del calcolatore, ma che non è semplice

Dettagli

Istruzioni decisionali

Istruzioni decisionali Istruzioni decionali 1. if 2. if-else 3. switch 91 if-else Sintas if (espresone) istruzione_1 else istruzione_2 92 1 if-else else: : semantica Viene valutata espresone Se l espresone è vera (cioè assume

Dettagli

Strutture di Controllo

Strutture di Controllo Strutture di Controllo Istruzioni condizionali e cicli http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Introduzione Fino ad ora, il nostro

Dettagli

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa 17. A. Miola Gennaio 2012

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica. Dispensa 17. A. Miola Gennaio 2012 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 17 A. Miola Gennaio 2012 1 Contenuti q Array paralleli q Array e oggetti q Ricerca sequenziale q Ricerca binaria q Fusione di sequenze

Dettagli

Esercizi. Espressioni. ESERCIZIO 1 Determinare le precedenze e quindi l ordine di esecuzione delle operazioni a*(b+-(c/d)/e)*(f-g%h)

Esercizi. Espressioni. ESERCIZIO 1 Determinare le precedenze e quindi l ordine di esecuzione delle operazioni a*(b+-(c/d)/e)*(f-g%h) Esercizi Espressioni ESERCIZIO 1 Determinare le precedenze e quindi l ordine di esecuzione delle operazioni a*(b+-(c/d)/e)*(f-g%h) 1 ESERCIZIO 2 int i,n; i=10; n=i++%5; Domanda i=? n=? i=10; n=++i%5; Domanda

Dettagli

TIPI DI DATO. T = { D, {F 1,...,F n }, {P 1,...,P m } } Un tipo di dato T è definito come:

TIPI DI DATO. T = { D, {F 1,...,F n }, {P 1,...,P m } } Un tipo di dato T è definito come: TIPI DI DATO Un tipo di dato T è definito come: un dominio di valori, D un insieme di funzioni F 1,..,F n sul dominio D un insieme di predicati P 1,..,P m sul dominio D T = { D, {F 1,...,F n }, {P 1,...,P

Dettagli

Esempi. Esempio utilizzo di classi

Esempi. Esempio utilizzo di classi Esempi Uso classi Esempio utilizzo di classi La Classe InterfacciaConsole ha Il metodo costruttore InterfacciaConsole() Ed il seguente metodo: int richiedinumero(string richiesta) Stampa a video la stringa

Dettagli

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla

Dettagli