THMMY.gr

Μαθήματα Βασικού Κύκλου => Αντικειμενοστραφής Προγραμματισμός => Topic started by: leukosaraphs! on December 20, 2016, 22:32:05 pm



Title: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: leukosaraphs! on December 20, 2016, 22:32:05 pm
Ανέβηκε η έκτη εργασία του μαθήματος εδώ (https://elearning.auth.gr/mod/assign/view.php?id=322477). Happy programming

Programming Task 6


Κατάθεση εργασίας για βαθμολογία

  • Κατεβάζετε τα συνοδευτικά αρχεία της Άσκησης (ps6.zip)
  • Συμπληρώνετε τα τμήματα του κώδικα που λείπουν στο αρχείο, main.cpp.
  • Ανεβάστε το αρχείο με τις δικές αλλαγές στο CMS (http://83.212.97.65:8888/)
  • Επαναλάβετε τα βήματα 2-4 μέχρι η βαθμολογία να σας είναι ικανοποιητική, ή παρέλθει ο χρόνος παράδοσης, ή βρείτε να κάνετε κάτι καλύτερο με το χρόνο σας.


Κληρονομικότητα - Graphic Primitives

Οι οδηγίες βρίσκονται στο επισυναπτόμενο PDF.


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: tomas on December 27, 2016, 01:46:29 am
Παιδια εδω χρησιμοποιουμε την κλαση point η απλα βαζουμε const static integers τα νουμερα των χρωματων (πχ const static int black =0 )


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: kongr45gpen on December 28, 2016, 02:10:16 am
Παιδια εδω χρησιμοποιουμε την κλαση point η απλα βαζουμε const static integers τα νουμερα των χρωματων (πχ const static int black =0 )

Τα const static μέλη της κλάσης color πρέπει να είναι και αυτά τύπου color! Διαφορετικά δεν θα χρησιμοποιούνται κάπου αντικείμενα της κλάσης αυτής, αφού ο constructor της είναι private.


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: tomas on December 30, 2016, 00:42:48 am
Εφοσον ο buffer στην κλαση screen ειναι private,πως τον χρησιμοποιω για να φτιαξω τα σχηματα μεσω του pointer &scr στις κλασεις rectagle και circle αφου δεν μπορω να τον αλλαξω???


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: kongr45gpen on December 31, 2016, 13:28:58 pm
Εφοσον ο buffer στην κλαση screen ειναι private,πως τον χρησιμοποιω για να φτιαξω τα σχηματα μεσω του pointer &scr στις κλασεις rectagle και circle αφου δεν μπορω να τον αλλαξω???

Δεν σε απασχολεί ο buffer, από τη στιγμή που για να φτιάξεις τα σχήματα μπορείς να καλέσεις τις public συναρτήσεις set_rect() και set_circle() της screen(), οι οποίες για όρισμα δέχονται τις συντεταγμένες του σχήματος και το point με το οποίο θα το ζωγραφίσουν.


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: ioanmpou on January 04, 2017, 16:42:30 pm
παιδιά μπορεί να εξηγήσει κάποιος τι πρέπει να κάνει η shape?


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: kongr45gpen on January 05, 2017, 01:50:28 am
παιδιά μπορεί να εξηγήσει κάποιος τι πρέπει να κάνει η shape?

Η shape δεν κάνει κάτι από μόνη της, απλώς χρειάζεται δύο virtual μεθόδους (τον destructor και την draw), χωρίς καμία υλοποίηση, αφού θα τις υλοποιήσουν τα δύο σχήματα της άσκησης (rectangle και circle).

Η shape ουσιαστικά είναι μία υπερκλάση των rectangle και circle που δεν κάνει τίποτα, απλώς χρησιμεύει για να μπορούν να περιγραφούν και το τετράγωνο, και ο κύκλος, με ένα κοινό όνομα (ώστε π.χ. μετά στην canvas να μπορείς να κάνεις add ένα shape, και να μην χρειάζεται να γράφεις ξεχωριστές συναρτήσεις για add rectangle και add circle).


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: tomas on January 05, 2017, 20:14:24 pm
Στην void draw που θελει να φταιξουμε για το  rectagle και το circle εχουμε τις βοηθητικες set_rect και set_circle που εχουν ορισμα μεσα και ενα pt που ειναι το χρωμα.Εμεις ομως ς στην void draw εχουμε ενα pen το οποιο τα χρωματα τα αποθηκευει σε τυπο color και οχι pt και ετσι η πχ scr. set_rect  δεν παιρνει σαν ορισμα τυπου color και ετσι δεν μπορω να βαλλω το χρωμα σχεδιασης του σχηματος.Υπαρχει κανεις που να το ελυσε αυτο;


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: leukosaraphs! on January 06, 2017, 13:51:16 pm
ενω παω να κανω build το ps6 (σε visual studio) μου πεταει αυτο το error:

Error   C1083   Cannot open include file: 'sys/ioctl.h': No such file or directory

εγω νμζω οτι απλα δεν μου αναγνωριζει την βιβλιοθηκη... ξερει κανεις ομως τι αλλο μπορει να φτιαιει? κι αν ναι , καποια λυση?

edit: λιγο που εψαξα στο ιντερνετ , λενε οτι απλα το visual studio δεν αναγνωριζει αυτες τις βιβλιοθηκες γιατι δεν ειναι μερος του standard της C , C++ .. και προτεινουν να αποφυγω να την βρω και να την κανω include γιατι ειναι γραμμενη ο κωδικας για να τρεχει σε Unix/Unix-like systems και οχι σε windows... Με λιγα λογια μου λεει οτι η λυση ειναι το cygwin


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: kongr45gpen on January 06, 2017, 15:04:55 pm
Στην void draw που θελει να φταιξουμε για το  rectagle και το circle εχουμε τις βοηθητικες set_rect και set_circle που εχουν ορισμα μεσα και ενα pt που ειναι το χρωμα.Εμεις ομως ς στην void draw εχουμε ενα pen το οποιο τα χρωματα τα αποθηκευει σε τυπο color και οχι pt και ετσι η πχ scr. set_rect  δεν παιρνει σαν ορισμα τυπου color και ετσι δεν μπορω να βαλλω το χρωμα σχεδιασης του σχηματος.Υπαρχει κανεις που να το ελυσε αυτο;
Πρέπει το pen που έχεις δημιουργήσει εσύ, και περιέχει όλες τις πληροφορίες για τον χαρακτήρα (χρώμα κειμένου & φόντου, σύμβολο, bright), να το μετατρέψεις σε point που δέχονται οι set_rect και set_circle. Αυτό μπορείς να το κάνεις δημιουργώντας ένα καινούριο point με δεδομένα χρώματος κλπ. από το pen που πήρες, και αν θες μπορείς ακόμα να βάλεις μέσα στο pen μία συνάρτηση π.χ. toPoint(), η οποία επιστρέφει το αντίστοιχο point του pen.

Για το πώς κάνεις construct ένα point, δες τον ορισμό του στο struct point του ps6.h :)

ενω παω να κανω build το ps6 (σε visual studio) μου πεταει αυτο το error:

Error   C1083   Cannot open include file: 'sys/ioctl.h': No such file or directory

εγω νμζω οτι απλα δεν μου αναγνωριζει την βιβλιοθηκη... ξερει κανεις ομως τι αλλο μπορει να φτιαιει? κι αν ναι , καποια λυση?
Δοκίμασε απλά να διαγράψεις τις γραμμές #include <sys/ioctl.h> από το ps6.cpp και το ps6.h, και μετά να δεις αν τρέχει σε Visual Studio.

EDIT: Η εργασία μπορεί να τρέξει και σε Visual Studio με την αφαίρεση των δύο γραμμών #include <sys/ioctl.h>, απλώς στο τέλος αντί για χρώματα θα εμφανίζονται περίεργοι χαρακτήρες, οπότε όταν τελειώσετε, δοκιμάστε να την υποβάλλετε ακόμα κι αν τα πάντα φαίνονται περίεργα.


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: leukosaraphs! on January 06, 2017, 15:08:02 pm

Δοκίμασε απλά να διαγράψεις τις γραμμές #include <sys/ioctl.h> από το ps6.cpp και το ps6.h, και μετά να δεις αν τρέχει σε Visual Studio.

μου πεταει αλλα errors ετσι , αλλα υποθετω γτ πρεπει να συμπληρωθει ο κωδικας... αλλα η βιβλιοθηκη δνε ειναι απαραιτητη?


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: kongr45gpen on January 06, 2017, 15:29:32 pm
μου πεταει αλλα errors ετσι , αλλα υποθετω γτ πρεπει να συμπληρωθει ο κωδικας... αλλα η βιβλιοθηκη δνε ειναι απαραιτητη?

Όχι, δεν είναι απαραίτητη, επειδή εκεί που χρησιμοποιείται (κάτω κάτω στο ps6.h) έχει κάποια if που ελέγχουν αν υπάρχει ή όχι.

Errors δυστυχώς θα σου πετάει μέχρι να συμπληρώσεις όλον τον κώδικα, αλλά για να δοκιμάσεις αν λειτουργεί, μπορείς να κάνεις compile το screen-example.cpp (απλώς φρόντισε να κάνεις exclude το ps6.cpp για να μην γίνεται compile και αυτό).


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: leukosaraphs! on January 06, 2017, 16:06:19 pm
Όχι, δεν είναι απαραίτητη, επειδή εκεί που χρησιμοποιείται (κάτω κάτω στο ps6.h) έχει κάποια if που ελέγχουν αν υπάρχει ή όχι.

Errors δυστυχώς θα σου πετάει μέχρι να συμπληρώσεις όλον τον κώδικα, αλλά για να δοκιμάσεις αν λειτουργεί, μπορείς να κάνεις compile το screen-example.cpp (απλώς φρόντισε να κάνεις exclude το ps6.cpp για να μην γίνεται compile και αυτό).

τζαμπα ψαχνομουν δηλαδη  >:( να σαι καλα !


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: sotiristsar on January 06, 2017, 16:49:17 pm
Τα const static μέλη της κλάσης color πρέπει να είναι και αυτά τύπου color! Διαφορετικά δεν θα χρησιμοποιούνται κάπου αντικείμενα της κλάσης αυτής, αφού ο constructor της είναι private.

Γίνεται να χρησιμοποιήσουμε static const color black = 0; δηλαδή???
χωρίς να έχει οριστεί η color ??


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: kongr45gpen on January 06, 2017, 17:12:34 pm
Γίνεται να χρησιμοποιήσουμε static const color black = 0; δηλαδή???
χωρίς να έχει οριστεί η color ??
Γίνεται να γράψεις const color color::black(0); έξω από την color, σε κάποιο σημείο *αφού* έχεις ορίσει την color.


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: leukosaraphs! on January 07, 2017, 00:55:20 am
μου βγαζει το εξης error στην pen:

Error   C2248   'tui::color::color': cannot access private member declared in class 'tui::color'   

χρησιμοποιω την κλαση color . αλλα μου πεταει ερρορ οτι δν μπορει να κανει access στα χρωματα καθως ο constructor ειναι private .. καποια λυση?

edit: Solved


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: sotiristsar on January 07, 2017, 14:27:50 pm
Στην pen πρέπει να χρησιμοποιήσουμε την point???
Και επίσης το color::black θα πρέπει να μας εμφανίζει 0 σε περίπτωση που το εκτυπώσουμε ή οχι ??


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: kongr45gpen on January 07, 2017, 17:17:09 pm
Στην pen πρέπει να χρησιμοποιήσουμε την point???
Και επίσης το color::black θα πρέπει να μας εμφανίζει 0 σε περίπτωση που το εκτυπώσουμε ή οχι ??
Δεν χρειάζεται απαραίτητα να χρησιμοποιήσεις την point στην pen, μόνο να φροντίσεις στον κώδικά σου οι συναρτήσεις set_rect και set_circle να δέχονται point για όρισμα. (Την χρήση της point μπορείς να την κάνεις όπου σε βολεύει, π.χ. στα σχήματα ξεχωριστά, η στην pen να φτιάξεις μία συνάρτηση που το μετατρέπει σε point).

Το color::black θα πρέπει να εμφανίζει 0 αν το έχεις κάνει ακέραιο, αν όμως είναι τύπου color, θα σου βγάζει σφάλμα και δεν θα μπορεί να το εκτυπώσει (που είναι απόλυτα λογικό).


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: sotiristsar on January 07, 2017, 17:21:48 pm
Δεν χρειάζεται απαραίτητα να χρησιμοποιήσεις την point στην pen, μόνο να φροντίσεις στον κώδικά σου οι συναρτήσεις set_rect και set_circle να δέχονται point για όρισμα. (Την χρήση της point μπορείς να την κάνεις όπου σε βολεύει, π.χ. στα σχήματα ξεχωριστά, η στην pen να φτιάξεις μία συνάρτηση που το μετατρέπει σε point).

Το color::black θα πρέπει να εμφανίζει 0 αν το έχεις κάνει ακέραιο, αν όμως είναι τύπου color, θα σου βγάζει σφάλμα και δεν θα μπορεί να το εκτυπώσει (που είναι απόλυτα λογικό).

Ωραία σε ευχαριστώ το δεύτερο συμβαίνει σε εμένα... απλα δεν ηξερα αν πρέπει να συμβαίνει κατι τέτοιο.



Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: sotiristsar on January 08, 2017, 16:13:47 pm
Ενώ όταν το τρέχω τα σχήματα εμφανίζονται σχετικά σωστά, για κάποιο λόγο μου εμφανίζει επιπλέον στο terminal και κάποια άλλα στοιχεία (screenshot) που λογικά προκύπτουν απο τη set_color.. Γνωρίζει κάποιος τι μπορούμε να κάνουμε για να μην εμφανίζονται ??


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: kongr45gpen on January 08, 2017, 16:38:35 pm
Ενώ όταν το τρέχω τα σχήματα εμφανίζονται σχετικά σωστά, για κάποιο λόγο μου εμφανίζει επιπλέον στο terminal και κάποια άλλα στοιχεία (screenshot) που λογικά προκύπτουν απο τη set_color.. Γνωρίζει κάποιος τι μπορούμε να κάνουμε για να μην εμφανίζονται ??
Το example που έχει εμφανίζει τα σχήματα κανονικά;


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: sotiristsar on January 08, 2017, 16:40:41 pm
Το example που έχει εμφανίζει τα σχήματα κανονικά;

Ναι κανονικά εμφανίζεται..


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: kongr45gpen on January 08, 2017, 16:53:41 pm
Ναι κανονικά εμφανίζεται..
Τότε δεν θα έπρεπε να συμβαίνει αυτό... Ή έχει κάποιο περίεργο bug το cygwin και μπερδεύεται με τα χρώματα, ή κάποιο περίεργο πρόβλημα στον κώδικά σου...


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: smegalou on January 08, 2017, 22:49:08 pm
Δηλαδή μια απλή υλοποίηση για την color, όπως αυτή θα ήταν λάθος;

 class color {
    public:
 
    const static int black=0;
    const static int red=1;
    const static int green=2;
    const static int yellow=3;   
    const static int blue=4;
    const static int magenta=5;
    const static int cyan=6;
    const static int white=7;
    const static int system_default=9;

  };



Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: leukosaraphs! on January 08, 2017, 22:53:41 pm
Δηλαδή μια απλή υλοποίηση για την color, όπως αυτή θα ήταν λάθος;

 class color {
    public:
 
    const static int black=0;
    const static int red=1;
    const static int green=2;
    const static int yellow=3;   
    const static int blue=4;
    const static int magenta=5;
    const static int cyan=6;
    const static int white=7;
    const static int system_default=9;

  };



θες ενα constructor private , και το "φτιαξιμο" των χρωματων γινεται "εξω" απο την κλαση , αφου θα εχουν οριστει ως const static μεσα στην κλαση


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: Γαρδένια on January 08, 2017, 22:59:18 pm
μόνο με int πρέπει να γίνει? δεν γίνεται με enum?


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: sotiristsar on January 08, 2017, 23:00:46 pm
Ξέρει κάποιος απο που μπορεί να εμφανίζεται core dumped ενω εμφανίζει τα σχήματα κανονικά??


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: leukosaraphs! on January 08, 2017, 23:03:14 pm
μόνο με int πρέπει να γίνει? δεν γίνεται με enum?

γινεται απλα θα υλοποιησεις διαφορετικα τα παρακατω ... + αν δεν υλοποιησεις τον constructor δεν θα εχεις πουθενα obj τυπου color


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: Γαρδένια on January 08, 2017, 23:03:56 pm
μήπως προσπαθείς να διαβάσεις στον πίνακα μέγεθος περισσότερο από ότι είναι?


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: sotiristsar on January 08, 2017, 23:08:50 pm
μήπως προσπαθείς να διαβάσεις στον πίνακα μέγεθος περισσότερο από ότι είναι?
Vectors χρησιμοποιώ και λογικά απο κάπου εκεί προκύπτει...


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: leukosaraphs! on January 08, 2017, 23:12:10 pm
δεν μου λετε παλικαρια  ::)

αυτα εχουν τυχει σε κανεναν?

Error   LNK2005   _main already defined in ps6.obj   Ps6   

Error   LNK1169   one or more multiply defined symbols found   Ps6   



Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: sotiristsar on January 08, 2017, 23:14:32 pm
δεν μου λετε παλικαρια  ::)

αυτα εχουν τυχει σε κανεναν?

Error   LNK2005   _main already defined in ps6.obj   Ps6   

Error   LNK1169   one or more multiply defined symbols found   Ps6   


Μάλλον ορίζεις κάτι που υπάρχει με το ίδιο όνομα στο ps6.cpp η ps6.h


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: leukosaraphs! on January 08, 2017, 23:19:03 pm
Μάλλον ορίζεις κάτι που υπάρχει με το ίδιο όνομα στο ps6.cpp η ps6.h

τα μονα που εχω με ιδιο name ειναι οι draw των rectangle και circle


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: kongr45gpen on January 08, 2017, 23:21:53 pm
Δηλαδή μια απλή υλοποίηση για την color, όπως αυτή θα ήταν λάθος;

 class color {
    public:
 
    const static int black=0;
    const static int red=1;
    const static int green=2;
    const static int yellow=3;   
    const static int blue=4;
    const static int magenta=5;
    const static int cyan=6;
    const static int white=7;
    const static int system_default=9;

  };
Σωστή είναι, δεν θα σου την πάρει λάθος, απλώς δεν είναι 100% αυτό που λέει η εκφώνηση  :P

Vectors χρησιμοποιώ και λογικά απο κάπου εκεί προκύπτει...
Αν μπορείς, τρέξε το πρόγραμμά σου με έναν debugger, για να δεις πού ακριβώς εμφανίζεται το πρόβλημα


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: kongr45gpen on January 08, 2017, 23:23:26 pm
δεν μου λετε παλικαρια  ::)

αυτα εχουν τυχει σε κανεναν?

Error   LNK2005   _main already defined in ps6.obj   Ps6   

Error   LNK1169   one or more multiply defined symbols found   Ps6   
Λογικά κάνεις compile ταυτόχρονα το ps6.cpp και screen-example.cpp, και υπάρχει πρόβλημα επειδή υπάρχουν δύο main(). Δοκίμασε ξανά αφού αφαιρέσεις το screen-example.cpp από το project σου :)


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: sotiristsar on January 09, 2017, 00:30:49 am
Εκτός απο το virtual destructor της shape πρεπει να δημιουργήσουμε και απο ένα destructor για rectangle και circle??


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: leukosaraphs! on January 09, 2017, 00:48:18 am
Εκτός απο το virtual destructor της shape πρεπει να δημιουργήσουμε και απο ένα destructor για rectangle και circle??

yeap , πρωτα θα εκτελειται ο destructor του rectangle η circle (derived class) και επειτα ο virtual της shape (base class) ... αλλιως θα αφηνεις σκουπιδια τα οποια , αφου δεν θα υπαρχει η shape δεν θα μπορεις να τα "φτασεις"  ;)


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: steveng8 on January 09, 2017, 16:01:02 pm
παιδια αφου εχω δηλωσει την pair vector στην συναρτηση add  την φτιαχνω με δυο ορισματα void add(shape* s1,pen p1) και τα βαζω
στην λιστα μετα ή εισαγω ολο το vector και κανω απλα push back τα στοιχεια:


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: smegalou on January 09, 2017, 17:08:22 pm
θες ενα constructor private , και το "φτιαξιμο" των χρωματων γινεται "εξω" απο την κλαση , αφου θα εχουν οριστει ως const static μεσα στην κλαση

χύμα στο namespace tui τα φτιάχνω; και δεν έχω θέμα που είναι private ο constructor;


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: leukosaraphs! on January 09, 2017, 17:17:49 pm
χύμα στο namespace tui τα φτιάχνω; και δεν έχω θέμα που είναι private ο constructor;


λοιπον , επειδη νομιζω μπερδευτηκες ...

αρχικα η αληθεια ειναι οτι γινεται κι με int (απλα οπως ξανα ειπα δεν θα εχεις πουθενα object τυπου color) , κι εινια καλυτερα να ακολουθησεις την εργασια κι τα βηματα

Δευτερον , τα χρωματα θα εχουν οριστει ως static const μεσα στην κλαση , κι εσυ εξω απο αυτην θα τα υλοποιεις , σκεψου σαν τις προηγουμενες εργασιες που μας εδιναν το decleration της συναρτησης και εμεις γραφαμε την υλοποιηση  ;)


παιδια αφου εχω δηλωσει την pair vector στην συναρτηση add  την φτιαχνω με δυο ορισματα void add(shape* s1,pen p1) και τα βαζω
στην λιστα μετα ή εισαγω ολο το vector και κανω απλα push back τα στοιχεια:

δεν νομιζω να υπαρχει λογος να περνας ολο το vector , απλα τα επεξεργαζεσαι καταλληλα ωστε να δημιουργησεις το ορισμα του push_back για συγκεκριμενο vector

για να πω την αληθεια μου , παιζει να γινεται κι με ολο το vector , you can try if you want


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: sotiristsar on January 09, 2017, 23:01:23 pm
Φτιάχνουμε ένα vectror of pairs αυτής της μορφής
std::vector< std::pair <τ1,τ2> > vect;     έτσι ???


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: kongr45gpen on January 09, 2017, 23:39:30 pm
Φτιάχνουμε ένα vectror of pairs αυτής της μορφής
std::vector< std::pair <τ1,τ2> > vect;     έτσι ???
Ναι! (Βέβαια συνήθως θα το συναντήσεις χωρίς κενό ανάμεσα στο pair και στο < αμέσως μετά, αλλά δεν έχει καμία σημασία)

Το κενό ανάμεσα στα δύο > > είναι υποχρεωτικό, νομίζω για να μην υπάρχει σύγχυση με τον operator >>.


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: sotiristsar on January 10, 2017, 16:12:12 pm
Ναι! (Βέβαια συνήθως θα το συναντήσεις χωρίς κενό ανάμεσα στο pair και στο < αμέσως μετά, αλλά δεν έχει καμία σημασία)

Το κενό ανάμεσα στα δύο > > είναι υποχρεωτικό, νομίζω για να μην υπάρχει σύγχυση με τον operator >>.
Ναι έτσι είναι :)

Επίσης οι destructor των rectangle και circle θα πρέπει να είναι κενοί ή όχι??
Και αν όχι τι θα πρέπει να κάνουμε delete γιατί κάποια γίνονται delete στη main και έχω χαθεί λίγο..


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: leukosaraphs! on January 10, 2017, 17:25:26 pm
Ναι έτσι είναι :)

Επίσης οι destructor των rectangle και circle θα πρέπει να είναι κενοί ή όχι??
Και αν όχι τι θα πρέπει να κάνουμε delete γιατί κάποια γίνονται delete στη main και έχω χαθεί λίγο..

δεν θελουν καποια υλοποιηση , απλα να υπαρχουν για γινεται το linking  ;)


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: steveng8 on January 10, 2017, 17:31:03 pm
παιδια στην κλαση color αριθμουμε τα χρωματα χρησιμοποιωντασ μια μεταβλητη char:ο constructor της δλδ θα παιρνει ορισμα  για τον καθορισμο του καθε χρωματος:


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: leukosaraphs! on January 10, 2017, 17:33:01 pm
παιδια στην κλαση color αριθμουμε τα χρωματα χρησιμοποιωντασ μια μεταβλητη char:ο constructor της δλδ θα παιρνει ορισμα  για τον καθορισμο του καθε χρωματος:

θα υποθεσω οτι ειναι ερωτηση  :P ... εγω χρησιμοποιησα το byte (το εχει στο ps6.h) παιζει να γινεται κι με το char


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: sotiristsar on January 11, 2017, 02:35:24 am
Να σε ρωτήσω κάτι έχω ορίσει τα χρώματα όπως αυτό
 
  const color color::black(0);


στο κενό ανάμεσα στο color και το pen ...
Έτσι πρέπει να γίνεται ??


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: kongr45gpen on January 11, 2017, 14:14:42 pm
Να σε ρωτήσω κάτι έχω ορίσει τα χρώματα όπως αυτό
 
  const color color::black(0);

στο κενό ανάμεσα στο color και το pen ...
Έτσι πρέπει να γίνεται ??

Ναι, βέβαια δεν χρειάζεται να είναι στο κενό, μπορείς να βάλεις τους ορισμούς ακόμα και στο τέλος του namespace ή του αρχείου, εφ' όσον τις δηλώσεις για τα χρώματα τις έχεις κάνει ήδη μέσα στην color.


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: smegalou on January 12, 2017, 17:34:36 pm
Στο canvas, το screen *scr; και  vector< pair<shape*,pen> > v;
είναι έτσι αν δεν κάνω λάθος !

Ο constructor τέρμα απλός canvas(screen scr1) {  scr = &scr1;  }

Το πρόβλημα μου είναι ότι όταν πάω και παίρνω το κάθε pair από το vector και κάνω draw το κάθε σχημα με το αντίστοιχο pen  με αυτόν τον τρόπο :

v.first->draw(scr,v.second);

και μου βγάζει αυτό το εξής πρόβλημα :  no matching function for call to 'tui::shape::draw(tui::screen*&, tui::pen&)'

Απ 'οτι καταλαβαίνω το θέμα είναι με τους pointers  και την scr  αλλά δεν βγάζω άκρη έχω παίξει με * και & αλλά μου βγάζει παρόμοια errors έχει κανείς καμιά ιδέα?


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανου
Post by: kongr45gpen on January 12, 2017, 17:43:45 pm
Στο canvas, το screen *scr; και  vector< pair<shape*,pen> > v;
είναι έτσι αν δεν κάνω λάθος !

Ο constructor τέρμα απλός canvas(screen scr1) {  scr = &scr1;  }

Το πρόβλημα μου είναι ότι όταν πάω και παίρνω το κάθε pair από το vector και κάνω draw το κάθε σχημα με το αντίστοιχο pen  με αυτόν τον τρόπο :
Code:
v[i].first->draw(scr,v[i].second);

και μου βγάζει αυτό το εξής πρόβλημα :  no matching function for call to 'tui::shape::draw(tui::screen*&, tui::pen&)'

Απ 'οτι καταλαβαίνω το θέμα είναι με τους pointers  και την scr  αλλά δεν βγάζω άκρη έχω παίξει με * και & αλλά μου βγάζει παρόμοια errors έχει κανείς καμιά ιδέα?

Επειδή στην canvas αποθηκεύεις την screen με μορφή pointer (screen * scr), όταν καλείς την ->draw(scr,...), δεν της δίνεις το ίδιο το screen, αλλά τον pointer στο screen. Παρ' όλα αυτά, η draw από τον ορισμό της (void draw(screen &scr, const pen &p)) παίρνει ένα σκέτο screen (αναφορά σε screen, to be more precise), και όχι pointer σε screen, επομένως ο compiler σου βγάζει error, επειδή δεν υπάρχει συνάρτηση που να δέχεται pointer σε screen, μόνο απλό screen.

Άρα τον pointer τον μετατρέπεις σε screen, δηλαδή ο κώδικάς σου πρέπει να γίνει έτσι:
Code:
v[i].first->draw(*scr,v[i].second);

Επίσης, επειδή το forum μπερδεύεται με τα [i] μέσα στον κώδικα, το μισό μήνυμά σου είναι στραβό, και ο κώδικας δεν φαίνεται καθαρά :P
Μπορείς να τον περικλύσεις σε [code] ... [/code] για να μη συμβεί αυτό, ή απλά να πατήσεις το (https://www.thmmy.gr/smf/Themes/scribbles2_114/images/bbc/code.gif).


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: smegalou on January 12, 2017, 17:46:23 pm
Well said!!! Thank youu  ;D ;D


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: steveng8 on January 12, 2017, 22:01:03 pm
παιδιά στην add  και στην εντολη 
pair1.push_back(std::make_pair(s1,p1));
το s1 θα πρεπει να ειναι pointer τυπου shape,ομως στην add δεχομαστε ειτε rectangle ειτε circle..
υπαρχει καποιος τροπος να ελεγχω τι κλαση δεχομαι η  χρειαζεται καποιον copy constructor  για να τα μετατρεπω:


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: leukosaraphs! on January 12, 2017, 22:03:19 pm
η abstract κλαση , αυτην την εννοια εχει  ;) οτι "καλυβει" τις derived κλασσεις ... αρα οχι δεν χρειαζεται να ελεγχεις αν ειανι circle η rectangle


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: vellikofon on January 12, 2017, 22:09:55 pm
Βοήθεια παιδία όποιος μπορεί και ξέρει ας βοηθήσει !!!!!!!!! Στο τέρμιναλ τα βγάζω τα σχήματα όπως ακριβώς τα δείχνει στο pdf ενώ στο cms παίρνω το τρίτο το μακρύτερο (0/10) !!!!!!!!


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: kongr45gpen on January 12, 2017, 22:12:13 pm
Βοήθεια παιδία όποιος μπορεί και ξέρει ας βοηθήσει !!!!!!!!! Στο τέρμιναλ τα βγάζω τα σχήματα όπως ακριβώς τα δείχνει στο pdf ενώ στο cms παίρνω το τρίτο το μακρύτερο (0/10) !!!!!!!!

Δοκίμασε να καλέσεις clear() στην scr στην αρχή της συνάρτησης canvas::show().

Επίσης σιγουρεύσου ότι το χρώμα system_default αντιστοιχεί στο νούμερο 9.


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: vellikofon on January 12, 2017, 22:18:08 pm
 :D :D :D :D :D :D :D :D :D
Δούλεψε και πήρα 10/10 !!!!!!!!
Σε ευχαριστώ πολύ !!!!!!!


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: tomas on January 13, 2017, 16:54:08 pm
Εμενα παλι error δε μ βγαζει και στο τερμιναλ δε βγαζει τιποτα και στο cms 0/10 παιρνω αρα  μαλλον παει για drop η εργασια QQ.


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: kongr45gpen on January 13, 2017, 18:16:30 pm
Εμενα παλι error δε μ βγαζει και στο τερμιναλ δε βγαζει τιποτα και στο cms 0/10 παιρνω αρα  μαλλον παει για drop η εργασια QQ.

Δε βγάζει τίποτα στο terminal; (αφού βέβαια γράψεις 100 50 και enter)


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: tomas on January 13, 2017, 18:45:23 pm
Βρε ναι και αυτο κανω και μετα κανει crush και στο debug δειχνει οτι παει και γραφει σε χαμηλες θεσεις μνημης που δεν ειναι προσβασιμες => Kappa ~ no idea πουφ drop


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: leukosaraphs! on January 13, 2017, 18:48:53 pm
Βρε ναι και αυτο κανω και μετα κανει crush και στο debug δειχνει οτι παει και γραφει σε χαμηλες θεσεις μνημης που δεν ειναι προσβασιμες => Kappa ~ no idea πουφ drop

σιγουρεψου οτι το οταν φτιαχνεις το αντικειμενο της κλασης screen ειναι reference ... αν δεν ειναι αυτο , δεν ξερω  :-\


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: tomas on January 13, 2017, 19:00:50 pm
Eιναι και reference,απλα δεν ξερω πια τι φαση  :-\ :-\


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: kongr45gpen on January 13, 2017, 19:04:43 pm
Eιναι και reference,απλα δεν ξερω πια τι φαση  :-\ :-\
Ο debugger δεν σου δείχνει σε ποιά γραμμή υπάρχει πρόβλημα;


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: tomas on January 13, 2017, 19:11:20 pm
Παει και πεφτει πανω στο dellete _buffer μεσα στο ps6.h
void dispose() {
      if(_buffer)
        delete [] _buffer;
    }


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: smegalou on January 13, 2017, 20:04:22 pm
Παει και πεφτει πανω στο dellete _buffer μεσα στο ps6.h
void dispose() {
      if(_buffer)
        delete [] _buffer;
    }

O constructor της canvas σου παίρνει όρισμα (screen &scr)  ??

Αν δεν δουλέψει και αυτό, δοκίμασε να κάνεις σχόλια τα πάντα στην MAIN εκτός απο το return 0; και σιγά σιγά αφηνε κάτι για να βρεις που είναι το θέμα ,λογικά θα καταλήξεις στην canvas για να σου βγάζει θέμα στο screen, αλλά εγώ αυτό έκανα και όλα κομπλέ


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: tomas on January 13, 2017, 21:17:03 pm
Παει και κανει crush στον constructor του screen στο ps6.h....


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: steveng8 on January 13, 2017, 22:49:10 pm
εχωντας αυτη την υλοπιοηση στην add
add (shape *s1,const pen p1)
        shape* shap = (shape*)alloca(sizeof(*s1));
        shap=s1;
        pair1.push_back(std::make_pair(shap,p1));

μου πεταει συνεχεια προβλημα στη μνημη.
πρεπει στην clear να καλω destructor και μετα pop_back() για να καθαρισει η μνημη ή κατι λαθος κανω στην add?


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: leukosaraphs! on January 14, 2017, 00:27:08 am
Code:
shape* shap = (shape*)alloca(sizeof(*s1));

αυτη η εντολη τι κανει ακριβως?  ::)


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: steveng8 on January 14, 2017, 00:44:04 am
χρησιμοποιησα οτι κανει και στη main για να φτιαχνει μνημη  για vectror με pointer

shape* addr = (shape*)alloca(sizeof(rectangle));
    trash.push_back(addr);
    new (addr) rectangle(i, i, width, height);

αλλιως πως μπορω να κραταω διαφοτικη μνημη για το καθε ειδος της shape;


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: leukosaraphs! on January 14, 2017, 00:47:00 am
χρησιμοποιησα οτι κανει και στη main για να φτιαχνει μνημη  για vectror με pointer

shape* addr = (shape*)alloca(sizeof(rectangle));
    trash.push_back(addr);
    new (addr) rectangle(i, i, width, height);

αλλιως πως μπορω να κραταω διαφοτικη μνημη για το καθε ειδος της shape;

δεν χρειαζεται ολα αυτα .. αφου περνας τον pointer του shape. Εισαι ετοιμος  ;) (ουσιαστικα εχεις το ιδιο το obj για να το διαχειριστεις οπως αγαπας) μην τα κανετε ολα περιπλοκα ρε  :P προτιματε τα απλα



Παει και κανει crush στον constructor του screen στο ps6.h....

η αληθεια ειναι οτι δεν ξερω τι συμβαινει...μου τελειωσαν οι ιδεες , κι χωρις να δω κωδικα δεν μπορω να προτεινω κατι

απλα ελεγξε τον προσεκτικα  :-\

υ.γ μην τον ποσταρεις δημοσια  :P δεν το επιτρεπω


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: steveng8 on January 14, 2017, 01:01:07 am
δλδ ενα push_back στην add ειναι αρκετο:
γιατι μου βγαζει ακομα οτι υπαρχει θεμα με την μνημη.


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: tomas on January 14, 2017, 01:42:23 am
Φιλε steve και εγω τα παιξα σήμερα δεν πάει..Αύριο πάλι :) Πάντως από οτι κατάλαβα πρέπει να εχουμε παρόμοιο ερορ με bad memory access.Το δικό μ πρόβλημα πλέον ειναιι οτι δεν παίρνει σωστά τις τιμές το μέλος της pen που κανει από pen σε point και κολλάει όλη την show μέσω της draw.Παράνοια απλά


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: steveng8 on January 14, 2017, 01:52:31 am
οντως παρανοια φιλε..δεν παει αλλο για σημερα...με τοσα error θα βλεπουμε μνημες στον υπνο μας..αυριο παλι


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: tomas on January 14, 2017, 18:35:30 pm
Το προβλημα τελικα ειναι πως μετατρεπω απο pen σε point γιατι στο debug δειχνει οτι οι τιμες των background & foreground πανε οπου να ναι.Καμια ιδεα;


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: kongr45gpen on January 14, 2017, 21:39:23 pm
Παει και πεφτει πανω στο dellete _buffer μεσα στο ps6.h
void dispose() {
      if(_buffer)
        delete [] _buffer;
    }

Στην canvas σου, η μεταβλητή της screen είναι δείκτης ή reference, ή απλώς μια ξερή screen; Δοκίμασε να την κάνεις pointer ή reference (και μην ξεχάσεις τις αντίστοιχες αλλαγές στον constructor!)

Το προβλημα τελικα ειναι πως μετατρεπω απο pen σε point γιατι στο debug δειχνει οτι οι τιμες των background & foreground πανε οπου να ναι.Καμια ιδεα;
Για να μετατρέψεις το pen σε point, απλά πρέπει να κάνεις construct ένα point με τις τιμές του pen.


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: Egkelados on January 15, 2017, 23:07:46 pm
ο constructor της color πως ακριβώς κάνει construct τα colors????


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: leukosaraphs! on January 15, 2017, 23:39:36 pm
ο constructor της color πως ακριβώς κάνει construct τα colors????

θα δεχεται εναν αριθμο κι θα αρχικοποιει το color_code (η οπως το ονομασεις ) του καθε χρωματος

αν καταλαβα τι ρωτας  :P


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: thanosthehuge on January 16, 2017, 16:39:08 pm
Για να δω τα σχήματα στο cygwin terminal τι ακριβώς πρέπει να γράψω? Αφού κάνω cd και make clean; make μου βγάζει τρεις γραμμές και μετά τίποτα. Πρέπει να πληκτρολογήσω και τίποτα ακόμα?


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: Egkelados on January 16, 2017, 17:20:18 pm
θα δεχεται εναν αριθμο κι θα αρχικοποιει το color_code (η οπως το ονομασεις ) του καθε χρωματος

αν καταλαβα τι ρωτας  :P

Thanks a lot ! Δεν είχα μπει καλά στο νόημα της εργασίας  :D

ο constructor της rectangle εκτός από το να δίνει τις τιμές του τετραγώνου ( x0, y0 width, height)  πρέπει να κάνει και κάτι άλλο;


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: thanosthehuge on January 16, 2017, 17:23:37 pm
Οκ άκυρη η προηγούμενη μου ερώτηση, βρήκα πως γίνεται... Τώρα το θέμα είναι οτι μου εμφανίζει αυτό που επισυνάπτω!! Έχει κανείς καμιά ιδέα τι μπορεί να μου έχει διαφύγει? Γιατί εγώ έχω στερέψει τελείως :Ρ Οι υλοποιήσεις μου των σχημάτων και του canvas μου φαίνονται αρκετά σωστές, οπότε υποθέτω οτί κάποιο θέμα παίζει με τα χρώματα μου  :-\ Κάθε βοήθεια ευπρόσδεκτη...


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: leukosaraphs! on January 16, 2017, 17:49:58 pm
Για να δω τα σχήματα στο cygwin terminal τι ακριβώς πρέπει να γράψω? Αφού κάνω cd και make clean; make μου βγάζει τρεις γραμμές και μετά τίποτα. Πρέπει να πληκτρολογήσω και τίποτα ακόμα?

χωρις να εχω ιδεα  :P δοκιμασε να δωσεις τιμες πχ. 100 30

Thanks a lot ! Δεν είχα μπει καλά στο νόημα της εργασίας  :D

ο constructor της rectangle εκτός από το να δίνει τις τιμές του τετραγώνου ( x0, y0 width, height)  πρέπει να κάνει και κάτι άλλο;

αναλογα την υλοποιηση σου ...

Οκ άκυρη η προηγούμενη μου ερώτηση, βρήκα πως γίνεται... Τώρα το θέμα είναι οτι μου εμφανίζει αυτό που επισυνάπτω!! Έχει κανείς καμιά ιδέα τι μπορεί να μου έχει διαφύγει? Γιατί εγώ έχω στερέψει τελείως :Ρ Οι υλοποιήσεις μου των σχημάτων και του canvas μου φαίνονται αρκετά σωστές, οπότε υποθέτω οτί κάποιο θέμα παίζει με τα χρώματα μου  :-\ Κάθε βοήθεια ευπρόσδεκτη...

μηπως μπερδεψες τα height και τα width ?

επισησ, δες αν εβαλες το system_default

εε αυτα χωρις κωδικα :Ρ για να τρεχει , δεν εχεις καποιο σημαντικο λαθος  ;)


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: gpapadimi on January 17, 2017, 20:55:00 pm
Εχω τελειωσει την εργασια, την ανεβαζω στο cms και μου δειχνει αυτο: "Execution killed with signal 11 (could be triggered by violating memory limits)" παντου , εχει τυχει και σε καποιον αλλο κατι παρομοιο?


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: kostascfc on January 17, 2017, 21:26:44 pm
Εχω τελειωσει την εργασια, την ανεβαζω στο cms και μου δειχνει αυτο: "Execution killed with signal 11 (could be triggered by violating memory limits)" παντου , εχει τυχει και σε καποιον αλλο κατι παρομοιο?

Eβγαινε και σε μενα αυτο επειδη δεν εδινα reference στον constructor της canvas .


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: gkouziik on January 17, 2017, 23:35:10 pm
εχω γραψει αυτην την υλοποιηση για την color και η getnum() einai enas getter pou mou epistrefei thn byte timh tou xrwmatos(ton kwdiko tou) wste ston constructor ths point pou vrisketai mesa sthn klash pen na to perasw san foreground.getnum() epeidh h point dexetai byte times twn xrwmatwn alla den to dexetai...exw dokimasei ta panta 2 meres twra!


  class color {
  public:

      const static color black;
     //klp klp
      byte num;
      byte getnum(){
         return num;
      }
private:

    color( byte value1) {
         num = value1;


    }
    };

    const color color::black(0);
    //klp klp
καμια βοηθεια??  :)


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: kongr45gpen on January 17, 2017, 23:37:29 pm
εχω γραψει αυτην την υλοποιηση για την color και η getnum() einai enas getter pou mou epistrefei thn byte timh tou xrwmatos(ton kwdiko tou) wste ston constructor ths point pou vrisketai mesa sthn klash pen na to perasw san foreground.getnum() epeidh h point dexetai byte times twn xrwmatwn alla den to dexetai...exw dokimasei ta panta 2 meres twra!

καμια βοηθεια??  :)

Τι εννοείς όταν λες ότι δεν το δέχεται; Σου βγάζει κάποιο error;


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: gkouziik on January 18, 2017, 20:46:53 pm
Τι εννοείς όταν λες ότι δεν το δέχεται; Σου βγάζει κάποιο error;

ναι μου βγαζει :  error: passing ‘const tui::color’ as ‘this’ argument discards qualifiers [-fpermissive]
      point pentopoint (character, colorcode_f.getnum(), colorcode_bg.getnum(), is_bright);
και για την colorcode_f.getnum() και για την colorcode_bg.getnum()
με αποτελεσμα μετα να βγαζει και no matching function for call to 'tui::color::color()'
pen::pen(color color_user1, color color_user2, char character_user, bool isbright_user ){


Title: Re: [Προγραμματιστικές Τεχνικές] Task 6 - Παρασκευή, 20 Ιανουάριος 2017, 11:55 μμ
Post by: kongr45gpen on January 18, 2017, 21:52:41 pm
ναι μου βγαζει :  error: passing ‘const tui::color’ as ‘this’ argument discards qualifiers [-fpermissive]
      point pentopoint (character, colorcode_f.getnum(), colorcode_bg.getnum(), is_bright);
και για την colorcode_f.getnum() και για την colorcode_bg.getnum()
με αποτελεσμα μετα να βγαζει και no matching function for call to 'tui::color::color()'
pen::pen(color color_user1, color color_user2, char character_user, bool isbright_user ){

Η συνάρτηση pentopoint σου είναι const; (Δηλαδή κάπως έτσι: point pentopoint(character,colorcode_f.getnum(), ...) const)

Δοκίμασε να βάλεις το const και στις pentopoint() και color::getnum(), αφού δεν μεταβάλλουν το αντικείμενο στο οποίο καλούνται.