Εμφάνιση 1-9 από 9
  1. #1
    Το avatar του μέλους royman
    royman Guest
    Θα ήθελα να ρωτήσω για ένα θέμα Πτυχιακής Εργασίας.

    Τίτλος: Πρόγραμμα σε γλώσσα Visual Basic το οποίο θα μετατρέπει έναν αριθμό από ένα σύστημα αρίθμησης σε οποιοδήποτε άλλο συμπεριλαμβανομένων και των αρνητικών αριθμών.

    Έχω βρει ενα θέμα για το πώς μετατρέπω έναν αριθμό σε λέξεις, αλλά μόνο αυτό δεν είναι αρκετό.

    Παρακάλώ όποιος μπορέσει ας με βοηθήσει. Προσπαθώ να τελειώσω την πτυχιακή μου εργασία ως το Δεκεμβριο.
    Είμαι φητητής στο τμήμα Ηλεκτρολογίας Α.Τ.Ε.Ι Λαμίας.

    Ευχαριστώ Γιώργος.
    e-mail : royman_21@hotmail.com

  2. #2
    Το avatar του μέλους mach
    mach Guest
    Συγγνώμη, έχεις πάρει πτυχιακή για την μετατροπή π.χ του 100 από δεκαδικό σε δυαδικό/οκταδικό/δεκαεξαδικό/σε συμπλήρωμα του 2;
    Το πρόβλημά σου δεν έπρεπε να είναι αν θα προλάβες να την κάνεις μέχρι το Σεπτέμβρη.
    Το πρόβλημά σου έπρεπε να είναι εάν θα μπορέσεις να την κάνεις μέχρι τις 2 το μεσημέρι.

    Σόρρυ για το flame, σόρρυ και αν δεν κατάλαβα το θέμα της πτυχιακής σου.
    Εάν κατάλαβα σωστά αυτό που ρωτάς είναι εξωφρενικό, όντας φοιτητής επί πτυχίω.

  3. #3
    Εγγραφή
    14-09-2006
    Περιοχή
    Ισπανία
    Ηλικία
    42
    Μηνύματα
    252
    Downloads
    36
    Uploads
    0
    Τύπος
    Other / Άλλο
    Ταχύτητα
    30800/1024
    ISP
    ΟΝΟ
    Οντως αυτό μάλλον είναι ενα ΠΟΛΥ απλό θέμα για πτυχιακή αν καταλάβαμε καλά...!

    Αν παντως θες να βρείς κατι ψάξε για ενα open source scientific calculator και παρε το κομματι μετατροπης...
    "..The Force Shall Set Me Free!!!"

  4. #4
    Εγγραφή
    04-01-2006
    Μηνύματα
    401
    Downloads
    5
    Uploads
    0
    Τύπος
    ADSL OTE
    Ταχύτητα
    4096/256
    ISP
    OTEnet
    Router
    Sagem 800
    Εντάξει ρε παιδιά, φοιτητής σε ΤΕΙ είναι. Τι θέλετε να του ζητήσουν? Να φτάξει πρόγραμμα πλοήγησης για προσελήνωση ακάτου? Προφανώς στο τμήμα Ηλεκτρολογίας ο προγραμματισμός δεν είναι πρώτη προταιρεότητα οπότε του έβαλαν ένα θέμα που θα μάθει κάποιες βασικές αρχές προγραμματισμού και να τις εφαρμόσει.

    Γιώργη, ρίξε μια ματιά στο παρακάτω λινκ ...

    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.

  5. #5
    Εγγραφή
    14-09-2006
    Περιοχή
    Ισπανία
    Ηλικία
    42
    Μηνύματα
    252
    Downloads
    36
    Uploads
    0
    Τύπος
    Other / Άλλο
    Ταχύτητα
    30800/1024
    ISP
    ΟΝΟ
    1ον)Διαφωνώ με την αποψη να θεωρούνται οι σπουδαστες των ΤΕΙ κατώτεροι αρα και 'οχι για πολλα πολλά...' αλλα αυτό είναι λίγο

    2ον)Πιστεύω πως ΚΑΘΕ πτυχιακή εργασία (στα πλαίσια ενός ιδρύματος τριτοβάθμιας εκπαίδευσης) ασχέτως σχολής και αντικειμένου πρέπει να έχει κάποια ακαδημαική αξία, εστω και μικρή. Η ανάπτυξη ενός software τετοιου επιπέδου ΔΕΝ εχει !!!

    Anyway, φυσικά και δεν φταίει ο φιλος συν-φορουμιτης για αυτο...αλλά οποιος καθηγητής πρότεινε/δέχτικε τετοιο θέμα...
    Τελευταία επεξεργασία από το μέλος Darth_Sidius : 24-10-07 στις 13:02.
    "..The Force Shall Set Me Free!!!"

  6. #6
    Εγγραφή
    20-03-2003
    Περιοχή
    Στη μόνη πόλη που γράφεται με 2 'σ' και προφέρεται με 2 'λ'
    Ηλικία
    53
    Μηνύματα
    21.422
    Downloads
    25
    Uploads
    2
    Τύπος
    ADSL2+
    Ταχύτητα
    11000/1023
    ISP
    ΟΤΕ Conn-x
    DSLAM
    ΟΤΕ - ΡΟΣΤΑΝ
    Router
    Netgear DGN2000
    SNR / Attn
    4(dB) / 30.5(dB)
    Path Level
    Fastpath
    Ο Darth_Sidius έχει δίκιο.
    Εδώ δε μιλάμε για μια εργασία στα πλαίσια ενός προαιρετικού μαθήματος! Εδώ μιλάμε για ΠΤΥΧΙΑΚΗ! Δηλαδή για το επιστέγασμα της ακαδημαϊκής πορείας φοίτησης σε κάποιο τμήμα των ΤΕΙ (oops AΤΕΙ ήθελα να πω )

    Ως τέτοιο είναι ΑΠΑΡΑΔΕΚΤΟ!

    ΥΓ. Εννοείται ότι οι μομφές δεν είναι προς τον συμφορουμίτη! Αφού βρήκε ένα τόσο εύκολο θέμα, καλά έκανε και το τσίμπησε. Και με τις από πάνω ρουτίνες... έχει έτοιμο το 90% της πτυχιακής του!
    Οπότε σκεφθείτε λίγο... Με μια καλή αναζήτηση στο Google ο zig του έδωσε στο χέρι την πτυχιακή!

    Είναι φυσιολογικό αυτό;
    Τρέμω μόνο στη σκέψη τι πτυχιακές θα βγάζουν αύριο τα ιδιωτικά κολλέγια! Κάτι σε "τυπώστε το hello world 32 φορές" ίσως;
    Όσο πιο βαθιά βάζουν το χέρι οι εταίροι στις τσέπες μας, τόσο πιο κοντά φθάνουν στα @@ μας

  7. #7
    Εγγραφή
    18-10-2004
    Μηνύματα
    736
    Downloads
    80
    Uploads
    0
    ISP
    Forthnet
    Παράθεση Αρχικό μήνυμα από yiapap Εμφάνιση μηνυμάτων
    Τρέμω μόνο στη σκέψη τι πτυχιακές θα βγάζουν αύριο τα ιδιωτικά κολλέγια! Κάτι σε "τυπώστε το hello world 32 φορές" ίσως;
    Εντελώς αλλά θα ήθελα να μάθω πως προκύπτει το ότι αφού δίνουν γελοίες πτυχιακές στα τει θα δίνουν γελοίες και στα ιδιωτικά κολλέγια (πανεπιστήμια,ΚΕΣ ή όπως αλλιώς τα λένε).

  8. #8
    Εγγραφή
    18-11-2005
    Περιοχή
    Sofia/BG
    Ηλικία
    57
    Μηνύματα
    1.221
    Downloads
    32
    Uploads
    0
    Ταχύτητα
    24576/1024
    ISP
    mtel/BG
    Router
    ZXV10 W300 IGD
    Παράθεση Αρχικό μήνυμα από zig Εμφάνιση μηνυμάτων
    Γιώργη, ρίξε μια ματιά στο παρακάτω λινκ ...

    http://www.dreamincode.net/code/snippet822.htm

    Είναι κάποιες συναρτήσεις μετατροπής σε basic που θα σε βοηθήσουν να ξεκινήσεις.
    Δε συμφωνώ με τη λογική του να φτιάχνουμε μια ρουτίνα για κάθε μετατροπή, και γι αυτό παραθέτω την παρακάτω πιο δυναμική λύση με 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.

  9. #9
    Εγγραφή
    20-03-2003
    Περιοχή
    Στη μόνη πόλη που γράφεται με 2 'σ' και προφέρεται με 2 'λ'
    Ηλικία
    53
    Μηνύματα
    21.422
    Downloads
    25
    Uploads
    2
    Τύπος
    ADSL2+
    Ταχύτητα
    11000/1023
    ISP
    ΟΤΕ Conn-x
    DSLAM
    ΟΤΕ - ΡΟΣΤΑΝ
    Router
    Netgear DGN2000
    SNR / Attn
    4(dB) / 30.5(dB)
    Path Level
    Fastpath
    Παράθεση Αρχικό μήνυμα από ikaros Εμφάνιση μηνυμάτων
    Εντελώς αλλά θα ήθελα να μάθω πως προκύπτει το ότι αφού δίνουν γελοίες πτυχιακές στα τει θα δίνουν γελοίες και στα ιδιωτικά κολλέγια (πανεπιστήμια,ΚΕΣ ή όπως αλλιώς τα λένε).
    Έχοντας σπουδάσει σε ελληνικό πανεπιστήμιο, έχοντας κάνει μεταπτυχιακό σε καλό πανεπιστήμιο του εξωτερικού και έχοντας διδάξει κάποια μαθήματα (λίγα ομολογώ) σε Ελληνικό πανεπιστήμιο και σε ιδιωτικό κολλέγιο (από τα καλά, όχι τα ΙΙΕΚ) έχω αυτή την εικόνα από την προσωπική μου εμπειρία.
    Αν έχεις άλλη εικόνα ευχαρίστως να τη συζητήσουμε... σε κάποιο άλλο νήμα
    Όσο πιο βαθιά βάζουν το χέρι οι εταίροι στις τσέπες μας, τόσο πιο κοντά φθάνουν στα @@ μας

Παρόμοια Θέματα

  1. Άρθρο στη Metropolis για το TS / συνέντευξη adslgr για το θέμα
    Από MNP-10 στο φόρουμ Γεγονότα και Απόψεις
    Μηνύματα: 32
    Τελευταίο Μήνυμα: 31-03-08, 20:22
  2. Μηνύματα: 14
    Τελευταίο Μήνυμα: 27-03-08, 00:00
  3. ΘΕΜΑ ΣΤΗ C
    Από tommar στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 4
    Τελευταίο Μήνυμα: 08-06-07, 20:14
  4. Απλό θέμα για windows βοήθεια Pls.
    Από ermis333 στο φόρουμ Windows
    Μηνύματα: 12
    Τελευταίο Μήνυμα: 05-06-06, 14:25
  5. ΜΙΑ ΒΟΗΘΕΙΑ ΠΑΡΑΚΑΛΩ για ένα σοβαρό μου θέμα
    Από Ermhs στο φόρουμ Internet, web surfing και online υπηρεσίες
    Μηνύματα: 13
    Τελευταίο Μήνυμα: 11-09-05, 01:10

Tags για αυτό το Θέμα

Bookmarks

Bookmarks

Δικαιώματα - Επιλογές

  • Δεν μπορείτε να δημοσιεύσετε νέα θέματα
  • Δεν μπορείτε να δημοσιεύσετε νέα μηνύματα
  • Δεν μπορείτε να αναρτήσετε συνημμένα
  • Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας
  •  
  • Τα BB code είναι σε λειτουργία
  • Τα Smilies είναι σε λειτουργία
  • Το [IMG] είναι σε λειτουργία
  • Το [VIDEO] είναι σε λειτουργία
  • Το HTML είναι εκτός λειτουργίας