Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: Esercizi scolastici VB

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    26

    Esercizi scolastici VB

    Ciao a tutti, volevo un vostro parere su questo esercizio e se è fatto bene..
    Allora, progettare e creare un programma che, accettando in ingresso i Nomi e i Voti di 5 studenti, permetta di visualizzare soltanto i nomi degli studenti con insufficenze.

    Ecco quello che ne ho ricavato io:

    Public Class Form1
    Dim Voti(5) As Decimal
    Dim Nomi(5) As String

    Private Sub BtnCarica_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCarica.Click
    For I = 0 To (5 - 1)
    Nomi(I) = InputBox("Inserisci i nomi degli alunni")
    Voti(I) = InputBox("Inserisci i voti delgi alunni")
    Next
    End Sub

    Private Sub BtnVisualizza_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnVisualizza.Click
    For I = 0 To (5 - 1)
    Next
    If Voti(0) < 6 Then
    ListBox1.Items.Add(Voti(0))
    ListBox1.Items.Add(Nomi(0))
    If Voti(1) < 6 Then
    ListBox1.Items.Add(Voti(1))
    ListBox1.Items.Add(Nomi(1))
    If Voti(2) < 6 Then
    ListBox1.Items.Add(Voti(2))
    ListBox1.Items.Add(Nomi(2))
    If Voti(3) < 6 Then
    ListBox1.Items.Add(Voti(3))
    ListBox1.Items.Add(Nomi(3))
    If Voti(4) < 6 Then
    ListBox1.Items.Add(Voti(4))
    ListBox1.Items.Add(Nomi(4))
    End If
    End If
    End If
    End If
    End If
    End Sub
    End Class

    Secondo voi è giusto cosi? o c'è un metodo migliore? per es. invece di fare tutte ste if c'è un modo per raggrupparle in un'unica if o un altro comando..ecc ecc
    e sopratutto secondo voi è giusto? cioè a esse giusot secondo me lo è, perchè esce..però non so voi..ditemi cosa ne pensate

    In effetti dovevo visualizzare solo i nomi, mi sono sbalgiaot ma cmq sia va bene anche cosi..solo che forse visualizzando solo i nomi posso utilizzare msgbox...però sempre la stessa doamnda, come faccio a far apparire i nomi nella stessa finestra senza far apparire 1000 finestre? si può..o sto di una cavolata?

  2. #2
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Ciao. Prossima volta usa i tag code...../code fra parentesi quadre per postare il codice. Veniamo a noi. L'idea delle inputbox è un po' ripetitiva e noiosa per l'utente ma, visto che non so che livello di conoscenza hai del linguaggio, può comunque andare bene.

    Private Sub BtnVisualizza_Click(ByVal sender As System.Object, ByVal e As
    System.EventArgs) Handles BtnVisualizza.Click
    For I = 0 To (5 - 1)
    Next
    Questa non l'ho capita...
    Io farei una cosa del tipo: (sempre nella routine del button visualizza)
    codice:
            For I = 0 To 4
                If Voti(I) < 6 Then
                    ListBox1.Items.Add(Nomi(I) & "è stato valutato con" & Voti(I))
                End If
            Next
    Buon lavoro.
    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    26
    ah ok grazie per il consiglio del code e per avermi aiutato , ora smebra che esce ...perchè in effetti prima ho riprovato, se li mettevo tutit minori di 6 usicvano, mentre se alcuni erano maggiori non appariva niente......xD grazie 1000

  4. #4
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    ah ok grazie per il consiglio del code e per avermi aiutato , ora smebra che esce
    ...perchè in effetti prima ho riprovato, se li mettevo tutit minori di 6 usicvano, mentre se alcuni
    erano maggiori non appariva niente......xD grazie 1000
    Prego e buona programmazione
    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    26
    UP

    Per non creare un altra discussione chiedo qui

    Se potete aiutarmi con questo compito:
    Realizzare un progetto che reigstri i risultait delle verifiche di informatica su tre vettori paralleli: uno per memorizzare il nome dell'alunno, uno per memorizzare le valutazioni della Teoria e uno per le valutaizoni della Pratica. Si preveda:
    -il caricamento dei tre vettori
    -la visualizzazzione in due liste dei nomi degli studenti con valutazione di teoria sufficente e relativa valutazione dell'alunno;
    -il calcolo della media dei voti di Pratica

    codice:
    Public Class Form1    
    Dim Nomi(100) As String    
    Dim VotiTeoria(100), VotiPratica(100), N, MediaPratica, Somma As Decimal    
    
    Private Sub BtnCarica_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCarica.Click         
    N = InputBox("Inserisci il numero degli studenti")         
    For I = 0 To N - 1             
    Nomi(I) = InputBox("Inserisci il nome dell'alunno")             
    VotiPratica(I) = InputBox("Inserisci la valutazione per la Pratica dell'alunno") 
    VotiTeoria(I) = InputBox("Inserisci la valutazione per la Teoria dell'alunno")          
    Next      
    End Sub     
    
    Private Sub BtnVisualizza_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnVisualizza.Click         
    For I = 0 To N - 1            
    If VotiTeoria(I) >= 6 Then                 
    ListBox1.Items.Add(Nomi(I))                 
    ListBox2.Items.Add(VotiTeoria(I))              
    End If         
    Next     
    End Sub      
    
    Private Sub BtnmediaPratica_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnmediaPratica.Click        
    For I = 0 To N - 1            
    Somma = Somma + VotiPratica(I)             
    MediaPratica = Somma / N        
    Next         
    MsgBox(Mediapratica)     
    End Sub
    Questa prima parte l'ho fatta(èm cosi giusto? o 3 vettori paralleli vuol dire che devo fare tre pulsanti carica?..), ora da qualcuno mi servirebbe una mano con questo ultimo pezzo:

    -Prevedere un pulsante che permetta di calcolare, caricare in un array e visualizzare in una lista le valutazioni medie (tra teoria e pratica) per ciascun alunno.


    Ho provato a fare cosi:

    codice:
        
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click         
    For I = 0 To N - 1             
    Somma = Somma + VotiPratica(I)            
    Somma = Somma + VotiTeoria(I)              
    MediaPraticaTeoria = Somma / N            
    ListBox3.Items.Add("la media di " & Nomi(I) & " è " & MediaPraticaTeoria)         
    Next     
    End Sub
    End Class
    Ma

    1)Appaiono
    2) Ma la media non è giusta..cosa ho sbagliato?
    3) però che significa allora che permetta di caricare in un array, devo fare un altor pulsante carica, o comunque ricaricare i dati?..


    inoltre riguardo la media della Prima parte è normale che se riclicco sul pulsante mi dà altri numeri in aumento, per es. la media è 5 e appare giusta, ma poi se riclicco appare 10,15,20 ecc ecc ...e la stessa cosa con quest'ultimo pezzo alla listbox se riclicco sul pulsante riappaiono le stesse scritte ma con numeri piu grandi..

  6. #6
    Ciao.
    Ogni volta che premi ilpulsante:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    For I = 0 To N - 1
    Somma = Somma + VotiPratica(I)
    Somma = Somma + VotiTeoria(I)
    MediaPraticaTeoria = Somma / N
    ListBox3.Items.Add("la media di " & Nomi(I) & " è " & MediaPraticaTeoria)
    Next
    End Sub

    La variabile <Somma> contiene il numero precedente e continu ad incrementarsi.
    Metti un:
    Somma=0 prima del For...
    Luciano.
    Un salutone dall'Alta Maremma...!

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    26
    Originariamente inviato da luky1964
    Ciao.
    Ogni volta che premi ilpulsante:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    For I = 0 To N - 1
    Somma = Somma + VotiPratica(I)
    Somma = Somma + VotiTeoria(I)
    MediaPraticaTeoria = Somma / N
    ListBox3.Items.Add("la media di " & Nomi(I) & " è " & MediaPraticaTeoria)
    Next
    End Sub

    La variabile <Somma> contiene il numero precedente e continu ad incrementarsi.
    Metti un:
    Somma=0 prima del For...
    Luciano.
    ok grazie ora non dà piu quel problema però cmq per quanto riguarda la media che non esce giusta?..e poi il fatto dei verttori paralleli va bene cosi no? o dovevo fare tre carica..?

    Cmq grazie 1000

  8. #8
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Ciao.

    La prima parte del codice è sostanzialmente corretta, anche se sarebbe meglio usare una List(Of T) (ma credo che la studierai più avanti). Inoltre allocare lo spazio per 100 elementi di un'array (che per tre array fa trecento) può essere un po' eccessivo. Se hai già studiato la keyword Redim, questo è il momento di usarla.
    Non ho capito bene la terza consegna: devi visualizzare la media dei voti di pratica di tutti gli studenti insieme o di ogni studente separatamente??
    Inoltre in VB.NET per visualizzare un Box di messaggio è più corretto richiamare il metodo Show della classe Messagbox usando un codice simile a questo:
    codice:
    MessageBox.Show("Messaggio","Titolo", ecc.)
    invece che affidarsi alla vecchia funzione MsgBox di vb6.
    ----
    Mi è venuto in mente che per aquisire i dati si potrebbe chiedere all'utente di inserirli in un'unica Inputbox, magari separandoli con dei punti e virgola, per poi agire sulla stringa ricavata, dividerla e riempire gli array(questo però lo fai solo se ti va).
    ----
    Sulla routine che gestisce la media dei voti di pratica devi ricordarti di azzerare la variabile Somma prima del ciclo for, altrimenti, quando riclicchi il button, il codice prende l'ultimo valore della variabile Somma e lo aggiunge al valore VotiPratica(I).
    Stessa cosa sulla routine Button1_Click.
    ----
    Sempre su Button1_Click, questo codice (secondo me) è sbagliato.
    codice:
    Somma = Somma + VotiPratica(I)            
    Somma = Somma + VotiTeoria(I)              
    MediaPraticaTeoria = Somma / N
    In questo caso devi calcolare la media di ogni alunno (credo), altrimenti il discorso dell'array sarebbe inutile. Devi fare
    codice:
    Somma = Somma + VotiPratica(I)            
    Somma = Somma + VotiTeoria(I)              
    MediaPraticaTeoria = Somma / 2
    perchè in questo caso i voti sono solo due. Per il discorso dell'array, vuol dire che devi dichiarare un'altro array e metterci dentro di volta in volta il valore trovato. Inoltre in questo caso devi azzerare la variabile Somma ad ogni iterazione. In sostanza:

    Nelle dichiarazioni delle variabili aggiungi VotiMedia(100);

    nell'ultima routine il ciclo for si articola così:
    codice:
    For I = 0 To N - 1   
    Somma = 0
    MediaPraticaTeoria = 0          
    Somma = Somma + VotiPratica(I)            
    Somma = Somma + VotiTeoria(I)              
    MediaPraticaTeoria = Somma / 2            
    ListBox3.Items.Add("la media di " & Nomi(I) & " è " & MediaPraticaTeoria)  
    VotiMedia(I) = MediaPraticaTeoria       
    Next
    Buona programmazione.
    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    26
    Ok cosi esce tutto grazie 1000, cmq riguardo ad alcune cose di cui hai parlato ancora non le abbiamo studiate..
    però cmq sia l'ultimo pezzo ancora non l'ho cpaito bene..:
    Prevedere un pulsante che permetta di calcolare, caricare in un array e visualizzare in una lista le medie..ecc....

    Calcolare e visualizzare l'ho cpaito ed esce, ma caricare nell'array non ho capito il senso..
    e anche te che hai scritto
    VotiMedia(I) = MediaPraticaTeoria
    a che serve? cioè alla fine escono cmq nella lista i nomi con le medie..mmh
    CMq Grazie ancora

  10. #10
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Non ho capito neanch'io a cosa serve, ma se le consegne sono queste...
    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.