MODULO 3 Programmazione in Visual Basic.Net. Parte1 - Introduzione alla programmazione in VisualBasic.Net

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "MODULO 3 Programmazione in Visual Basic.Net. Parte1 - Introduzione alla programmazione in VisualBasic.Net"

Transcript

1 MODULO 3 Programmazione in Visual Basic.Net Parte1 - Introduzione alla programmazione in VisualBasic.Net Definizione di linguaggio di programmazione Esso è il linguaggio usato dal programmatore per comunicare con il computer. Il primo linguaggio usato è stato quello binario, in seguito fu l assembler (un misto di codice binario a parole utente come: add (per fare la somma), molt (per fare le moltiplicazioni)), ecc. Negli anni sono nati molti linguaggi di programmazione sempre più vicini al modo di pensare del programmatore. Esempi di linguaggi di programmazione inventati dal programmatore negli anni - ForTran (Formula Translation) nato nel 1954 per scopi scientifici e per calcoli matematici - COBOL (Common Business Oriented Language) nato nel 1960 per scopi commerciali - PASCAL nato nel 1971 ad opera di N. Wirth progettato come linguaggio per l insegnamento nelle scuole della programmazione strutturata (ancora in uso in qualche ITIS) - BASIC (Beginner s All Purpose Symbolic Instruction Code) nato nel 1980 per avere un linguaggio che fosse molto semplice da imparare anche per i principianti - Visual Basic nato alle fine degli anni 90 e poi il Visual Basic. Net nato nel Entrambi usano il lessico (parole chiavi) base del linguaggio Basic, ma con l aggiunta di molte altre funzioni e procedure di libreria. Definizione di algoritmo. Un algoritmo è una sequenza ordinata di azioni o istruzioni che permettono di risolvere tutti i problemi di una certa classe (natura) nel modo più efficiente possibile (cioè col minor numero di istruzioni). Le istruzioni dell algoritmo, inoltre, devono soddisfare ai seguenti requisiti: 1. elementari, cioè non ulteriormente scomponibili 2. in numero finito, nel senso che l algoritmo deve avere un punto di inizio e un punto di fine 3. non ambigue, cioè che non lascino dubbi di interpretazione alla CPU che dovrà eseguirle. 4. deterministiche, cioè devono garantire che i risultati ottenuti siano sempre gli stessi a prescindere dalla CPU che le esegue. Ad esempio: l istruzione moltiplica 3 per 4 produce sempre il medesimo risultato, anche se è eseguita su CPU diverse. Problema1. Trovare l algoritmo che calcola l area del triangolo 1. inizio 2. dammi valore della base 3. dammi valore della altezza 4. calcola il prodotto: base per l altezza 5. dividi il prodotto per due ed otterrai il valore dell area del triangolo 6. stampa a video l area calcolata 7. fine Variabili e Costanti In tutti i linguaggi di programmazione il programmatore ha necessità di memorizzare temporaneamente alcuni valori del programma. Tali valori sono memorizzati nelle celle della RAM. La variabile è una celletta della RAM in cui è possibile memorizzare temporaneamente i valori che variano nel tempo. N nome celletta Inoltre, la variabile è individuata da: 1

2 - un nome scelto a piacere dal programmatore composto da lettere e numeri ma che non deve mai iniziare con un numero come ad es: numero, a1, a2, somma, media, nome, ecc. - un valore modificabile nel tempo, a seconda che si verifichino o meno condizioni, eventi, ecc. da qui il nome variabile, che può essere: un numero intero positivo o negativo, un numero con la virgola, un carattere, una parola, un valore booleano vero e falso, ecc. - un tipo, cioè l insieme dei valori che essa può assumere I tipi di variabili che useremo in Visual Basic. Net - tipo intero (in VB integer) è l insieme dei numeri naturali negativi e positivi, come ad esempio: , 0, 5, 100 ecc. - tipo decimale (in VB decimal) è l insieme dei numeri positivi e negativi con e senza virgola, come ad esempio: , -1, 0, 5, 1234,7 - tipo booelano (in VB boolean) è l insieme dei valori true o false, come ad esempio: maggiorenne, sposato, patentato, ecc. - tipo stringa (in VB string) è l insieme dei caratteri e delle parole, come ad esempio: a,b,c,d,e,f,..z, casa, cena, scuola, ecc. Esempio1 - variabile intera celletta 6 A nome In tal caso A è il nome scelto per la variabile, 6 è il suo valore in un certo istante e il suo tipo è quello intero. Esempio2 - variabile decimale celletta 6,5 MEDIA nome In tal caso MEDIA è il nome scelto per la variabile, 6,5 è il suo valore e il suo tipo è quello decimale Esempio3 - variabile stringa celletta nero COLORE nome In tal caso COLORE è il nome scelto per la variabile, nero è il suo valore e il suo tipo è quello stringa Esempio4 variabile booleana MAGGIORENNE nome celletta vero In tal caso MAGGIORENNE è il nome scelto per la variabile, vero è il suo valore e il suo tipo è quello booleana Dichiarazione in VisulBasic.Net delle variabili. Essa consiste nell anteporre la parola chiave DIM al nome della variabile e postporre la parola chiave AS e il suo tipo corrispondente al nome della variabile, come mostra l esempio seguente: ' DICHIARAZIONI VARIABILI Dim A As Integer Dim Media As Decimal 2

3 Dim Colore As String Dim Maggiorenne As Boolean La costante è una celletta della RAM in cui è possibile memorizzare temporaneamente i valori che non variano nel tempo, cioè che sono costanti. celletta 3,14 PIGRECO nome In tal caso PIGRECO è il nome scelto per la costante, invece 3,14 è il suo valore. Si dice che la costante PIGRECO è di tipo decimale, poiché contiene un numero con la virgola Dichiarazione in VisulBasic.Net delle costanti Essa consiste nell anteporre al nome della variabile la parola chiave CONST e postporre al nome della costante il suo valore, come mostra l esempio seguente: ' DICHIARAZIONI COSTANTI CONST Pigreco=3.14 CONST Maggiorenne= SI L istruzione di assegnazione delle variabili Essa permette di attribuire ad una variabile un valore Esempi di assegnazioni con costanti e variabili: - raggio = 3,14 - voto = 7 - targa = dx112ed - sposato = true - conta = conta +1 L operazione di concatenazione tra variabili di tipo stringa Date 2 variabili a e b di tipo string, l operazione a+b si chiama di concatenazione. Ad esempio: - se a= il mio pc e b = è da formattare a+b = il mio pc è da formattare - se a= 12 e b= 255 a+b= e si legge la stringa o in formato testo L operazione di concatenazione tra una variabile di tipo stringa e una variabile di tipo intera Essa si ottiene usando l operatore & (è commerciale). Ad es. supponiamo di dover calcolare la soluzione x, dell equazione 2x-2=0. Allora la soluzione è x=1 ma vogliamo che appaia insieme al valore 1, un messaggio esplicativo, del tipo: la soluzione è =, cioè vogliamo concatenare un valore intero 1 con un valore string la soluzione è l operazione di concatenazione si realizza cosi: la soluzione è = & x. Essa produce il messaggio: la soluzione è =1. Essa sarà usata nella funzione MsgBox( ). La funzione MsgBox Essa si usa per consentire l output attraverso l uso di finestre: di avviso, di errore, di informazione, ecc. e l output di valori numerici generati dal programma.. Essa ha tre parametri separati dalla virgola: il 1) obbligatorio e il 2) e il 3) facoltativo. La sintassi della funzione MsgBox è la seguente: MsgBox( messaggio utente nel prompt (zona grigia), numero, testo nel title (barra blu) ) 3

4 Essa ha come 1) e 3) parametro gli stessi della funzione InputBox. La differenza è solo il 2) parametro che serve a specificare, con un numero il tipo di icona da utilizzare. CODICE VBASIC MsgBox("Δ<0 soluzioni non reali", 16, "Avviso") CODICE VBASIC MsgBox("Δ<0 soluzioni non reali", 64, "Avviso") CODICE VB x= - 0,5 MsgBox(x) x= - 0,5 MsgBox( La soluzione è x = " & x) La funzione InputBox Essa si usa per consentire l input di un valore da tastiera che sarà confermato o meno attraverso i pulsanti: ok o annulla Esempi: inserendo entrambi i parametri 1) e 2) nella funzione InputBox() (fig.a) Codice VB InputBox("QUALE' IL TUO PIATTO PREFERITO?", "ELENCO DEI PIATTI") (fig. b) Codice VB InputBox("DAMMI UN NUMERO DA 1 A 7", "SCELTA DI UN NUMERO CASUALE") I valori inseriti nel rigo bianco: SPAGHETTI ALLA PESCATORA (fig.1) e 7 (fig.2) saranno interpretati come testo, quindi la variabile che li conterrà dovrà essere di tipo string. Ad es.: StringaNome=InputBox( inserisci messaggio utente nel prompt, inserisci nome title ) Se si vuole una variabile numero tipo intero si utilizzerà la funzione Val nel seguente modo: numero=val (InputBox( inserisci messaggio utente nel prompt, inserisci nome title )) La funzione Val La stringa è possibile convertirla in numero utilizzando la funzione del VBasic.Net che si chiama Val. Essa dato un numero in formato testo, lo trasforma un numero in formato numero. Ad es. data la stringa Val ( ) = ovvero un numero, cioè La funzione Cstr (funzione inversa di Val) Il numero è possibile convertirlo in stringa utilizzando la funzione del VBasic.Net che si chiama Cstr. Essa dato un numero in formato testo, lo trasforma un numero in formato numero. Ad es. data il valore in formato numero Cstr (12255) = è la stringa

5 Cosa serve per realizzare un programma in VB.net? Bisogna eseguire nell ordine i seguenti passi: 1) Dato un problema, disegnare la tabella delle variabili e delle costanti 2) Individuare l algoritmo risolutivo per passi (detto anche pseudo codifica) 3) Individuare il diagramma a blocchi (detto anche flowchart) 4) Creare il form Visualbasic. Net, inserendo i controlli e le loro proprietà 5) Codificare l evento click dei pulsanti di calcolo (button) inseriti nel Form L interfaccia di Visual Basic.Net 2008 Che cosa è un form di Visual Basic.Net? Il form è l interfaccia grafica piccola e centrale sulla quale il programmatore inserisce degli elementi grafici, detti controlli o strumenti, come ad es. i pulsanti (in VB button), le etichette (in VB label), le caselle di testo (in VB textbox), ecc. Che cosa è un controllo (o strumento) di VisualBasic.Net? Un controllo (o strumento) è un elemento grafico che si trova in una finestra di VB detta casella degli strumenti. Essa è la seguente: A che serve il controllo (o strumento) etichetta (o label in VB)? Essa si usa per descrivere ciò che avviene nel form. Per distinguere una etichetta da un altro controllo si usa il nome sintetico: lbl. Esempi: lbltitolo, lblsomma, ecc A che serve il controllo (o strumento) casella di testo (o textbox invb)? Esso si usa per inserire i valori di input e per far uscire a video i valori di output. Per distinguere una casella di testo da un altro controllo si usa il nome sintetico: txt. Esempi sono: txtnum1, txtnum2, ecc 5

6 Esempio. Data la casella di testo txtnumero allora: - la scrittura txtnumero.name dice che.name è la proprietà nome della casella di testo - la scrittura txtnumero.text dice che.text è la proprietà testo della casella di testo - la scrittura txtnumero.font dice che.font è la proprietà font della casella di testo - la scrittura txtnumero.backcolor dice che.backcolor è la proprietà colore di sfondo La casella di testo vede tutto quello che riceve, sia testo che numeri, come testo. Pertanto se inseriamo un numero in una casella di testo e vogliamo effettuare dei calcoli su di esso bisogna convertirlo da formato testo a formato numero. A che serve la funzione VAL usata nelle caselle di testo? Essa serve a convertire, come già suddetto, un numero da formato testo a formato numero. Ad es. sia txtnumero una casella di testo e supponiamo che l utente inserisca in essa il numero in formato testo 5, abbiamo quindi che: - txtnumero.text = 5 (si legge 5 in formato testo) mentre - Val (txtnumero.text) = 5 (si legge 5 in formato numerico). A che serve il controllo (o strumento) pulsante (o button in VB) Esso serve ad eseguire le seguenti operazioni: a) i calcoli principali del programma, b) uscire dal programma, c) azzerare ai valori iniziali le variabili. Per distinguere il pulsante da un altro controllo si usa il nome sintetico: btn. Esempi sono: btncalcola, btnesci, ecc A che serve il controllo (o strumento) elenco a discesa (o combobox in VB) Esso è un elenco a discesa di elementi. Esso si usa per inserire un valore di input, da un elenco di valori predefiniti. Per distinguere una combobox da un altro controllo si usa il nome sintetico: cmb. Esempi sono: cmbtemperatute, cmbquantità, ecc Che cosa sono le proprietà dei controlli (o strumenti)? Sono delle caratteristiche che servono a caratterizzare in modo molto semplice e rapido l aspetto grafico dei controlli. Esse si trovano nella finestra proprietà sul lato destro dell interfaccia di VB.Net. (fig. a) (fig.b) Definizione di oggetto Un oggetto è un qualsiasi form, controllo o libreria del linguaggio. Più semplicemente gli oggetti (form, controlli e libreria 1 ) sono i i mattoni che servono per costruire una interfaccia grafica di VB in analogia ai mattoni usati nell edilizia per costruire una casa. Definizione di proprietà degli oggetti 1 Un es.di oggetto di libreria è math, di cui più avanti si utilizzerà il metodo math.sqrt( ) 6

7 Una proprietà è una caratteristica di un oggetto come: il nome, il colore. la dimensione, la posizione, il testo che appare in esso, ecc. Ogni oggetto possiede delle proprietà e ogni volta che ci riferiamo alle proprietà di un oggetto scriviamo: nomeoggetto.proprietà, come ad es. lbl1.text proprietà testo dell oggetto label, di nome lbl1 Definizione di evento di un oggetto L evento è l azione provocata dall utente sui form e controlli. Tale azione viene programmata in VB dal programmatore e in tal caso si parla di programmazione ad eventi. Un esempio classico di evento è il Click, cioè quando l utente premerà su un pulsante farà verificare l evento click. Esempi di eventi sono: click (usato per: label, button, textbox, ecc); SelectedIndexChange (usato per combo box, ecc), keydown, keypress, enter, apertura del form, ecc. La figura mostra i possibili eventi che si possono programmare per l evento button (Vedi figura) Visualizzare la finestra delle proprietà di un controllo, di un form ecc. in VB Per visualizzare la finestra delle proprietà è sufficiente: 1) selezionarlo e premere il tasto F4 2) selezionarlo e poi scegliere la voce Finestra proprietà, dal menù Visualizza Selezionata la proprietà, VB visualizza in basso alla finestra proprietà una breve spiegazione del significato della proprietà selezionata Le proprietà principali dei controlli: etichetta, casella di testo, pulsante, elenco a discesa sono: - nome (o name in VB) che stabilisce il nome del controllo da usare nel codice visualbasic - testo (o Text in VB) che stabilisce il contenuto testuale da visualizzare nel form - font che stabilisce il tipo di carattere da utilizzare (times new roman, arial, ecc) - colore di sfondo (o backcolor in VB) che stabilisce il colore del controllo - items che individua gli elementi (in inglese items) da visualizzare nella combobox. - selecteditem che individua l elemento selezionato della combo box (si trova nella finestra delle proprietà, gruppo DataBindings, come mostra la figura seguente:) Inserire gli elementi nella Combobox, dal menù contestuale del mouse Modifica elementi 7

8 Definizione di metodo di un oggetto Esso è un sottoprogramma predefinito del linguaggio VB già scritto e disponibile per il programmatore associato ad un particolare oggetto. Per riferirsi ad esso scriviamo: nomeoggetto.metodo( ). 2 Esempi di metodi di oggetti: - math.sqrt( ) si legge metodo sqrt( ) dell oggetto della libreria matematica math. Esso permette di calcolare la radice quadrata di un numero. Esempio math.sqrt(4) effettua la radice quadrata di 4. - cmb1.items.add( ) si legge metodo add( ) dell oggetto combobox cmb1. Esso aggiunge un item (cioè un elemento) alla combobox cmb1. Es.1 cmb1.items.add( napoli ), aggiunge l elemento napoli alla combobox cmb1. Es.2 cmb3.items.add(txt1.text), aggiunge l elemento che si trova nella casella di testo txt1 all elenco a discesa cmb3 - cmb2.items.remove( ) si legge metodo remove( ) dell oggetto combobox cmb2. Esso rimuove un item (cioè un elemento) dalla combobox cmb2. Esempio cmb1.items.remove( caserta ) rimuove l elemento caserta alla combobox cmb2 Un programma VBasic.Net Esso è una sequenza finita di istruzioni generate in parte in modo automatico dal linguaggio ed un altra parte in modo manuale dal programmatore. La parte del programmatore è riservata soprattutto alla programmazione dei pulsanti di comando. Il codice di ogni pulsante deve essere inserito tra i comandi, generate da VBasic, Private Sub ed End Sub Esempio1 Calcolo del form relativo all algoritmo del calcolo dell area del rettangolo. Tabelle delle variabili di input e output b Base del rettangolo Numerico intera h Altezza del rettangolo Numerico intera a Area del rettangolo Numerica intera Algoritmo 1. Inizio 2. Dammi il valore della base b 3. Dammi il valore della altezza h 4. Calcola il prodotto A = b x h 5. Stampa a video la sua area A 6. Fine 2 Da non confondersi al modo con cui ci si riferisce ad una proprietà di un oggetto: nomoggetto.proprietà 8

9 Il codice da inserire dietro al pulsante Calcola del Form precedente è il seguente: Private Sub BtnCalcola_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCalcola.Click End Sub ' DICHIARAZIONI VARIABILI Dim base, altezza As Integer Dim area As Decimal ' txtbase E LA CASELLA DI TESTO USATA NEL FORM PER CONTENERE IL VALORE DI BASE SCELTO DALL UTENTE. MA LA CASELLA DI TESTO TRASFORMA TUTTO QUELLO CHE RICEVE IN TESTO. PER CONVERTIRE QUELLO CHE RICEVE DA TESTO A NUMERO SI USA LA FUNZIONA VAL PER LA VARIABILE BASE e PER l ALTEZZA base = Val(txtBase.Text) altezza = Val(txtAltezza.Text) ' CALCOLO DELL AREA DEL RETTANGOLO area = base * altezza ' ASSEGNAZIONE DELL AREA CALCOLATA ALLA CASELLA DI TESTO txtarea txtarea.text = area Problema4: Dati due numeri A e B, calcolarne la somma. Per la realizzazione di questo programma in VB.net seguiamo i suddetti 5 passi: 1) la tabella delle variabili di input, di output e di lavoro è la seguente: Tabelle delle variabili di input, output e di lavoro A B Som Primo numero Secondo numero Somma dei 2 numeri 9

10 2) Individuazione dell algoritmo per passi Algoritmo per passi 1. inizio 2. dammi il valore del primo numero A 3. dammi il valore del secondo numero B 4. somma i due numeri A e B 5. assegna la somma del punto 4 a som 6. visualizza a video la somma Som 5. fine 3) individuazione del diagramma a blocchi Algoritmo col diagramma a blocchi Inizio A, B Som=A+B Som Fine 4) Creazione del form Visualbasic.Net, inserendo gli oggetti: label, textbox e botton, ecc. e definendo le loro proprietà 5) Codifica del corpo dei pulsanti di calcolo (button) inseriti nel Form Qui nel form c è un solo pulsante che effettua un calcolo e si chiama +. Pertanto procederemo a scrivere il codice visualbasic.net sono per tale pulsante. Esso è il seguente: CODIFICA PULSANTE + ' DICHIARAZIONE DELLE VARIABILI Dim A, B, Som As Integer ' INPUT DEL VALORE DI A E DEL VALORE DI B A=Val(txtA.Text) B=Val(txtB.Text) ' SOMMA A+B Som=A+B ' STAMPA SOMMA txtsom.text=som txta è il nome della casella di testo creata per A, mentre.txt è la proprietà testo delle caselle txta.text e txtb.text 10

11 Problema5: Dati un numero A, calcolare il suo quadrato QA e doppio DA e li stampi a video 1) Tabelle delle variabili di input e output A Primo numero QA DA Quadrato di A Doppio di A 1. inizio 2. dammi il valore del primo numero A 3. calcola il suo quadrato, AQ=A*A 4. calcola il suo doppio, DA=2*A 5. visualizza AQ e DA 6. fine 4) Creazione del form Visualbasic. Net 5) CODIFICA PULSANTE Calcola ' DICHIARAZIONE DELLE VARIABILI DIM a, qa, da, As Integer ' INPUT DEL VALORE DI A a = Val (txta.text) ' CALCOLO DEL QUADRATO DI A qa = a*a ' CALCOLO DEL DOPPIO DI A da = a+a ' STAMPA A VIDEO DI QA E DA txtqa.text = qa txtda.text = da Problema6: Date le basi maggiori e minori e l altezza di un trapezio, calcolare l area. Per la realizzazione di un programma in VB.net seguire i seguenti 5 passi: 1) Tabelle delle variabili di input, di output e di lavoro B1 b2 H Base maggiore base minore Altezza SOM P Area Somma (B1+b2) Prodotto SOM*H Area del trapezio P/2 Numero decimale Esercizio Ricavare dal problema6 suddetto e dalla tabella delle variabili: l algoritmo, il diagramma a blocchi, il form e il codice vbasic del pulsante calcola 11

12 2-PARTE: Definizione di struttura di sequenza o sequenziale In un algoritmo si parla di struttura di sequenza quando le istruzioni elementari dell algoritmo sono una di seguito all altra come mostra la figura: Problema8: Scrivere un algoritmo che dati tre voti interi A, B e C letti in input, calcoli la media aritmetica e la stampi in output Per la realizzazione di un programma in VB.net seguire i seguenti 5 passi: 1) Tabelle delle variabili di input, di output e di lavoro A B C 1 voto 2 voto 3 voto SOM MED Somma dei tre voti Media dei tre voti Numero decimale 1. Inizio 2. Dammi il primo voto A 3. Dammi il secondo voto B 4. Dammi il terzo voto C 5. Somma i tre voti A, B e C 6. Calcola la media dei tre voti 7. Fine Inizio A,B,C SOM =A+B+C Media =SOM / 3 Media Fine 4) Creazione del form Visualbasic. Net 5) CODIFICA PULSANTE Calcola ' DICHIARAZIONE DELLE VARIABILI 12

13 C Dim A, B, C, SOM As Integer Dim media As Decimal ' INPUT DEI VALORI DI A, B e A = Val (txta.text) B = Val (txtb.text) C = Val (txtc.text) ' CALCOLO DELLA MEDIA SOM = A + B + C media = SOM / 3 ' STAMPA DELLA MEDIA A VIDEO txtmedia.text = media Problema9: Scrivere un algoritmo che dati due numeri e Y, effettui lo scambio dei valori e stampi a video i nuovi valori assunti da esse, utilizzando una variabile di appoggio. Y Capiamo il problema: sia x=10 e y=20 1) modo: sposto prima il contenuto di y in x, allora faccio x=y, quindi x sarà = 20, ma anche y = 20 2) modo: sposto prima il contenuto di x in y, allora faccio y=x, quindi y sarà = 10, ma anche x = 10 Bene in entrambi i modi ho ottenuto due valori uguali di x e di y e non è quello che volevo. Cosa devo fare? Prima di effettuare lo scambio, occorre conservare il valore di x o di y all interno di un altra variabile, detta temporanea, TEMP. Per la realizzazione di un programma in VB.net seguire i seguenti 5 passi: 1) Tabelle delle variabili di input, di output e di lavoro Y Primo valore Secondo valore TEMP Variabile temporanea di appoggio 1. Inizio 2. Dammi i valori di e Y 3. Assegna a TEMP il valore di 4. Assegna ad il valore di Y 5. Assegna ad Y il valore di TEMP 6. Stampa e Y 8. Fine 13

14 4) Creazione del form Visualbasic. Net 5) CODIFICA PULSANTE Calcola ' DICHIARAZIONE DELLE VARIABILI Dim x, y, temp As Integer ' INPUT DEI VALORI DI E Y x = Val(txt.Text) y = Val(txtY.Text) 'SCAMBIO DEI VALORI DELLE E Y temp = x 'CONSERVO IN TEMP, x = y y = temp ' STAMPA DEI NUOVI VALORI DI E Y txt.text = x txty.text = y Problema10: Scrivere un algoritmo che dati in input quattro valori interi A, B, C e D, ruoti il loro valore di uno step indietro in senso antiorario e scriva in output il loro valore modificato. prima rotazione di uno step in senso orario dopo Per la realizzazione di un programma in VB.net seguire i seguenti 5 passi: 1) Tabelle delle variabili di input, di output e di lavoro A B C D Primo valore Secondo valore Terzo valore Quarto Valore TEMP Variabile temporanea di appoggio 1. Inizio 2. Dammi i valori di A,B,C,D 3. Assegna a TEMP il valore di A 4. Assegna ad A il valore di D 5. Assegna ad D il valore di C 6. Assegna ad C il valore di B 7. Assegna ad B il valore di TEMP 8. Stampa i nuovi valori di A,B,C,D 9. Fine 14

15 4) Creazione del form Visualbasic. Net 5) CODIFICA PULSANTE Calcola ' DICHIARAZIONE DELLE VARIABILI Dim A, B, C, D, TEMP As Integer ' INPUT DEI VALORI DI A,B,C,D A = Val (txta.text) B = Val (txtb.text) C = Val (txtc.text) D = Val (txtd.text) ' SCAMBIO DEL VALORE TRA A,B,C,D TEMP = A A = D D = C C = B B = TEMP ' OUTPUT DEI VALORI A,B,C,D MODIFICATI txta.text = A txtb.text = B txtc.text = C txtd.text = D Problema11: Trovare l algoritmo che calcoli la tabellina di un numero da 1 a 1000 e stampi la tabellina scelta a video Per la realizzazione di un programma in VB.net seguire i seguenti 5 passi: 1) Tabelle delle variabili di input, di output e di lavoro NUM R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 Numero da 1 a 1000 di cui si vuole conoscere la tabellina 1 risultato della tabellina 2 risultato della tabellina 3 risultato della tabellina 4 risultato della tabellina 5 risultato della tabellina 6 risultato della tabellina 7 risultato della tabellina 8 risultato della tabellina 9 risultato della tabellina 10 risultato della tabellina 1. Inizio 2. Dammi il numero, NUM 3. Assegna a R1 il valore NUM*1 4. Assegna a R2 il valore NUM*2 5. Assegna a R3 il valore NUM*3 6. Assegna a R4 il valore NUM*4 7. Assegna a R5 il valore NUM*5 8. Assegna a R6 il valore NUM*6 9. Assegna a R7 il valore NUM*7 10. Assegna a R8 il valore NUM*8 11. Assegna a R9 il valore NUM*9 12. Assegna a R10 il valore NUM* Stampa a video in label R1,R2,R3,R4,R5 14. Stampa a video in label R6,R7,R8,R9,R fine 15

16 Inizio NUM R1=NUM*1 R2=NUM*2 R3=NUM*3 R4=NUM*4 R5=NUM*5 R6=NUM*6 R7=NUM*7 R8=NUM*8 R9=NUM*9 R10=NUM*10 R1..R10 Fine CODIFICA PULSANTE CALCOLA Dim numero As Integer num=val(txtnumero.text) Calcolo R1 = num*1 R2 = num*2 R3 = num*3 R4 = num*4 R5 = num*5 R6 = num*6 R7 = num*7 R8 = num*8 R9 = num*9 R10 = num*10 Stampa video lbl1.text=r1 lbl2.text=r2 lbl3.text=r3 lbl4.text=r4 lbl5.text=r5 lbl6.text=r6 lbl7.text=r7 lbl8.text=r8 lbl9.text=r9 lbl10.text=r10 Problem12: Trovare l algoritmo che calcoli una tabella di conversione da euro a 8 valute e stampi le conversioni a video. Per la realizzazione di un programma in VB.net seguire i seguenti 5 passi: 1) Tabelle delle variabili di input, di output e di lavoro Euro Valuta in Euro Numero decimale Lira Franco DollaroUsa DollaroAustr Scellino Yen Corona Sterlina Valuta in Lire Valuta in Franco Valuta in dollaro Americano Valuta in dollaro Austrialano Valuta in scellino Austriaco Valuta in yen Giapponese Valuta in corona Ceka Valuta in sterlina Inglese 1. Inizio 2. leggi la valuta euro 3. assegna a Lira, euro* assegna a Franco, euro* assegna a DollaroUsa, euro* assegna a DollaroAustr, euro* assegna a Scellino, euro* assegna a Yen, euro* assegna a Corona, euro* assegna a Sterlina, euro* stampa a video Lira, Franco, DollaUsa 12. stampa a video DollaroAustr, Scellino 13. stampa a video Yen, Corona, Sterlina 14. fine 16

17 Inizio Euro Lira = Euro* Franco = Euro* DollaroUsa = Euro* DollaroAustr = Euro* Scellino = Euro* Yen = Euro* Corona = Euro* Sterlina = Euro* stampa Fine CODIFICA PULSANTE CONVERTI Dim lira, franco, dollarousa, dollaroa, scellino, yen, corona, sterlina As Decimal 'calcolo euro= Val (txteuro.text) Lira= euro * Franco = euro * DollaroUsa = euro * DollaroAustr = euro * Scellino = euro * Yen = euro * Corona = euro * Sterlina = euro * 'stampa a video Label1.Text = lira Label2.Text = franco Label3.Text = dollarousa Label4.Text = dollaroa Label5.Text = scellino Label6.Text = yen Label17.Text = corona Label18.Text = sterlina Problema13: Trovare un algoritmo che esegua una calcolatrice banale che effettui la somma di 2 numeri e la stampi a video. 1) Tabelle delle variabili di input, di output e di lavoro NUMERO1 NUMERO2 Primo Numero Secondo Numero SOMMA Somma dei 2 numeri Algoritmo per passi Creazione del form Visualbasic. Net 1. Inizio 2. Dammi il primo numero NUMERO1 3. Dammi il secondo numero NUMERO2 4. Somma i due numeri 5. Stampa a video la somma Suggerimenti grafici. I controlli grafici che il form VB deve avere sono: a) una textbox, rinominata txtdisplay, per riprodurre il display della calcolatrice b) 10 button per riprodurre i 10 pulsanti relativi alle 10 cifre (1,2,3,4,5,6,7,8,9 e 0) c) 1 button per l operatore di somma e 1 button per l operatore di uguale. 17

18 In totale dobbiamo programmare 12 pulsanti. Data la complessità, dividiamo il problema in sottoproblemi a), b) e c) a) Tutte le cifre del 1 addendo da visualizzare sul display dovranno apparire una di seguito all altra. Ciò si ottiene programmando i 10 pulsanti. Più precisamente, scriveremo: 1) pulsante: txtdisplay.text= txtdisplay.text+ 1 (che si legge cosi: nel testo della casella di testo txtdisplay metti quello che c è già dentro + il numero 1) 2) pulsante: txtdisplay.text= txtdisplay.text+ 2 (che si legge cosi: nel testo della casella di testo txtdisplay metti quello che c è già dentro + il numero 2) 3) pulsante: txtdisplay.text= txtdisplay.text+ 3 (che si legge cosi: nel testo della casella di testo txtdisplay metti quello che c è già dentro + il numero 3) 4) pulsante: txtdisplay.text= txtdisplay.text+ 4 (che si legge cosi: nel testo della casella di testo txtdisplay metti quello che c è già dentro + il numero 4) 5) pulsante: txtdisplay.text= txtdisplay.text+ 5 (che si legge cosi: nel testo della casella di testo txtdisplay metti quello che c è già dentro + il numero 5) 6) pulsante: txtdisplay.text= txtdisplay.text+ 6 (che si legge cosi: nel testo della casella di testo txtdisplay metti quello che c è già dentro + il numero 6) 7) pulsante: txtdisplay.text= txtdisplay.text+ 7 (che si legge cosi: nel testo della casella di testo txtdisplay metti quello che c è già dentro + il numero 7) 8) pulsante: txtdisplay.text= txtdisplay.text+ 8 (che si legge cosi: nel testo della casella di testo txtdisplay metti quello che c è già dentro + il numero 8) 9) pulsante: txtdisplay.text= txtdisplay.text+ 9 (che si legge cosi: nel testo della casella di testo txtdisplay metti quello che c è già dentro + il numero 9) 0) pulsante: txtdisplay.text= txtdisplay.text+ 0 (che si legge cosi: nel testo della casella di testo txtdisplay metti quello che c è già dentro + il numero 0) Test del sottoproblema a). Se la programmazione dei 10 tasti è andata a buon fine, mandando in esecuzione il form, il primo addendo apparirà (in formato testo) completamente sul display b) Programmare il tasto +. Esso deve: - convertire in formato numero il primo addendo apparso sul display (usando la funzione Val) - conservarlo in memoria in una variabile temporanea NUMERO1, opportunamente dichiarata - poi azzerare il display c) Programmare il tasto =. A tal fine bisogna: - Spostare la dichiarazione della variabile TEMP in testa al form, sotto la scritta public class form, in modo che sia visibile in tutto il form e, quindi, anche in entrambi i pulsanti in cui è usata: + e =. - Assegnare alla variabile temporanea NUMERO2, il secondo addendo visualizzato sul display in formato numero e assegnare alla variabile temporanea SOMMA, la somma tra NUMERO1 e NUMERO2. Infine mostrare sul display il valore di SOMMA CODIFICA DEL PULSANTE 1 CODIFICA DEL PULSANTE 2 txtdisplay.text=txtdisplay.text+"1" txtdisplay.text=txtdisplay.text+"2" CODIFICA DEL PULSANTE 3 CODIFICA DEL PULSANTE 4 txtdisplay.text=txtdisplay.text+"3" txtdisplay.text=txtdisplay.text+"4" CODIFICA DEL PULSANTE 5 CODIFICA DEL PULSANTE 6 txtdisplay.text=txtdisplay.text+"5" txtdisplay.text=txtdisplay.text+"6" 18

19 CODIFICA DEL PULSANTE 7 CODIFICA DEL PULSANTE 8 txtdisplay.text=txtdisplay.text+"7" txtdisplay.text=txtdisplay.text+"8" CODIFICA DEL PULSANTE 9 CODIFICA DEL PULSANTE 0 txtdisplay.text=txtdisplay.text+"9" txtdisplay.text=txtdisplay.text+"0" CODIFICA DEL PULSANTE SOMMA CODIFICA DEL PULSANTE = ' Calcolo formato numerico del 1 addendo NUMERO1 = Val(txtDisplay.Text) ' Azzeramento display txtdisplay.text = "" CODIFICA FORM1 Public Class Form1 ' la variabile NUMERO1 deve essere visibile sia nel bottone somma che in quello uguale allora si dichiara qui Dim NUMERO1 As Integer Dim SOMMA, NUMERO2 As Integer ' Calcolo formato numerico del 2 addendo numero2 NUMERO2 = Val(txtDisplay.Text) ' Somma dei due addendi SOMMA = NUMERO2 + NUMERO1 ' Stampa a video della loro somma txtdisplay.text = SOMMA Problema14: Scrivere un algoritmo che dati tre voti interi A, B e C letti in input, calcoli la media aritmetica e la stampi in output Per la realizzazione di un programma in VB.net seguire i seguenti 5 passi: 1) Tabelle delle variabili di input, di output e di lavoro A B C SOM MED 1 voto 2 voto 3 voto Somma dei tre voti Media dei tre voti Numero decimale 1. Inizio 2. Dammi il primo voto A 3. Dammi il secondo voto B 4. Dammi il terzo voto C 5. Somma i tre voti A, B e C 6. Calcola la media dei tre voti 7. Fine Inizio A,B,C SOM =A+B+C Media =SOM / 3 Media Fine 19

20 4) Creazione del form Visualbasic. Net 5) CODIFICA PULSANTE Calcola ' DICHIARAZIONE DELLE VARIABILI Dim A, B, C, SOM As Integer Dim media As Decimal ' INPUT DEI VALORI DI A, B e C A = Val (txta.text) B = Val (txtb.text) C = Val (txtc.text) ' CALCOLO DELLA MEDIA SOM = A + B + C media = SOM / 3 ' OUTPUT DELLA MEDIA A VIDEO txtmedia.text = media 3-PARTE Definizione di struttura di selezione La struttura di selezione permette di impostare nell algoritmo percorsi o rami diversi in base a condizioni che possono essere o meno verificate. Casi particolari della struttura di selezione 1) Si parla di struttura di selezione ad una via, quando il percorso falso non è presente. Essa, nel metodo del diagramma a blocchi, si rappresenta cosi: Nel diagramma a blocchi Esempio: N1 è positivo? In Visual Basic.Net ' DICHIARAZIONE DELLE VARIABILI Dim N1 As Integer ' INPUT N1=Val(txtN1.text) ' CALCOLO If N1 > 0 Then OUTPUT MsgBox(N1) 2) Si parla di struttura di selezione a 2 vie, quando vi sono entrambi i percorsi: vero e falso. Essa, nel metodo del diagramma a blocchi, si rappresenta cosi: Nel diagramma a blocchi Esempio: Max tra N1 e N2 In Visual Basic.Net ' DICHIARAZIONE DELLE VARIABILI Dim N1, N2, Max As Integer ' INPUT N1=Val(txtN1.text); N2=Val(txtN2.text) ' CALCOLO If N1 > N2 Then Max = N1 Else Max = N2 OUTPUT MsgBox(Max) 20

21 3) Si parla di struttura di selezione a più vie, quando oltre ai percorsi vero e falso ce ne sono altri. Essa, nel metodo del diagramma a blocchi, si rappresenta cosi: (vedi esempio) Esempio: Letto un prezzo di un prodotto e la sua quantità, in base alla quantità richiesta effettua uno tasso di sconto diverso. In Visual Basic.Net Dim prezzo, quantità, tasso As Decimal 'INPUT prezzo = Val(txtPrezzo.Text) quantita = Val(txtQuantita.Text) 'SELEZIONE MULTIPLA IN VB.NET Select Case quantita Case 1 tasso = 10 Case 2 tasso = 20 Case 3 tasso = 30 Case Else tasso = 40 'COMPRENDE I CASI quantita > 3 End Select Problema15: Dati due numeri N1 e N2, determinare il minimo e il massimo e stamparli 1) Tabelle delle variabili di input e output N1 N2 Primo Numero Secondo Numero MIN MA Minimo tra i due numeri Massimo tra due numeri 1. inizio 2. dammi due valori diversi per N1 e per N2 3. confronta N1 con N2 4. se N1 > N2, allora MA=N1 e MIN = N2 5. altrimenti MIN = N1 e MA = N2 6. stampa MIN e MA 7. fine 4) Creazione del form Visualbasic. Net 5) Codifica del corpo dei pulsanti di calcolo Dim N1, N2, Max, Min As Integer ' input N1 = Val(txtN1.Text) N2 = Val(txtN2.Text) ' controllo selezione a 2 vie If N1 > N2 Then Max = N1 Min = N2 Else Max = N2 Min = N1 ' output lbl4.text = Max lbl5.text = Min 21

22 Problema16 : Dati due numeri N1 e N2, ordinarli in ordine crescente e stamparli a video 1) Tabelle delle variabili di input e output N1 N2 Primo Numero Secondo Numero 1. inizio 2. dammi due valori diversi per N1 e per N2 3. confronta N1 con N2 4. se N1 > N2, allora stampa N2 e poi N1 5. altrimenti stampa N1 e poi N2 6. fine 4) Creazione del form Visualbasic. Net 5) Codifica del corpo dei pulsanti di calcolo Dim N1, N2 As Integer ' input N1 = Val(txtN1.Text) N2 = Val(txtN2.Text) ' controllo e stampa a video If N1 < N2 Then lbl3.text = N1 lbl4.text = N2 Else lbl3.text = N2 lbl4.text = N1 Problema17: Dati due numeri N1 e N2, calcolare quello positivo e quello negativo e stamparlo 1) Tabelle delle variabili di input e output N1 N2 Primo Numero Secondo Numero POS NEG Numero Positivo Numero Negativo Numero Intero Numero Intero 1. inizio 2. dammi due valori diversi per N1 e per N2 3. confronta N1 con N2 4. se N1 > 0, allora POS=N1 e stampa POS 5. altrimenti NEG=N1 e stampa NEG 5. se N2 >0, allora POS=N2 e stampa POS 5. altrimenti NEG=N2 e stampa NEG 6. fine 4) Creazione del form Visualbasic. Net 5) Codifica del corpo dei pulsanti di calcolo Dim N1, N2, POS, NEG As Integer N1 = Val(txtN1.text) N2 = Val(txtN2.text) If N1 > 0 Then POS = N1 lbl4.text = POS Else NEG = N1 lbl3.text = NEG If N2 > 0 Then POS = N1 lbl4.text = POS Else NEG = N2 Lbl3.Text = NEG 22

23 Problema18: Dati due numeri N1 e N2, determinare quello pari e quello dispari e stamparli 1) Tabelle delle variabili di input e output N1 N2 Primo Numero Secondo Numero PARI DISP Numero Pari Numero Dispari Numero Intero Numero Intero Q1,Q2 R1,R2 Quozienti dei numeri N1 e N2 Resti delle divisioni per 2 Numero Intero Numero Intero 1. inizio 2. dammi due valori diversi per N1 e per N2 3. Calcola Q1=INT(N1/2) e R1=N1-2*Q1 4. Calcola Q2=INT(N2/2) e R2=N2-2*Q2 5. se R1=0 allora PARI=N1 e stampa PARI 6. altrimenti DISP=N1 e stampa DISP 7. se R2=0 allora PARI=N2 e stampa PARI 8. altrimenti DISP=N2 e stampa DISP 9. fine 4) Creazione del form Visualbasic. Net 5) Codifica del corpo dei pulsanti di calcolo Dim N1, N2, PARI, DISP As Integer Dim Q1, Q2, R1, R2 As Integer N1 = Val(txtN1.text) N2 = Val(txtN2.text) Q1=INT(N1/2); Q2=INT(N2/2) R1=N1-2*Q1; R2=N2-2*Q2 If R1 = 0 Then PARI = N1; lbl4.text = PARI Else DISP = N1; lbl3.text = DISP If R2 = 0 Then PARI = N2; lbl4.text = PARI Else DISP = N2; lbl3.text = DISP Problema19: Dati tre numeri N1,N2 e N3 determinare quello Max e stamparlo a video 1) Tabelle delle variabili di input e output N1 N2 N3 Primo Numero Secondo Numero Terzo Numero 1. inizio 2. dammi i valori N1, N2, N3 3. Assegna a Max, il numero N1 4. Se N2 > Max allora a Max assegna N2 5. Se N3 > Max allora a Max assegna N3 6. stampa Max 7. fine 4) Creazione del form Visualbasic. Net 5) Codifica del corpo del pulsante calcola Dim N1, N2, N3, Max As Integer ' input N1 = Val(txtN1.text) N2 = Val(txtN2.text) N3 = Val(txtN3.text) Max = N1 ' calcolo If N2 > Max Then Max = N2 If N3 > Max Then Max = N3 ' output lbl5.text = Max 23

24 PROBLEMA20: Scrivere un algoritmo che dati 3 numeri N1, N2 e N3 positivi e negativi, calcoli la somma dei numeri positivi e la stampi a video. 1) Tabelle delle variabili di input e output N1 N2 N3 Primo Numero Secondo Numero Terzo Numero SOM Somma dei numeri positivi 1. inizio 2. dammi i valori N1, N2, N3 3. Se N1 > 0 allora a SOM=SOM+N1 4. Se N2 > 0 allora a SOM=SOM+N2 5. Se N3 > 0 allora a SOM=SOM+N3 6. stampa SOM 7. fine 4) Creazione del form Visualbasic. Net 5) Codifica del corpo del pulsante calcola Dim N1, N2, N3, Max As Integer ' input N1 = Val(txtN1.text) N2 = Val(txtN2.text) N3 = Val(txtN3.text) ' calcolo If N1 > 0 Then SOM=SOM+N1 If N2 > 0 Then SOM=SOM+N2 If N3 > 0 Then SOM=SOM+N3 ' output lbl5.text = SOM La variabile conteggio Una variabile conteggio è un contatore che viene inizializzato al valore zero 3 e poi viene incrementato di una unità ogni qual volta si verifica una certa condizione. PROBLEMA21: Scrivere un algoritmo che dati 3 numeri N1, N2 e N3 positivi e negativi, conti quanti sono positivi e li stampi a video. (Suggerimento: usare una variabile conteggio contapos). 1) Tabelle delle variabili di input e output N1 N2 N3 Primo Numero Secondo Numero Terzo Numero CONTPOS Contatore di numeri positivi 3 Per far capire il perché la variabile conteggio viene inizializzata a zero, dire che essa è simile al contatore del contachilometri dell automobile o al contasecondi del cronometro di un orologio: tutti partono da zero. In seguito, però, ci saranno anche variabili a conteggio che saranno inizializzata ad un valore diverso come ad es. la variabile indice ciclo (ad 1, a 2) ecc. 24

25 1. inizio 2. dammi i valori N1, N2, N3 3. Se N1 > 0 allora CONTPOS+=1 4. Se N2 > 0 allora CONTPOS+=1 5. Se N3 > 0 allora CONTPOS+=1 6. stampa CONTPOS 7. fine 4) Creazione del form Visualbasic. Net 5) Codifica del corpo del pulsante calcola Dim N1, N2, N3, Max As Integer ' input N1 = Val(txtN1.text) N2 = Val(txtN2.text) N3 = Val(txtN3.text) ' calcolo If N1 > 0 Then CONTPOS+=1 If N2 > 0 Then CONTPOS+=1 If N3 > 0 Then CONTPOS+=1 ' output lbl5.text = CONTPOS PROBLEMA22: Scrivere un algoritmo che dati 3 numeri N1, N2 e N3 pari e dispari, conti quanti sono pari e li stampi a video. (Suggerimento: usare una variabile conteggio contapari) 1) Tabelle delle variabili di input e output N1 N2 N3 Primo Numero Secondo Numero Terzo Numero CONTPARI Q1, Q2 R1, R2 Contatore dei numeri pari Quozienti Q1 e Q2 Resto R1 e R2 1. inizio 2. dammi i valori N1, N2, N3 3. Q1=N1/2, Q2=N2/2, Q3=N3/2 4. R1=N1-Q1*2, R2=N2-Q2*2, R3=N3-Q3*2, 5. Se R1 = 0 allora CONTPARI+=1 6. Se R2 = 0 allora CONTPARI+=1 7. Se R3 = 0 allora CONTPARI+=1 8. stampa CONTPARI 9. fine 4) Creazione del form Visualbasic. Net 5) Codifica del corpo del pulsante calcola Dim N1, N2, N3, Q1, Q2, Q3 As Integer ' input N1=Val(txtN1.text), Q1=N1/2, R1=N1-Q1*2 N2=Val(txtN2.text), Q2=N2/2, R2=N2-Q2*2 N3=Val(txtN3.text), Q3=N3/2, R3=N3-Q3*2 ' calcolo If R1 = 0 Then CONTPARI+=1 If R2 = 0 Then CONTPARI+=1 If R3 = 0 Then CONTPARI+=1 ' output lbl5.text = CONTPOS 25

26 PROBLEMA23: Scrivere un algoritmo che dati 3 numeri a, b e c li ordini in modo strettamente crescente. (Suggerimento: basta calcolare prima il minimo tra a e b ed tra a e c; poi calcolare il minimo tra b e c; usare una variabile scambio) 1) Tabelle delle variabili di input e output a b c Primo Numero Secondo Numero Terzo Numero T Variabile Temporanea 1. inizio 2. dammi i valori a, b, c 3. se a > b scambiali di posto in modo che il minimo sia al 1) posto 4. se a > c scambiali di posto in modo che il minimo sia al 1) posto 5. se b > c scambiali di posto in modo che il minimo sia al 2) posto 6. stampa a video i nuovi valori di a,b e c 7. fine 4) Creazione del form Visualbasic. Net 5) Codifica del corpo del pulsante calcola Dim t, a, b, c As Integer ' input a = Val(txtA.Text) b = Val(txtB.Text) c = Val(txtC.Text) ' calcolo del minimo tra a,b e c e lo si mette al primo posto If a > b Then t = a a = b b = t If a > c Then t = a a = c c = t ' calcolo del minimo tra b e c e lo si mette al secondo posto If b > c Then t = b b = c c = t ' stampa dei numeir in ordine crescente lbl5.text=a lbl6.text=b lbl7.text=c La funzione InputBox Essa si usa per consentire l input di un valore da tastiera che sarà confermato o meno attraverso i pulsanti: ok o annulla. Tale funzione InputBox ha due parametri separati dalla virgola: il 1) obbligatorio e il 2) facoltativo. La sintassi della funzione InputBox è la seguente: InputBox( testo messaggio utente nel prompt (zona grigia), testo nel title (barra blu) ) Poiché il 2) parametro è facoltativo, se non viene specificato, il testo che appare nel title è quello del nome della form che si sta utilizzando. Esempi: inserendo entrambi i parametri 1) e 2) nella funzione InputBox() (fig.a) Codice VB InputBox("QUALE' IL TUO PIATTO PREFERITO?", "ELENCO DEI PIATTI") (fig. b) Codice VB InputBox("DAMMI UN NUMERO DA 1 A 7", "SCELTA DI UN NUMERO CASUALE") 26

27 I valori inseriti nel rigo bianco: SPAGHETTI ALLA PESCATORA (fig.1) e 7 (fig.2) saranno interpretati come testo, quindi la variabile che li conterrà dovrà essere di tipo string. Ad es.: StringaNome=InputBox( inserisci messaggio utente nel prompt, inserisci nome title ) Se si vuole una variabile numero tipo intero si utilizzerà la funzione Val nel seguente modo: numero=val (InputBox( inserisci messaggio utente nel prompt, inserisci nome title )) La funzione MsgBox Essa si usa per consentire l output attraverso l uso di finestre: di avviso, di errore, di informazione, ecc. e l output di valori numerici generati dal programma. Essa ha tre parametri separati dalla virgola: il 1) obbligatorio e il 2) e il 3) facoltativo. La sintassi della funzione MsgBox è la seguente: MsgBox( messaggio utente nel prompt (zona grigia), numero, testo nel title (barra blu) ) Essa ha come 1) e 3) parametro gli stessi della funzione InputBox. La differenza è solo il 2) parametro che serve a specificare, con un numero il tipo di icona da utilizzare. Esempi d uso. CODICE VBASIC MsgBox("Δ<0 soluzioni non reali", 16, "Avviso") CODICE VBASIC MsgBox("Δ<0 soluzioni non reali", 64, "Avviso") CODICE VB x= - 0,5 MsgBox(x) x= - 0,5 MsgBox("La soluzione è x = " & x) PROBLEMA 24. Sapendo che un numero a è un quadrato perfetto se la sua radice è un numero intero, cioè: trovare l algoritmo che consenta di sapere se il numero a inserito è un quadrato perfetto. Suggerimento: la funzione radice quadrata da usare in VisualBasic.Net è math.sqrt( ) 1) Tabelle delle variabili di input e output a Numero da verificare b qb Parte intera radice quadrata di a Quadrato di b 27

28 1. inizio 2. dammi il valore del numero: a 3. ad b associa la parte intera della radice quadrata di a 4. se b*b = a allora stampa il messaggio a video a è un quadrato perfetto 5. altrimenti stampa il messaggio a video a non è un quadrato perfetto 6. fine 5) Codifica del corpo del pulsante calcola Dim a, b, qb As Integer; a = val(inputbox(txta.text)) b = int(math.sqrt(a)) qb=b*b If qb = a Then lbl1.text= "a è un quadrato perfetto" else lbl1.text= "a non è un quadr. perfetto" 4) Creazione del form Visualbasic. Net PROBLEMA25: Scrivere un algoritmo che dati i 2 coefficienti b e c, di una equazione di 1 grado bx + c = 0, calcoli: il valore della soluzione x, se l'equazione è determinata oppure stampi a video il messaggio eq. impossibile o eq. indeterminata (Suggerimento l eq. bx + c = 0 con b e c 0 è determinata e ha un unica soluzione x = - c / b; l equazione del tipo 0 = c, con c diverso da 0 è impossibile; l equazione 0 = 0 è indeterminata (cioè ha infinite soluzioni)). 1) Tabelle delle variabili di input e output b c Coefficiente della x Coefficiente termine noto x Soluzione dell equazione Numero decimale 1. inizio 2. dammi valori dei coefficienti: b, c 3. se b<> 0 allora stampa x= - c / b 4. se b=0 e c<>0 allora eq. indeterminata 5. se b=0 e c=0 allora eq. impossibile 6. fine 4) Creazione del form Visualbasic. Net 5) Codifica del corpo del pulsante calcola Dim b, c As Integer Dim x As Decimal ' bx+c=0 b = Val(TextBox1.Text) c = Val(TextBox2.Text) If (b<>0) Then x = -c / b lbl.text=x If (b=0 And c<>0) Then MsgBox("b=0 e c<>0 non esistono soluzioni",32, "Attenzione") If (b=0 And c=0) Then 'caso in cui b = 0 e c = 0 MsgBox(" 0=0 infinite soluzioni ", 32, "Attenzione") 28

29 PROBLEMA26: Scrivere un algoritmo che dati i 3 coefficienti a,b e c, tutti e 3 0, di una equazione di 2 grado calcoli, se il delta > 0 i valori delle soluzioni: x 1 e x 2 della equazione: ax 2 +bx+c = 0. Se invece il delta < 0, stampi a video il messaggio soluzioni non reali 1) Tabelle delle variabili di input e output a b c Coefficiente della x 2 Coefficiente della x Termine noto delta x1 x2 Valore = b 2-4*a*c Prima radice Seconda radice 1. inizio 2. dammi valori dei coefficienti: a, b, c 3. calcolo del delta=b*b - 4*a*c 4. se delta < 0 allora mostra a video il messaggio che le soluzioni non sono reali, altrimenti 5. calcola x1 con la formula conosciuta 6. calcola x2 con la formula conosciuta 7. stampa a video i valori di x1 e di x2 8. fine 4) Creazione del form Visualbasic. Net 5) Codifica del corpo del pulsante calcola Dim a, b, c, delta As Integer Dim x1, x2 As Double ' input a = Val(txtA.Text) b = Val(txtB.Text) c = Val(txtC.Text) 'calcolo delta = (b * b) - (4 * a * c) If delta < 0 Then MsgBox("Δ<0 soluzioni non reali", 32, "Attenzione") Else ' Math.Sqrt() è la f. radice quadrata x1 = (-b - Math.Sqrt(delta)) / (2 * a) x2 = (-b + Math.Sqrt(delta)) / (2 * a) ' output lbl6.text = x1 lbl8.text = x2 Problema27: Scrivere un algoritmo che dati il prezzo e la quantità di un prodotto da acquistare, calcoli sull importo totale lordo: lo sconto del 10% se la quantità = 1; lo sconto del 20% se la quantità = 2; lo sconto del 30% se la quantità = 3; e lo sconto del 40% in tutti gli altri casi e stampi a video l importo netto scontato da pagare. Per la realizzazione di un programma in VB.net seguire i seguenti 5 passi: 1) Tabelle delle variabili di input, di output e di lavoro prezzo quantità ilordo inetto sconto tasso Prezzo del prodotto Quantità dello stesso prodotto Importo lordo Importo netto da pagare Sconto da applicare all importo lordo Tasso di sconto in base alla quantità Numero decimale Numero decimale Numero decimale 29

30 1. Inizio 2. Leggi il prezzo del prodotto 3. Leggi la quantità del prodotto 4. Calcola ilordo = prezzo*quantita 5. Se la quantità = 1 allora tasso = Se la quantità = 2 allora tasso = Se la quantità = 3 allora tasso = Negli altri casi, altrimenti tasso = Calcola sconto = ilordo*tasso / Calcola inetto = ilordo - sconto 11. Stampa a video l importo netto 12. Fine 4) Creazione del form Visualbasic. Net 5) CODIFICA PULSANTE Calcola Dim prezzo, ilordo As Decimal Dim inetto, sconto As Decimal Dim quantita, tasso As Byte 'INPUT prezzo = Val(txtPrezzo.Text) quantita = Val(txtQuantita.Text) 'CALCOLO IMPORTO LORDO DEL TOTALE DELLA SPESA ilordo = prezzo * quantita 'SELEZIONE MULTIPLA IN VIASUAL BASIC.NET Select Case quantita Case 1 tasso = 10 Case 2 tasso = 20 Case 3 tasso = 30 'TALE CASO INGLOBA TUTTI GLI ALTRI POSSIBILI CASI, CIOE CON QUANTITA > 3 Case Else tasso = 40 End Select 'CALCOLO SCONTO SULL IMPORTO TOTALE LORDO sconto = ilordo * tasso / 100 inetto = ilordo - sconto 'OUTPUT IMPORTO NETTO txtimporto.text = inetto 30

31 Problema28: Scrivere un algoritmo che dato il prezzo di un cellulare e data la quantità dei pezzi venduti calcoli sull imponibile: lo sconto del 10% se la quantità dei pezzi venduti è fino a 3; lo sconto del 20% se la quantità dei pezzi venduti è fino a 5; lo sconto 4 del 30% se la quantità dei pezzi venduti è fino a 10; lo sconto del 40% se la quantità dei pezzi venduti è > 10. Calcoli, inoltre, il tasso di sconto, l imponibile, l importo netto scontato, l iva del 20%, l importo ivato. Stampare a video: il tasso di sconto, lo sconto, l imponibile, l importo netto scontato, l IVA del 20% e l importo ivato (o lordo o totale) 1) Tabelle delle variabili e costanti costo pezzi Costo di un cellulare N.ro di pezzi dello stesso cellulare Numero decimale iva ilordo inetto ivato sconto tasso Iva da aggiungere all importo netto Importo lordo Importo al netto dello sconto Importo totale ivato Sconto da applicare Tasso di sconto in base ai pezzi Numero decimale Numero decimale Numero decimale Numero decimale Numero decimale 1. Inizio 2. Leggi il costo di un cellulare 3. Leggi il n.ro di pezzi di quel cellulare 4. Calcola imponibile = costo*n.ro dei pezzi 5. Se i pezzi sono fino a 3 allora tasso = Se i pezzi sono fino a 5 allora tasso = Se i pezzi sono fino a 10 allora tasso = Negli altri casi, altrimenti il tasso = Calcola lo sconto = imponibile*tasso / Calcola inetto = imponibile sconto 11. Calcola iva=inetto*20/ Calcola ivato=inetto+iva 11. Stampa a video il tasso, lo sconto, 12. Stampare l importo lordo, l importo netto 13. Stampare l IVA, l importo Ivato 12. Fine 4) Creazione del Form Visualbasic. Net 5) Codifica del corpo del pulsante Calcola Dim pezzi, tasso As Byte Dim costo, imponibile As Decimal Dim inetto, ivato As Decimal Dim iva, sconto As Decimal 'INPUT costo = Val(txtCosto.Text) pezzi = Val(txtPezzi.Text) 'SELEZIONE MULTIPLA IN VBASIC.NET Select Case pezzi Case 1 To 3 tasso = 10 Case 1 To 5 tasso = 20 Case 1 To 10 tasso = 30 Case Else tasso = 40 End Select imponibile = costo * pezzi sconto = imponibile * tasso / 100 inetto = imponibile - sconto iva = inetto * 20 / 100 ivato = inetto + iva 'OUTPUT txttasso.text = tasso txtsconto.text = sconto txtilordo.text = imponibile txtinetto.text = inetto txtiva.text = iva txtivato.text = ivato 4 Attenzione: Nel problema23 si usa la frase quantità uguale ad 3 e nel problema 24 si usa la frase pezzi fino ad 3. Questa diversità determina una differenza nell uso del costrutto Case nel codice di VisualBasic.Net 31

32 Problema29: Scrivere un algoritmo che data una temperatura stampa a video il messaggio: a) molto caldo se la temperatura è > 32; b) caldo se la temperatura è > 25; c) mite se la temperatura è > 16; d) fresco se la temperatura è > 10; e) freddo se la temperatura è > 0; f) molto freddo se la temperatura è altrimenti. 1) Tabelle delle variabili e costanti temp Temperatura scelta Numero decimale 1. Inizio 2. leggi la temperatura temp 3. Se la temp > 32 allora molto caldo 4. Se la temp > 25 allora caldo 5. Se la temp > 16 allora mite 6. Se la temp > 10 allora fresco 7. Se la temp > 0 allora freddo 8. Altrimenti il messaggio molto freddo 9. Fine 4) Creazione del Form Visual Basic. Net 5) Codifica del corpo del pulsante Calcola Dim temp As Integer temp = Val(txtTemperatura.Text) Select Case temp Case Is > 25 lblmessaggio.text = "Caldo" Case Is > 16 lblmessaggio.text = "Mite" Case Is > 10 lblmessaggio.text = "Fresco" Case Is > 0 lblmessaggio.text = "Freddo" Case Else lblmessaggio.text = "Molto Freddo" End Select IL CONTROLLO COMBOBO Esso è un elenco a discesa di elementi. Esso si usa per selezionare un valore, da un elenco di valori predefiniti, detti items. Per distinguere una combobox da un altro controllo si usa il nome sintetico: cmb. Esempi sono: cmbtemperatute, cmbquantità, ecc I METODI 5 ADD( ) E REMOVE ( ) DI COMBOBO. Il metodo add() si usa per aggiungere un elemento alla combobox e il metodo remove per eliminare un elemento dalla combobox Esempio1. Sia cmb1 un combobox, allora la scritta cmb1.items.add( napoli ) si legge metodo add( ) dell oggetto combobox cmb1. Esso aggiunge l elemento napoli alla combobox cmb1. Esempio2. La scritta cmb1.items.add(txt1.text), aggiunge l elemento che si trova nella casella di testo txt1 alla combobox cmb1 Esempio3. La scritta cmb1.items.remove( caserta ) si legge metodo remove( ) dell oggetto combobox cmb1. Esso rimuove l item (cioè l elemento) caserta dalla combobox cmb1. L EVENTO 6 SELECTED INDE CHANCED DI COMBOBO La frase selected index chanced significa che è l indice selezionato è cambiato. Poiché ogni elemento dell elenco ha un indice (cioè un numero) che ne individua la posizione allora quando l utente seleziona, nell elenco, un elemento diverso da quello di default si dice che si è verificato l evento che l indice selezionato è cambiato 5 Essi sono sottoprogrammi predefiniti del linguaggio VB già scritti e disponibili per il programmatore e sono associati ad un particolare oggetto. Per riferirsi ad un metodo noi scriviamo: nomeoggetto.metodo( ). 6 L evento è l azione provocata dall utente sui form e controlli. Tale azione viene programmata in VB dal programmatore. 32

33 LA PROPRIETA SELECTED-ITEM DI COMBOBO Essa individua l elemento selezionato della combobox. ESERCIZI DI LABORATORIO SULL USO DEL CONTROLLO COMBOBO ESERCIZIO 1: Inserire in una form una combobox, di nome cmb1, contenente un elenco di città creato usando il percorso visuale e automatico seguente: - selezionato il controllo combobox dal menù contestuale del mouse Modifica elementi ESERCIZIO 2: Inserire in una form una combobox, di nome cmbcolore, contenente un elenco di colori a piacere. Inserire nella form, inoltre, una casella di testo, di nome txtcolore ed un pulsante, di nome btninserisci che dovrà inserire nella combobox, tutti i nomi dei colori che l utente scriverà casella di testo, txtcolore. (Suggerimento: Il form sarà come la figura seguente) Private Sub btninseriscicolore_click Dim colore As String colore = txtcolore.text ' aggiungi come elemento della cmb2. il valore della variabile colore cmbcolore.items.add(colore) txtcolore.text = "" End Sub ESERCIZIO 3: Inserire in una form, una combobox, di nome cmbnumeri, contenente un elenco di numeri da 1 a 5. Inserire nella form, inoltre, una casella di testo, di nome txtnumero ed un pulsante, di nome btninserisci che dovrà inserire nella combobox, tutti i numeri da 1 a 5 che l utente scriverà casella di testo, txtnumero. Successivamente creare un pulsante btnelimina che dovrà eliminare dalla combobox i numeri pari 2 e 4, in modo che i numeri rimanenti nell elenco siano sono i dispari: 1, 3, 5. (Suggerimento: Il form sarà come la figura seguente:) btninseriscinumero_click Dim num As Decimal num = Val(txtNum.Text) cmbnum.items.add(num) ' metodo add elemento txtnum.text = "" btneliminanumero_click Dim num As Decimal num = Val(txtNum.Text) cmbnum.items.remove(num) metodo remove elemento ESERCIZIO 4: Inserire in una form, una combox, di nome cmbsquadrecalcio, contenente un elenco di squadre a piacere creato utilizzando il metodo usato nell ESERCIZIO 1. Inserire poi nella form una casella di testo, di nome txtelementoselezionato, contenente l elemento (item) selezionato 33

34 nella combobox. (Suggerimento: Il form sarà come la figura seguente e bisogna programmare per il combobox l evento SelectedIndexChanged e non l evento click:) Private Sub cmbsquadrecalcio_selectedindexchanged() ' evento SelectedIndexChanged di cmb Dim elemento As String elemento=cmbsquadrecalcio.selecteditem ' elemento selezionato dell'elenco txtelementoselezionato.text = elemento End Sub ESERCIZIO5: A partire dalla form dell esercizio 4, inserire un nuovo pulsante di nome, btncancellaitem, che cancella dalla combobox, cmbsquadrecalcio, l elemento dell elenco selezionato dall utente. (Suggerimento: se l utente selezionasse la squadra INTER e si premesse sul pulsante btncancellaitem, dall elenco dovrà sparire la parola INTER, come mostra la figura) Private Sub btncancella_click Dim elemento As String ' proprietà SelectedItem elemento=cmbsquadrecalcio.selecteditem ' metodo Remove() cmbsquadrecalcio.items.remove(elemento) End Sub Problema30 Scrivere un algoritmo che creata una combobox contenente i numeri da 1 a 10, in base all elemento scelto dall utente nella combobox e alla pressione del tasto calcola visualizzi in 10 label la tabellina del numero richiesto. 1) Tabelle delle variabili e costanti num numero della tabellina 1. Inizio 2. Scegli elemento dalla combobox 3. Assegna a num, l elemento scelto 4. Fai le seguenti assegnazioni R1=1 * num R2=2 * num R3 = 3 * num R4=4 * num R5=5 * num R6 = 6 * num R7=7 * num R8=8 * num R9 = 9 * num R10 = 10 * num 13. Stampa in label R1,R2,R3,R4,R5 15. Fine 4) Creazione del Form Visualbasic. Net 5) Codifica del corpo del pulsante Calcola Dim num As Integer Dim R1, R2, R3, R4, R5, R6, R7, R8, R9, R10 As Integer ' input num = cmbnumero.selecteditem 'calcolo R1=1 * num R2=2 * num R3 = 3 * num R4=4 * num R5=5 * num R6 = 6 * num R7=7 * num R8=8 * num R9 = 9 * num R10 = 10 * num ' output lbl1.text=r1 lbl2.text=r2 lbl3.text=r3 lbl4.text=r4 lbl5.text=r5 lbl6.text=r6 lbl7.text=r7 lbl8.text=r8 lbl9.text=r9 lbl10.text = R10 Problema 31. Scrivere un algoritmo che creata una combobox di 30 parole scritte in italiano", in base alla parola scelta la traduca in dialetto napoletano, visualizzando la parola tradotta in controllo a vostra scelta: casella di testo o label. (Suggerimento: utilizzare la struttura di selezione Select Case per gestire tutti e 30 i casi nella combobox) 34

35 1) Tabelle delle variabili e costanti parola E il termine selezionato da tradurre stringa 1. Inizio 2. assegna a parola, il termine selezionato 3. se parola= ragazzo allora scrivi guaglione 4. se parola= fidanzata allora scrivi guagliona 5. ecc 6. Fine 4) Creazione del Form Visualbasic. Net 5) Codifica del Combobox cmbita Dim parola As String parola = cmbita.selecteditem Select Case parola Case "ragazzo" txtnap.text = "guaglione" Case "fidanzata" txtnap.text = "guagliona" Case "padre" txtnap.text = "pat" Case "madre" txtnap.text = "mam" Case "sorella" txtnap.text = "sor" End Select Problema 32. Scrivere un algoritmo che permette di realizzare un semplice Browser per navigare usando il controllo web browser della finestra degli strumenti e i suoi metodi: webrowser.gohome( ), webrowser.goback( ), webrowser.goforward( ) e webrowser.navigate( ). Assegnare ai pulsanti: >> (avanti), << (indietro) e home (pagina iniziale) del form uno dei primi 3 metodi suddetti e alla casella di testo, txtindirizzo seguente, il metodo webrowser.navigate( ) 1) Tabelle delle variabili e costanti indirizzo E l indirizzo del browser stringa 1. Inizio 2. assegna a indirizzo, l indirizzo scritto nella textbox 3. se l indirizzo è corretto o c è linea carica la pagina web 4. Fine 4) Creazione del Form Visualbasic. Net 5) Codifica del corpo del bottone Vai Private Sub btnvai_click() ' dichiarazione variabile Dim indirizzo As String ' input indirizzo = txtindirizzo.text ' metodo webrowser.navigate( ) webrowser.navigate(indirizzo) End Sub 35

36 Parte 4 - LE STRUTTURE ITERATIVE: FOR, WHILE E DO LOOP UNTIL Essa, in generale, consente di ripetere l esecuzione di una porzione di algoritmo più volte, finché è verificata una certa condizione. Essa può essere di tre tipi: - a iterazione prestabilita o ciclo a contatore - a iterazione a controllo di testa o ciclo a condizione iniziale. - a iterazione a controllori coda o ciclo a condizione finale. La struttura a iterazione prestabilita (FOR - TO - NET) Essa, nel metodo del diagramma a blocchi, si rappresenta cosi: Essa utilizza: 1) un nuovo blocco, l esagono, che al suo interno contiene: una variabile conteggio come ad es. i, j, k 2) un valore finale, VF, scelto dal programmatore, che stabilisce a priori il numero massimo di iterazioni, ad es. 10, 100 3) blocco istruzioni che rappresenta la porzione di algoritmo da iterare, cioè il corpo dell algoritmo 4) un piccolo rombo che sottintende ad ogni iterazione l incremento della variabile conteggio ad es. i i + 1; j j + 1 La ripetizione del blocco istruzioni avviene finché la variabile conteggio assume un valore < = al valore finale VF prestabilito, mentre si arresta quando la variabile conteggio assume un valore > del valore finale VF prestabilito. Quando si usa tale struttura a iterazione prestabilita? Essa si usa quando nell algoritmo ci sono una o più istruzioni che si ripetono un numero di volte prestabilito. PROBLEMA 33: Trovare l algoritmo che letti 10 numeri interi N1, N100, calcoli la loro somma e la stampi a video. (Suggerimento: usare il controllo inputbox per leggere i 100 numeri) Prima di applicare il metodo dei 5 passi, cerchiamo di capire meglio il problema: Ricordiamo che l algoritmo che risolveva il problema della somma di due numeri x e y, richiedeva 3 variabili: di cui 2 per i numeri N1 e N2 e una per la variabile som. Qui, invece, il nostro problema è di fare la somma di 100 numeri, quindi dovremmo usare 101 variabili: di cui 100 per i numeri N1,., N100 e una per la variabile somma SOM. Inoltre, dovremmo leggere la prima variabile N1 e poi sommarla alla variabile somma SOM, leggere la seconda variabile N2 e poi sommarla alla variabile somma SOM, leggere la 100 variabile N100 e poi sommarla alla variabile somma SOM. Tale soluzione fa prevedere un algoritmo lunghissimo. Come possiamo ovviare a questo problema? 7 7 Nota.: per far rendere conto gli allievi che effettivamente tale soluzione è lunghissima conviene disegnare alla lavagna a sx l algoritmo senza ciclo (fermandosi alla lettura e alla somma parziale delle prime due variabili n1 e n2, scrivendo i puntini, e poi scrivendo la lettura e la somma parziale della variabile n100) e a dx l algoritmo con il ciclo 36

37 Osservazione: In tale soluzione si ripetono 100 volte la coppia di istruzioni: lettura della variabile Ni e somma del valore della variabile Ni al valore della variabile somma SOM. Allora per quanto suddetto, possiamo usare una struttura a iterazione prestabilita per la coppia di istruzioni suddette, 1) Tabelle delle variabili di input e output N Numero generico da sommare SOM Somma totale dei 10 numeri E una stringa di caratteri Stringa 1. inizio 2. inizializza som a 0 3. Per I che va da 1 a leggi il numero N 5. assegna a som, la quantità som + N 6. vai al prossimo I e torna al passo 3 7. scrivi a video il valore di som 8. fine 4) Creazione del form Visualbasic. Net 5) Codifica del corpo dei pulsanti di calcolo Private Sub btnsomma_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnsomma.click Dim i, numero, som As Integer Dim x As String For i = 1 To 10 x = "inserisci " & i & ") numero" ' le 2 & servono per concatenare il 1 messaggio:"inserisci " al valore corrente di i, al 2 messaggio ") numero" numero = Val(InputBox(x)) som = som + numero lblrisultato.text = som End Sub 6) L esecuzione del programma fa apparire a video 10 finestre per l input box del tipo: 37

38 PROBLEMA 34: Trovare l algoritmo che letti M numeri interi, calcoli la loro somma e la stampi a video. (Suggerimento: usare il controllo textbox per leggere la dimensione N dei numeri e tante inputbox per leggere gli N numeri) 1) Tabelle delle variabili di input e output M N Dimensione dei numeri Numero generico da sommare SOM Somma totale dei 10 numeri I E l indice del ciclo E una stringa di caratteri Stringa 1. inizio 2. inizializza som a 0 3. leggi M 4. per I che va da 1 a M 5. leggi il numero N 6. assegna a som, la quantità som+n 7. vai al prossimo I e torna al passo 4 8. scrivi a video il valore di som 9. fine 4) Creazione del form Visualbasic. Net 5) Codifica del corpo dei pulsanti di calcolo Private Sub btnsomma_click() Dim i, n, m, som As Integer Dim x As String m = Val(txtMnumeri.Text) For i = 1 To m x = "inserisci " & i & ") numero" ' le 2 & servono per concatenare il 1 messaggio: "inserisci ", al valore corrente di i, al 2 messaggio ") numero" n = Val(InputBox(x)) som = som + n lblrisultato.text = som End Sub PROBLEMA35: Trovare l algoritmo che permette di calcolare il maggiore tra 10 numeri interi letti in input e di scriverlo in output 8 Prima di applicare il metodo dei 5 passi, cerchiamo di capire meglio il problema: Tale problema è semplicemente la generalizzazione dello stesso problema visto precedentemente al caso di tre numeri interi, che richiedeva al massimo 2 confronti nel caso peggiore, se si utilizzava la variabile maggiore inizializzata al primo numero letto. 8 Nota: successivamente questo algoritmo si può complicare ricercando oltre al maggiore anche il minore e successivamente generalizzarlo alla ricerca del maggiore e minore in una sequenza di M numeri interi letti in input. 38

39 1) Tabelle delle variabili di input e output N E il numero letto MA E il maggiore dei 10 numeri I E l indice del ciclo E una stringa di caratteri Stringa 1. inizio 2. leggi il primo numero e assegnalo a max 3. per I che va da 2 a leggi il I) numero 5. se il numero del passo 4 > max allora a max, assegna il nuovo numero, fine se 6. vai al prossimo I e torna al passo 3 7. scrivi a video max 8. fine 5) Codifica del corpo dei pulsanti di calcolo Dim i, numero, max As Integer Dim x As String x="inserisci il 1) numero" numero = Val(InputBox(x)) max = numero For i = 2 To 10 x = "inserisci " & i & ") numero" ' le 2 & servono per concatenare "inserisci " 'al valore corrente di i, e al 2 msg ") numero" numero = Val(InputBox(x)) If (numero > max) Then max = numero txtmax.text = max 4) Creazione del form Visualbasic. Net PROBLEMA 36 Trovare l algoritmo che letti M numeri interi, calcoli il maggiore degli M numeri e lo stampi a video. 1) Tabelle delle variabili di input e output M N E la dimensione dei numeri. E il numero letto MA E il maggiore degli N numeri letti I E l indice del ciclo E una stringa di caratteri Stringa 1. inizio 2. leggi la dimensione M 3. leggi il primo numero e assegnalo a MA 39

40 4. per I che va da 2 a M 5. leggi il I) numero 6. se il numero del passo 4 > MA allora a MA, assegna il nuovo numero, fine se 7. vai al prossimo I e torna al passo 4 8. scrivi a video MA 9. fine 4) Creazione del form Visualbasic 5) Codifica del corpo dei pulsanti di calcolo Non effettuata poiché è la stessa del problema 3 precedente dove al posto di 10 c è M PROBLEMA 37: Trovare l algoritmo che letti i primi M numeri naturali, calcoli e stampi a video il messaggio è positivo se il numero letto è positivo e il messaggio è negativo se il numero letto è negativo. (Suggerimento: usare la funzione Inputbox( ) per leggere gli M numeri e la funzione Msgbox( ) per stampare gli M messaggi a video) 1) Tabelle delle variabili di input e output M N E la dimensione dei numeri. E il numero letto I E l indice del ciclo E una stringa di caratteri Stringa 1. inizio 2. leggi la dimensione M 3. per I che va da 1 a M 4. leggi il I) numero, N 5. se il numero N del passo 4 > 0 allora stampa il messaggio è positivo altrimenti stampa il messaggio è negativo, fine se 7. vai al prossimo I e torna al passo 3 8. fine 4) Creazione del form Visualbasic 5) Codifica del corpo del pulsante btncalcola_click Dim m, n, i As Integer Dim x As String m = Val(txtM.Text) For i = 1 To m x = "inserisci il " & i & ") numero" n = Val(InputBox(x)) If (n > 0) Then MsgBox("numero è positivo") Else MsgBox("numero è negativo") ' incremento indice i del ciclo 6) L esecuzione del programma fa apparire a video N coppie di finestre del tipo seguente: 40

41 PROBLEMA 37: Trovare l algoritmo che letti M numeri naturali, calcoli e stampi a video il messaggio è pari se il numero letto è pari e il messaggio è dispari se il numero letto è dispari. (Suggerimento: usare la funzione Inputbox( ) per leggere gli M numeri e la funzione Msgbox( ) per stampare gli M messaggi a video; la funzione mod per calcolare il resto) 1) Tabelle delle variabili di input e output M N E la dimensione dei numeri. E il numero letto I E l indice del ciclo E una stringa di caratteri Stringa 1. inizio 2. leggi la dimensione M 3. per I che va da 1 a M 4. leggi il I) numero N 5. se il numero N MOD 2 = 0 allora stampa il messaggio è pari, altrimenti stampa il messaggio è dispari, fine se 7. vai al prossimo I del passo 3 8. fine 4) Creazione del form Visualbasic 5) Codifica del corpo del pulsante btncalcola_click Dim m, n, i As Integer Dim x As String m = Val(txtM.Text) For i = 1 To m x = "inserisci il " & i & ") numero" n = Val(InputBox(x)) If (n Mod 2 = 0) Then MsgBox("numero è pari") Else MsgBox("numero è dispari") 6) L esecuzione del programma fa apparire a video N coppie di finestre del tipo seguente: 41

42 PROBLEMA 38: Trovare l algoritmo che letti N numeri naturali, calcoli la media tra il 1 elemento, l ultimo elemento e l elemento centrale e la stampi a video. 1) Tabelle delle variabili di input e output N Num E la dimensione dei numeri E il numero letto I Som Media R Q Meta E l indice del ciclo Somma dei 3 elementi E la media dei 3 elementi E il resto della divisione E il quoziente della divisione Posizione dell elemento centrale Numero Intero Numero Decimale Numero Intero Numero Intero Numero Intero 1. inizio 2. leggi la dimensione N 3. Assegna a Q, N / 2 4. Assegna a R, N 2 * Q 5. Se R = 0 allora Meta = N / 2 altrimenti Meta = N / 2 +1, fine se 6. Per I che va da 1 a N 7. Leggi Numero, Num 8. Se I=1 allora assegna a Som, Som+Num 9. Se I=Meta allora assegna a Som, Som+Num 10. Se I=N allora assegna a Som, Som+Num 11. Incrementa I, di 1 e torna al passo Assegna a Media, Som / Scrivi Media 14. fine 4) Creazione del form Visualbasic (Test effettuato con i seguenti numeri: 1, 2, 3, 4, 5. In tal caso infatti la somma=1+3+5=9 e quindi la media è 9 / 3 = 3 ) 5) Codifica del corpo del pulsante btncalcolamedia_click Dim N, NUM, Q, R As Integer Dim Meta, SOM, I As Integer Dim MEDIA As Decimal N = Val(txtN.Text) Q = N / 2, R = N - 2 * Q If R = 0 Then Meta = Q Else Meta = Q + 1 For I = 1 To N NUM=InputBox("Numero? ) If (I = 1) Then SOM = SOM + NUM If (I = Meta) Then SOM = SOM + NUM If (I = N) Then SOM = SOM + NUM MEDIA = SOM / 3 txtmedia.text = MEDIA 42

43 PROBLEMA 39: Trovare l algoritmo che letti N numeri naturali, calcoli la media tra gli elementi di indici pari e la stampi a video. 1) Tabelle delle variabili di input e output N Num E la dimensione dei numeri E il numero letto I Som Media Cont E l indice del ciclo Somma degli elementi di indici I pari E la media degli elementi di indici pari Contatore di elementi di indici pari Numero Intero Numero Decimale Numero Intero 1. Inizio 2. Leggi N 3. Assegna a Cont, N / 2 4. Per I che va da 1 a N 5. Leggi Numero, Num 6. Q = I / 2 7. R = I 2 * Q 8. Se R=0 allora assegna a Som, Som+Num 9. Incrementa I, di 1 e torna al passo Assegna a Media, Som / Cont 11. Scrivi Media 12. Fine 4) Creazione del form Visualbasic (Test effettuato con i seguenti numeri: 1, 2, 3, 4, 5, 6, 7. In tal caso infatti la somma = = 12 e quindi la media è 12 / 3 = 4 ) 5) Codifica del corpo del pulsante btncalcolamedia_click Dim N, NUM, Q, R, I As Integer Dim Som, Cont As Integer Dim MEDIA As Decimal N = Val(txtN.Text) SOM = 0 Cont = N/2 su N numeri letti i pari sono N/2 For I = 1 To N NUM = InputBox("NUMERO?") Q = I / 2 R = I - (2 * Q) If R = 0 Then SOM = SOM + NUM MEDIA = (SOM / ContNumIndPari) txtmedia.text = MEDIA La struttura a iterazione a controllo di testa (WHLE - END WHILE) Essa, nel metodo del diagramma a blocchi, si rappresenta cosi: 43

44 Essa permette di iterare una porzione di algoritmo finché è vera una certa condizione stabilita non a priori. Essa si dice a controllo di testa poiché la condizione è posta all inizio ovvero prima del blocco di istruzioni dell algoritmo da iterare. Quando si usa tale struttura a iterazione a controllo di testa? Essa si usa quando non si sa a priori quante volte si deve iterare il corpo dell algoritmo e la porzione di algoritmo da iterare potrebbe essere eseguita anche nessuna volta. PROBLEMA 40: Trovare un algoritmo che letto un numero NUM, controlli che esso sia non negativo cioè che è vera la condizione di ciclo NUM > = 0. Nel caso la condizione di ciclo è vera proceda a leggere altri numeri interi. Nel caso la condizione di ciclo è falsa, esca dal programma stampando il messaggio Lettura terminata. (Suggerimento: Il programma termina quando l utente legge un numero NUM < 0) 1) Tabelle delle variabili di input e output NUM E il numero da leggere. E una stringa di caratteri Stringa 1. inizio 2. leggi il primo numero, NUM 3. finché il numero letto NUM è > = 0 esegui 4. leggi un numero 5. vai al passo 3 6. stampa il messaggio lettura terminata 7. fine 4) Creazione del form Visualbasic 5) Codifica del pulsante btncalcola_click Test al computer Private Sub btnlegginumeri_click() Dim num As Integer Const x As String x = "inserisci numero" ' lettura del primo numero num = Val(InputBox(x)) 'inizio ciclo while While (num > = 0) ' lettura dei rimanenti numeri num = Val(InputBox(x)) End While 'fine ciclo while se la condizione è falsa MsgBox("Lettura terminata") End Sub PROBLEMA 41: Trovare un algoritmo che letto un numero NUM, controlli che esso sia non negativo, cioè che è vera la condizione di ciclo NUM > = 0. Nel caso la condizione di ciclo è vera, se il numero è anche = 0 lo conti e poi continui a leggere altri numeri. Nel caso la 44

45 condizione di ciclo è falsa, esca dal programma stampando a video la quantità dei numeri 0 inseriti (Suggerimento: Il programma termina quando NUM < 0) 1) Tabelle delle variabili di input e output NUM E il numero da leggere. CONT E il contatore dei numeri = 0 E una stringa di caratteri Stringa 1. inizio 2. assegna a CONT, 0 3. leggi il primo numero, NUM 4. finché il numero NUM letto è > = 0 esegui 5. se NUM=0 allora incrementa CONT, fine se 6. leggi un altro numero, NUM 7. torna al passo 4 8. stampa il messaggio lettura terminata 9. fine 4) Creazione del form Visualbasic Test al Computer 5) Codifica del pulsante btncalcola_click Private Sub btncontazero_click ( ) Dim num, cont As Integer Dim x As String ' lettura del primo numero cont = 0 x = Hai inserito " & cont & " numeri = 0") num = Val(InputBox( Num? )) 'inizio ciclo while While (num > = 0) If (num = 0) Then cont = cont + 1 ' lettura dei rimanenti numeri num = Val(InputBox( Num? )) End While 'fine ciclo while se la condizione è falsa MsgBox() End Sub PROBLEMA1 42: Trovare un algoritmo che letto un numero NUM, controlli che esso sia non negativo, cioè che è vera la condizione di ciclo NUM > = 0. Nel caso la condizione di ciclo è vera, se il numero è anche positivo lo sommi e lo conti e continui a leggere altri numeri. Nel caso la condizione di ciclo è falsa, esca dal programma stampando a video la media dei numeri positivi inseriti. (Suggerimenti: utilizzare una variabile contatore cont che conti i numeri non negativi letti ed altre due variabili somma e media, il programma termina quando NUM < 0) 45

46 1) Tabelle delle variabili di input e output NUM E il numero da leggere. CONT SOM MEDIA E il contatore solo dei numeri > 0 E la somma solo dei numeri > 0 E la media solo dei numeri > 0 E una stringa di caratteri Decimal Stringa 1. inizio 2. assegna a CONT e a SOM, 0 3. leggi il primo numero, NUM 4. finché il numero letto è > = 0 esegui 5. se NUM è anche > 0 allora assegna a SOM, SOM * NUM e incrementa di 1, CONT, fine se 6. leggi un altro numero, NUM 7. torna al passo 4 8. assegna a MEDIA, SOM / CONT 9. stampa MEDIA 10. fine 4) Creazione del form Visualbasic 5) Codifica del pulsante btncalcola_click Test al Computer Private Sub btnmedia_click( ) Dim num, cont, som As Integer Dim x As String Dim media As Decimal cont = 0 som = 0 Test al Computer x = "inserisci numero" ' lettura del primo numero num = Val(InputBox(x)) 'inizio ciclo while While (num > = 0) If (num > 0) then som = som + num cont = cont + 1 endif ' lettura dei rimanenti numeri num = Val(InputBox(x)) End While 'fine ciclo while se la condizione è falsa media = som / cont MsgBox("La media è " & media) End Sub PROBLEMA 43: Trovare un algoritmo che letta una parola PAR, controlli che sia diversa da. Nel caso la condizione di ciclo è vera, calcoli la sua lunghezza e la sommi e poi continui a leggere altre parole. Nel caso la condizione di ciclo è falsa, esca dal programma stampando a 46

47 video il messaggio la somma delle lunghezze delle parole inserite. (Suggerimenti: utilizzare la funzione PAR.lenght per determinare la lunghezza di PAR, una variabile somma, il programma termina quando la PAR inserita è nulla) 1) Tabelle delle variabili di input e output PAR Parola da leggere. Stringa SOM Somma delle lunghezze delle parole L Lunghezza di una parola E una stringa di caratteri Stringa 1. inizio 2 leggi parola, PAR 3. finché la parola, PAR è non nulla esegui 4. assegna ad L, la lunghezza di PAR 5. assegna a SOM, SOM + L 6. leggi un altra parola, PAR 7. torna al passo 3 8. stampa SOM 9. fine Test al Computer 4) Creazione del form Visualbasic Private Sub btnsommalungh_click( ) Dim PAR, x As String Dim som, l As Integer x = "inserisci la parola" PAR = InputBox(x) While PAR <> "" l = PAR.Length som = som + l PAR = InputBox(x) End While MsgBox("somma lunghezze è " & som) End Sub PROBLEMA 44: Una parola si dice che è palindroma se è leggibile nello stesso modo da destra a sinistra e viceversa come ad es. anna, osso, salas, ecc Trovare un algoritmo che letta una parola PAR, controlli se essa sia palindroma. Per controllare ciò utilizzare una variabile booleana, BIT inizializzata al valore TRUE. Se alla fine del ciclo BIT sarà ancora = TRUE allora si stampi a video il messaggio: la parola & PAR & è palindroma, altrimenti se BIT = FALSE, allora si stampi il messaggio la parola & PAR & non è palindroma. (Suggerimenti: utilizzare la funzione PAR.lenght, il programma termina non appena esso si rende conto che 2 caratteri simmetrici della PAR analizzata sono diversi assegnando a BIT il valore FALSE; la condizione del ciclo while deve essere doppia e deve usare l operatore logico di congiunzione AND. Tale condizione doppia sarà vera finchè entrambe sono vere). 47

48 1) Tabelle delle variabili di input e output PAR Parola da leggere. Stringa I, J Indici dei caratteri di PAR L BIT Lunghezza di una parola Variabile booleana, true e false Stringa 1. inizio 2 leggi parola, PAR; assegna ad I, il valore 0 3. finché la parola è non nulla esegui 4. assegna a L, la lunghezza di PAR e BIT, true 5. finchè I < L/2 and BIT = true esegui 6. assegna a J, L - I 1 7. se PAR(I) < > PAR (J) allora BIT = false 6. incrementa l indice I, di 1 e vai al passo 5 9. se BIT = true allora stampa il messaggio: la parola è palindroma altrimenti stampa il messaggio: la parola non è palindroma 10. fine 3) Diagramma a blocchi 4) Creazione del form Visualbasic Test al Computer 5) Codifica del pulsante btncalcola_click Private Sub btnpalindroma_click( ) Dim PAR As String Dim l As Integer ' lungh = lunghezza della parola letta PAR Dim i, j As Integer ' i e j sono gli indici dei caratteri di PAR Dim bit As Boolean ' bit è una variabile booleana = true o false PAR = InputBox("inserisci la parola") l = PAR.Length bit = True bit è true finchè i caratteri confrontati sono = i = 0 ' i=0 poichè il 1 carattere della parola PAR ha indice = 0 While (i < l/2 And bit = True) 'entrambe vere? j = l - i 1 ' j contiene la posizione del carattere di PAR simmetrico a i If (PAR(i) <> PAR(j)) Then bit è false quando i caratteri simmetrici sono diversi bit = False i = i + 1 End While If (bit = True) Then MsgBox("la parola " & PAR & " è palindroma") Else MsgBox("la parola " & PAR & " non è palindroma") End Sub 48

49 OSSERVAZIONE: Del problema13 produrre su carta il seguente test al diagramma a blocchi disegnato. Test dell algoritmo. Usare PAR = anna in modo da avere i seguenti valori PAR Lungh bit i j PAR(i) PAR (j) anna 4 true 0 3 a a 1 2 n n 2 La struttura a iterazione a controllo di coda (DO - LOOP - UNTIL) Essa, nel metodo del diagramma a blocchi, si rappresenta cosi: Essa permette di iterare una porzione di algoritmo finché è falsa una certa condizione stabilita non a priori. Essa si dice a controllo di coda poiché la condizione è posta alla fine ovvero dopo il blocco di istruzioni dell algoritmo da iterare. Quando si usa tale struttura a iterazione a controllo di coda? Essa si usa quando non si sa a priori quante volte si deve iterare il corpo dell algoritmo e la porzione di algoritmo da iterare potrebbe essere eseguita almeno una volta. RIPETIAMO I PROBLEMI 7,8,9,10, 11 CON IL CICLO DO LOOP UNTIL PER FAR NOTARE LE DIFFERENZE TRA ESSI. PROBLEMA 45: Trovare un algoritmo che letto un numero NUM, controlli che esso sia non negativo cioè che è falsa la condizione di ciclo NUM < 0. Nel caso la condizione di ciclo è falsa proceda a leggere altri numeri interi. Nel caso la condizione di ciclo è vera esca dal programma stampando il messaggio Lettura terminata. (Suggerimento: Il programma termina quando l utente legge un numero NUM < 0, nella label descrizione modificare la proprietà autosize a false) 1) Tabelle delle variabili di input e output NUM E il numero da leggere. E una stringa di caratteri Stringa 1. inizio 2. Fai le seguenti istruzioni 3. leggi il numero, NUM 4. finché NUM < 0 è falsa torna al passo 2 5. stampa il messaggio lettura terminata 6. fine 4) Creazione del form Visualbasic 49

50 TEST AL COMPUTER Private Sub btnlegginumeri_click() 'Dichiarazione delle variabili Dim num As Integer Dim x As String x = "inserisci numero" 'inizio ciclo do loop until Do num=val(inputbox(x)) Loop Until (num < 0) 'fine ciclo do loop until se la condizione è vera MsgBox("Lettura terminata") End Sub PROBLEMA 46: Trovare un algoritmo che letto un numero NUM, controlli che esso sia = 0 e nel caso positivo lo conti. Successivamente controlli, usando la condizione di ciclo, che esso sia non negativo cioè che è falsa la condizione NUM < 0. Nel caso la condizione di ciclo è falsa proceda a leggere altri numeri interi ed a contarli se sono anche = 0. Nel caso la condizione di ciclo è vera esca dal programma stampando a video la quantità dei numeri 0 inseriti (Suggerimento: Il programma termina quando l utente legge un numero NUM < 0) 1) Tabelle delle variabili di input e output NUM E il numero da leggere. CONT E il contatore dei numeri = 0 E una stringa di caratteri Stringa 1. inizio 2. assegna a CONT, 0 3. Fai le seguenti istruzioni: 4. leggi il numero, NUM 5. se NUM = 0 allora incrementa CONT, fine se 6. la condizione NUM < 0 è falsa, vai al passo 4 7. stampa il messaggio lettura terminata 8. fine 4) Creazione del form Visualbasic Test al computer 5) Codifica del pulsante btncalcola_click Private Sub btncontazero_click ( ) Dim num, cont As Integer Dim x As String ' lettura del primo numero x = "inserisci numero" cont = 0 50

51 'inizio ciclo do loop until Do ' lettura dei numeri num = Val(InputBox(x)) If (num = 0) Then cont = cont + 1 loop until (num < 0) 'fine ciclo do loop until se la condizione è vera MsgBox("Hai inserito " & cont & " numeri = 0") End Sub PROBLEMA 47: Trovare un algoritmo che letto un numero NUM, controlli che esso sia > 0 e nel caso positivo lo sommi e lo conti. Successivamente controlli, usando la condizione di ciclo, che esso sia non negativo cioè che è falsa la condizione NUM < 0. Nel caso la condizione di ciclo è falsa proceda a leggere altri numeri, a sommarli e a contarli se sono anche > 0. Nel caso la condizione di ciclo è vera esca dal programma stampando a video la media dei numeri inseriti. (Suggerimenti: utilizzare una variabile contatore cont che conti i numeri non negativi letti ed altre due variabili somma e media, il programma termina quando l utente legge un numero NUM < 0) 1) Tabelle delle variabili di input e output NUM E il numero da leggere. CONT SOM MEDIA E il contatore solo dei numeri > 0 E la somma dei numeri > 0 E la media dei numeri > 0 E una stringa di caratteri Decimal Stringa 1. inizio 2. assegna a CONT e a SOM, 0 3. fai le seguenti istruzioni: 4. leggi il numero, NUM 5. se NUM > 0 allora assegna a SOM, SOM * NUM e incrementa di 1, CONT, fine se 6. finchè NUM < 0 è falso, vai al passo 4 7. assegna a MEDIA, SOM / CONT 8. stampa MEDIA 9. fine Test al computer 4) Creazione del form Visualbasic 5) Codifica del pulsante btncalcola_click Private Sub btnmedia_click() Dim num, cont, som As Integer Dim x As String Dim media As Decimal ' lettura del primo numero 51

52 x = "inserisci numero" cont = 0 som = 0 'inizio ciclo do loop until Do num = Val(InputBox(x)) If (num > 0) Then som = som + num cont = cont + 1 Loop Until (num < 0) 'fine ciclo do loop until se la condizione è vera media = som / cont MsgBox("La media è" & media) End Sub PROBLEMA 47: Trovare un algoritmo che letta una parola PAR, controlli che la sua lunghezza sia > 0 e nel caso positivo la sommi. Successivamente controlli, usando la condizione di ciclo, che la parola non sia =, cioè che è falsa la condizione PAR =. Nel caso la condizione di ciclo è falsa proceda a leggere altre parole ed a sommarne le lunghezze. Nel caso la condizione di ciclo è vera esca dal programma stampando a video il messaggio somma lunghezze è & som. (Suggerimenti: utilizzare la funzione PAR.lenght per determinare la lunghezza di PAR, una variabile somma, il programma termina quando la PAR inserita è nulla) 1) Tabelle delle variabili di input e output PAR Parola da leggere. Stringa SOM Somma delle lunghezze delle parole L Lunghezza di una parola E una stringa di caratteri Stringa 1. inizio 2. fai le seguenti istruzioni: 3. leggi la parola PAR 4. assegna ad L, la lunghezza di PAR 5. se la lunghezza L > 0 allora assegna a SOM, SOM + L, fine se 6. finchè PAR= è falso torna al passo 3 8. stampa SOM 9. fine Test al Computer 4) Creazione del form Visualbasic 5) Codifica del pulsante btncalcola_click Private Sub btnsommalungh_click( ) Dim PAR, x As String Dim som, l As Integer 52

53 x = "inserisci la parola" Do PAR = InputBox(x) l = PAR.Length If (l > 0) Then som = som + l End if Loop Until (PAR = "") MsgBox("somma lunghezze è " & som) End Sub PROBLEMA 48 Una parola si dice che è palindroma se è leggibile nello stesso modo da destra a sinistra e viceversa come ad es. anna, ossesso, ecc. Trovare un algoritmo che letta una parola PAR, controlli se essa sia palindroma. Per controllare ciò utilizzare una variabile booleana, BIT inizializzata al valore TRUE. Se alla fine del ciclo BIT sarà ancora = TRUE allora si stampi a video il messaggio: la parola & PAR & è palindroma, altrimenti se BIT = FALSE, allora si stampi il messaggio la parola & PAR & non è palindroma. (Suggerimenti: utilizzare la funzione PAR.lenght; il programma termina non appena esso si rende conto che 2 caratteri simmetrici della PAR analizzata sono diversi assegnando a BIT il valore FALSE; la condizione del ciclo do loop until deve essere doppia e deve usare l operatore logico di congiunzione OR. Tale condizione doppia sarà falsa finchè entrambe sono false ) 1) Tabelle delle variabili di input e output PAR Parola da leggere. Stringa I, J Indici dei caratteri di PAR L BIT Lunghezza di una parola Variabile booleana, true e false Stringa 1. inizio 2 leggi parola, PAR 3. assegna a L, lenght(par), BIT, true, I a 0 5. fai le seguenti istruzioni: 6. Assegna a J, L-I-1 3) Diagramma a blocchi 4) Creazione del form Visualbasic 7. se PAR(I) < > PAR(J) allora a BIT, False 8. incrementa I, di 1 6. finchè (I >L/2 OR BIT=False) è falsa vai al se BIT=True allora parola palindroma altrimenti stampa parola non palindroma 10. fine Test al Computer 53

54 5) Codifica del pulsante btncalcola_click Private Sub btnpalindroma_click( ) Dim PAR, x As String Dim l As Integer ' lungh = lunghezza della parola letta PAR Dim i, j As Integer ' i e j sono gli indici dei caratteri di PAR Dim bit As Boolean ' bit è una variabile booleana = true o false x = "inserisci la parola" i = 0 ' i=0 poichè il 1 carattere della parola PAR ha indice = 0 PAR = InputBox(x) l = PAR.Length bit = True 'bit è true finchè i caratteri confrontati sono = Do j = l - i - 1 ' j contiene la posizione del carattere di PAR simmetrico a i If (PAR(i) <> PAR(j)) Then 'bit è false quando i caratteri simmetrici sono diversi bit = False i = i + 1 Loop Until (i > = l / 2 Or bit = False) 'entrambe false? If (bit = True) Then MsgBox("la parola " & PAR & " è palindroma") Else MsgBox("la parola " & PAR & " non è palindroma") End Sub OSSERVAZIONE: Del problema18 produrre su carta il seguente test al diagramma a blocchi disegnato: PAR = anna in modo da avere i seguenti valori PAR Lungh bit i j PAR(i) PAR (j) Produrre altri test a vostra scelta su carta, anna 4 true 0 3 a a testando l algoritmo con altre parole scelte 1 2 n n a caso. 2 ESERCIZI PER CASA CON IL CICLO WHILE O CON IL CICLO DO LOOP UNTIL PROBLEMA 49: Per una serata da ballo al "Maccheroni" di Latina, leggere una serie di amici da invitare, finchè l'utente non inserisce la parola "FINE" e stampare quanti hanno nel contatto come ultimo carattere la vocale "n" (pulsante LeggiStampa) (Ad es. se leggo i contatti: TogniN, AlbertoN, MarangoN, De Carlini, Baldassarre, ecc. devo stampare: contn = 3) PROBLEMA 50: Per una indagine Statistica, leggere una serie di nomi di Supermercati, finchè l'utente non inserisce la parola "STOP" e stampare quanti hanno il nome lungo al massimo 5 caratteri (pulsante LeggiStampa) (Ad es. se leggo i nomi: Todis, Sidis, Conad, Lidl, Eurospin ecc. devo stampare: cont5 = 3) 54

55 Parte 5 - Definizione di Array-1 dimensione Un array é un insieme di variabili, che occupano celle consecutive in memoria. Un array ha le seguenti caratteristiche: un nome, un tipo, che è lo stesso per tutte le variabili, una dimensione, pari al numero di variabili utilizzate, un indice, che individua la posizione di ogni variabile nell array. Un array ad una dimensione si chiama anche vettore; un array a 2 dimensioni si chiama anche matrice. Esempio1 Un array è l insieme consecutivo dei piani, poiché ha le seguenti caratteristiche: si chiama palazzo (nome), tutti i piani ospitano persone (stesso tipo), i piani sono di un certo numero (dimensione), ogni piano è individuato da un numero del piano (indice). Esempio2 Un array è l insieme consecutivo dei cassetti, poiché ha le seguenti caratteristiche: si chiama cassettiera (nome), tutti i cassetti contengono ad es. magliette (stesso tipo), i cassetti sono di un certo numero (dimensione), ogni cassetto è individuato da un numero del cassetto (indice). Esempio3 Un array è l'insieme delle lettere della lingua italiana, poiché ha le seguenti caratteristiche: si chiama Alfabeto (nome), tutti gli elementi sono lettere (stesso tipo), gli elementi sono di un certo numero (dimensione = 21), ogni lettera è individuata da un numero che ne individua la posizione (indice) Dichiarazione degli Array in VisualBasic.Net - DIM Alfabeto (20) as string è la dichiarazione dell array, costituito dalle 21 lettere dell alfabeto - DIM MedieMaterie (9) as decimal è la dichiarazione dell array, fatto dai 10 voti medi delle materie - DIM V(5) as integer è la dichiarazione del array V, costituito ad es. dai primi 6 multipli del 2. Indice di un array e singoli elementi di un array L indice degli elementi di un array parte da 0 e in genere si indica con le variabili I, J, ecc. Ogni singolo elemento di un array, cioè ogni singola variabile ha per nome, il nome dell array seguito dall indice, tra due parentesi tonde, che individua la posizione della variabile nell array. Esempio Sia DIM V(5) as integer, un array costituito dai primi 6 multipli del 2, vediamo come varia l indice nell array V e come si chiamano le singole variabili. VETTORE V ELEMENTI VARIABILE V(0) V(1) V(2) V(3) V(4) V(5) 55

56 INDICE A che serve la struttura dati Array? Essa serve a conservare in memoria dati necessari per successive elaborazioni. Ad esempio volendo calcolare quali voti di studenti superano la media, non utilizzando l array, bisognerebbe: 1) leggere i voti degli studenti una prima volta e calcolarne la media dei voti della classe; 2) leggere i voti degli studenti una seconda volta per calcolare quanti voti superano la media. Invece, utilizzando l array, i voti letti nel 1) punto si conservano nell array in modo che sono disponibili per risolvere il 2 punto, senza rileggerli. Operazioni di base sugli Array Le operazioni di base che è possibile effettuare sugli array sono: - lettura del vettore, cioè memorizzazione di tutti gli elementi letti, in un vettore - stampa del vettore, cioè stampa in una combobox o in una listbox, degli elementi del vettore - ricerca della posizione di un elemento, scelto dall utente, nel vettore partendo dal 1 elemento. - cancellazione di un elemento, scelto dall utente, nel vettore dopo averlo cercato e trovato. - inserimento di un nuovo elemento, scelto dall utente, nell array sovradimensionato. - ordinamento crescente o decrescente degli elementi di un vettore Variabili Locali e globali Le variabili locali sono quelle visibili solo all interno di un pulsante. Quelle globali sono visibili in tutti i pulsanti del form. D ora in poi nella tabella delle variabili, inseriremo solo quelle locali. PROBLEMA 51: Trovare un algoritmo che permetta di leggere 10 numeri interi e di memorizzarli in un vettore V. Successivamente stampare a video tutti gli elementi del vettore V creato 1) Tabelle delle variabili Locali di input e output dei Pulsanti Lettura e Stampa I Indice del ciclo FOR caratteri Intero 2.1) Algoritmo Pulsante Lettura 1. Inizio 2. Per I che va da 0 a 9 3. leggi V( I ) 4.1) Codifica Variabili Globali Dim V(9) As Integer Const x As String = "V(" Const y As String = ") = " 56

57 4. Incrementa I e vai al passo 2 5. Fine 2.2) Algoritmo Pulsante Stampa 1. Inizio 2. Per I che va da 0 a 9 3. Scrivi V( I ) (nella combobox) 4. Incrementa I e vai al passo 2 5. Fine 3) Creazione del form Visualbasic. Net 4.2) Codice pulsante BtnLettura_Click Dim I As Integer For I = 0 To 9 V(I)=Val(InputBox(x & I + 1 & y)) 4.3) Codice pulsante BtnStampa_Click Dim I As Integer For I = 0 To 9 cmbstampa.items.add(x & I & y & V(I)) 4.4) Codice pulsante BtnCancella_Click Dim I As Integer For I = 0 To 9 cmbstampa.items.remove(x & I & y & V(I)) 5) L esecuzione del programma fa apparire a video finestre per l inputbox usate per la lettura, la combobox per l output, il pulsante cancella che elimina gli elementi dalla combobox. PROBLEMA 52: Trovare un algoritmo che legga un vettore V di N numeri interi e l ho stampi a video in una combobox. Successivamente legga un elemento da ricercare nel vettore e controlli se tale elemento è presente o meno nel vettore. Se l elemento è presente, stampare a video il messaggio elemento trovato e la sua posizione nel vettore, altrimenti stampare a video il messaggio elemento non trovato. (Suggerimento: utilizzare il ciclo while o do loop until, poiché il ciclo for non permette di gestire la condizione non prestabilita Trovato = False) 1) Tabelle delle variabili Locali di input e output del Pulsante Ricerca I POS ELEM TROVATO Indice del ciclo Posizione dell elemento nel vettore Elemento da cercare nel vettore = True se l elemento è stato trovato Intero Intero Intero Boolean 2) Algoritmo Pulsante Ricerca 1. Inizio 2. Assegna a Trovato, False 3. Assegna ad I, 0 5.1) Codifica Variabili Globali Dim V(49), N As Integer Const x As String = "V(" Const y As String = ") = " 57

58 4. Leggi elemento da cercare, Elem 5. Finchè I< N and Trovato = False, fai 6. Se V( I ) = Elem allora Trovato = True, Pos = I, fine se 7. Incrementa I e vai al passo Se Trovato = True allora Stampa Elemento trovato in POS, altrimenti Elemento non trovato, fine se 9. Fine 3) Creazione del form Visualbasic. Net 4) Diagramma a blocchi Non svolto per mancanza di tempo 5.2) Codice pulsante BtnLettura_Click Dim I As Integer N = Val(txtN.Text) For I = 0 To N - 1 V(I) = Val(InputBox(x & I + 1 & y)) 5.3) Codice pulsante BtnRicerca_Click Dim POS, ELEM, I As Integer Dim TROVATO As Boolean I = 0 TROVATO = False ELEM = Val(txtElem.Text) ' ELEM = elemento da cercare nel vett While I < N And TROVATO = False If V(I) = ELEM Then TROVATO = True POS = I I = I + 1 End While If (TROVATO = True) Then txtpos.text = POS lblricerca.text = "Elemento trovato" Else lblricerca.text = "ELEM NON TROVATO" PROBLEMA 53: Trovare un algoritmo che legga un vettore V di N numeri interi e l ho stampi a video in una combobox. Successivamente legga un elemento da ricercare nel vettore e controlli se tale elemento è presente o meno nel vettore. Se l elemento è presente, cancellarlo compattando di una posizione verso l alto gli elementi dell array e stampando a video la nuova dimensione del vettore. (Suggerimento: L ordine dei pulsanti da cliccare è: lettura, stampa, cancella, elimina, stampa) 1) Tabelle delle variabili Locali di input e output Pulsante RicercaElimina I POS ELEM TROVATO J Indice del ciclo FOR Posizione dell elemento nel vettore Elemento da cercare nel vettore = True se l elemento è stato trovato Indice ciclo per il compattamento del vettore Intero Intero Intero Intero Boolean 2) Algoritmo Pulsante RicercaElimina 1. Inizio 2. Assegna a Trovato, False 3. Assegna ad I, 0 5.1) Codifica Variabili Globali Dim V(49), N As Integer Const x As String = "V(" Const y As String = ") = " 58

59 4. Leggi elemento da cercare, Elem 5. Finchè I< N and Trovato = False, fai 6. Se V( I ) = Elem allora Trovato = True, Pos = I, fine se 7. Incrementa I e vai al passo Se Trovato = True allora 8.1 Per J che va da POS a N assegna a V(J), V(J+1) 8.3 Incrementa J e vai al passo Decrementa di 1, la dimensione N del vett. 9. Fine se 10. Fine 3) Creazione del form Visualbasic. Net 4) Diagramma a blocchi Non svolto per mancanza di tempo 5.2) Codice pulsante BtnLettura_Click Dim I As Integer N = Val(txtN.Text) For I = 0 To N - 1 V(I) = Val(InputBox(x & I + 1 & y)) 5.3) Codice RicercaElimina_Click Dim POS, ELEM, I, J As Integer Dim TROVATO As Boolean I = 0 TROVATO = False ' elemento da ricercare ed elim ELEM = Val(txtElem.Text) While I < N And TROVATO = False If V(I) = ELEM Then TROVATO = True POS = I I = I + 1 End While If (TROVATO = True) Then ' ciclo per il compattamento vett For J = POS To N - 2 V(J) = V(J + 1) N=N-1 ' la dimensione N del vettore diminuisce di 1, dopo il compattamento del vettore txtnewn.text = N PROBLEMA 54: Trovare un algoritmo che legga un vettore V di N elementi < 50 che è la dimensione massima del vettore e l ho stampi a video in una combobox. Successivamente legga un nuovo elemento da inserire in coda al vettore e stampi a video la nuova dimensione del vettore. (Suggerimento: L ordine dei pulsanti da cliccare è: lettura, stampa, cancella, inserisci, stampa) 1) Tabelle delle variabili Locali di input e output del Pulsante Inserisci ELEM Elemento da cercare nel vettore Intero 2) Algoritmo Pulsante Inserisci 1. Inizio 2. Leggi elemento da inserire, Elem 3. Assegna a V(N), Elem 4.1) Codifica Variabili Globali Dim V(49), N As Integer Const x As String = "V(" Const y As String = ") = " 59

60 4. Incrementa di 1, la dimensione N del vettore 5. Mostra a video, la nuova dimensione N 6. Fine se 3) Creazione del form Visualbasic. Net 4.2) Codice pulsante BtnLettura_Click Dim I As Integer N = Val(txtN.Text) For I = 0 To N - 1 V(I) = Val(InputBox(x & I + 1 & y)) 4.3) Codice Inserisci_Click Dim ELEM As Integer ' elemento da ricercare ed elim ELEM = Val(txtElem.Text) V(N)= Elem N = N + 1 txtnewn.text = N METODO DI ORDINAMENTO CRESCENTE DI UN VETTORE PER SELEZIONE In sintesi, dati N elementi del vettore, bisogna trovare l elemento minimo del vettore e portarlo al 1 posto, poi trovare l elemento minimo degli N-1 elementi rimanenti del vettore e portarlo al 2 posto, poi trovare l elemento minimo degli N-2 elementi del vettore e portarlo al 3 posto e cosi via. Più in dettaglio, si deve confrontare il 1 elemento del vettore con il secondo. Se il 1 elemento è > del 2 elemento si provvede a scambiarli di posto, altrimenti si passa a confrontare il 1 elemento con il 3 elemento e cosi via fino a confrontare il 1 elemento con l n-simo. A questo punto il metodo descritto si applica sui rimanenti N-1 elementi del vettore. Per far ciò bisogna utilizzare 2 cicli l uno dentro all altro: un 1 ciclo su una variabile indice I = 0 a N - 2 e un 2 ciclo su una variabile indice J = I + 1 a N - 1 e una variabile Temp per effettuare lo scambio quando un elemento > dell elemento successivo. PROBLEMA 55: Trovare un algoritmo che legga un vettore V di N numeri interi e l ho stampi a video in una listbox. Successivamente ordini gli elementi inseriti nel vettore in modo crescente e stampi a video in un'altra listbox il vettore ordinato. 1) Tabelle delle variabili Locali di input e output Pulante Ordina I J Temp Indice del ciclo più esterno Indice del ciclo più interno Variabile usata per lo scambio Intero Intero Intero 2) Algoritmo Pulsante Ordina 1. Inizio 2. Leggi quantità di elementi N da inserire 3. Per I che va da 0 a N-2 4. Per J che va da I+1 a N-1 5. Se V(I) > V(J) allora scambiali, cioè: temp=v(i), V(I)=V(J), V(J)=temp 6. Fine se 7. Incrementa J e torna al passa 4 8. Incrementa I e torna al passa 3 9. Fine 4) Diagramma a blocchi Non svolto per mancanza di tempo 60

61 3) Creazione del form Visualbasic. Net 5.1) Codifica Variabili Globali Dim V(49), N As Integer Const x As String = "V(" Const y As String = ") = " 5.3) Codice Ordina_Click Dim I, J, temp As Integer For I = 0 To N-2 For J = I + 1 To N-1 If (V(I) > V(J)) Then temp = V(I) V(I) = V(J) V(J) = temp 5.6) Codice Btn1-Stampa_Click Dim I As Integer For I = 0 To N - 1 VetNonOrd.Items.Add(x & I & y & V(I)) 5.2) Codice pulsante BtnLettura_Click Dim I As Integer N = Val(txtN.Text) For I = 0 To N - 1 V(I) = Val(InputBox(x & I + 1 & y)) 5.4) Codice BtnCancella_Click Dim I As Integer For I = 0 To N - 1 VetNonOrd.Items.Remove(x & I & y & V(I)) 5.5) Codice BtnCancella_Click For I = 0 To N - 1 VetOrdinato.Items.Remove(x & I & y & V(I)) 5.7) Codice Btn2-Stampa_Click Dim I As Integer For I = 0 To N - 1 VetOrdinato.Items.Add(x & I & y & V(I)) PROBLEMA 56: Trovare un algoritmo che letto un vettore V di N numeri interi, stampi a video in una listbox tutti gli elementi del vettore che hanno indice (cioè posizione) pari. 1) Tabelle delle variabili di input e output I Q R Indice del ciclo Quoziente del rapporto di I con 2 Resto del rapporto di I con 2 Intero Intero Intero 2) Algoritmo Pulsante StampaPari 3) Creazione del form Visualbasic. Net 1. Inizio 2. Per I che va da 0 a N-1 3. Assegna a Q, I / 2 4. Assegna a R, I 2*Q 5. Se R = 0 allora stampa nella lstbox, fine se 6. Incrementa I e torna al passo 2 7. Fine 61

62 4.0) Codifica Variabili Globali Dim V(49), N As Integer Const x As String = "V(" Const y As String = ") = " 4.2) Codice StampaPari_Click Dim I, Q, R As Integer For I = 0 To N - 1 Q = I / 2; R = I - Q * 2 If (R = 0) Then VetPari.Items.Add(x & I & y & V(I)) 4.4) Codice BtnCancella_Click For I = 0 To N - 1 VetPari.Items.Remove(x & I & y & V(I)) 4.1) Codice pulsante BtnLettura_Click Dim I As Integer N = Val(txtN.Text) For I = 0 To N - 1 V(I) = Val(InputBox(x & I + 1 & y)) 4.3) Codice Btn1-Stampa_Click Dim I As Integer For I = 0 To N - 1 VetLetto.Items.Add(x & I & y & V(I)) 4.5) Codice BtnCancella_Click Dim I As Integer For I = 0 To N - 1 VetLetto.Items.Remove(x & I & y & V(I)) PROBLEMA 57. Trovare un algoritmo che letto un vettore V di N numeri interi, stampi a video la posizione del massimo e del minimo elemento del vettore. 1) Tabelle delle variabili Locali di input e output del Pulsante Calcola I Max Min PMax PMin Indice del ciclo E il massimo elemento del vettore E il minimo elemento del vettore E la posizione del Max elemento del vettore E la posizione del Min elemento del vettore Intero Intero Intero Intero Intero 2) Algoritmo Pulsante Calcola 1. Inizio 2. Assegna a Max e a Min, V(0) 3. Per I che va da 1 a N-1 4. Se V(I) > Max allora Max, V(I), PMax, I 5. Se V(I) < Min allora Min, V(I), PMin, I 6. Incrementa I e torna al passo 3 7. Stampa PMax e PMin 8. Fine 4.1) Codifica Variabili Globali Dim V(49), N As Integer Const x As String = "V(" Const y As String = ") = " 4.3) Codice pulsante BtnLettura_Click Dim I As Integer N = Val(txtN.Text) 3) Creazione del form Visualbasic. Net 4.2) Codice BtnCalcola_Click Dim I, MIN, MA As Integer Dim PMIN, PMA As Integer ' inizializzo il minimo e il massimo ad un valore iniziale MIN = V(0) MA = V(0) For I = 1 To N

63 For I = 0 To N - 1 V(I) = Val(InputBox(x & I + 1 & y)) 4.4) Codice pulsante BtnStampa_Click Dim I As Integer For I = 0 To N - 1 lstvet.items.add(x & I & y & V(I)) If V(I) > MA Then MA = V(I) PMA = I If V(I) < MIN Then MIN = V(I) PMIN = I txtpmax.text = PMA txtpmin.text = PMIN PROBLEMA 58. Trovare un algoritmo che letto un vettore V di N numeri interi, calcoli la loro media e la stampi a video e successivamente conti e stampi quanti numeri superano la media 1) Tabelle delle variabili Locali di input e output del Pulsante Calcola I Somma Media ContM Indice del ciclo Somma degli elementi del vettore E la media degli elementi del vettore Conta quanti numeri superano la media Intero Intero Intero Intero 2) Algoritmo Pulsante Calcola 1. Inizio 2. Assegna a Somma, 0 e a ContM, 0 3. Per I che va da 0 a N-1 4. Assegna a Somma, Somma + V(I) 5. Incrementa I e torna al passo 2 6. Assegna a Media, Somma / N 7. Per I che va da 0 a N-1 8. Se V(I) > Media allora ContM, ContM+1 9. Stampa ContM 10. Fine 3) Creazione del form Visualbasic. Net 4.1) Codice BtnCalcola_Click Dim SOMMA, I, CONTM As Integer Dim Media As Decimal SOMMA = 0 CONTM = 0 For I = 0 To N - 1 SOMMA = SOMMA + V(I) Media = SOMMA / N For I = 0 To N - 1 If V(I) > Media Then CONTM = CONTM + 1 txtcontm.text = CONTM txtmedia.text = Media Parte 6 - Definizione di Vettori Paralleli Due vettori V1 e V2 si dicono paralleli quando il 1 elemento di V1 è associato al 1 elemento di V2, il 2 elemento di V1 è associato al 2 elemento di V2,, l ultimo elemento di V1 è associato all ultimo elemento di V2. 63

64 Esempio: Sia V1 = VNomi, il vettore dei nomi degli attaccanti dei calciatori di serie A e sia V2 = VGol il vettore dei gol segnati da ciascun attaccante. Supponiamo che essi siano paralleli, cioè tra essi vi sia l associazione seguente: In questo modo cercando ad es. un cognome nel 1 vettore è possibile trovare per associazione subito il corrispondente numero di gol nel 2 vettore. PROBLEMA 59. Utilizzare 2 vettori cosiddetti paralleli. Trovare un algoritmo che letti: un 1) vettore VNomi di N nomi di attaccanti di serie A del campionato di calcio 2011 / 2012 e un 2) vettore VGol di N interi contenente il numero di gol segnati da ciascun attaccante, stampi a video il nome dell attaccante che ha segnato più gol e il nome dell attaccante che ha segnato meno gol. 1) Tabelle delle variabili Locali di input e output del Pulsante Calcola I PGol MGol NomePGol NomeMGol Indice del ciclo Max numero dei gol Minimo numero dei gol Nome del giocatore che ha segnato più gol Nome del giocatore che ha segnato meno gol Intero Intero Intero Stringa Stringa 2) Algoritmo Pulsante Calcola 1. Inizio 2. Assegna a PGol il valore iniziale 0 e a MGol il valore iniziale Per I che va da 0 a N-1 4. se V(I) > PGol allora assegna PGol, VGol (I) e a NomePGol, VNome (I), fine se 5. se V(I) < MGol allora assegna MGol, VGol (I) e NomeMGol, VNome (I), fine se 6. Incrementa I e torna al passo 3 7. Stampa NomePGol e NomeMGol 8. Fine 3) Creazione del form Visualbasic. Net 4.1) Codifica Variabili Globali Dim VGol(49), N As Integer Dim VNomi(49) As String Const x As String = "V(" Const y As String = ") = " 4.2) Codice pulsante BtnLettura_Click Dim I As Integer N = Val(txtN.Text) For I = 0 To N - 1 ' essendo vnomi un array di stringhe la funzione inputbox non deve avere 64

PARAGRAFO 1: variabili e costanti, tabella delle variabili; in VB: dichiarazione DIM (2h)

PARAGRAFO 1: variabili e costanti, tabella delle variabili; in VB: dichiarazione DIM (2h) PARAGRAFO 1: variabili e costanti, tabella delle variabili; in VB: dichiarazione DIM (2h) Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado

Dettagli

MODULO 3 Algoritmi con le strutture Sequenza e Selezione e codifica in VB.Net

MODULO 3 Algoritmi con le strutture Sequenza e Selezione e codifica in VB.Net MODULO 3 Algoritmi con le strutture Sequenza e Selezione e codifica in VB.Net 1- PARTE Ripasso: introduzione agli Algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore

Dettagli

MODULO 2 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

MODULO 2 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net MODULO 2 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo.

Dettagli

Paragrafo 1 - Ripasso Concetti base e Interfaccia di Visual Basic.Net 2005

Paragrafo 1 - Ripasso Concetti base e Interfaccia di Visual Basic.Net 2005 Paragrafo 1 - Ripasso Concetti base e Interfaccia di Visual Basic.Net 2005 Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo.

Dettagli

MODULO 4 Dal Problema al form VBasic.Net con le strutture di sequenza e di selezione

MODULO 4 Dal Problema al form VBasic.Net con le strutture di sequenza e di selezione MODULO 4 Dal Problema al form VBasic.Net con le strutture di sequenza e di selezione 1-PARTE: Definizione di struttura di sequenza o sequenziale In un algoritmo si parla di struttura di sequenza quando

Dettagli

1 PARTE Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

1 PARTE Introduzione agli algoritmi e alla programmazione in VisualBasic.Net 1 PARTE Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo.

Dettagli

MODULO 3 Dal Problema al form VBasic.Net con le strutture di sequenza e di selezione

MODULO 3 Dal Problema al form VBasic.Net con le strutture di sequenza e di selezione MODULO 3 Dal Problema al form VBasic.Net con le strutture di sequenza e di selezione PARAGRAFO 1: Definizione di struttura di sequenza o sequenziale In un algoritmo si parla di struttura di sequenza quando

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è colui che usa il computer anche se non è in grado di programmarlo. Il programmatore

Dettagli

1 PARTE Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

1 PARTE Introduzione agli algoritmi e alla programmazione in VisualBasic.Net 1 PARTE Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo.

Dettagli

Ripasso di: Algoritmi con le strutture di Selezione e cicliche in VB.Net Prof. M. Simone - ITCG Padre S. Lener Classe 4Gx Marcianise A.S.

Ripasso di: Algoritmi con le strutture di Selezione e cicliche in VB.Net Prof. M. Simone - ITCG Padre S. Lener Classe 4Gx Marcianise A.S. MODULO 2 Algoritmi con le strutture di Selezione e cicliche in VB.Net 1) Si parla di struttura di selezione ad una via, quando il percorso falso non è presente. Essa, nel metodo del diagramma a blocchi,

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Lezione 1 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo

Dettagli

Per realizzare un programma in VB

Per realizzare un programma in VB Per realizzare un programma in VB E necessario eseguire nell ordine i seguenti passi: 1) Dato un problema, disegnare la tabella delle variabili 2) Determinare l algoritmo risolutivo con la pseudocodifica

Dettagli

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico Click to edit Algoritmo Master title style algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito

Dettagli

Dall algoritmo al programma

Dall algoritmo al programma Dall algoritmo al programma Il concetto di algoritmo Un algoritmo è una sequenza di passi necessari per risolvere un problema o eseguire una computazione In alcuni casi, lo stesso problema/computazione

Dettagli

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?

Dettagli

Caratteristiche generali del linguaggio Visual Basic

Caratteristiche generali del linguaggio Visual Basic Caratteristiche generali del linguaggio Visual Basic Per ottenere un aiuto contestuale dall help di Visual Basic sulla sintassi di funzioni o, oppure su proprietà, eventi o metodi, basta selezionare la

Dettagli

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

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la

Dettagli

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

Programma 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

Dettagli

PROBLEMI ALGORITMI E PROGRAMMAZIONE

PROBLEMI ALGORITMI E PROGRAMMAZIONE PROBLEMI ALGORITMI E PROGRAMMAZIONE SCIENZE E TECNOLOGIE APPLICATE CLASSE SECONDA D PROGRAMMARE = SPECIFICARE UN PROCEDIMENTO CAPACE DI FAR SVOLGERE AD UNA MACCHINA UNA SERIE ORDINATA DI OPERAZIONI AL

Dettagli

Come ragiona il computer. Problemi e algoritmi

Come ragiona il computer. Problemi e algoritmi Come ragiona il computer Problemi e algoritmi Il problema Abbiamo un problema quando ci poniamo un obiettivo da raggiungere e per raggiungerlo dobbiamo mettere a punto una strategia Per risolvere il problema

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE

INTRODUZIONE ALLA PROGRAMMAZIONE INTRODUZIONE ALLA PROGRAMMAZIONE Prof. Enrico Terrone A. S: 2008/09 Definizioni Programmare significa risolvere problemi col computer, cioè far risolvere problemi al computer attraverso un insieme di informazioni

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Reti di Calcolatori

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Reti di Calcolatori Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Reti di Calcolatori Architettura del calcolatore Elementi di Programmazione Esempi di algoritmi e programmi Conversione

Dettagli

Programmazione con il linguaggio LibreOffice Basic

Programmazione con il linguaggio LibreOffice Basic Programmazione con il linguaggio LibreOffice Basic L ambiente di programmazione Il software LibreOffice possiede un ambiente di programmazione in linguaggio Basic, che consente di creare procedure software

Dettagli

MODULO 4: LE STRUTTURE ITERATIVE: FOR, WHILE E DO LOOP UNTIL

MODULO 4: LE STRUTTURE ITERATIVE: FOR, WHILE E DO LOOP UNTIL MODULO 4: LE STRUTTURE ITERATIVE: FOR, WHILE E DO LOOP UNTIL La struttura di ripetizione o iterativa o ciclo Essa, in generale, consente di ripetere l esecuzione di una porzione di algoritmo più volte,

Dettagli

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto 14 1. Dato un numero dire se è positivo o negativo 2. e se il numero fosse nullo? 3. Eseguire il prodotto tra

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

4. I moduli in Access 2000/2003

4. I moduli in Access 2000/2003 LIBRERIA WEB 4. I moduli in Access 2000/2003 Il modulo è uno degli oggetti del database di Access e rappresenta un insieme di dichiarazioni e routine scritte con il linguaggio Visual Basic, memorizzate

Dettagli

Algoritmo per l ordinamento di un array

Algoritmo per l ordinamento di un array Algoritmo per l ordinamento di un array Spesso si ha la necessità di lavorare con vettori ordinati, cioè si devono mettere gli elementi in ordine alfabetico se sono stringhe o in in ordine di grandezza

Dettagli

I costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni

I costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni Classi di istruzioni In maniera simile a quanto fatto per i dati, un linguaggio mette a disposizione dei costrutti per realizzare la parte esecutiva dell algoritmo. Questa consiste di: Leggi i valori di

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

Algoritmi e soluzione di problemi

Algoritmi e soluzione di problemi Algoritmi e soluzione di problemi Dato un problema devo trovare una soluzione. Esempi: effettuare una telefonata calcolare l area di un trapezio L algoritmo è la sequenza di operazioni (istruzioni, azioni)

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica AlgoBuild: Strutture selettive, iterative ed array Prof. Arcangelo Castiglione A.A. 2016/17 AlgoBuild : Strutture iterative e selettive OUTLINE Struttura selettiva Esempi Struttura

Dettagli

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell

Dettagli

PROGRAMMAZIONE STRUTTURATA

PROGRAMMAZIONE STRUTTURATA PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:

Dettagli

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt); Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i

Dettagli

Le L z e ione n e d i d V isu s a u l B asi s c Prof.ssa Paola Goi 1

Le L z e ione n e d i d V isu s a u l B asi s c Prof.ssa Paola Goi 1 Lezione di Visual Basic Prof.ssa Paola Goi 1 VISUAL BASIC E un ambiente di programmazione che permette una programmazione: VISUALE AD EVENTI Per creare programmi applicativi nel sistema operativo Windows.

Dettagli

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi 0.1.1.1 Definire un algoritmo 1. Con il termine algoritmo si intende: a) il software utilizzato in un calcolatore b) l elenco finito di istruzioni necessario per risolvere un problema c) un elaboratore

Dettagli

LEZIONE PRECEDENTE. 1 Abilità Informatiche e Telematiche. 03/04/2015 Dott. ssa Carmen De Maio

LEZIONE PRECEDENTE. 1 Abilità Informatiche e Telematiche. 03/04/2015 Dott. ssa Carmen De Maio LEZIONE PRECEDENTE Introduzione a Sprite; Operatori e funzioni; Come usare i blocchi Movimenti per far muovere uno Sprite; Come usare i blocchi Penna per disegnare sullo stage; Esercizi 1 TO DO: Completa

Dettagli

VISUAL BASIC FOR APPLICATION

VISUAL BASIC FOR APPLICATION VISUAL BASIC FOR APPLICATION LA PIATTAFORMA DI SVILUPPO GLI ELEMENTI DI VBA Finestra di progetto: mostra l elenco gerarchico dei progetti aperti e di tutti i moduli di codice e finestre di interfaccia

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

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) 1 LEZIONE 9 ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) Laboratorio di Informatica per l Educazione A. A. 2014/2015 IN SINTESI (ELABORAZIONE) Con i COMPUTER, le macchine diventano

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

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali a Visual Basic Lezione 1 Concetti base e istruzioni condizionali Mario Alviano Introduzione all informatica Università della Calabria http://alviano.net/introinfo A.A. 2008/09 Introduzione Un esempio:

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

LEZIONE 11 IMPARIAMO A PROGRAMMARE: I DATI E LE VARIABILI Laboratorio di Informatica per l Educazione A. A. 2014/2015

LEZIONE 11 IMPARIAMO A PROGRAMMARE: I DATI E LE VARIABILI Laboratorio di Informatica per l Educazione A. A. 2014/2015 1 LEZIONE 11 IMPARIAMO A PROGRAMMARE: I DATI E LE VARIABILI A. A. 2014/2015 PRIMI PASSI La più semplice sequenza di istruzioni che possiamo scrivere è quella costituita da un solo comando. come si fa a

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Problema Algoritmo Programma Progettista Programmatore Progetto Programma Esecutore Computer Comittente Utente Dal problema all algoritmo Problema Risolutore ed esecutore Algoritmo

Dettagli

Sistemi di Elaborazione delle Informazioni

Sistemi di Elaborazione delle Informazioni SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2016/2017 1 I linguaggi di programmazione e gli

Dettagli

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da:

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da: Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da: http://it.wikipedia.org/wiki/al-khwarizmi Un

Dettagli

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova Pseudo codice, Paolo Bison, FI06, 2007-01-10 p.1 Pseudo codice linguaggio testuale mix di linguaggio naturale ed elementi

Dettagli

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO Rappresentazione degli algoritmi Problema Algoritmo Algoritmo descritto con una qualche notazione Programma Defne del procedimento

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

Definizione di algoritmo

Definizione di algoritmo L algoritmo Il termine algoritmo deriva da AL-KWHARIZMI, matematico arabo vissuto nell VIII secolo d.c. considerato il padre dell algebra. In realtà i primi algoritmi risalgono a 4000 anni fa e sono descritti

Dettagli

A.S Classe III H Informatica. Programma didattico finale e indicazioni per il recupero estivo relativi all'insegnamento di Informatica

A.S Classe III H Informatica. Programma didattico finale e indicazioni per il recupero estivo relativi all'insegnamento di Informatica O. BELLUZZ I - L. DA VINCI Prot.8480/6.3 del 05/07/2017 A.S. 2016-2017 Classe III H Informatica Programma didattico finale e indicazioni per il recupero estivo relativi all'insegnamento di Informatica

Dettagli

= < < < < < Matematica 1

= < < < < < Matematica  1 NUMERI NATURALI N I numeri naturali sono: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,... L insieme dei numeri naturali è indicato con la lettera. Si ha cioè: N= 0,1,2,3,4,5,6,7,.... L insieme dei naturali privato

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

VBA Principali Comandi

VBA Principali Comandi VBA Principali Comandi Sintassi Significato Esempio Dim As Dichiarazione Dim x As Integer di una variabile Dim , , ,.,

Dettagli

Rappresentazione con i diagrammi di flusso (Flow - chart)

Rappresentazione con i diagrammi di flusso (Flow - chart) Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo

Dettagli

Foglio Elettronico Lezione 1

Foglio Elettronico Lezione 1 - Introduzione - Celle e riferimenti - Formule - Approfondimenti - Funzioni logiche Sommario Introduzione - Foglio elettronico o foglio di calcolo - Cos'è? Strumento per raccogliere dati organizzati in

Dettagli

Menù principale di Calc

Menù principale di Calc Menù principale di Calc Status bar Informazioni generali! All'apertura si visualizza una cartella il cui nome è mostrato nella title bar;! Una cartella contiene più fogli di lavoro. Ci si può spostare

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

CORSO DI PROGRAMMAZIONE

CORSO DI PROGRAMMAZIONE ISTITUTO TECNICO INDUSTRIALE G. M. ANGIOY SASSARI CORSO DI PROGRAMMAZIONE INTRODUZIONE ALLE ISTRUZIONI ITERATIVE DISPENSA 03.01 03-01_Iterazioni_[ver_15] Questa dispensa è rilasciata sotto la licenza Creative

Dettagli

28/02/2014 Copyright V. Moriggia

28/02/2014 Copyright V. Moriggia Informatica per la Finanza 3 Le variabili in VBA Altri I/O 28/02/2014 Copyright 2005-2007 V. Moriggia 1 28/02/2014 3.2 Le variabili in VBA V. Moriggia 1 28/02/2014 3.3 Dichiarazione di variabili in VBA

Dettagli

Variabili e Istruzioni

Variabili e Istruzioni Exit Menù Variabili e Istruzioni 1 Le Variabili Una VARIABILE è un oggetto identificato da un NOME e da uno STATO, detto CONTENUTO o VALORE. Possiamo immaginarla come una scatola contenuto Pippo 11 nome

Dettagli

La ricerca dicotomica

La ricerca dicotomica La ricerca dicotomica Se l array è ordinato, la ricerca di un elemento può essere realizzata in modo più efficiente rispetto alla ricerca sequenziale, utilizzando la ricerca dicotomica. Si usa il termine

Dettagli

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi

Dettagli

Algoritmi, Strutture Dati e Programmi. UD 1.d: Dati e Tipi di Dato

Algoritmi, Strutture Dati e Programmi. UD 1.d: Dati e Tipi di Dato Algoritmi, Strutture Dati e Programmi : Dati e Tipi di Dato Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Dati: Variabili e Costanti Un algoritmo (e il programma che ne è rappresentazione)

Dettagli

Moltiplicazione. Divisione. Multipli e divisori

Moltiplicazione. Divisione. Multipli e divisori Addizione Sottrazione Potenze Moltiplicazione Divisione Multipli e divisori LE QUATTRO OPERAZIONI Una operazione aritmetica è quel procedimento che fa corrispondere ad una coppia ordinata di numeri (termini

Dettagli

Introduzione alla programmazione Esercizi risolti

Introduzione alla programmazione Esercizi risolti Esercizi risolti 1 Esercizio Si determini se il diagramma di flusso rappresentato in Figura 1 è strutturato. A B C D F E Figura 1: Diagramma di flusso strutturato? Soluzione Per determinare se il diagramma

Dettagli

Algoritmi e diagrammi di flusso versione biennio

Algoritmi e diagrammi di flusso versione biennio Algoritmi e diagrammi di flusso versione biennio Pablo Genova gallini.genova@gmail.com I. I. S. Angelo Omodeo Mortara Indirizzo Tecnico-Economico A. S. 2015 2016 Cos'è un algoritmo? Algoritmo: procedimento

Dettagli

IL LINGUAGGIO Visual Basic

IL LINGUAGGIO Visual Basic Caratteristiche del linguaggio VB Linguaggio basato sugli eventi IL LINGUAGGI Visual Basic I programmi non sono procedurali, poiche non seguono una sequenza operativa. gni programma si basa infatti su

Dettagli

Programmazione in Java (I modulo)

Programmazione 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

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

www.wlascuola.4000.it

www.wlascuola.4000.it 1 Cenni di programmazione Risolvere un problema significa trovare un procedimento che consenta di produrre i risultati, a partire dai dati iniziali, attraverso un processo di elaborazione. La metodologia

Dettagli

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina

Dettagli

Basi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi

Basi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi Basi della programmazione in Java Nicola Drago nicola.drago@univr.it Dipartimento di Informatica Università di Verona Anteprima Il concetto di variabile Uso delle variabili Dichiarazione Assegnamento Visualizzazione

Dettagli

Programmazione a blocchi. Algobuild Prof. Sergio Roselli

Programmazione a blocchi. Algobuild Prof. Sergio Roselli Programmazione a blocchi Algobuild Prof. Sergio Roselli Blocchi base Inizio programma I Fine programma F Input IN A Output Esecuzione OUT A A = 5 + 1 L interprete Algobuild Algobuildpermette di trascrivere

Dettagli

Le basi del linguaggio Java

Le 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

Dettagli

ESEMPIO: le variabili LETTURA/SCRITTURA DI VARIABILI. Specifica Leggere da tastiera un intero, un carattere, un float e un double. Stamparli a video.

ESEMPIO: le variabili LETTURA/SCRITTURA DI VARIABILI. Specifica Leggere da tastiera un intero, un carattere, un float e un double. Stamparli a video. ESEMPIO: le variabili LETTURA/SCRITTURA DI VARIABILI Specifica Leggere da tastiera un intero, un carattere, un float e un double. Stamparli a video. LETTURA/SCRITTURA DI VARIABILI Codice #include

Dettagli

Istruzioni, algoritmi, linguaggi

Istruzioni, algoritmi, linguaggi Istruzioni, algoritmi, linguaggi 1 Algoritmo per il calcolo delle radici reali di un equazione di 2 o grado Data l equazione ax 2 +bx+c=0, quali sono i valori di x per cui l equazione è soddisfatta? 2

Dettagli

DAL DIAGRAMMA AL CODICE

DAL DIAGRAMMA AL CODICE DAL DIAGRAMMA AL CODICE Un diagramma di flusso Appare, come un insieme di blocchi di forme diverse che contengono le istruzioni da eseguire, collegati fra loro da linee orientate che specificano la sequenza

Dettagli

UD 3.2b: Programmazione in Pascal (1)

UD 3.2b: Programmazione in Pascal (1) UD 3.2b: Programmazione in Pascal (1) Il Linguaggio di Programmazione Pascal Esistono molti linguaggi di programmazione. Per motivi didattici utilizzeremo una versione ridotta di un linguaggio di programmazione

Dettagli

LA CODIFICA DELL INFORMAZIONE

LA CODIFICA DELL INFORMAZIONE LA CODIFICA DELL INFORMAZIONE Prof. Enrico Terrone A. S: 20/2 Lo schema di Tanenbaum Il livello al quale ci interessiamo in questa lezione è il linguaggio macchina, l unico dove le informazioni e istruzioni

Dettagli

Rappresentazione degli algoritmi

Rappresentazione degli algoritmi Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti

Dettagli

Unità B1 Programmazione base

Unità B1 Programmazione base (A) CONOSCENZA TERMINOLOGICA Dare una breve descrizione dei termini introdotti: Multipiattaforma Interpiattaforma Porting Piattaforma hardware Piattaforma software Riusabilità Parametri della linea di

Dettagli

ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi seconde

ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi seconde ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi seconde vers.3 in lavorazione Docente SAFFI FABIO Contenuti 1. Esercizi generici sul diagramma di flusso - flow chart...2

Dettagli

unità didattica 3 Le strutture condizionali e le strutture iterative

unità didattica 3 Le strutture condizionali e le strutture iterative unità didattica 3 Le strutture condizionali e le strutture iterative 1. La struttura condizionale Il Pascal prevede la codifica della struttura condizionale (indicata anche con il nome di struttura dell

Dettagli

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

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema Algoritmo 2 Procedimento di risoluzione di un problema La programmazione Ver. 2.4 Permette di ottenere un risultato eseguendo una sequenza finita di operazioni elementari Esempi: Una ricetta di cucina

Dettagli

Esercitazioni di Elementi di Informatica

Esercitazioni di Elementi di Informatica Esercitazioni di Elementi di Informatica Docente: Prof. Angelo Chianese angelo.chianese@unina.it Tutor: Ing. Antonio Picariello antonio.picariello@unina.it Interpreti e Compilatori Interprete Es. Qbasic

Dettagli

EXCEL: FORMATTAZIONE E FORMULE

EXCEL: FORMATTAZIONE E FORMULE EXCEL: FORMATTAZIONE E FORMULE Test VERO o FALSO (se FALSO giustifica la risposta) 1) In excel il contenuto di una cella viene visualizzato nella barra di stato 2) In excel il simbolo = viene utilizzato

Dettagli

EXCEL: FORMATTAZIONE E FORMULE

EXCEL: FORMATTAZIONE E FORMULE EXCEL: FORMATTAZIONE E FORMULE Test VERO o FALSO (se FALSO giustifica la risposta) 1) In excel il contenuto di una cella viene visualizzato nella barra di stato 2) In excel il simbolo = viene utilizzato

Dettagli

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Le Strutture di controllo Del Linguaggio C Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni STRUTTURE DI CONTROLLO PRIMITIVE SEQUENZA SELEZIONE (o scelta logica) ITERAZIONE NON PRIMITIVE

Dettagli

Programmazione I. Fondamenti di programmazione. Problemi, Algoritmi, Diagrammi di flusso

Programmazione I. Fondamenti di programmazione. Problemi, Algoritmi, Diagrammi di flusso Programmazione I Fondamenti di programmazione ( Lezione I ) Problemi, Algoritmi, Diagrammi di flusso Fabrizio Messina messina@dmi.unict.it www.dmi.unict.it/~messina Algoritmo Dato un problema, un algoritmo

Dettagli

Excel Base- Lezione 3. Barbara Pocobelli Estav Nord Ovest. Il comando Trova

Excel Base- Lezione 3. Barbara Pocobelli Estav Nord Ovest. Il comando Trova Excel Base- Lezione 3 Il comando Trova 1. Fare clic su Modifica nella Barra dei menu. 2. Fare clic su Trova. Appare una finestra con una casella in cui digitare il valore da ricercare. Viene digitato il

Dettagli

14Ex-Cap11.qxd :20 Pagina Le macro

14Ex-Cap11.qxd :20 Pagina Le macro 14Ex-Cap11.qxd 21-12-2006 11:20 Pagina 203 11 Le macro Creare le macro Registrare una macro Eseguire una macro Riferimenti assoluti e relativi nelle macro Assegnare un pulsante a una macro Modificare una

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

Il linguaggio C. Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1

Il linguaggio C. Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1 Il linguaggio C I linguaggi di programmazione ad alto livello sono linguaggi formali ( sintassi e semantica formalmente definite) però sono compatti e comprensibili. Le tipologie di linguaggi sono: procedurali

Dettagli

MINIMANUALE VBA PER CREARE MACRO NEI FOGLI EXCEL

MINIMANUALE VBA PER CREARE MACRO NEI FOGLI EXCEL MINIMANUALE VBA PER CREARE MACRO NEI FOGLI EXCEL ISTRUZIONI PIU COMUNI: Le istruzioni per scrivere del testo dentro una cella sono principalmente due: cells e range L istruzione cells permette di scrivere

Dettagli

STRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER

STRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER 1 STRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER Un computer e una macchina che riceve in ingresso delle informazioni, le elabora secondo un determinato procedimento e produce dei risultati che vengono

Dettagli

Cenni sull utilizzo dei fogli elettronici

Cenni sull utilizzo dei fogli elettronici Cenni sull utilizzo dei fogli elettronici I fogli elettronici ciascun foglio elettronico si presenta come un enorme matrice di dimensioni 65.536 righe per 256 colonne l unità fondamentale della matrice

Dettagli

MODULO 07. La soluzione dei problemi mediante gli algoritmi

MODULO 07. La soluzione dei problemi mediante gli algoritmi MODULO 07 La soluzione dei problemi mediante gli algoritmi MODULO 07 Unità didattica 02 Impariamo a fare i diagrammi a blocchi In questa lezione impareremo: come descrivere l algoritmo risolutivo utilizzando

Dettagli