vb cicli lavoro repeat
DESCRIPTION
Dallo pseudocodice al codice Un problema che prevede l'uso di cicli di lavoro di tipo repeat annidatiTRANSCRIPT
Visual Basic
Ciclo di lavoro Repeat
Cicli di lavoro annidati
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)
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:
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
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
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
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
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
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
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:
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
‘ 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)