khr1s Δημοσ. 24 Απριλίου 2014 Δημοσ. 24 Απριλίου 2014 Καλησπερα παιδια εχω μια απορια . Εχω σκεφτει κατι και θα θελα να μου πειτε αν ειναι "σωστο" ή υπαρχει αλλος πιο ορθος προγραμματιστικα τροπος.Αυτο που θελω ειναι η main σε ενα προγραμμα να μην καθοριζει αυτη το τι θα κανει το προγραμμα, απλα να δεχεται σαν input ενα txt με εντολες και επειτα να τις εκτελει(στη συνεχεια θα παραξει ενα txt αλλα αφου εχουν εκτελεστει ολες οι εντολες του προηγουμενου txt,μια προς μια) . Δηλαδη θα διαβαζει ενα αρχει της μορφης:INSERT_NUM 6DELETE_NUM 100. . . Kαι παει λεγοντας . Το προβλημα μου ηταν στο πως η main θα διαβαζει την εντολη, να ξεχωριζει δηλαδη τι θα γινει σε μια περιπτωση που διαβασει insert απο μια που θα διαβασει delete ή οτι αλλο. Σκεφτηκα να παρω το πρωτο κομματι πριν τον ακεραιο σαν string να το συγκρινω με τις 3-4 αποδεκτες εντολες και μετα με ενα switch να ξεχωρισω καθε περιπτωση. Μπορει καποιος να με βοηθησει στο αν ειναι σωστος ο τροπος που σκεφτηκα και στο αν γινεται να χρησιμοποιησω string σε switch ? (Αν ναι θα του ειμουν ευγνωμον αν με βοηθουσε στην σχεδιαση της συνταξης καθως νομιζω θα προκυψει προβλημα λογω του οτι δεν εχουν ολες οι εντολες τον ιδιο αριθμο χαρακτηρων).
Moderators Kercyn Δημοσ. 24 Απριλίου 2014 Moderators Δημοσ. 24 Απριλίου 2014 Καλωσήρθατε στο μαγικό κόσμο των compilers. Αυτό που θες να κάνεις είναι ιδιαίτερα δύσκολο (δύσκολο γενικά, τώρα εσύ μπορεί να θες να κάνεις κάτι πολύ απλό, δεν ξέρω). Η καλύτερη βοήθεια που μπορώ να σου δώσω είναι αυτή. Πήγαινε στο μάθημα των Μεταγλωττιστών (θεωρία & εργαστήριο), το οποίο είναι ανοιχτό προς όλους και δε χρειάζεται να κάνεις login. Στη θεωρία θα βρεις το θεωρητικό κομμάτι και στο εργαστήριο ασκήσεις για flex, bison και fsm.
tr3quart1sta Δημοσ. 24 Απριλίου 2014 Δημοσ. 24 Απριλίου 2014 εγω το βλεπω σαν να δεχεται το προγραμμα κανονικα user input, μονο που σε αυτην την περιπτωση αντι για τον user εχουμε ενα text file. μπορεις να φτιαξεις μια class που να δημιουργει ενα object για καθε γραμμη του κειμενου οπου θα γινονται parse αυτες οι 2 τιμες. για δες εδω http://codereview.stackexchange.com/questions/38879/parsing-text-file-in-c και μετα αναλογα τι περιεχομενα εχει το καθε object καλεις την αντιστοιχη μεθοδο που θα εκτελεσει αυτα που θες, οπως γινεται εδω http://gameprogrammingpatterns.com/command.html
Moderators Kercyn Δημοσ. 24 Απριλίου 2014 Moderators Δημοσ. 24 Απριλίου 2014 εγω το βλεπω σαν να δεχεται το προγραμμα κανονικα user input, μονο που σε αυτην την περιπτωση αντι για τον user εχουμε ενα text file. Μπορεί. Κύριε khr1s, θα μπορούσατε να μας πείτε αναλυτικότερα τι θα είναι αυτές οι εντολές; Δηλαδή το INSERT_NUM τι ακριβώς θα κάνει; Πού θα αποθηκεύει αυτό το 6; Θα είναι μια int στην οποία θα γίνονται πράξεις; Το DELETE_NUM 100 τι θα κάνει;
khr1s Δημοσ. 24 Απριλίου 2014 Μέλος Δημοσ. 24 Απριλίου 2014 Συγγνωμη που δεν εδωσα πληρη εικονα του προγραμματος . Απο πισω θα υπαρχει μια class που θα υλοποιει ΑVL tree και οι εντολες θα μπορουν να το διαχειριζονται πχ το insert θα εισαγει το νουμερο στο δενδρο επειτα αυτο θα κανει balance με left,right,left right και right left (αν αυτο χρειαζεται). Το delete θα διαγραφει το νουμερο αυτο απο το tree και μετα θα ξανακανει ελεγχο. Μετα το τελος των εντολων απο το txt θα παραγεται ενα αρχειο txt με inorder τα στοιχεια του avl.
gon1332 Δημοσ. 25 Απριλίου 2014 Δημοσ. 25 Απριλίου 2014 Αυτο που θελω ειναι η main σε ενα προγραμμα να μην καθοριζει αυτη το τι θα κανει το προγραμμα, απλα να δεχεται σαν input ενα txt με εντολες και επειτα να τις εκτελει Δεν το κατάλαβα. Δεν καθορίζει η main τι θα κάνει το πρόγραμμα. Εσύ το καθορίζεις. Όταν λες να τις εκτελεί τι ακριβώς εννοείς; Να εκτελούνται οι εντολές που ανέφερες από τον επεξεργαστή μέσω ενός προγράμματος C; Τι είναι αυτό που θέλεις να φτιάξεις; Επίσης αυτές οι εντολές μου θυμίζουν αρχιτεκτονική στοίβας. Έχεις κάτι συγκεκριμένο στο μυαλό σου; Που θα γίνεται insert ένας αριθμός; Πως θα γίνεται delete; Μου φαίνεται λίγο μπερδεμένο μέχρι να μας το ξεκαθαρίσεις.
Aztec Δημοσ. 25 Απριλίου 2014 Δημοσ. 25 Απριλίου 2014 Σκεφτηκα να παρω το πρωτο κομματι πριν τον ακεραιο σαν string να το συγκρινω με τις 3-4 αποδεκτες εντολες και μετα με ενα switch να ξεχωρισω καθε περιπτωση. . Φτιάχνεις το πρόγραμμα σου αρχικά ώστε να μπορείς να εκτελέσεις τις λειτουργίες στο δεντρο και όταν θα είναι όλα μια χαρά τότε ... Θα διαβαζεις το αρχείο θα παίρνεις την εντολή , θα τσεκάρεις οτι ειναι valid και θα καλείς το αντίστοιχο operation στο δεντρο με την δευτερη παράμετρο . Quick and dirty
παπι Δημοσ. 25 Απριλίου 2014 Δημοσ. 25 Απριλίου 2014 https://code.google.com/p/v8/https://docs.python.org/2.7/extending/embedding.htmlhttp://www.softintegration.com/http://www.boost.org/doc/libs/1_54_0/libs/python/doc/index.html
Moderators Kercyn Δημοσ. 25 Απριλίου 2014 Moderators Δημοσ. 25 Απριλίου 2014 https://code.google.com/p/v8/ ?
gon1332 Δημοσ. 25 Απριλίου 2014 Δημοσ. 25 Απριλίου 2014 Γλωσσα μεσα στη γλωσσα Η αλήθεια είναι ότι και σε μένα εκεί πήγε το μυαλό, αλλά μετά άλλαξε πορεία και άρχισα να σκέφτομαι κάτι σε source code artificial inteligence & how to prevent main from taking over your system. Χωρίς παρεξήγηση.
gon1332 Δημοσ. 25 Απριλίου 2014 Δημοσ. 25 Απριλίου 2014 Με ειπες δελαπορτα; Μόνο αν πρότεινες προϊόντα της επιχείρησης InceptionTEK και ήσουν και CEO. ;-) Κάτι μου λέει ότι ξεφύγαμε. Ας επανέλθουμε στην τάξη.. Λοιπόν @ts περιμένουμε. 1
Timonkaipumpa Δημοσ. 25 Απριλίου 2014 Δημοσ. 25 Απριλίου 2014 Εάν δεν έχεις περιορισμό μπορείς να φτιάξεις ένα DFA με python (που γίνεται αρκετά γρήγορα ή με flex/bison έναν parser) και θα βλέπεις εάν είναι έγκυρο το input σου. Άπαξ και είναι τότε μπορείς με "read lines" να διαβάζεις... Μία γρήγορη λύση (αφού έχεις έγκυρο input) είναι με map και method pointers (π.χ. http://stackoverflow.com/questions/14419202/c-map-of-string-and-member-function-pointer).Εάν δεν θες να κάνεις parser/validator μπορείς απλά να πετάς exceptions με κατάλληλα μηνύματα και να επιστρέφεις το λάθος στον χρήστη.
khr1s Δημοσ. 25 Απριλίου 2014 Μέλος Δημοσ. 25 Απριλίου 2014 Προκειται για ενα project που εχω να κανω για την σχολη οριστε η εκφωνηση : δίνεται ένα αρχείο κειμένου που περιέχει τις συνδέσεις μεταξύ web σελίδων.Για παράδειγμα, αν η σελίδα 1 περιέχει ένα σύνδεσμο προς τη σελίδα 2 τότε στο αρχείο θα υπάρχει μία γραμμήμε περιεχόμενο 1 2. Υποθέστε ότι οι γραμμές υπάρχουν αποθηκευμένες με τυχαία σειρά μέσα στο αρχείοεισόδου. Θα πρέπει να κατασκευάσετε πρόγραμμα που θα διαβάζει το αρχείο εισόδου και θα κατασκευάζει ένανκατάλογο για τις συνδέσεις με τα ακόλουθα χαρακτηριστικά: Όλες τα διαφορετικά IDs των σελίδων αποθηκεύονται σε ένα δένδρο AVL. Τα IDs είναι θετικοί ακέραιοιαριθμοί. Οι γείτονες της κάθε κορυφής οργανώνονται επίσης με τη βοήθεια ενός δένδρου AVL έτσι ώστε ναυποστηρίζεται εισαγωγή νέου συνδέσμου καθώς επίσης και διαγραφή υπάρχοντος συνδέσμου. Θα πρέπει επίσης να μπορείτε να τυπώσετε τον κατάλογο σε ένα αρχείο εξόδου. Κάθε γραμμή τουαρχείου αυτού αποτελείται από το ID της σελίδας, ακολουθούμενο από το πλήθος των συνδέσμων καιστη συνέχεια με τα Ids των σελίδων σε αύξουσα διάταξη. Η μορφή της κάθε γραμμής είναι:id σελίδας, πλήθος γειτόνων, σ1, σ2, …, σκ Το πρόγραμμά σας δε θα πρέπει να διαβάζει τίποτε από το πληκτρολόγιο. Οι εντολές εισαγωγής και διαγραφήςσυνδέσμων καθώς και η εντολή ανάγνωσης του αρχείου εισόδου και παραγωγής του αρχείου εξόδου θαβρίσκονται μέσα στο αρχείο commands.txt που θα περιέχει τις εντολές: READ_DATA, WRITE_INDEX, INSERT_LINK, DELETE_LINK (κεφαλαία γράμματα). Δίνεται ένα παράδειγμα του αρχείου αυτού:READ_DATA input.txtINSERT_LINK 1 2INSERT_LINK 5 6DELETE_LINK 3 4INSERT_LINK 6 7WRITE_INDEX output.txt Προσέξτε ότι η εντολή READ_DATA θα υπάρχει μία φορά στην αρχή και η εντολή WRITE_INDEX μία φοράστο τέλος. Οι άλλες εντολές μπορεί να είναι είτε INSERT_LINK x y είτε DELETE_LINK x y. Αν κατά τηνINSERT_LINK η ακμή υπάρχει ήδη, τότε δεν εισάγεται τίποτα. Επίσης, αν η ακμή που πάμε να διαγράψουμε με ην εντολή DELETE_LINK δεν υπάρχει, τότε δε συμβαίνει τίποτε και το πρόγραμμα συνεχίζει κανονικά. Oπως σας ειπα το θεμα μου ειναι στο διαβασμα των εντολων απο το txt, ολα τα αλλα ξερω πως θα γινουν ειναι αρκετα ευκολο .Α και να πω οτι ειμαι πρωτοετης σε σχολη πληροφορικης αρα δεν μπορω να ξεφυγω πολυ με python κτλ , πρεπει να ναι σε c++.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα