Θα ήθελα να ρωτήσω για ένα θέμα Πτυχιακής Εργασίας.
Τίτλος: Πρόγραμμα σε γλώσσα Visual Basic το οποίο θα μετατρέπει έναν αριθμό από ένα σύστημα αρίθμησης σε οποιοδήποτε άλλο συμπεριλαμβανομένων και των αρνητικών αριθμών.
Έχω βρει ενα θέμα για το πώς μετατρέπω έναν αριθμό σε λέξεις, αλλά μόνο αυτό δεν είναι αρκετό.
Παρακάλώ όποιος μπορέσει ας με βοηθήσει. Προσπαθώ να τελειώσω την πτυχιακή μου εργασία ως το Δεκεμβριο.
Είμαι φητητής στο τμήμα Ηλεκτρολογίας Α.Τ.Ε.Ι Λαμίας.
Ευχαριστώ Γιώργος.
e-mail : royman_21@hotmail.com
Εμφάνιση 1-9 από 9
Θέμα: Βοήθεια για θεμα στη VB
-
23-10-07, 00:14 Βοήθεια για θεμα στη VB #1
-
23-10-07, 10:06 Απάντηση: Βοήθεια για θεμα στη VB #2
Συγγνώμη, έχεις πάρει πτυχιακή για την μετατροπή π.χ του 100 από δεκαδικό σε δυαδικό/οκταδικό/δεκαεξαδικό/σε συμπλήρωμα του 2;
Το πρόβλημά σου δεν έπρεπε να είναι αν θα προλάβες να την κάνεις μέχρι το Σεπτέμβρη.
Το πρόβλημά σου έπρεπε να είναι εάν θα μπορέσεις να την κάνεις μέχρι τις 2 το μεσημέρι.
Σόρρυ για το flame, σόρρυ και αν δεν κατάλαβα το θέμα της πτυχιακής σου.
Εάν κατάλαβα σωστά αυτό που ρωτάς είναι εξωφρενικό, όντας φοιτητής επί πτυχίω.
-
23-10-07, 11:39 Απάντηση: Βοήθεια για θεμα στη VB #3
Οντως αυτό μάλλον είναι ενα ΠΟΛΥ απλό θέμα για πτυχιακή αν καταλάβαμε καλά...!
Αν παντως θες να βρείς κατι ψάξε για ενα open source scientific calculator και παρε το κομματι μετατροπης..."..The Force Shall Set Me Free!!!"
-
23-10-07, 14:09 Απάντηση: Βοήθεια για θεμα στη VB #4
Εντάξει ρε παιδιά, φοιτητής σε ΤΕΙ είναι. Τι θέλετε να του ζητήσουν? Να φτάξει πρόγραμμα πλοήγησης για προσελήνωση ακάτου? Προφανώς στο τμήμα Ηλεκτρολογίας ο προγραμματισμός δεν είναι πρώτη προταιρεότητα οπότε του έβαλαν ένα θέμα που θα μάθει κάποιες βασικές αρχές προγραμματισμού και να τις εφαρμόσει.
Γιώργη, ρίξε μια ματιά στο παρακάτω λινκ ...
http://www.dreamincode.net/code/snippet822.htm
Είναι κάποιες συναρτήσεις μετατροπής σε basic που θα σε βοηθήσουν να ξεκινήσεις.
Κώδικας:'''''''''''''''Number conversion functions 'Decimal -> binary Public Function dec2bin(ByVal num As String) As String Dim number As String Dim step As Long Dim bstr As String Dim neg As Boolean step = 1 bstr = "" If Left(num, 1) = "-" Then neg = True number = Right(num, Len(num) - 1) Else neg = False number = num End If While Left(number, 1) = "0" number = Right(number, Len(number) - 1) Wend If Len(number) = 0 Then dec2bin = 0 Exit Function End If While step * 2 <= number step = step * 2 Wend While step >= 1 If number >= step Then number = number - step bstr = bstr & "1" Else bstr = bstr & "0" End If step = step / 2 Wend If neg = True Then bstr = "-" & bstr End If dec2bin = bstr End Function 'Binary -> decimal Public Function bin2dec(ByVal bin As String) As String Dim cont As Long Dim bstr As String Dim step As Long Dim neg As Boolean step = 1 cont = 0 If Left(bin, 1) = "-" Then neg = True bstr = Right(bin, Len(bin) - 1) Else neg = False bstr = bin End If While Left(bstr, 1) = "0" bstr = Right(bstr, Len(bstr) - 1) Wend If Len(bstr) = 0 Then bin2dec = 0 Exit Function End If While Len(bstr) > 0 If Right(bstr, 1) = "1" Then cont = cont + step End If bstr = Left(bstr, Len(bstr) - 1) step = step * 2 Wend If neg = True Then cont = "-" & cont End If bin2dec = cont End Function 'Decimal -> hexadecimal Public Function dec2hex(ByVal num As String) As String Dim number As String Dim neg As Boolean number = num If Left(number, 1) = "-" Then neg = True number = Right(number, Len(number) - 1) Else neg = False End If While Left(number, 1) = "0" number = Right(number, Len(number) - 1) Wend If Len(number) = 0 Then dec2hex = 0 Exit Function End If number = Hex(number) If neg = True Then number = "-" & number End If dec2hex = LCase(number) End Function 'Hexadecimal -> decimal Public Function hex2dec(ByVal num As String) As String Dim bstr As String Dim cont As String Dim step As String Dim number As String Dim neg As Boolean number = num cont = "" If Left(number, 1) = "-" Then neg = True number = Right(number, Len(number) - 1) Else neg = False End If While Left(number, 1) = "0" number = Right(number, Len(number) - 1) Wend If Len(number) = 0 Then hex2dec = 0 Exit Function End If While Len(number) > 0 step = Left(number, 1) bstr = hex2bin(step) While Len(bstr) < 4 bstr = "0" & bstr Wend cont = cont & bstr number = Right(number, Len(number) - 1) Wend If neg = True Then cont = "-" & cont End If hex2dec = bin2dec(cont) End Function 'Hexadecimal -> binary Public Function hex2bin(ByVal num As String) As String Dim bstr As String Dim cont As String Dim step As String Dim number As String Dim neg As Boolean Dim dnum As String number = num cont = "" step = "" dnum = "" bstr = "" If Left(number, 1) = "-" Then neg = True number = Right(number, Len(number) - 1) Else neg = False End If While Left(number, 1) = "0" number = Right(number, Len(number) - 1) Wend If Len(number) = 0 Then hex2bin = 0 Exit Function End If While Len(number) > 0 step = Left(number, 1) Select Case step Case "1", "2", "3", "4", "5", "6", "7", "8", "9", "0": dnum = step Case "a": dnum = 10 Case "b": dnum = 11 Case "c": dnum = 12 Case "d": dnum = 13 Case "e": dnum = 14 Case "f": dnum = 15 End Select cont = dec2bin(dnum) While Len(cont) < 4 cont = "0" & cont Wend bstr = bstr & cont number = Right(number, Len(number) - 1) Wend While Left(bstr, 1) = "0" bstr = Right(bstr, Len(bstr) - 1) Wend If neg = True Then bstr = "-" & bstr End If hex2bin = bstr End Function 'Binary -> hexadecimal Public Function bin2hex(ByVal num As String) As String Dim chars(15) As String Dim cont As String Dim step As String Dim number As String Dim neg As Boolean chars(0) = "0" chars(1) = "1" chars(2) = "2" chars(3) = "3" chars(4) = "4" chars(5) = "5" chars(6) = "6" chars(7) = "7" chars(8) = "8" chars(9) = "9" chars(10) = "a" chars(11) = "b" chars(12) = "c" chars(13) = "d" chars(14) = "e" chars(15) = "f" number = num cont = "" step = "" If Left(number, 1) = "-" Then neg = True number = Right(number, Len(number) - 1) Else neg = False End If While Left(number, 1) = "0" number = Right(number, Len(number) - 1) Wend If Len(number) = 0 Then bin2hex = 0 Exit Function End If While Len(number) Mod 4 <> 0 number = "0" + number Wend While Len(number) >= 4 step = Left(number, 4) cont = cont + chars(bin2dec(step)) number = Right(number, Len(number) - 4) Wend If neg = True Then cont = "-" & cont End If bin2hex = cont End Function
Τελευταία επεξεργασία από το μέλος zig : 23-10-07 στις 16:41.
-
24-10-07, 13:01 Απάντηση: Βοήθεια για θεμα στη VB #5
1ον)Διαφωνώ με την αποψη να θεωρούνται οι σπουδαστες των ΤΕΙ κατώτεροι αρα και 'οχι για πολλα πολλά...' αλλα αυτό είναι λίγο
2ον)Πιστεύω πως ΚΑΘΕ πτυχιακή εργασία (στα πλαίσια ενός ιδρύματος τριτοβάθμιας εκπαίδευσης) ασχέτως σχολής και αντικειμένου πρέπει να έχει κάποια ακαδημαική αξία, εστω και μικρή. Η ανάπτυξη ενός software τετοιου επιπέδου ΔΕΝ εχει !!!
Anyway, φυσικά και δεν φταίει ο φιλος συν-φορουμιτης για αυτο...αλλά οποιος καθηγητής πρότεινε/δέχτικε τετοιο θέμα...Τελευταία επεξεργασία από το μέλος Darth_Sidius : 24-10-07 στις 13:02.
"..The Force Shall Set Me Free!!!"
-
24-10-07, 13:06 Απάντηση: Βοήθεια για θεμα στη VB #6
Ο Darth_Sidius έχει δίκιο.
Εδώ δε μιλάμε για μια εργασία στα πλαίσια ενός προαιρετικού μαθήματος! Εδώ μιλάμε για ΠΤΥΧΙΑΚΗ! Δηλαδή για το επιστέγασμα της ακαδημαϊκής πορείας φοίτησης σε κάποιο τμήμα των ΤΕΙ (oops AΤΕΙ ήθελα να πω )
Ως τέτοιο είναι ΑΠΑΡΑΔΕΚΤΟ!
ΥΓ. Εννοείται ότι οι μομφές δεν είναι προς τον συμφορουμίτη! Αφού βρήκε ένα τόσο εύκολο θέμα, καλά έκανε και το τσίμπησε. Και με τις από πάνω ρουτίνες... έχει έτοιμο το 90% της πτυχιακής του!
Οπότε σκεφθείτε λίγο... Με μια καλή αναζήτηση στο Google ο zig του έδωσε στο χέρι την πτυχιακή!
Είναι φυσιολογικό αυτό;
Τρέμω μόνο στη σκέψη τι πτυχιακές θα βγάζουν αύριο τα ιδιωτικά κολλέγια! Κάτι σε "τυπώστε το hello world 32 φορές" ίσως;Όσο πιο βαθιά βάζουν το χέρι οι εταίροι στις τσέπες μας, τόσο πιο κοντά φθάνουν στα @@ μας
-
24-10-07, 13:48 Απάντηση: Βοήθεια για θεμα στη VB #7
-
24-10-07, 14:24 Απάντηση: Βοήθεια για θεμα στη VB #8
Δε συμφωνώ με τη λογική του να φτιάχνουμε μια ρουτίνα για κάθε μετατροπή, και γι αυτό παραθέτω την παρακάτω πιο δυναμική λύση με 2 μόνο ρουτίνες για όλα τα συστήματα!
Μία για τη μετατροπή ενός αριθμού τύπου Long σε κάποιο αριθμητικό σύστημα. Και μία για την αποκατάσταση του αριθμού από το σύστημα αυτό.
1- Public Function NumSystem(ByVal aNum As Long, ByVal aSystem As Integer) As String
Για μετατροπή του αριθμού aNum στο σύστημα aSystem από το 2-δικό έως και το ... 49-δικό σύστημα.
Π.χ.
Για να μετατρέψεις τον αριθμό 1234 στο 2-δικό:
- Debug.Pring NumSystem(1234, 2)
Για να μετατρέψεις τον αριθμό 1234 στο 16-δικό:
- Debug.Pring NumSystem(1234, 16)
κ.ο.κ.
Κώδικας:Public Const gcsNumSystem49Chars As String = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_~!@#$%^&(){}" Public Function NumSystem(ByVal aNum As Long, ByVal aSystem As Integer, _ Optional ByVal ProposedLen As Integer = 0) As String Dim ret As String, _ sysChars As String, _ numero As Long, _ modulo As Integer, _ l As Integer numero = aNum sysChars = gcsNumSystem49Chars If Len(sysChars) < aSystem Then Debug.Assert False sysChars = sysChars & String(aSystem - Len(sysChars), ".") End If ret = "" Do modulo = numero Mod aSystem numero = numero \ aSystem ret = Mid(sysChars, modulo + 1, 1) & ret If ProposedLen > 0 Then If Len(ret) >= ProposedLen Then Debug.Assert False Exit Do End If End If Loop While (numero > 0) If ProposedLen > 0 Then l = ProposedLen - Len(ret) If l > 0 Then ret = String(l, Left(sysChars, 1)) & ret End If End If NumSystem = ret End Function
2- Public Function NumSystemValue(ByVal aNumString As String, ByVal aSystem As Integer) As Long
Για αποκατάσταση του ήδη μετατροποιημένου αριθμού aNumString από το σύστημα aSystem, στον αρχικό αριθμό.
Π.χ.
Για να μετατρέψεις τον 16-δικό 12F σε αριθμό:
- Debug.Pring NumSystemValue("12F", 16)
Για να μετατρέψεις τον 2-αδικό αριθμό 10010011 σε αριθμό:
- Debug.Pring NumSystem("10010011", 2)
κ.ο.κ.
Κώδικας:Public Const gcsNumSystem49Chars As String = 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_~!@#$%^&(){} Public Function NumSystemValue(ByVal aNumString As String, ByVal aSystem As Integer) As Long Dim numero As Long, _ sysChars As String Dim i As Integer, _ ch As String, _ chVal As Integer, _ sysBase As Integer numero = 0 sysChars = gcsNumSystem49Chars aNumString = Trim$(aNumString) sysBase = 0 For i = Len(aNumString) To 1 Step -1 ch = Mid(aNumString, i, 1) chVal = InStr(1, sysChars, ch, 1) - 1 ' numero = numero + CLng(chVal) * CLng(aSystem ^ sysBase) ' sysBase = sysBase + 1 Next i NumSystemValue = numero End Function
Με συνδιασμούς των δυο ρουτινών μπορείς να πετύχεις μετατροπή από το οποιοδήποτε σύστημα στο οποιοδήποτε άλλο!
Π.χ.
Για μετατροπή του 2-δικού αριθμού 10010011 στο 16-δικό:
- Debug.Pring NumSystem(NumSystemValue("10010011", 2), 16)
Για μετατροπή του 16-δικού αριθμού 12F στο 2-δικό:
- Debug.Pring NumSystem(NumSystemValue("12F", 16), 2)
κ.ο.κ.
Και όλα αυτά από το 2-δικό έως και το 49-δικό σύστημα.
Ενώ με χρήση περισσότερων χαρακτήρων στη σταθερή gcsNumSystem49Chars, πάμε σε όποιο σύστημα θέλουμε.Τελευταία επεξεργασία από το μέλος YiannisM : 24-10-07 στις 16:28.
-
24-10-07, 14:25 Απάντηση: Βοήθεια για θεμα στη VB #9
Παρόμοια Θέματα
-
Άρθρο στη Metropolis για το TS / συνέντευξη adslgr για το θέμα
Από MNP-10 στο φόρουμ Γεγονότα και ΑπόψειςΜηνύματα: 32Τελευταίο Μήνυμα: 31-03-08, 20:22 -
Βοήθεια στη ρύθμιση modem για νέα σύνδεση Forthnet
Από Kostas_Rm στο φόρουμ NovaΜηνύματα: 14Τελευταίο Μήνυμα: 27-03-08, 00:00 -
ΘΕΜΑ ΣΤΗ C
Από tommar στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμούΜηνύματα: 4Τελευταίο Μήνυμα: 08-06-07, 20:14 -
Απλό θέμα για windows βοήθεια Pls.
Από ermis333 στο φόρουμ WindowsΜηνύματα: 12Τελευταίο Μήνυμα: 05-06-06, 14:25 -
ΜΙΑ ΒΟΗΘΕΙΑ ΠΑΡΑΚΑΛΩ για ένα σοβαρό μου θέμα
Από Ermhs στο φόρουμ Internet, web surfing και online υπηρεσίεςΜηνύματα: 13Τελευταίο Μήνυμα: 11-09-05, 01:10
Bookmarks