La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

Presentazioni simili


Presentazione sul tema: "Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione."— Transcript della presentazione:

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 -Limporto totale dovuto dal cliente prima dello sconto -Limporto totale scontato sapendo che lo sconto è del 3% sul totale.

3 Facciamo un esempio immaginiamo… Un negozio Una cassa Il nostro carrello

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) Limporto totale dovuto dal cliente prima dello sconto (ITOT) Limporto totale scontato sapendo che lo sconto è del 3% sul totale (ISCONT).

13 Dati elaborazione Cont: numero totale di prodotti acquistati

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

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

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

17 Per adesso è facile. Ma il ciclo? Calma, calma. Adesso inizia il codice ma…. Un passo per volta! Prima dichiariamo le variabili! 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

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 NP i 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 Elaborazione Private Sub cmdPassaAllaCassa_Click() NP = txtNP.text End Sub CONT=0 CONTA=0 CONTB=0 ITOT=0 Azzeramento variabili Cont=0 ContA = 0 ContB = 0 Itot=0

22 Cominciamo a tradurre le istruzioni v F F P;CM Cont=cont+1 CM=A CONTA=CONTA+1 CONTB=CONTB+1 ITOT=ITOT+P CONT=NP Questo è il ciclo. Cioè le istruzioni ripetute NP volte. La prima istruzione del CICLO non si vede ma cè! Lultima 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 Azzeramento variabili Cont=0 ContA = 0 ContB = 0 Itot=0 Inizio Ciclo Repeat Loop Until CONT = NP Infatti si scrivono le istruzioni che rappresentano lINIZIO e la FINE del ciclo Tra la REPEAT e la LOOP metteremo le altre istruzioni

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

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

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

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

28 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 CM=A E quando trovo una struttura condizionale la traduco con la se. vF Scrivo tutta la se, compreso IF, THEN, ELSE e lEND IF, poi dentro metto le istruzioni

29 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 F CM=A CONTA=CONTA+1 CONTB=CONTB+1 v 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 ITOT=ITOT+P 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 Qui invece, sommo limporto totale

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

32 Manca, poco… ISCONT=ITOT-(ITOT*3/100) ITOT,ISCONT, CONTA,CONTB o A FINE Il calcolo dellimport o scontato LOutput dei risultati

33 ISCONT=ITOT-(ITOT*3/100) ITOT,ISCONT, CONTA,CONTB o A FINE 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)

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 Limporto totale è & cstr(Itot) MsgBox Limporto scontato è & cstr(Iscont) MsgBox I prodotti di tipo A sono & cstr(ContA) MsgBox I prodotti di tipo B sono & cstr(ContB) ISCONT=ITOT-(ITOT*3/100) ITOT,ISCONT, CONTA,CONTB o A FINE

35 Che aspettate a provare il programma?

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


Scaricare ppt "Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione."

Presentazioni simili


Annunci Google