Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

36
Programmare in Visual Basic • Istruzione SE • Contatori • Ciclo di ripetizione

Transcript of Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

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

Programmare in Visual Basic

• Istruzione SE

• Contatori

• Ciclo di ripetizione

Page 2: 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).

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.

Page 3: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

Facciamo un esempioimmaginiamo…

Un negozio

Una cassa

Il nostro carrello

Page 4: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

Noi che dobbiamo fare il programma, dove stiamo?

Noi ci dobbiamo immaginare di essere dentro la cassa!

Page 5: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

E che ci facciamo li dentro?

Page 6: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

Dobbiamo fare lo scontrino!

• E per farlo dobbiamo vedere tutti i prodotti, controllare di quale categoria sono e il loro prezzo

Page 7: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

Ma attenzione!C’è solo una piccola differenza.

.Rispetto ad una cassa

vera noi abbiamo bisogno di sapere prima quanti prodotti ci sono

nel carrello

Page 8: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

Quindi partiremo così:Quanti articoli ci

sono nel carrello?

Page 9: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

Poi possiamo partire a fare il lavoro

per tante volte quanti sono gli articoli nel carrello

Page 10: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

Dati in input

• NP = numero prodotti

• P = prezzo

• CM = categoria merceologica

Page 11: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

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?

Page 12: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

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).

Page 13: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

Dati elaborazione

• Cont: numero totale di prodotti acquistati

Page 14: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

Inizio

CONT=0CONTA=0CONTB=0

ITOT=0

NP i

vA

Quanti articoli ci sono nel carrello?

NP!

v

F

F

P;CM

Cont=cont+1

CM=“A” CONTA=CONTA+1CONTB=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

Page 15: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

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

Page 16: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

E in Visual Basic, come si traduce?Cominciamo dall’inizio. Le

prime operazioni di input.

Inizio

NP i

TextBox

Nome: txtNP

Command

Nome:

cmdPassaAllaCassa

Page 17: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

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 inputDim Np As IntegerDim P As DoubleDim CM As String

' Dati di elaborazioneDim Cont As Integer

' Dati di OutPutDim ContA As IntegerDim ContB As IntegerDim ITot As DoubleDim Iscont As Double

Page 18: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

Il codice da scrivere deve essere eseguito alla pressione del

pulsante cmdPassaAllaCassa

Page 19: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

Option Explicit' Dati di inputDim Np As IntegerDim P As DoubleDim CM As String

' Dati di elaborazioneDim Cont As Integer

' Dati di OutPutDim ContA As IntegerDim ContB As IntegerDim ITot As DoubleDim Iscont As Double

Private Sub cmdPassaAllaCassa_Click()

End Sub

Leggendo il diagramma a

blocchi, cominceremo a

scrivere qui!

Page 20: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

NP i

Option Explicit' Dati di inputDim Np As IntegerDim P As DoubleDim CM As String

' Dati di elaborazioneDim Cont As Integer

' Dati di OutPutDim ContA As IntegerDim ContB As IntegerDim ITot As DoubleDim Iscont As Double

Private Sub cmdPassaAllaCassa_Click()

NP = txtNP.text

End Sub

Page 21: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

ElaborazionePrivate Sub cmdPassaAllaCassa_Click()NP = txtNP.text

End Sub

CONT=0CONTA=0CONTB=0

ITOT=0

‘ Azzeramento variabili

Cont=0

ContA = 0

ContB = 0

Itot=0

Page 22: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

Cominciamo a tradurre le istruzioni

v

F

F

P;CM

Cont=cont+1

CM=“A” CONTA=CONTA+1CONTB=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’è!

L’ultima istruzione del ciclo è quella da dove parte la

freccia che torna indietro per RIPETERE

Page 23: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

ElaborazionePrivate 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 l’INIZIO e la FINE del ciclo

Tra la REPEAT e la

LOOP metteremo le altre istruzioni

Page 24: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

Quindi, si scrive dove inizia e dove finisce il ciclo…

v

F

F

P;CM

Cont=cont+1

CM=“A” CONTA=CONTA+1CONTB=CONTB+1

ITOT=ITOT+P

CONT=NP

Questo è il ciclo. Cioè le istruzioni ripetute NP volte.

REPEAT

LOOP UNTIL CONT=NP

Page 25: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

A questo punto si passa alle istruzioni del CICLO

v

F

F

P;CM

Cont=cont+1

CM=“A” CONTA=CONTA+1CONTB=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)

Page 26: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

‘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.

Page 27: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

‘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.

Page 28: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

‘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 l’END IF, poi

dentro metto le istruzioni

Page 29: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

‘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

FCM=“A”

CONTA=CONTA+1CONTB=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

Page 30: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

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 l’importo

totale

Page 31: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

DOVE SIAMO?

v

F

F

P;CM

Cont=cont+1

CM=“A” CONTA=CONTA+1CONTB=CONTB+1

ITOT=ITOT+P

CONT=NP

QUI!!!

Page 32: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

Manca, poco…

ISCONT=ITOT-(ITOT*3/100)

ITOT,ISCONT,CONTA,CONTB

o

A

FINE

Il calcolo dell’importo scontato

L’Output dei risultati

Page 33: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

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 scontatoISCONT=ITOT-(ITOT*3/100)

Page 34: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

‘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 totaleITOT=ITOT+P

Loop Until CONT = NP

‘ Calcolo importo scontatoISCONT=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)

ISCONT=ITOT-(ITOT*3/100)

ITOT,ISCONT,CONTA,CONTB

o

A

FINE

Page 35: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

Che aspettate a provare il programma?

Page 36: Programmare in Visual Basic Istruzione SE Contatori Ciclo di ripetizione.

Approfondimenti

FCM=“A”

CONTA=CONTA+1

vChe succede se ho una struttura

condizionale solo con il

vero?Come si traduce in VB?

IF CM=“A” THEN

CONTA = CONTA+1

END IF