VB Cicli Lavoro Repeat

2,788 views
2,680 views

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,788
On SlideShare
0
From Embeds
0
Number of Embeds
33
Actions
Shares
0
Downloads
39
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

VB Cicli Lavoro Repeat

  1. 1. Visual Basic Ciclo di lavoro Repeat Cicli di lavoro annidati
  2. 2. Questa opera è sotto licenza Si puo’ usarla liberamente… <ul><li>Citando la fonte </li></ul><ul><li>Per scopi non commerciali </li></ul><ul><li>Rimettendola a disposizione di tutti con la stessa licenza </li></ul><ul><li>Presentazione di </li></ul><ul><li>Riccardo Renai & Niccolò Fontani </li></ul><ul><li>supervisione di Stefano Floris [email_address] </li></ul><ul><li>(per scopi commerciali occorre richiedere espressa autorizzazione) </li></ul>
  3. 3. 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 :
  4. 4. Descrizione variabili L Numerico Contatore materie CONTM L Numerico Contatore alunni CONTA O Numerico Numero insuf. per alunno NI L Numerico Somma voti per alunni SV O Numerico Voto medio per alunno MED I Numerico Voto materie VM I Numerico Numero materie NM I Numerico Numero alunni NA I/O/L Tipo Contenuto Nome Variabile
  5. 5. 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
  6. 6. INIZIO NA;NM CONTA=O CONTM=O SV=0 NI=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 A B B C C D D F F F V V V I I O
  7. 7. 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
  8. 8. 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
  9. 9. 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
  10. 10. 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 :
  11. 11. 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
  12. 12. ‘ Input dati iniziali NA = txtNumeroalunni.Text NM = 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(&quot;Dimmi il voto &quot; & 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 &quot;La media è &quot; & CStr(MED) MsgBox &quot;Insufficienze &quot; & CStr(NI) Loop Until CONTA = NA ‘ Controllo se ho contato tutti gli studenti Istruzione IF (SE) … Then (ALLORA) End If (FINE SE)

×