Programmare in Visual Basic

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

description

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). - PowerPoint PPT Presentation

Transcript of Programmare in Visual Basic

Page 1: Programmare in Visual Basic

Programmare in Visual Basic

• Istruzione SE

• Contatori

• Ciclo di ripetizione

Page 2: Programmare in Visual Basic

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

Facciamo un esempioimmaginiamo…

Un negozio

Una cassa

Il nostro carrello

Page 4: Programmare in Visual Basic

Noi che dobbiamo fare il programma, dove stiamo?

Noi ci dobbiamo immaginare di essere dentro la cassa!

Page 5: Programmare in Visual Basic

E che ci facciamo li dentro?

Page 6: Programmare in Visual Basic

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

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

Quindi partiremo così:Quanti articoli ci

sono nel carrello?

Page 9: Programmare in Visual Basic

Poi possiamo partire a fare il lavoro

per tante volte quanti sono gli articoli nel carrello

Page 10: Programmare in Visual Basic

Dati in input

• NP = numero prodotti

• P = prezzo

• CM = categoria merceologica

Page 11: Programmare in Visual Basic

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

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

Dati elaborazione

• Cont: numero totale di prodotti acquistati

Page 14: Programmare in Visual Basic

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

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

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

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

Il codice da scrivere deve essere eseguito alla pressione del

pulsante cmdPassaAllaCassa

Page 19: Programmare in Visual Basic

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

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

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

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

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

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

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

‘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

‘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

‘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

‘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

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

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

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

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

‘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

Che aspettate a provare il programma?

Page 36: Programmare in Visual Basic

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