Centurion Δημοσ. 4 Απριλίου 2012 Δημοσ. 4 Απριλίου 2012 Καλησπέρα παιδιά Προσπαθώ να φτιάξω ένα πρόγραμμα που να επιλέγει 5 αριθμούς + 1 Τζόκερ στο VB 2008 Express Edition. Αντιμετωπίζω όμως κάποια προβλήματα γιατί είμαι εντελώς αρχάριος. Α) Όταν κάνω τη διαλογή, μου εμφανίζει και τον αριθμό "0", ο οποίος δεν θέλω να εμφανίζεται. Θέλω από 1-45 (για τους κοινούς) και 1-20 (για Τζόκερ) Β) Στη στήλη με τους 5 κοινούς αριθμούς πολλές φορές μου βγάζει τον ίδιο αριθμό 2 φορές, πράγμα το ο οποίο επίσης δεν θέλω να γίνεται. Για τον τζόκερ δεν με πειράζει να έχει τον ίδιο με κάποια από τις στήλες. Ορίστε και ο κώδικας: >Public Class Form1 Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click End End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Label1.Text = CStr(Int(Rnd() * 46)) 'pick numbers Label2.Text = CStr(Int(Rnd() * 46)) Label3.Text = CStr(Int(Rnd() * 46)) Label4.Text = CStr(Int(Rnd() * 46)) Label5.Text = CStr(Int(Rnd() * 46)) Label6.Text = CStr(Int(Rnd() * 21)) End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Randomize() End Sub End Class Το φτιάχνω μόνο και μόνο για την καυλάντα και δεν σπουδάζω πουθενά προγραμματισμό. Οπότε δεν είναι κάποιου είδους άσκηση Έχω και τα αρχεία Εδώ Αν μπορεί κάποιος να βοηθήσει. Ευχαριστώ
Timonkaipumpa Δημοσ. 4 Απριλίου 2012 Δημοσ. 4 Απριλίου 2012 Τα λάθη που λες ότι έχεις μου φαίνονται ως λογικά λάθη. Οπότε, θα σου πρότεινα να δεις την λογική σου. Εν γένει, μία τακτική που τηρείται και αποδίδει είναι πρώτα να σχεδιάζει κανείς την λογική και μετά να προγραμματίζει. Οπότε, σου προτείνω να δεις την λογική σου, να την γράψεις κάτω σε χαρτί και μετά να την "περάσεις" στον Η/Υ με κάποια γλώσσα προγραμματισμού. Εάν θες, μπορείς να παραθέσεις την λογική σου εδώ και να το συζητήσουμε.
Directx Δημοσ. 4 Απριλίου 2012 Δημοσ. 4 Απριλίου 2012 Καλησπέρα παιδιά Προσπαθώ να φτιάξω ένα πρόγραμμα που να επιλέγει 5 αριθμούς + 1 Τζόκερ στο VB 2008 Express Edition. Αντιμετωπίζω όμως κάποια προβλήματα γιατί είμαι εντελώς αρχάριος. Α) Όταν κάνω τη διαλογή, μου εμφανίζει και τον αριθμό "0", ο οποίος δεν θέλω να εμφανίζεται. Θέλω από 1-45 (για τους κοινούς) και 1-20 (για Τζόκερ) Β) Στη στήλη με τους 5 κοινούς αριθμούς πολλές φορές μου βγάζει τον ίδιο αριθμό 2 φορές, πράγμα το ο οποίο επίσης δεν θέλω να γίνεται. Για τον τζόκερ δεν με πειράζει να έχει τον ίδιο με κάποια από τις στήλες. Ορίστε και ο κώδικας: >Public Class Form1 Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click End End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Label1.Text = CStr(Int(Rnd() * 46)) 'pick numbers Label2.Text = CStr(Int(Rnd() * 46)) Label3.Text = CStr(Int(Rnd() * 46)) Label4.Text = CStr(Int(Rnd() * 46)) Label5.Text = CStr(Int(Rnd() * 46)) Label6.Text = CStr(Int(Rnd() * 21)) End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Randomize() End Sub End Class Το φτιάχνω μόνο και μόνο για την καυλάντα και δεν σπουδάζω πουθενά προγραμματισμό. Οπότε δεν είναι κάποιου είδους άσκηση Έχω και τα αρχεία Εδώ Αν μπορεί κάποιος να βοηθήσει. Ευχαριστώ Από VB δεν κατέχω, κοιτάζοντας όμως λίγο το θέμα στην VBA του Office, για το α) θα έβαζα +1 μετά το RND ώστε να εξασφαλίσω ότι θα έχω πάντα τιμή ανώτερη του 0 αλλά φυσικά θα μείωνα ανάλογα την ανώτερη τιμή (πχ. το 46) ώστε να μην ξεφεύγω εκτός ορίων. Για το β) θα πρέπει να κρατάς κάπου τους αριθμούς που έχουν ήδη επιλεγεί και ύστερα αν κάποιος από αυτούς επανεμφανιστεί δεν θα τον δέχεσαι αλλά θα ζητάς έναν άλλον (λέω τώρα, μια σκέψη).
Centurion Δημοσ. 4 Απριλίου 2012 Μέλος Δημοσ. 4 Απριλίου 2012 Από VB δεν κατέχω, κοιτάζοντας όμως λίγο το θέμα στην VBA του Office, για το α) θα έβαζα +1 μετά το RND ώστε να εξασφαλίσω ότι θα έχω πάντα τιμή ανώτερη του 0 αλλά φυσικά θα μείωνα ανάλογα την ανότερη τιμή (πχ. το 46) ώστε να μην ξεφεύγω εκτός ορίων. Για το β) θα πρέπει να κρατάς κάπου τους αριθμούς που έχουν ήδη επιλεγεί και ύστερα αν κάποιος από αυτούς επανεμφανιστεί δεν θα τον δέχεσαι αλλά θα ζητάς έναν άλλον (λέω τώρα, μια σκέψη). Ευχαριστώ πολύ. Δοκιμάζω και βλέπω
geo1st487 Δημοσ. 5 Απριλίου 2012 Δημοσ. 5 Απριλίου 2012 Για το α) γραφεις Int(Rnd() * 45) + 1 για αριθμους απο το 1 ως το 45 και Int(Rnd() * 20) + 1 για αριθμους απο το 1 ως το 20 Για το β) οτι σου ειπε ο DirectX
Centurion Δημοσ. 5 Απριλίου 2012 Μέλος Δημοσ. 5 Απριλίου 2012 Ευχαριστώ παίδες Έφτιαξα αυτό και μου επιλέγει από 1 έως και 45. Να φανταστώ είναι σωστό κι αυτό σαν λύση; >Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim RandomNumber As Integer Dim Rnd As Random = New Random RandomNumber = Rnd.Next(1, 46) Label1.Text = Rnd.Next(1, 46) Label2.Text = Rnd.Next(1, 46) Label3.Text = Rnd.Next(1, 46) Label4.Text = Rnd.Next(1, 46) Label5.Text = Rnd.Next(1, 46) Label6.Text = Rnd.Next(1, 21) End Sub Τώρα για το Β, θα το βρούμε κι αυτό
geo1st487 Δημοσ. 5 Απριλίου 2012 Δημοσ. 5 Απριλίου 2012 Ευχαριστώ παίδες Έφτιαξα αυτό και μου επιλέγει από 1 έως και 45. Να φανταστώ είναι σωστό κι αυτό σαν λύση; >Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim RandomNumber As Integer Dim Rnd As Random = New Random RandomNumber = Rnd.Next(1, 46) Label1.Text = Rnd.Next(1, 46) Label2.Text = Rnd.Next(1, 46) Label3.Text = Rnd.Next(1, 46) Label4.Text = Rnd.Next(1, 46) Label5.Text = Rnd.Next(1, 46) Label6.Text = Rnd.Next(1, 21) End Sub Σωστο και αυτο απλως δεν χρειαζεται η μεταβλητη RandomNumber γιατι δεν την χρησιμοποιεις πουθενα.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα