• Non ci sono risultati.

Fondamenti di Informatica

N/A
N/A
Protected

Academic year: 2021

Condividi "Fondamenti di Informatica"

Copied!
57
0
0

Testo completo

(1)

Fondamenti di Informatica

Introduzione ad AlgoBuild

Prof. Christian Esposito

Corso di Laurea in Ingegneria Meccanica e Gestionale (Classe I) A.A. 2017/18

Introduzione ad AlgoBuild

(2)

Introduzione ad AlgoBuild:

OUTLINE

• Caratteristiche

• Come si presenta

• Utilizzo del blocco di output

Esempio

• Utilizzo dei blocchi di input, output ed esecuzione

Esempio

Introduzione ad AlgoBuild

02/57

(3)

Caratteristiche – 1/3

• Fonte

• https://algobuild.com/it/index.html

Introduzione ad AlgoBuild

03/57

(4)

Caratteristiche – 2/3

• Con AlgoBuild è possibile disegnare in maniera semplice ed efficace diagrammi di flusso

• AlgoBuild permette anche di tradurre i diagrammi di flusso in pseudo-codice

Maggiori informazioni

• https://algobuild.com/it/index.html

Introduzione ad AlgoBuild

04/57

(5)

Caratteristiche – 3/3

• Dove reperirlo?

• AlgoBuild è scaricabile gratuitamente

• L’indirizzo da cui può essere scaricato è

• https://algobuild.com/it/download.html

La versione stabile attualmente è la 0.80

Introduzione ad AlgoBuild

05/57

(6)

Come si Presenta

Introduzione ad AlgoBuild

06/57

(7)

Come si Presenta

Diagramma di flusso

Introduzione ad AlgoBuild

07/57

(8)

Come si Presenta

Pseudo-codice

Introduzione ad AlgoBuild

08/57

(9)

Come si Presenta

Pannello di Output

Introduzione ad AlgoBuild

09/57

(10)

Come si Presenta

Pannello delle variabili

Introduzione ad AlgoBuild

10/57

(11)

Come si Presenta

Barra strumenti

Introduzione ad AlgoBuild

11/57

(12)

Esempio 1: “Hello, World!” – 1/13

• Iniziamo ad utilizzare AlgoBuild con l’esempio Hello, World!

Hello, World! mostra semplicemente la stringa

“Ciao, Mondo!”

• Storicamente, molti manuali di programmazione usano l’esempio “Hello, world!” per mostrare lessico, sintassi e semantica basilare di un dato linguaggio di programmazione

Introduzione ad AlgoBuild

12/57

(13)

Esempio 1: “Hello, World!” – 2/13

• Nell’area del diagramma di flusso possiamo notare i due blocchi di inizio (START) e fine (END)

Sono inseriti automaticamente da AlgoBuild

Introduzione ad AlgoBuild

13/57

(14)

Esempio 1: “Hello, World!” – 3/13

Posizioniamoci con il mouse sulla freccia che collega lo START e l’END del nostro diagramma di flusso

Introduzione ad AlgoBuild

14/57

(15)

Esempio 1: “Hello, World!” – 4/13

Cliccando su «NEW», ci verranno proposte diverse alternative per l’inserimento di un nuovo blocco

Introduzione ad AlgoBuild

15/57

(16)

Esempio 1: “Hello, World!” – 5/13

Selezioniamo Nuovo Output

Introduzione ad AlgoBuild

16/57

(17)

Esempio 1: “Hello, World!” – 6/13

Selezioniamo Nuovo Output

• Ci verrà richiesto qual è l’output che vogliamo mostrare

Introduzione ad AlgoBuild

17/57

(18)

Esempio 1: “Hello, World!” – 7/13

• Scriviamo la stringa ‘‘Ciao, Mondo!’’, poi

• Clicchiamo su OK

Oppure premiamo il tasto Invio della tastiera

Introduzione ad AlgoBuild

18/57

(19)

Esempio 1: “Hello, World!” – 8/13

Ecco il nostro diagramma di flusso

Introduzione ad AlgoBuild

19/57

(20)

Esempio 1: “Hello, World!” – 9/13

• AlgoBuild ha contestualmente generato anche lo pseudo-codice

• Ecco cosa ci presenterà l’area preposta

Introduzione ad AlgoBuild

20/57

(21)

Esempio 1: “Hello, World!” – 10/13

• Possiamo anche modificare il nome del diagramma di flusso

Cliccando sul blocco START oppure END

• Scrivendo il nome che vogliamo assegnare al diagramma

Introduzione ad AlgoBuild

21/57

(22)

Esempio 1: “Hello, World!” – 11/13

• Possiamo modificare anche il nome del diagramma di flusso

Cliccando sul blocco START oppure END

• Scrivendo il nome che vogliamo assegnare al diagramma

Ad esempio, lo chiamiamo helloworld

Introduzione ad AlgoBuild

22/57

(23)

Esempio 1: “Hello, World!” – 12/13

NOTA IMPORTANTE

Per inserire un nuovo blocco dobbiamo sempre cliccare sulla freccia che collega i due blocchi tra i quali vogliamo inserire un nuovo blocco

Introduzione ad AlgoBuild

23/57

(24)

Esempio 1: “Hello, World!” – 13/13

• L’esecuzione…

• Ora che il nostro diagramma è stato generato, possiamo simulare la sua esecuzione tramite AlgoBuild

Comandi per la gestione dell’esecuzione

Introduzione ad AlgoBuild

24/57

(25)

Esempio 1: “Hello, World!” – 13/13

• L’esecuzione…

• Ora che il nostro diagramma è stato generato, possiamo simulare la sua esecuzione tramite AlgoBuild

Serve ad avviare l’esecuzione delle istruzioni

Introduzione ad AlgoBuild

25/57

(26)

Esempio 1: “Hello, World!” – 13/13

• L’esecuzione…

• Ora che il nostro diagramma è stato generato, possiamo simulare la sua esecuzione tramite AlgoBuild

Serve a mettere in pausa l’esecuzione

Introduzione ad AlgoBuild

26/57

(27)

Esempio 1: “Hello, World!” – 13/13

• L’esecuzione…

• Ora che il nostro diagramma è stato generato, possiamo simulare la sua esecuzione tramite AlgoBuild

Serve ad interrompere l’esecuzione

Introduzione ad AlgoBuild

27/57

(28)

Esempio 1: “Hello, World!” – 13/13

• L’esecuzione…

• Ora che il nostro diagramma è stato generato, possiamo simulare la sua esecuzione tramite AlgoBuild

• AlgoBuild permette di simulare l’esecuzione anche passo passo

• In questo caso sarà necessario cliccare ogni volta su per eseguire l’istruzione successiva

Introduzione ad AlgoBuild

28/57

(29)

Esempio 1: “Hello, World!” – 13/13

• L’esecuzione…

• Ora che il nostro diagramma è stato generato, possiamo simulare la sua esecuzione tramite AlgoBuild

• AlgoBuild permette di simulazione l’esecuzione, anche passo passo

• Possiamo anche decidere il tempo (in millisecondi) che intercorre tra ogni istruzione eseguita

Introduzione ad AlgoBuild

29/57

(30)

Esempio 1: “Hello, World!” (2)

DEMO Esecuzione «Hello, World!» (Tempo passo: 5000ms, ovvero 5 secondi)

Introduzione ad AlgoBuild

30/57

(31)

• Cliccando con il tasto sinistro su una specifica istruzione apparirà il menu contestuale che consente di

Modificare l’istruzione selezionata

Copiare l’istruzione

Tagliare l’istruzione (utile per spostarla da una parte ad un’altra, utilizzando i comandi Taglia e Incolla)

Modificare un’Istruzione

AlgoBuild: Strutture iterative e selettive

31/57

(32)

Operatore Descrizione

< Minore

<= Minore o uguale

> Maggiore

>= Maggiore o uguale

== Uguale

!= Diverso

Operatore Descrizione

+ Addizione

- Sottrazione

* Moltiplicazione

/ Divisione

% Resto della divisione intera

AlgoBuild:

Operatori Artimetici, Relazionali e Logici

Operatori Aritmetici

Operatori Relazionali

Operatore Descrizione

&& AND

|| OR

! NOT

Operatori Logici

Introduzione ad AlgoBuild

32/57

(33)

Esempio 2: Perimetro Rettangolo – 1/5

P = 2 * (L1 + L2)

L1

L2

Introduzione ad AlgoBuild

33/57

(34)

Esempio 2: Perimetro Rettangolo – 1/5

P = 2 * (L1 + L2)

L1

L2

L1 à input L2 à input P à output

Introduzione ad AlgoBuild

34/57

(35)

Introduzione ad AlgoBuild

Esempio 2: Perimetro Rettangolo – 2/5

◦ Iniziamo

35/57

(36)

Introduzione ad AlgoBuild

Esempio 2: Perimetro Rettangolo – 2/5

◦ Iniziamo

36/57

(37)

Introduzione ad AlgoBuild

Esempio 2: Perimetro Rettangolo – 2/5

◦ Iniziamo

Inseriamo il primo input: la variabile L1

37/57

(38)

Introduzione ad AlgoBuild

Esempio 2: Perimetro Rettangolo – 2/5

◦ Iniziamo

Ripetendo le operazioni appena viste, inseriamo anche l’input della seconda variabile (ovvero L2)

38/57

(39)

Introduzione ad AlgoBuild

Esempio 2: Perimetro Rettangolo – 2/5

◦ Iniziamo

Come si può notare, tale diagramma di flusso presenta due blocchi di

input, denotati dalle variabili L1 ed L2

39/57

(40)

Introduzione ad AlgoBuild

Esempio 2: Perimetro Rettangolo – 2/5

◦ Iniziamo

40/57

(41)

Introduzione ad AlgoBuild

Esempio 2: Perimetro Rettangolo – 2/5

41/57

(42)

Introduzione ad AlgoBuild

Esempio 2: Perimetro Rettangolo – 2/5

42/57

(43)

Introduzione ad AlgoBuild

Esempio 2: Perimetro Rettangolo – 2/5

◦ Iniziamo

L’ultima operazione è quella di mostrare a video il valore della variabile risultato P

(dopo l’operazione di assegnamento)

43/57

(44)

Esempio 2: Perimetro Rettangolo – 3/5

PSEUDO-CODICE PROG perimetro_ret

IN L1 IN L2

ASSIGN P=2*(L1+L2) OUT P

END PROG //perimetro_ret

Introduzione ad AlgoBuild

44/57

(45)

DEMO Esecuzione Perimetro Rettangolo (Tempo passo: 5000ms, ovvero 5 secondi)

Introduzione ad AlgoBuild

45/57

(46)

Selezionando l’opzione «Traccia» verranno fornite (nel Pannello di Output) ulteriori informazioni riguardanti il flusso di esecuzione

Oltre ad eventuali errori che possono intercorrere

Esempio 2: Perimetro Rettangolo – 4/5

Introduzione ad AlgoBuild

46/57

(47)

Selezionando l’opzione «Traccia» Non selezionando l’opzione «Traccia»

Esempio 2: Perimetro Rettangolo – 5/5

Introduzione ad AlgoBuild

47/57

(48)

• AlgoBuild permette di modificare le opzioni di visualizzazione del diagramma di flusso, permettendo di cambiare

• Tipo di carattere

• Dimensioni del carattere

• Dimensioni del carattere nel pannello di output

• Spessore delle linee relative al contorno dei blocchi ed agli archi orientati che collegano i blocchi (frecce)

• Cliccando sul tasto apparirà una finestra di dialogo che ci permetterà di vedere e modificare le suddette caratteristiche di visualizzazione

Altre Opzioni AlgoBuild – 1/3

Introduzione ad AlgoBuild

48/57

(49)

• AlgoBuild permette di modificare le opzioni di visualizzazione del diagramma di flusso, permettendo di cambiare

• Tipo di carattere

• Dimensioni del carattere

• Dimensioni del carattere nel pannello di output

• Spessore delle linee relative al contorno dei blocchi ed agli archi orientati che collegano i blocchi (frecce)

• Cliccando sul tasto apparirà una finestra di dialogo che ci permetterà di vedere e modificare le suddette caratteristiche di visualizzazione

Altre Opzioni AlgoBuild – 1/3

Introduzione ad AlgoBuild

Finestra di Dialogo

Modifica opzioni di visualizzazione

49/57

(50)

È anche possibile salvare un diagramma di flusso, per poi aprirlo successivamente (ad esempio, per fare modifiche, per simulare altre esecuzioni, etc)

• Le opzioni di salvataggio ed apertura sono presenti nella barra strumenti

Le opzioni di salvataggio/apertura sono presenti anche nel menu «File»

• In particolare, sono presenti anche opzioni per

• Stampare il diagramma di flusso

• Copiare il diagramma di flusso negli appunti

• Il diagramma verrà copiato come immagine

Salvare il diagramma come immagine (JPG, PNG, GIF)

Altre Opzioni AlgoBuild – 2/3

Introduzione ad AlgoBuild

50/57

(51)

Il menu «Aiuto» permette di accedere rapidamente a

• Manuale AlgoBuild (online)

• Sintassi e funzioni (online)

Pagina Facebook ufficiale e canale Youtube (con suggerimenti e video)

• Informazioni sulla versione di AlgoBuild

Altre Opzioni AlgoBuild – 3/3

Introduzione ad AlgoBuild

51/57

(52)

Novità della nuova versione (1/5)

• Tipi di dati: ogni espressione e ogni variabile ha associato un tipo. I tipi sono int (numeri interi), double (numeri decimali a doppia precisione), string (sequenze di caratteri), boolean (logico true/false).

• Il modo di scrivere una espressione determina anche il suo tipo.

int: sono numeri scritti come sequenza di cifre senza il punto oppure espressioni algebriche contenenti SOLO int e variabili di tipo int.

double: sono numeri scritti come sequenza di cifre con il punto oppure espressioni algebriche contenenti ALMENO un double o una variabile di tipo double.

string: sono sequenze di caratteri racchiuse tra doppi apici. Esempi: "ciao",

"tanti quanti", "torno\nsubito" (il simbolo \n inserisce un "a capo"). nome =

"Mondo" messaggio = "Ciao " + nome + "!"

boolean: possono avere solo due valori true e false. condizione = true test = x>y

Introduzione ad AlgoBuild

52/57

(53)

Novità della nuova versione (2/5)

• Operazioni sulle stringhe

• "ciao" + "mondo" (concatenazione)

• "ciao" == "mondo" (uguaglianza)

• "ciao" != "mondo" (diverso da)

• "ciao" > "mondo" (maggiore)

• "ciao" > "mondo" (maggiore o uguale)

• "ciao" < "mondo" (minore)

• "ciao" <= "mondo" (minore o uguale)

Introduzione ad AlgoBuild

53/57

(54)

Novità della nuova versione (3/5)

• Nuove funzioni di manipolazione stringhe / conversione tra tipi diversi

• strlen(s) lunghezza della stringa s ritorna il numero (intero) di caratteri di s esempio:

lung = strlen("ciao") restituisce 4

• strchar(s,p) carattere dalla stringa s ritorna una stringa formata dal carattere di s alla posizione p la prima posizione è 0 esempio: ch = strchar("ciao",2) restituisce "a"

• substr(s,i,j) sottostringa di s ritorna una sottostringa dalla posizione i alla j-1 la prima posizione è 0 esempio: nome = strchar("ciao Mondo!",5,10) restituisce "Mondo"

• strpos(s,t) posizione della sottostringa ritorna il numero (intero) con la posizione di t in s la prima posizione è 0 esempio: pos = strpos("ciao Mondo!","Mondo") restituisce 5

• strupr(s) converte in maiuscolo ritorna la stringa convertita in maiuscolo esempio:

maiu = strupr("Ciao") restituisce "CIAO"

• strlwr(s) converte in maiuscolo ritorna la stringa convertita in maiuscolo esempio:

maiu = strlwr("Ciao") restituisce "ciao"

• trim(s) elimina spazi iniziali e finali ritorna la stringa senza spazi a inizi / fine esempio: saluto = trim(" Ciao ") restituisce "Ciao"

Introduzione ad AlgoBuild

54/57

(55)

Novità della nuova versione (4/5)

• ctoi(s) codice intero del carattere ritorna il numero (intero) codice ASCII del primo carattere di s esempio: cod = ctoi("Ciao") restituisce 67

• itoc(i) carattere dal codice intero ritorna il carattere corrispondente al codice ASCII (intero) passato esempio: char = itoc(65) restituisce "A"

• stoi(s) converte stringa in intero ritorna il numero (intero) convertito dalla stringa data esempio: val = stoi("12") restituisce il numero intero 12

• itos(i) rappresentazione in stringa del numero ritorna la stringa corrispondente al numero (intero) passato esempio: s = itos(65) restituisce "65"

• iformats(i,n) formattazione del numero in stringa ritorna la stringa lunga l corrispondente al numero (intero) passato con eventuali spazi iniziali esempio: s = itos(65,5) restituisce " 65"

• sbasetoi(s,b) converte stringa in intero espresso in una base numerica (da 2 a 36) ritorna il numero (intero) convertito dalla stringa nella base data esempio: val = stoi("12", 16) restituisce il numero intero 18

• ibasetos(i,b) rappresentazione in stringa del numero in una base numerica (da 2 a 36) ritorna la stringa corrispondente al numero (intero) passato nella base specificata esempio: s = itos(10,16) restituisce "A"

• stod(s) converte stringa in double ritorna il numero (double) convertito dalla stringa data esempio: val = stod("12.45") restituisce il numero double 12.45

• dtos(d) rappresentazione in stringa del numero ritorna la stringa corrispondente al numero (double) passato esempio: s = dtos(65.33) restituisce "65.33"

Introduzione ad AlgoBuild

55/57

(56)

Novità della nuova versione (5/5)

• dformats(d,n,m) formattazione del numero double in stringa ritorna la stringa lunga n con m decimali corrispondente al numero (double) passato con eventuali spazi iniziali esempio: s = itos(65.1234,8,2) restituisce " 65.12"

• dtoi(d) conversione da double a intero ritorna il numero intero eliminando i decimali dal numero (double) passato esempio: i = dtoi(65.33) restituisce il numero intero 65

• type(v) informazioni sul tipo di dato ritorna una stringa con il nome del dato corrispondente esempi type("ciao") restituisce "(string)" type(123.456) restituisce

"(double)" type(123) restituisce "(int)”

• Nuova sintassi di input:

• x (legge un double)

• double x (legge un double)

• int x (legge un intero)

• string x (legge una stringa)

• v[i] (legge un elemento di un array double)

• double v[i] (legge un elemento di un array double)

• int v[i] (legge un elemento di un array intero)

• string v[i] (legge un elemento di un array stringa)

Introduzione ad AlgoBuild

56/57

(57)

Riepilogo

• Primo approccio ad AlgoBuild

• Utilizzo dei blocchi di

Input

Output

Esecuzione/Assegnamento

• Simulazione di esecuzione, mediante AlgoBuild

Introduzione ad AlgoBuild

57/57

Riferimenti

Documenti correlati

(descri- zione codicologica ibid., pp. - L'edizione critica è stata curata da Henri Quentin in collaborazione con Hippolyte Delehaye: Acta Sanctorum Novembris. Collecta,

Così ad esempio, alla metà degli anni '90 del secolo scorso, due antropologi di rilievo come Marc Augè e Clifford Geertz, con un background culturale differente,

This paper reviews the major (Calcium, Phosphorus, Potassium, Sodium, Chlorine, Sulphur, Magnesium) and the trace elements (Iron, Copper, Cobalt, Iodine, Manganese, Zync,

Available Open Access on Cadmus, European University Institute Research Repository.... European

Fig.. ste aree della Sardegna le cavità minerarie e le grotte di miniera sono di primaria importanza per molte specie di pipistrelli che trovano rifu- gio nel loro interno. La

In discussing Northanger Abbey it is essential to see that the problems Catherine, the heroine, has in understanding herself and her experience are not different from the problems

Jean Guiguet specifically identifies Virginia Woolf with her six protagonists: She is in love with words, like Bernard: in love with books, like Neville: a lover of action, like

Simona scarsa medio-bassa medio-tardiva rotonda blu scuro Sofia scarsa medio-elevata medio-precoce ovale blu scuro Speranza medio-scarsa media intermedia rotonda