Εμφάνιση απλής εγγραφής

dc.contributor.advisorΔρόσος, Χρήστος
dc.contributor.authorΤσολάκογλου, Ιορδάνης
dc.contributor.authorΣούτας, Απόστολος
dc.contributor.authorΓιακουμάτος, Αργύριος
dc.date.accessioned2017-11-28T08:41:27Z
dc.date.available2017-11-28T08:41:27Z
dc.date.issued2017-11-23
dc.identifier.urihttp://okeanis.lib2.uniwa.gr/xmlui/handle/123456789/3936
dc.description.abstractΟ κώδικας του προγράμματος αποτελείται από 3 αρχεία .cpp 2 αρχεία .h και το makefile. Συγκεκριμένα τα main.cpp , Node.cpp , Trie.cpp , Node.h και Trie.h . Αρχίζοντας απ’το πιο συγκεκριμένο , ο κόμβος(Node) του κάθε δέντρου περιέχει ένα value που έχει μέσα ενα char και είναι στην προσομοίωση του trie σαν τη τιμη που έχει η από πάνω του ακμή .Επίσης έχει ένα πίνακα ‘παιδιά’ με 27 θέσεις όπου βρίσκονται τα παιδιά του . Στις θέσεις 1-26 είναι κάθε παιδί για ένα γράμμα της αγγλικής αλφαβήτου και στην θέση 27 είναι τελικός κόμβος δηλαδή σχηματίζεται λέξη εκεί και έχει το @ μέσα (δηλαδή φύλλο) . Ακόμα, έχει έναν πίνακα N θέσεων leafPointers που μέσα έχει δείκτες απευθείας στα φύλλα (με το μεγαλύτερο app_ratio(συχνότητα)). Στο Trie υπάρχει το rοot που είναι η ρίζα του δέντρου με value το ' ' και πατέρα έχει τη συνάρτηση add_node η οποία παίρνει σαν ορίσματα όλο το string απ’τη main με την fgets και το βάζει στο δέντρο. Άμα μετά κάποια λέξη υπάρχει ήδη αυξάνει το app_ratio. Κάνει χρήση των συναρτήσεων της κλάσης Νοde checkChild() που ελέγχει αν υπάρχει συγκεκριμένο παιδί ,της goToChild που επιστρέφει ένα συγκεκριμένο παιδί ,της addChild() που δημιουργεί ένα συγκεκριμένο παιδί,της setLeaf() που δημιουργεί ένα φύλλο στον τελευταίο χαρακτήρα του string ώστε να δημιουργηθεί λέξη , της increase_app_ratio() που αυξάνει το app_ratio(syxnothta) εάν ο κόμβος που εισήχθη υπήρχε ήδη στο trie και τέλος της fixLeafPointers() που αναδρομικά φτιάχνει τα leafPοinters του κάθε δέντρου . Επιπρόσθετα παίρνει σαν όρισμα έναν int που λέγεται READ_FROM και άμα είναι 0 σημαίνει ότι το string που πήρε είναι από αρχείο ενώ άμα είναι 1 το πήρε απ’τον χρήστη. Αυτό έχει σημασία γιατί πρώτη φορά που βάζει ο χρήστης μια καινούρια λέξη θέλουμε και να την βάλουμε στο δέντρο και να της κάνουμε το app_ratio 1. Στη main με την χρήση της getchar_silent() διαβάζει χαρακτήρα χαρακτήρα και έχει περιπτώσεις για το καθένα. Αν πάρει γράμμα (κεφαλαίο ή μικρό) τότε το προσθέτει στο input_buffer που είναι το string της κάθε λέξης και στο line_text που είναι το string ολόκληρης της γραμμής μέχρι να πατηθεί ENTER(\n) που μηδενίζει το line_text . Αν πατηθεί backspace σβήνει χαρακτήρες και αν πατηθεί TAB καλεί την συνάρτηση getTAB της Trie η οποία με τη σειρά της εμφανίζει μέσω της printBestMatch (η οποία καλεί την printFinal που είναι συνάρτηση της κλάσης Νοde) τις προτεινόμενες λέξεις για την συμπλήρωση της λέξης πριν το ΤΑΒ . Μετά με τη chooseWord άμα ο χρήστης πληκτρολογήσει έναν αριθμό που αντιστοιχεί στην επιλογή της λέξης που θέλει , του την επιστρέφει καλώντας αυτή με την σειρά της την getWord που είναι συνάρτηση της κλάσης Node η οποία επιστρέφει τη λέξη στην chooseWord που με την σειρά της την επιστρέφει στην main .Έτσι διαγράφουμε αυτό που είχε γραφτεί πριν το TAB και το αντικαθιστούμε με την λέξη που επέλεξε ο χρήστης. Τέλος έχει μια συνάρτηση freeTrie() που αποδεσμεύει τη μνήμη που πιάνει όλο το δέντρο.el
dc.format.extent52el
dc.language.isoelel
dc.publisherΑ.Ε.Ι. Πειραιά Τ.Τ.el
dc.rightsΑναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα*
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/3.0/gr/*
dc.subjectTPSH::Επιστήμη Υπολογιστώνel
dc.titleΑλγόριθμος αυτόματης συμπλήρωσης κειμένου με χρήση συμπαγών δέντρων και δομών δεδομένωνel
dc.typeΠτυχιακή εργασίαel
dc.contributor.committeeΠαπουτσιδάκης, Μιχάλης
dc.contributor.committeeΠυρομάλης, Δημήτριος
dc.contributor.departmentΤμήμα Μηχανικών Αυτοματισμού Τ.Ε.el
dc.contributor.facultyΣχολή Τεχνολογικών Εφαρμογώνel
dc.subject.keywordΓλώσσα προγραμματισμού C++el
dc.subject.keywordΔέντραel
dc.subject.keywordΔομές δεδομένωνel
dc.subject.keywordΑλγόριθμοιel
dc.subject.keywordΚώδικας προγράμματοςel


Αρχεία σε αυτό το τεκμήριο

Thumbnail
Thumbnail

Αυτό το τεκμήριο εμφανίζεται στις ακόλουθες συλλογές

Εμφάνιση απλής εγγραφής

Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα
Εκτός από όπου επισημαίνεται κάτι διαφορετικό, το τεκμήριο διανέμεται με την ακόλουθη άδεια:
Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 3.0 Ελλάδα

Η δημιουργία κι ο εμπλουτισμός του Ιδρυματικού Αποθετηρίου, έγιναν στο πλαίσιο του Έργου "Υπηρεσία Ιδρυματικού Αποθετηρίου και Προστιθέμενης Αξίας Ψηφιακής Βιβλιοθήκης ΤΕΙ Πειραιά", του Επιχειρησιακού Προγράμματος "Ψηφιακή Σύγκλιση"