ARIANAROS Δημοσ. 27 Οκτωβρίου 2008 Δημοσ. 27 Οκτωβρίου 2008 Ξεκινησα visual basic και προσπαθω να κανω ενα προγραμμα οπου θα δινω αριθμους και θα με βρισκει τον μικροτερο. Για μεγαλυτερο εκανα αυτο ( με 10 αριθμους ) > Dim a, b, i as integer a=0 For i= 1 to 10 b=inputbox(" Dose arithmo") If a<b then a=b Else a=a End if Next Print a Αυτο δουλευει μια χαρα. Οταν ομως κανω την ιδια διαδικασια για να βρω τον μικροτερο δεν δουλευει, απλα με δινει την τιμη που ειχα δωσει στην πρωτη μεταβλητη. Δειτε και θα καταλαβετε > Dim a, b, i as integer a=25 For i= 1 to 10 b=inputbox(" Dose arithmo") If a>b then a=b Else a=a End if Next Print a "ωρες" Το 25 μπαινει απλα ως μεγαλο ( η τιμες που θα βαζουν οι χρηστες σε αυτο το προγραμμα ειναι παντα μικροτερες ), θα μπορουσα να ειχα βαλει οτιδηποτε αλλο (34,52,86 κλπ.) Το προγραμμα ομως αντι να λειτουργησει και να με δωσει τον μικροτερο αριθμο, με δινει τον αριθμο 25 ή οπως αλλιως εχω ορισει αρχικα την a. Kαι μια τελευταια ερωτηση. Θελω στο inputbox μεσα στο κειμενο που γραφω να βαλω και μια μεταβλητη. Πως θα γινει αυτο? -----Προστέθηκε 27/10/2008 στις 02 : 56 : 05----- Sorry για το double post αλλα επειδη χωρις αυτην την απαντηση δεν μπορω να προχωρησω, μηπως κανεις μπορει να βοηθησει ? Αν δεν καταλαβατε την ερωτηση πειτε μου για να προσπαθησω να την αποδωσω καλυτερα. -----Προστέθηκε 27/10/2008 στις 09 : 17 : 28----- Δεν ξερει κανεις ρε guys ?????????????:cry::cry:
bilco Δημοσ. 27 Οκτωβρίου 2008 Δημοσ. 27 Οκτωβρίου 2008 Η inputbox επιστρέφει string. Πρέπει να το μετατρέψεις σε integer με b = CInt(inputbox("μπλα μπλα"))
JohnSim25 Δημοσ. 29 Οκτωβρίου 2008 Δημοσ. 29 Οκτωβρίου 2008 Απο την στιγμή που η μεταβλητές είναι δηλωμένες σαν Integer τότε η VB καταλαβαίνει οτι αυτο που θα επιστρέψει απο απο το inputbox είναι Integer και το δειαχειρίζετε αναλόγως . Ο σωστός τρόπος όμως είναι αυτός λεει ο BILCO. Τώρα για να σε βοηθήσω και εγώ όσο μπορω και επειδή ο αλγόριθμος για να κάνεις αυτο που θές είναι πολυ απλος σου προτείνω να βάλεις ένα BREAKPOINT στην γραμμή που αρχικοποιείς την μεταβλητή a (a = 25) πατώντας το πλήκτρο F9 στην συνέχεια πάτησε το πλήκτρο F5 για να εκτελεστεί ο κώδικας που έχεις γράψει . Παρατήρησε οτι σταματάει η εκτέλεση στην γραμμη που έχεις ορισει το BreakPoint . Στην συνέχεια εκτέλεσε τον κώδικα σου γραμμή γραμμή με το πλήκτρο F8 και παρατήρησε πώς αλλάζουν οι μεταβλητές σου περιεχόμενο και πώς εκτελείτε στην εντολή IF που έχεις. Είναι ο μόνος τρόπος για να ανακαλύψεις τα λογικά λάθη που έχει ο κώδικας σου ) Βάλε και ένα i δίπλα στο Next για να δηλώσεις το τέλος του βρογχου επανάληψής . ( for i = 1 to 10 ' ' ' Next i
bilco Δημοσ. 30 Οκτωβρίου 2008 Δημοσ. 30 Οκτωβρίου 2008 Απο την στιγμή που η μεταβλητές είναι δηλωμένες σαν Integer τότε η VB καταλαβαίνει οτι αυτο που θα επιστρέψει απο απο το inputbox είναι Integer και το δειαχειρίζετε αναλόγως . Η Dim a, b, i as Integer δηλώνει τα a, b ως variant και μόνο το i ως integer. Είναι αυτός ο χαζός τρόπος της basic που θέλει Dim a as Integer, b as Integer, i as Integer για να είναι όλα ακέραιοι
ARIANAROS Δημοσ. 30 Οκτωβρίου 2008 Μέλος Δημοσ. 30 Οκτωβρίου 2008 Η Dim a, b, i as Integer δηλώνει τα a, b ως variant και μόνο το i ως integer. Είναι αυτός ο χαζός τρόπος της basic που θέλει Dim a as Integer, b as Integer, i as Integer για να είναι όλα ακέραιοι Ti einai oi variants ?????
geovon Δημοσ. 6 Νοεμβρίου 2008 Δημοσ. 6 Νοεμβρίου 2008 Γεία σου αριανάρος. Αυτή είναι μία άσκηση εύρεσης min max η οποια χρησιμοποιείται σε ολες τις γλώσσες προγραμματισμου στο αρχαριο επιπεδο ως παραδειγμα. Εαν εχεις κανει ψευδοκωδικα στο σχολείο παλαιότερα ή προσφατα πιθανοτατα να εχεις κανει και αυτη την ασκηση. Ετσι ανατρέχοντας σε αυτή μπορείς να την μετατρεψεις σε VB. Οσο αφορά τον κωδικα που παραθέτεις, θα μου επιτρεψεις να διαφωνήσω με τον τροπο που αρχικοποιείς την μεταβλητη α. καλύτερο θα ήτανε να οριζεις την πρωτη τιμη που εισάγεις ως min ή max και να κανεις συγκριση με τις επομενες τιμες. Σου παραθέτω και τον παρακάτω κώδικα. > Sub MinMax() Dim a As Integer, b As Integer, min As Integer, max As Integer, i As Integer For i = 1 To 3 b = InputBox("Dose arithmo") If i = 1 Then min = b max = b ElseIf i <> 1 Then If b > max Then max = b ElseIf b < min Then min = b End If End If Next i MsgBox ("min " & min & " max " & max) End Sub Για ότι θες εδώ είμαστε.
frikoulo Δημοσ. 6 Νοεμβρίου 2008 Δημοσ. 6 Νοεμβρίου 2008 Θα προτείνω κάτι άλλο, λίγο πιο advanced - αν μπορεί να θεωρηθεί έτσι- χρησιμοποιώντας το inputbox για να πάρει τιμές και μετά μια bubblesort... > Dim a(10) As Integer Dim i As Integer, min As Integer, max As Integer Dim pass As Integer, j As Integer, n As Integer, hold As Integer i = 0 While i < 10 a(i) = InputBox("Give number") i = i + 1 Loop n = UBound(a) - LBound(a) pass = 1 Do While (pass <= n - 1) For j = 0 To n - 1 - pass If (a(j) > a(j + 1)) Then hold = a(j) a(j) = a(j + 1) a(j + 1) = hold End If Next j pass = pass + 1 Loop max = a(9) min = a(0) MsgBox("Ο μέγιστος αριθμός είναι " & max & " και ο μικρότερος: " & min)
geovon Δημοσ. 6 Νοεμβρίου 2008 Δημοσ. 6 Νοεμβρίου 2008 Θα προτείνω κάτι άλλο, λίγο πιο advanced - αν μπορεί να θεωρηθεί έτσι- χρησιμοποιώντας το inputbox για να πάρει τιμές και μετά μια bubblesort... Σωστός. Αλλά θα το μπερδεψεις το παλικαρι.
MindFreak Δημοσ. 8 Νοεμβρίου 2008 Δημοσ. 8 Νοεμβρίου 2008 Εγω ασχολουμαι με VB εδω και ενα χρονο και χερω αρκετα... ισως μπορω να βοιθησω σε κατι [email protected] Thanks!!!
Obiwan88 Δημοσ. 3 Δεκεμβρίου 2008 Δημοσ. 3 Δεκεμβρίου 2008 Παιδια, επαναφερω το θεμα στ ζωη γιατι σαν αρχαριος εχω κι εγω απορια (πολυ γελοια, για αυτο θα χαρω πολυ που λογικα θα δω αμεσως πολλες και σωστες απαντησεις) κ για να μην ανοιγω χωρις λογω καινουριο θεμα, την ποσταρω εδώ. Λοιπον.Θα ήθελα να μου πειτε κατι πολυ απλο (για αρχη ): τρεχωντας το προγραμμα, εμφανιζεται ενα textbox και εκει μεσα ο χρήστης, γραφει την ηλικία του. μετα παταει ενα commnad button.Αν είναι κατω των 18 να εμφανιστει μήνυμα που να λεει "εισαι κατω των 18" ή κατι τετοιο αν είναι ανω των 18 να αλλαζει το backcolor της φορμασ μου σε μπλε πχ. ΣΑΣ ΙΚΕΤΕΥΩ πειτε μου των σωστο κωδικα για να παρω μια ιδεα, ΣΑΣ ΘΕΡΜΟΠΑΡΑΚΑΛΩ!! ενω ολα τα βαζω σωστα(νομιζω δλδ), το προγραμμα κανει αλλα αντ'αλλων!!! πως να χρησιμοποιησω την if και MsgBox( για το μηνυμα που θα εμφανιζει). γραψτε μου για να δω επιτελουσ τα συντακτικα μου λαθη! αυτη η MsgBox, μου χει σπασει τα νευρα. :( ΧΙλια ευχαριστω..
georgemarios Δημοσ. 3 Δεκεμβρίου 2008 Δημοσ. 3 Δεκεμβρίου 2008 Παιδια, επαναφερω το θεμα στ ζωη γιατι σαν αρχαριος εχω κι εγω απορια (πολυ γελοια, για αυτο θα χαρω πολυ που λογικα θα δω αμεσως πολλες και σωστες απαντησεις) κ για να μην ανοιγω χωρις λογω καινουριο θεμα, την ποσταρω εδώ. Λοιπον.Θα ήθελα να μου πειτε κατι πολυ απλο (για αρχη ): τρεχωντας το προγραμμα, εμφανιζεται ενα textbox και εκει μεσα ο χρήστης, γραφει την ηλικία του. μετα παταει ενα commnad button.Αν είναι κατω των 18 να εμφανιστει μήνυμα που να λεει "εισαι κατω των 18" ή κατι τετοιο αν είναι ανω των 18 να αλλαζει το backcolor της φορμασ μου σε μπλε πχ. ΣΑΣ ΙΚΕΤΕΥΩ πειτε μου των σωστο κωδικα για να παρω μια ιδεα, ΣΑΣ ΘΕΡΜΟΠΑΡΑΚΑΛΩ!! ενω ολα τα βαζω σωστα(νομιζω δλδ), το προγραμμα κανει αλλα αντ'αλλων!!! πως να χρησιμοποιησω την if και MsgBox( για το μηνυμα που θα εμφανιζει). γραψτε μου για να δω επιτελουσ τα συντακτικα μου λαθη! αυτη η MsgBox, μου χει σπασει τα νευρα. :(ΧΙλια ευχαριστω.. βαλε πρωτα εσυ τον κωδικα σου ωστε να σου τα διορθωσει καποιος, καλυτερα ετσι....
euoukos Δημοσ. 3 Δεκεμβρίου 2008 Δημοσ. 3 Δεκεμβρίου 2008 Βασικά η msgbox είναι πολύ απλή στη χρήση, ουσιαστικά μπορείς να χρησιμοποιήσεις μια μεταβλητή που να καταχωρείται εκεί η τιμή της απάντησης που θα λαμβάνεις... Θέλεις να παραθέσεις των κώδικά σου .... για να σε καθοδηγήσουμε παραπάνω?
Obiwan88 Δημοσ. 4 Δεκεμβρίου 2008 Δημοσ. 4 Δεκεμβρίου 2008 Private Sub Command1_Click() Dim age As Integer age = Val(Text1.Text) If age < 18 Then MsBox("Είσαι κατω των 18, λύπαμαι", "vbOKOnly") Else Form1.BackColor = vbBlue End If End Sub Οριστε παιδια! ευχαριστω παρα πολυ, κ σοορυ που σας ταλαιπωρω με γελοια πραματα.. ευχαριστω...
ARIANAROS Δημοσ. 4 Δεκεμβρίου 2008 Μέλος Δημοσ. 4 Δεκεμβρίου 2008 Στο visual studio 6 αν ζητας αυτο που καταλαβα εκανα το παρακατω. Αν καταλαβα καλα θες απλα ενα textbox που θα γραφει ο αλλος την ηλικια του και αν ειναι κατω των 18 να του βγαζει msgbox που να λεει εισαι κατω των 18. Αν ειναι ανω των 18 θα αλλαζει το χρωμα της φορμας ( σε μπλε ) και θα βγαινει msgbox που θα λεει οτι εισαι ανω των 18. Αρκει απλα να βαλεις το textbox και το command button στη φορμα σου και στο command button να βαλεις τον εξης κωδικα : > Private Sub Command1_Click() Dim age As Integer age = Text1.Text If age < 18 Then MsgBox "You are under 18" Else BackColor = RGB(0, 0, 255) MsgBox " You are above ( i akrivos ! ) 18 " End If End Sub Τωρα αν θες να βαλει πρωτα 18 χρωνων, η φορμα να γινει μπλε, και μετα να πατησει κατι κατω απο 18 και να επαναφερθει το αρχικο χρωμα δεν εχω ιδεα πως γινεται καθως ειμαι ο αρχαριος που ανοιξε το θεμα. Μην ξεχασεις να μας πεις αν δουλεψε . Υ.Γ. Οτι θες να ζητησεις, οτι κι αν ειναι αυτο, οσο χαζο κι αν νομιζεις οτι ειναι, εδω ειμαστε να βοηθησουμε. Υ.Γ. 2 Ηταν η πρωτη φορα που μπορεσα να βοηθησω ( αν οντως βοηθησα ) και αισθανομαι πολυ ωραια !!!! Που να βοηθουσα και σαν ολους εσας του insomnia !!!!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.