vb cicli lavoro repeat

12
Visual Basic Ciclo di lavoro Repeat Cicli di lavoro annidati

Upload: floste

Post on 05-Dec-2014

4.311 views

Category:

Technology


0 download

DESCRIPTION

Dallo pseudocodice al codice Un problema che prevede l'uso di cicli di lavoro di tipo repeat annidati

TRANSCRIPT

Page 1: VB  Cicli  Lavoro  Repeat

Visual Basic

Ciclo di lavoro Repeat

Cicli di lavoro annidati

Page 2: VB  Cicli  Lavoro  Repeat

Questa opera è sotto licenza

Si puo’ usarla liberamente… • Citando la fonte

• Per scopi non commerciali

• Rimettendola a disposizione di tutti con la stessa licenza

Presentazione diRiccardo Renai & Niccolò Fontani

supervisione di Stefano Floris [email protected](per scopi commerciali occorre richiedere espressa autorizzazione)

Page 3: VB  Cicli  Lavoro  Repeat

Esercizio:

Per ognuno degli N alunni di una classe, sono noti i voti riportati in ciascuna delle N materie del corso. Determinare per ogni alunno il suo voto medio e il numero delle insufficienze riportate.

DATI OUTPUT: voto medio di ogni alunno e numero di insufficienze di ogni alunno.

DATI INPUT: Numero degli alunni; numero materie, voto di ciascun alunno in ogni materia.

A questo punto dobbiamo distinguere i DATI INPUT e i DATI OUTPUT:

Page 4: VB  Cicli  Lavoro  Repeat

Nome

Variabile

Contenuto Tipo I/O/L

NA Numero alunni Numerico I

NM Numero materie

Numerico I

VM Voto materie Numerico I

MED Voto medio per alunno

Numerico O

SV Somma voti per alunni

Numerico L

NI Numero insuf. per alunno

Numerico O

CONTA Contatore alunni

Numerico L

CONTM Contatore materie

Numerico L

Descrizione variabili

Page 5: VB  Cicli  Lavoro  Repeat

INIZIO

Leggi (NA;NM)

CONTA=O

Ripeti

CONTM=0

SV=0

NI=0

CONTA=CONTA+1

Ripeti

CONTM=CONTM+1

Leggi(VM)

SV=SV+VM

SE VM<6 ALLORA

NI=NI+1

FINE SE

FINO A CHE CONTM=NM

MED=SV/NM

Scrivi (MED;NI)

FINO A CHE CONTA=NA

FINE

Page 6: VB  Cicli  Lavoro  Repeat

INIZIO

NA;NM

CONTA=O

CONTM=OSV=0NI=0

CONTA=CONTA+1

CONTM=CONTM+1

VM

SV=SV+VM

VM<6? NI=NI+1

CONTM=NM?

MED=SV/NM

MED;NI

CONT=NA?

FINE

A

AB

BC

C

D

D

F

F

F

V

V

V

I

I

O

Page 7: VB  Cicli  Lavoro  Repeat

Name: txtNumeroalunni

Name: txtNumeromaterie

Name: cmdPremiqui

Caption: &Premi qui

Name: frmDoppioripeti

Caption: Doppio Ripeti

La E commerciale (&) serve per sottolineare la lettera che vogliamo appunto sottolineare, in questo caso la P

Page 8: VB  Cicli  Lavoro  Repeat

Descrizione variabili:

DATI DI ELABORAZIONE:

SV = Somma voti per alunno

CONTA = Contatore alunni

CONTM = Contatore materie

DATI OUTPUT:

MED = Voto medio per alunno

NI = Numero insufficienze per alunno

DATI INPUT:

NA = Numero alunni

NM = Numero materie

VM = Voto materie

Page 9: VB  Cicli  Lavoro  Repeat

Adesso dobbiamo dimensionare le variabili:

Option Explicit

‘Dati Input

Dim NA As Integer

Dim NM As Double

Dim VM As Double

‘Dati Elaborazione

Dim SV As Double

Dim CONTA As Integer

Dim CONTM As Integer

‘Dati Output

Dim MED As Double

Dim NI As Integer

Page 10: VB  Cicli  Lavoro  Repeat

Dopo aver dimensionato le variabili bisogna iniziare a fare lo PSEUDOCODICE:

Dopo vi verrà scritto Private Sub cmdPremiqui_Click()

Ecco fatto ora possiamo tradurre lo pseudocodice.

Dobbiamo cliccare su cmdPremiqui:

Page 11: VB  Cicli  Lavoro  Repeat

Come prima cosa dobbiamo fare:

NA = txtNumeroalunni.Text

NM = txtNumeromaterie.Text

Successivamente dobbiamo azzerare la variabile CONTA (le altre le azzereremo dopo):

CONTA = 0

FINALMENTE POSSIAMO PARTIRE!!!

Ora metteremo le istruzioni all’interno del ripeti ma in questo caso ce ne sono due:

Do (Ripeti)

Do (Ripeti)

Loop Until (Fino a che “istruzione”)

Loop Until (Fino a che “istruzione”)

Qui dentro ci metteremo le istruzioni

Page 12: VB  Cicli  Lavoro  Repeat

‘ Input dati inizialiNA = txtNumeroalunni.TextNM = txtNumeromaterie.Text

‘ Azzeramento variabili

'Inizio ciclo studenti

CONTA = 0

Do

CONTA = CONTA + 1

SV = 0

NI = 0

‘ciclo materie

CONTM = 0 ‘contatore materie

Do

CONTM = CONTM + 1

VM = Val(InputBox("Dimmi il voto " & CStr(CONTA)))

SV = SV + VM

‘ Se insufficiente, lo conteggio

If VM < 6 Then

NI = NI + 1

End If

Loop Until CONTM = NM ‘ Controllo se ho fatto tutte le materie

MED = SV / NM

MsgBox "La media è " & CStr(MED)

MsgBox "Insufficienze " & CStr(NI)

Loop Until CONTA = NA ‘ Controllo se ho contato tutti gli studenti

Istruzione IF (SE) … Then (ALLORA)

End If (FINE SE)