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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

1 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 le istruzioni elementari dell algoritmo sono una di seguito all altra come mostra la figura: Problema1: 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 Primo numero B Secondo numero Som Somma dei 2 numeri 2) Individuazione dell algoritmo per passi Algoritmo per passi 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. visualizza 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à 1

2 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 Problema2: Dati un numero A, calcolare il suo quadrato QA e il suo doppio DA e li stampi. 1) Tabelle delle variabili di input e output A QA DA Primo numero Quadrato di A Doppio di A 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 2

3 4) Creazione del form Visualbasic. Net 5) CODIFICA PULSANTE Calcola ' DICHIARAZIONE DELLE VARIABILI DIM a, qa, da, As Integer ' INPUT DEL VALORE DI 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 Problema3: 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 SOM P Area Base maggiore base minore Altezza Somma (B1+b2) Prodotto SOM*H Area del trapezio P/2 2. Dammi il valore della base maggiore B1 3. Dammi il valore della base minore b2 4. Dammi il valore dell altezza H 5. Somma la base B1 con la B2 6. Assegna a som, la somma del punto 5 7. Moltiplica le variabili som e h 8. Assegna a P, il prodotto del punto 7 9. Dividi il prodotto per Assegna ad Area, la divisione del punto Stampa a video l area A 10. Fine Inizio B1,b2,H som =B1+b2 P = som * H Area = P / 2 Area Fine 3

4 4) Creazione del form Visualbasic. Net 5) CODIFICA PULSANTE Calcola ' DICHIARAZIONE DELLE VARIABILI Dim B1, B2, H, Som, P As Integer Dim A As Double ' INPUT DEI VALORI DI B1, b2 e H B1 = Val (txtb1.text) B2 = Val (txtb2.text) H = Val (txth.text) ' CALCOLO DELL AREA DEL TRAPEZIO Som = B1 + B2 P = Som * H A = P / 2 ' STAMPA DELL AREA DEL TRAPEZIO txta.text = A Problema4: 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 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

5 4) Creazione del form Visualbasic. Net 5) CODIFICA PULSANTE Calcola C ' DICHIARAZIONE DELLE VARIABILI 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 Problema5: 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 TEMP Primo valore Secondo valore Variabile temporanea di appoggio 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 5

6 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 Problema6: 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 TEMP Primo valore Secondo valore Terzo valore Quarto Valore Variabile temporanea di appoggio 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 6

7 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 Problema7: 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 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 7

8 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 Problem8: 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 Lira Franco DollaroUsa DollaroAustr Scellino Yen Corona Sterlina Valuta in Euro 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 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 8

9 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 Problema9: 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 SOMMA Primo Numero Secondo Numero Somma dei 2 numeri Algoritmo per passi Creazione del form Visualbasic. Net 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. 9

10 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" 10

11 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 Problema10: 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 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 11

12 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 PARAGRAFO 2 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) End If 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 End If OUTPUT MsgBox(Max) 12

13 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 Problema11: Dati due numeri N1 e N2, determinare il minimo e il massimo e stamparli 1) Tabelle delle variabili di input e output N1 N2 MIN MA Primo Numero Secondo Numero Minimo tra i due numeri Massimo tra due numeri 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 End If ' output lbl4.text = Max lbl5.text = Min 13

14 Problema12 : 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 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 End If Problema13: 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 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 End If If N2 > 0 Then POS = N1 lbl4.text = POS Else NEG = N2 Lbl3.Text = NEG End If 14

15 Problema14: 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 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 End If If R2 = 0 Then PARI = N2; lbl4.text = PARI Else DISP = N2; lbl3.text = DISP End If Problema15: 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 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 End If If N3 > Max Then Max = N3 End If ' output lbl5.text = Max 15

16 PROBLEMA16: 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 SOM Primo Numero Secondo Numero Terzo Numero Somma dei numeri positivi 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 End If If N2 > 0 Then SOM=SOM+N2 End If If N3 > 0 Then SOM=SOM+N3 End If ' output lbl5.text = SOM La variabile conteggio Una variabile conteggio è un contatore che viene inizializzato al valore zero 1 e poi viene incrementato di una unità ogni qual volta si verifica una certa condizione. PROBLEMA17: 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 CONTPOS Primo Numero Secondo Numero Terzo Numero Contatore di numeri positivi 1 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. 16

17 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 End If If N2 > 0 Then CONTPOS+=1 End If If N3 > 0 Then CONTPOS+=1 End If ' output lbl5.text = CONTPOS PROBLEMA18: 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 CONTPARI Q1, Q2 R1, R2 Primo Numero Secondo Numero Terzo Numero Contatore dei numeri pari Quozienti Q1 e Q2 Resto R1 e R2 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 End If If R2 = 0 Then CONTPARI+=1 End If If R3 = 0 Then CONTPARI+=1 End If ' output lbl5.text = CONTPOS 17

18 PROBLEMA19: 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 T Primo Numero Secondo Numero Terzo Numero Variabile Temporanea 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 End If If a > c Then t = a a = c c = t End If ' calcolo del minimo tra b e c e lo si mette al secondo posto If b > c Then t = b b = c c = t End If ' 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") 18

19 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 20. 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 b qb Numero da verificare Parte intera radice quadrata di a Quadrato di b 19

20 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" End If 4) Creazione del form Visualbasic. Net PROBLEMA21: 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 x Coefficiente della x Coefficiente termine noto Soluzione dell equazione 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 End If If (b=0 And c<>0) Then MsgBox("b=0 e c<>0 non esistono soluzioni",32, "Attenzione")End If If (b=0 And c=0) Then 'caso in cui b = 0 e c = 0 MsgBox(" 0=0 infinite soluzioni ", 32, "Attenzione")End If 20

21 PROBLEMA22: 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 delta x1 x2 Coefficiente della x 2 Coefficiente della x Termine noto Valore = b 2-4*a*c Prima radice Seconda radice 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 End If Problema23: 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à 21

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

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

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

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

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

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

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

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 Excel con il linguaggio Visual Basic

Programmazione in Excel con il linguaggio Visual Basic Programmazione in Excel con il linguaggio Visual Basic L'ambiente di programmazione Il foglio elettronico Excel, così come gli altri prodotti Office di Microsoft, possiede un vero e proprio ambiente di

Dettagli

Struttura logica di un programma

Struttura logica di un programma Struttura logica di un programma Tutti i programmi per computer prevedono tre operazioni principali: l input di dati (cioè l inserimento delle informazioni da elaborare) il calcolo dei risultati cercati

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

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base: LA STRUTTURA DI RIPETIZIONE La ripetizione POST-condizionale La ripetizione PRE-condizionale INTRODUZIONE (1/3) Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto

Dettagli

Corso di Visual Basic (Parte 8)

Corso di Visual Basic (Parte 8) Corso di Visual Basic (Parte 8) di MAURIZIO CRESPI Questo mese il corso di programmazione in Visual Basic focalizza la propria attenzione sulle procedure, talvolta dette subroutine L oggetto dell ottava

Dettagli

JAVASCRIPT. Tale file è associato alla pagina web mediante il tag