Προς το περιεχόμενο

realez

Members
  • ΜΗΝΥΜΑΤΑ

    40
  • ΜΕΛΟΣ

  • ΤΕΛ. ΕΠΙΣΚΕΨΗ

  • ΑΞΙΟΛΟΓΗΣΕΙΣ

    0%

ΑΝΤΙΔΡΑΣΕΙΣ

2 Neutral

ΣΧΕΤΙΚΑ ΜΕ realez

  • Κατάταξη
    Advanced Member

ΠΡΟΣΦΑΤΟΙ ΕΠΙΣΚΕΠΤΕΣ ΠΡΟΦΙΛ

593 προβολές προφίλ
  1. Καλησπέρα, μόλις πείρα ένα sony vaio laptop με τα windows 8 μέσα. Προσπαθησα να ενεργοποιήσω το windows defender κάνοντας αναζήτηση με το όνομα του και επιλέγοντας το αλλά μου έλεγε πως δε γίνεται να το ανοίξω γιατί έχω άλλο πρόγραμμα antivirus. Το laptop είχε επίσης το mcafee antivirus μέσα και κάπου διάβασα πως η ύπαρξη άλλου antivirus φταίει που δεν λειτουργεί. Οπότε πήγα στην προσθαφαίρεση προγραμμάτων και έκανα uninstall τα 2 που έγραφα mcafee. Πάλι όμως τα ίδια. Βρήκα ενα πρόγραμμα της mcafee που διαγράφει τελείως το mcafee απο το pc οπότε έτρεξα και αυτό. Πάλι το ίδιο μήνυμα. Έπειτα πήγα στην επίλυση ζητημάτων και από εκεί άνοιξε. Το θέμα είναι πως ενώ το Ορισμοι ιών και λογισμικου spyware είναι ενημερωμένω to Προστασία πραγματικού χρόνου είναι ανενεργό (στις ρυθμίσεις η προστασία πραγματικού χρόνου είναι τσεκαρισμένη) . Αν πατήσω ενεργοποιήση θα φορτώνει αρκετή ώρα γύρω στα 30 sec και μετά μου εμφανίζει μήνυμα " Ο Windows Defender δεν ήταν δυνατό ν ενεργοποιήσει την προστασία σε πραγματικό χρόνο. Αυτή η λειτουργία επιστράφηκε επειδή έληξε η περίοδος του χρονικού ορίου. Κάντε κλικ στη βοήθεια για περισσότερες πληροφορίες σχετικά με αυτό το πρόβλημα. Ευχαριστώ για το χρόνο σας
  2. Καλησπέρα προσπαθώ να επιλέξω ένα λάπτοπ για έναν φίλο, αλλά δεν έχω εμπειρία απο αυτά για αυτό θα μου ηταν πολυ χρήσιμη η συμβουλή σας. Το λάπτοπ το θέλει κυρίως για ταινίες, οπότε σίγουρα να έχει 17αρα led οθόνη, δε θέλει να κολάει όταν έχει ξέρω γω 9 καρτέλες στο firefox και από gaming κανένα league of legends όχι τίποτα τρομερό. Είμαστε ανάμεσα στα παρακάτω http://www.mediamarkt.gr/mcs/product/DELL-Inspiron-3721-%28i5-3337U-4GB-500GB%29,99452,397551,597143.html?langId=-18 http://www.mediamarkt.gr/mcs/product/TOSHIBA-Satellite-L870-18J,99452,397551,593087.html?langId=-18 Κάθε συμβουλή ευπρόσδεκτη
  3. realez

    FindFirstFile() error c++

    Προσπαθώ να βρω ένα τρόπο για να βάλω σε μία λίστα τα path κάποιον txt και κατέληξα στην FindFirstFile() και FindNextFile(). Νομίζω πως αυτές ταιριάζουν στο σκοπό μου πείτε μου αν είμαι λάθος. Η κατάσταση είναι η παρακάτω. Έχω ένα φάκελο με όνομα mama. Αυτος ο φάκελος περιέχει 3 φακέλους το child1, child2 kai child3 o καθένας από τους οποίους περιέχει μερικά txt των οποίων τα path θέλω να βάλω στη λίστα ώστε να τα χρησιμοποιήσω μετά ένα ένα. Το πρόβλημα μου είναι πως προσπαθώ να πειραματιστώ με το FindFirstFile(), το FindNextFile() κτλπ αλλά μου εμφανίζει το παρακάτω error.: Error 1 error C2664: 'FindFirstFileW' : cannot convert parameter 1 from 'char [50]' to 'LPCWSTR' . Καμία ιδέα; By the way χρησιμοποιώ visual studio 2008 Edit: Λύσει στο error βρήκα σε περίπτωση που το χρειαστεί κάποιος: Για να λυθεί το error properties του project ->general->character set αλλαγή από unicode σε not set (ελπίζω αυτό να μην επηρεάσει κάτι άλλο όταν το κάνω στον βασικό κώδικα) Βρήκα πως λειτουργεί giα να υλοποιήσω αυτό που έγραψα παραπάνω αλλά τα προβλήματα συνεχίζουν να υπάρχουν. Άμα στη θέση του s(εκεί που είναι το βελάκι ) βάλω το περιεχόμενό του δηλαδή "C:/Users/john/Desktop/mama/*" λειτουργεί. Άμα όμως βάλω το string s βγάζει το εξείς error: Error 1 error C2664: 'FindFirstFileA' : cannot convert parameter 1 from 'std::string' to 'LPCSTR' Μιάζει κάπως με το προηγούμενο. Το θέμα είναι πως το path πρέπει να το παίρνω από το χρήστη όποτε θα το βάζω μέσα σε ενα string. Επίσης τα 2 πρώτα που παίρνει με το FindFirstFile και το FindNextFile είναι τελείες για αυτό έχω βάλει τα 2 πρώτα να γίνονται έτσι χωρίς να τα χρησιμιοποιώ. Αναγκαστικά έτσι γίνεται η υπάρχει κάποια λύση σε αυτό? Ευχαριστώ #include <windows.h> #include <iostream> #include <fstream> #include <string> #include <tchar.h> #include <stdio.h> using namespace std; struct pathname { string path; pathname *next; }; int main() { pathname *head = new pathname; pathname *temp = head; WIN32_FIND_DATA fData; string s = "C:/Users/Manos/Desktop/mama/*"; void * handle = FindFirstFile( s, &fData ); //<~~~~~~~~~~~~ FindNextFile(handle, &fData);//meta apo auto emfanizei ta onomata FindNextFile(handle, &fData); temp->next = 0; temp->path = fData.cFileName; while (FindNextFile(handle, &fData) != 0) //swsto listing { temp->next = new pathname; temp = temp->next; temp->next = 0; temp->path = fData.cFileName; } temp = head; cout <<"edw arxizei" <<endl; while(temp != 0) { cout << temp->path << endl; temp = temp->next; } system("pause"); }
  4. realez

    hash table για string στη C++

    Πολύ κατατοπιστική η απάντιση σου Θα ολοκληρώσω την άσκηση με αυτό που είχα κάνει post πριν και μετά θα πειραματιστώ με αυτά που μου έστειλες για να βρω το πιο σωστό.
  5. realez

    hash table για string στη C++

    Κάπου δίαβασα για το md5 http://bobobobo.wordpress.com/2010/10/17/md5-c-implementation/ και νομίζω πως είναι αυτό που χρειάζομαι.(ίσως όχι το τέλειο αλλά από το να μην τρέχει καθόλου και να μηδενιστώ ) Εάν είναι αυτό μπορεί κάποιος να μ δώσει οδηγίες για το πως θα το βάλω σε λειτουργία.( δεν έχω ξαναπάρει τέτοιο κώδικα ποτέ) Αυτό που μου έστειλες πρέπει να το αλλάξω για string και να αλλάξω το return σε hash % m (m το μέγεθος του πίνακα) ώστε να επιστρέφει τιμές για τον πίνακα μου; Φένεται πολύ πιο απλό από το md5 unsigned long hash(unsigned char *str) { unsigned long hash = 5381; int c; while (c = *str++) hash = ((hash << 5) + hash) + c; /* hash * 33 + c */ return hash; } unsigned long djb2(const string& str) { unsigned long hash = 5381; for(string::const_iterator it=str.begin();it!=str.end();it++) hash = ((hash << 5) + hash) + *it; /* hash * 33 + character */ return hash; }
  6. realez

    hash table για string στη C++

    Δυστηχώς το visual studio 2008 που χρησιμοποιώ δεν υποστηρίζει το #include <unordered_map> ακόμα και αν βάλω το using namespace std::tr1;. Έχω μείνει λίγο έκπληκτος από το τι μπορεί να γίνει άμα χρησιμοποιήσει κάποιος τη standar library αλλά σίγουρα πολλά από αυτά δε θα μπορούσα να τα χρησιμοποιήσω μιας και ο σκοπός της άσκησης είναι να μάθω. Παρόλα αυτά και ο ίδιος ο καθηγητής λέει πως μπορούμε να χρησιμοποιήσουμε κώδικα για τον πίνακα κατακερματισμού από 3ους μιας και δεν είναι ο σκοπός του μαθήματος να φτιάξουμε κάτι τέτοιο. Προσπαθώ να φτιάξω τον δικό μου αλλά είμαι αρκετά μπερδεμένος με το πόσο μεγάλος πρέπει να είναι ο πίνακας μιας και στη συγκεκριμένη περίπτωση πρέπει να ευρετηριάσω πάρα πολλές λέξεις και από ότι έχω καταλάβει το έυρος του πίνακα εξαρτάται πολύ απο τη συνάρτηση(hashing) που θα της δίνω ως όρισμα τη λέξη και θα μου επιστρέφει ενα κλειδί(σε μορφή int). Επειδή δεν ξέρω αν θα βγάλω άκρη άμα κάποιος ξέρει που μπορώ να βρω έτοιμο κώδικα για να δημιουργίσω έναν πίνακα κατακερματισμού όπου το hash function θα παίρνει ως όρισμα string και θα επιστρέφει τιμή int(οπού σε αυτή τη θέση του πίνακα θα βάζω τα στοιχεία μου) θα με βοηθούσε πάρα πολύ.
  7. realez

    hash table για string στη C++

    Με αυτό το hashtable θέλω να φτιάξω ενα αντεστραμένο ευρετήριο για περύπου 20 txt. Αυτο που έχω κάνει μέχρι στιγμής είναι να γράψω κώδικα για να διαβάζει ενα ενα τα αρχεία και να βάζει σε ενα string μία μία της λέξης(μονο της λέξης). Αν φτιάξω το hashtable θα παίρνω μία μία της λέξης και θα της βάζω εκεί(με μια διαδικασία και ελέγχους σίγουρα) αλλά νομίζω αυτή είναι η λογική. Τώρα προσπαθώ να φτιάξω ένα πίνακα κατακερματισμού με αλυσίδες. Νομίζω αυτό χρειάζεται.
  8. realez

    hash table για string στη C++

    Μου φένεται πολύ δύσκολο να καταλάβω πως λειτουργεί αυτό που μου έστειλες. Δεν έχω ξαναχρησιμοποιήσει κάτι τέτοιο . Θα ήταν πολύ δύσκολο να το φτιάξω μόνος μου?
  9. realez

    hash table για string στη C++

    Καλησπέρα, στο παρελθόν είχα φτιάξει πίνακα κατακερματισμού για ένα πρόγραμμα όπου ο χρήστης έδινε το μέγεθος του πίνακα, το πλήθος των στοιχείων που θα δώσει και έπειτα έδινε Input κλειδιά και λέξεις. Οπότε τα πράγματα ήταν αρκετά απλά. Είχα φτιάξει ένα struct της μορφής: struct data { int key; char c[20]; }; Τα βήματα που ακολουθούσα μετά ήταν -Hashing στο κλειδί που έδινε της μορφής hash(key, m) = key mod m. Όπου key=κλειδί, m=μέγεθος πίνακα -Πήγαινα στη διεύθυνση (ας πουμε ότι ο πίνακας μου λεγόταν array) array[hash(key,m)] -Εκεί άμα ήταν άδεια έβαζα το κλειδί και τη λέξη -Αμα δεν ήταν το έβαζα στην επόμενη κενή θέση που θα έβρισκα -Αμα ξαναέφτανε στην αρχική θέση ο πίνακας ήταν γεμάτος. Τώρα προσπαθώ να φτιάξω έναν πίνακα κατακερματισού αλλά αυτή τη φορά το Input το παίρνω από txts (γύρω στα 30 και το καθένα περιέχει μυθιστορήματα) και τα κλειδιά αυτή τη φορά είναι strings. Οι απορίες μου είναι οι εξείς: -Ποιό πρέπει να είναι το μέγεθος του πίνακα (σταθερό η να το αλλάζω); -Πως μπορώ να κάνω σωστό hasing στις λέξεις; -Τι είναι πιο σωστό να χρησιμοποιήσω hashing με ανοιχτή διεύθυνση η με αλυσίδες; ps: Οί γνώσεις μου στη C++ είναι αρκετά περιορισμένες.
  10. έκανα λάθος στο struct ειναι char name[20] όχι char*
  11. dokimastikostruct.cpp:17:32: σφάλμα: cannot convert ‘char**’ to ‘char*’ for argument ‘1’ to ‘char* strcpy(char*, const char*)’
  12. Γιατί αυτός ο κώδικας είναι ένα δείγμα για να λυθεί η απορία μου. Ο κώδικας στον οποίο θα το χρησιμοποιήσω έχει να κάνει με γραμμικό κατακερματισμό.
  13. Καλησπέρα, πως μπορώ να βάλω το περιεχόμενο του input στο array[0]->bla;(Επειδή είναι pointer σε pointer γράφεται κάπως αλλιώς αλλά δεν το βρίσκω) struct data { int num; char* bla[20]; }; int main() { data* array[20]; char input[20]; cout<<"dwse mou mia leksh"<<endl; cin.getline(input, 20); array[0]->bla = input; //λάθος }
  14. Τελικά εκεί που νόμιζα πως ήταν έυκολο δε μου λειτουργεί η συνάρτηση rotate.(rotateright για πχ έχω και rotate left). Έχω βάλει κάποιες σημειώσεις ρωτήστε με ότι θέλετε. >TreeNode* rotateRight(TreeNode *root, int x) { //ψάχνει το ζητούμενο int χ και όταν το βρει αποθηκεύει στο curr τη θέση του και στο parent τη θέση του γονιού του. bool found = false; if(root == NULL) { cout<<"to dentro einai keno"<<endl; return root; } TreeNode *curr; TreeNode *parent; parent = root; curr = root; while(curr!=NULL) { if(curr->item == x) { found = true; break; } else { parent = curr; if(x > curr->item) { curr = curr-> right; } else { curr = curr-> left; } } } if(!found) { cout<<"De vrethike to stoixeio pou zhthsate"<<endl; return root; }// μέχρι εδώ είναι ο κώδικας που ψάχνει το στοιχείο. if(curr->left != NULL) //εδώ ξεκινάει ο κώδικας της περιστροφής { TreeNode *tmp; // δημιουργία ενός δείκτη σε TreeNode tmp = curr->left; //Βάζει τον tmp να δείχνει στο αριστερό παιδί του στοιχείου που ψάχναμε. curr->left = tmp->right; // Βάζει το στοιχείο που ψάχναμε να δείχνει στο δεξί παιδί του tmp tmp->right = curr; // Το δεξί παιδί του tmp είναι πλέον το στοιχείο που ψάχναμε. if(parent == root)//αμα εδώ βάλω μόνο root = tmp; και βγάλω τα υπόλοιπα if λειτουργεί αλλά { //μόνο αν το χ(curr) είναι η ρίζα root = tmp; } else if(parent->left == curr) { parent->left = tmp; } else { parent->right = tmp; } } else { cout<<"den einai efikth h deksia peristrofh"<<endl; } return root; }
  15. Κατάλαβα τα λάθοι μου... Όντως ο κώδικας είναι πολύ κακογραμμένος τόσο που ακόμα και εγώ μπορώ να το καταλάβω Σε ευχαριστώ πάρα πολύ για τη βοήθεια σου. Τώρα μένει μόνο το σουλούπωμα
×
×
  • Δημιουργία νέου...

Χρήσιμες πληροφορίες

Με την περιήγησή σας στο insomnia.gr, αποδέχεστε τη χρήση cookies που ενισχύουν σημαντικά την εμπειρία χρήσης.