1 / 36

Programmare in Visual Basic

Programmare in Visual Basic. Istruzione SE Contatori Ciclo di ripetizione. Testo del problema. Per ciascuno degli N prodotti acquistati da un cliente in un negozio sono noti: il prezzo unitario e la categoria merceologica (due tipi di categorie, supponiamo A e B).

leala
Download Presentation

Programmare in Visual Basic

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programmare in Visual Basic • Istruzione SE • Contatori • Ciclo di ripetizione

  2. Testo del problema Per ciascuno degli N prodotti acquistati da un cliente in un negozio sono noti: il prezzo unitario e la categoria merceologica (due tipi di categorie, supponiamo A e B). Determinare (cioè calcolare): • Il numero di prodotti di categoria A • Il numero di prodotti di categoria B • L’importo totale dovuto dal cliente prima dello sconto • L’importo totale scontato sapendo che lo sconto è del 3% sul totale.

  3. Facciamo un esempioimmaginiamo… Un negozio Il nostro carrello Una cassa

  4. Noi che dobbiamo fare il programma, dove stiamo? Noi ci dobbiamo immaginare di essere dentro la cassa!

  5. E che ci facciamo li dentro?

  6. Dobbiamo fare lo scontrino! • E per farlo dobbiamo vedere tutti i prodotti, controllare di quale categoria sono e il loro prezzo

  7. Ma attenzione!C’è solo una piccola differenza. Rispetto ad una cassa vera noi abbiamo bisogno di sapere prima quanti prodotti ci sono nel carrello .

  8. Quindi partiremo così: Quanti articoli ci sono nel carrello?

  9. Poi possiamo partire a fare il lavoro per tante volte quanti sono gli articoli nel carrello

  10. Dati in input • NP = numero prodotti • P = prezzo • CM = categoria merceologica

  11. Dati in Output • ITOT: Importo totale • CONTB: Numero prodotti di categoria A • CONTA: Numero prodotti di categoria B • ISCONT: Importo scontato Dunque…abbiamo risposto a quello che chiedeva il testo del problema?

  12. Per ciascuna domanda abbiamo una risposta! • Per ciascuno degli N prodotti acquistati da un cliente in un negozio sono noti: il prezzo unitario e la categoria merceologica (due tipi di categorie, supponiamo A e B). Determinare (cioè calcolare): • Il numero di prodotti di categoria A (CONTA) • Il numero di prodotti di categoria B (CONTB) • L’importo totale dovuto dal cliente prima dello sconto (ITOT) • L’importo totale scontato sapendo che lo sconto è del 3% sul totale (ISCONT).

  13. Dati elaborazione • Cont: numero totale di prodotti acquistati

  14. A i NP ISCONT=ITOT-(ITOT*3/100) CONT=0 CONTA=0 CONTB=0 ITOT=0 o ITOT,ISCONT, CONTA,CONTB P;CM Cont=cont+1 CM=“A” F v CONTB=CONTB+1 CONTA=CONTA+1 ITOT=ITOT+P Questo è il ciclo. Cioè le istruzioni ripetute NP volte. CONT=NP F Inizio Quanti articoli ci sono nel carrello? NP! i FINE v A

  15. A Calcolo dello sconto! ISCONT=ITOT-(ITOT*3/100) o ITOT,ISCONT, CONTA,CONTB • Finalmente esce lo scontrino con - Importo totale • Importo scontato- Quanti prodotti di tipo A • E quanti di tipo B Anche questa è una elaborazione. Però è fuori dal ciclo. Infatti viene svolta dopo che sono passati tutti i prodotti dalla cassa. FINE

  16. i NP E in Visual Basic, come si traduce? Cominciamo dall’inizio. Le prime operazioni di input. Inizio TextBox Nome: txtNP Command Nome: cmdPassaAllaCassa

  17. Per adesso è facile. Ma il ciclo? Calma, calma. Adesso inizia il codice ma…. Option Explicit ' Dati di input Dim Np As Integer Dim P As Double Dim CM As String ' Dati di elaborazione Dim Cont As Integer ' Dati di OutPut Dim ContA As Integer Dim ContB As Integer Dim ITot As Double Dim Iscont As Double Un passo per volta! Prima dichiariamo le variabili!

  18. Il codice da scrivere deve essere eseguito alla pressione del pulsante cmdPassaAllaCassa

  19. Option Explicit ' Dati di input Dim Np As Integer Dim P As Double Dim CM As String ' Dati di elaborazione Dim Cont As Integer ' Dati di OutPut Dim ContA As Integer Dim ContB As Integer Dim ITot As Double Dim Iscont As Double Private Sub cmdPassaAllaCassa_Click() End Sub Leggendo il diagramma a blocchi, cominceremo a scrivere qui!

  20. i NP Option Explicit ' Dati di input Dim Np As Integer Dim P As Double Dim CM As String ' Dati di elaborazione Dim Cont As Integer ' Dati di OutPut Dim ContA As Integer Dim ContB As Integer Dim ITot As Double Dim Iscont As Double Private Sub cmdPassaAllaCassa_Click() NP = txtNP.text End Sub

  21. CONT=0 CONTA=0 CONTB=0 ITOT=0 Elaborazione Private Sub cmdPassaAllaCassa_Click() NP = txtNP.text End Sub ‘ Azzeramento variabili Cont=0 ContA = 0 ContB = 0 Itot=0

  22. P;CM Cont=cont+1 CM=“A” F v CONTB=CONTB+1 CONTA=CONTA+1 ITOT=ITOT+P Questo è il ciclo. Cioè le istruzioni ripetute NP volte. CONT=NP F Cominciamo a tradurre le istruzioni La prima istruzione del CICLO non si vede ma c’è! L’ultima istruzione del ciclo è quella da dove parte la freccia che torna indietro per RIPETERE

  23. Elaborazione Private Sub cmdPassaAllaCassa_Click() NP = txtNP.text End Sub Infatti si scrivono le istruzioni che rappresentano l’INIZIO e la FINE del ciclo ‘ Azzeramento variabili Cont=0 ContA = 0 ContB = 0 Itot=0 ‘Inizio Ciclo Repeat Loop Until CONT = NP Tra la REPEAT e la LOOP metteremo le altre istruzioni

  24. P;CM Cont=cont+1 CM=“A” F v CONTB=CONTB+1 CONTA=CONTA+1 ITOT=ITOT+P Questo è il ciclo. Cioè le istruzioni ripetute NP volte. CONT=NP F Quindi, si scrive dove inizia e dove finisce il ciclo… REPEAT LOOP UNTIL CONT=NP

  25. A questo punto si passa alle istruzioni del CICLO Questa è una istruzione di INPUT. P;CM Fino ad adesso abbiamo imparato a tradurla con i TextBox. Cont=cont+1 CM=“A” F v CONTB=CONTB+1 CONTA=CONTA+1 Ma se siamo dentro un ciclo dobbiamo usare la InputBox, anzi due inputbox perché due sono le variabili (P e CM) ITOT=ITOT+P CONT=NP F

  26. Attenzione!!Un simbolo e due istruzioni. P;CM ‘Inizio Ciclo DO P = InputBox(“Dimmi il prezzo”) CM = InputBox(“Dimmi la categoria”) Loop Until CONT = NP

  27. Questa è facile! E’ una assegnazione. Cont=cont+1 ‘Inizio Ciclo Do P = InputBox(“Dimmi il prezzo”) CM = InputBox(“Dimmi la categoria”) Cont = Cont + 1 Loop Until CONT = NP

  28. CM=“A” F v ‘Inizio Ciclo Do P = InputBox(“Dimmi il prezzo”) CM = InputBox(“Dimmi la categoria”) Cont = Cont + 1 IF CM=“A” THEN ELSE END IF Loop Until CONT = NP E quando trovo una struttura condizionale la traduco con la se. Scrivo tutta la se, compreso IF, THEN, ELSE e l’ENDIF, poi dentro metto le istruzioni

  29. CM=“A” F v CONTB=CONTB+1 CONTA=CONTA+1 ‘Inizio Ciclo Do P = InputBox(“Dimmi il prezzo”) CM = InputBox(“Dimmi la categoria”) Cont = Cont + 1 IF CM=“A” THEN CONTA = CONTA+1 ELSE CONTB = CONTB+1 END IF Loop Until CONT = NP Le istruzioni della struttura condizionale (il se) le porto al posto giusto. In questo caso sono due assegnazioni Stiamo conteggiando i prodotti per categoria

  30. ‘Inizio Ciclo Do P = InputBox(“Dimmi il prezzo”) CM = InputBox(“Dimmi la categoria”) Cont = Cont + 1 IF CM=“A” THEN CONTA = CONTA+1 ELSE CONTB = CONTB+1 END IF ITOT=ITOT+P Loop Until CONT = NP ITOT=ITOT+P Qui invece, sommo l’importo totale

  31. DOVE SIAMO? P;CM Cont=cont+1 CM=“A” F v CONTB=CONTB+1 CONTA=CONTA+1 QUI!!! ITOT=ITOT+P CONT=NP F

  32. A ISCONT=ITOT-(ITOT*3/100) o ITOT,ISCONT, CONTA,CONTB Manca, poco… Il calcolo dell’importo scontato L’Output dei risultati FINE

  33. ‘Inizio Ciclo Do P = InputBox(“Dimmi il prezzo”) CM = InputBox(“Dimmi la categoria”) Cont = Cont + 1 IF CM=“A” THEN CONTA = CONTA+1 ELSE CONTB = CONTB+1 END IF ‘ calcolo importo totale ITOT=ITOT+P Loop Until CONT = NP ‘ Calcolo importo scontato ISCONT=ITOT-(ITOT*3/100) A ISCONT=ITOT-(ITOT*3/100) o ITOT,ISCONT, CONTA,CONTB FINE

  34. ‘Inizio Ciclo Do P = InputBox(“Dimmi il prezzo”) CM = InputBox(“Dimmi la categoria”) Cont = Cont + 1 IF CM=“A” THEN CONTA = CONTA+1 ELSE CONTB = CONTB+1 END IF ‘ calcolo importo totale ITOT=ITOT+P Loop Until CONT = NP ‘ Calcolo importo scontato ISCONT=ITOT-(ITOT*3/100) MsgBox “L’importo totale è “ & cstr(Itot) MsgBox “L’importo scontato è “ & cstr(Iscont) MsgBox “I prodotti di tipo A sono “ & cstr(ContA) MsgBox “I prodotti di tipo B sono “ & cstr(ContB) A ISCONT=ITOT-(ITOT*3/100) o ITOT,ISCONT, CONTA,CONTB FINE

  35. Che aspettate a provare il programma?

  36. Approfondimenti Che succede se ho una struttura condizionale solo con il vero? CM=“A” F v Come si traduce in VB? CONTA=CONTA+1 IF CM=“A” THEN CONTA = CONTA+1 END IF

More Related