Title: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: leukosaraphs! on November 27, 2016, 23:19:46 pm Ανέβηκε η πέμπτη εργασία του μαθήματος εδώ (https://elearning.auth.gr/mod/assign/view.php?id=311907). Happy programming
Programming Task 5 Κατάθεση εργασίας για βαθμολογία
Mazes! In this assignment you will create a class to represent mazes. Mazes are a bit tricky because the most important things - the walls - sit between the cells. Let's say we have the following maze: (https://s16.postimg.org/sl4ps2mfp/maze.png) 3 × 4 maze The cells form a 2D grid, which we shall reference with (row, column) coordinates. Cell (0, 0) is the starting point, and cell (2, 3) is the ending point. We can represent the maze with an array, but we also need to be able to store the walls somewhere. One approach for representing mazes is to add extra rows and columns between cells, where the walls themselves will be represented. Therefore, the above maze would be stored like this: (https://s13.postimg.org/5ar0ff3nr/maze_expanded.png) Representation of 3 × 4 maze The green boxes are the cells themselves, and the yellow boxes represent the walls. The white boxes are unused in this representation, which may seem a bit wasteful, but we won't be creating giant mazes, so we'll pick a clear and slightly wasteful representation, rather than a confusing and extremely efficient one. You can see that for a maze of size Nrows × Ncols, our representation requires a total of (2Nrows + 1)×(2Ncols + 1) elements. For our above example, with 3 rows and 4 columns, we would need (2 ⋅ 3 + 1)×(2 ⋅ 4 + 1) cells, or 7 × 9 cells. C++ and Multidimensional Arrays C++ doesn't have very good support for dynamically allocated multidimensional arrays; languages like Java are much better at this kind of thing. In C++, we typically allocate a 1-dimensional array with enough space for the total number of elements, and then map our 2D (or 3D, or whatever) coordinates into our 1D array. For example, given a 2D array with Nrows rows and Ncols columns:
This mapping should make sense: for each row we are going to skip, we must move past Ncols cells to get to the next row. Of course, this is not the only way we can map 2D coordinates into the 1D array, but this is the typical approach for C and C++. It is called a row-major order. (A few other languages, like MATLAB and Fortran, use a column-major order for how they represent multidimensional arrays.) Accessing Maze Cells and Walls In order to provide a simple abstraction for people to use, we will implement a Maze class that uses cell coordinates to reference various aspects of the maze, but internally we will map cell coordinates into the "expanded representation" we use internally. We will call the coordinates in the expanded representation expanded coordinates. You should be able to see how to map cell coordinates into expanded coordinates very easily. Given a maze with Ncell − rows × Ncell − cols cells, we can map the cell coordinates (rcell, ccell) into expanded coordinates (rexp, cexp) as follows:
Your Tasks You will need to complete the implementation of the Maze class. There are quite a few member functions to implement, but you should not worry about this since the vast majority of them will end up being only a few lines long, at most. Only a few of these functions will actually require careful thought. To help you know what you need to do, we are providing you with an initial version of maze.hh. This file contains the following:
The required operations in the maze class are explained in the comments in the maze.hh header file. Feel free to ask for any clarifications. Suggested Approach You will need to dynamically allocate an array for the expanded representation of the maze using the heap. Since you are dynamically allocating memory, you will need to write a destructor to free the memory, and a copy-constructor and an assignment operator to handle copying and assignment correctly. (That is, you will need to perform a deep copy, not a shallow copy.) This is the Rule of Three (https://en.wikipedia.org/wiki/Rule_of_three_(C%2B%2B_programming)) - if you implement a copy-constructor, assignment operator, or destructor for your class, you really should implement all three. If you create simple abstractions for your class, you will find that your implementation goes much easier. For example, you need to implement these private helper functions in maze.cc: Code: // Take 2D expanded coordinates and compute the corresponding 1D array index Use assertions liberally! Here are some ideas; if you see other places to use assertions, put them there too!
Code: Output the number of cell-rows and cell-columns Testing You can download the tester to exercise your maze code. It performs a pretty exhaustive battery of tests, so by the time your program passes all the tests, you should have a pretty high confidence that it works. You can compile and run the test program like this: Code: make clean; make All Done? When you have finished your maze program, you should submit your completed maze.cc files on the CMS. Edit: Μεγάλωσα το μέγεθος των εικόνων. Edit2: Ανέβασα το διορθωμένο code.zip. Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: MrRobot on November 28, 2016, 13:04:16 pm Για όσους αρχίσουν την άσκηση προσέξτε στο maze.cc στην τελευταία συνάρτηση (print) κανονικά πρέπει να γράφει
Code: void Maze::print(ostream &os) const Βέβαια πρέπει να έχει ανέβει καινουργιο code.zip στο elearning που το έχει διορθωμένο αυτό το σημείο. Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kongr45gpen on November 28, 2016, 14:09:39 pm Version 2 -- 28/11/2016 10:25
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: TheoProt on November 30, 2016, 17:06:22 pm Στην getArrayIndex(...) πρέπει να επιστρέφουμε τις τιμές των δύο συντεταγμένων ;
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: MrRobot on November 30, 2016, 19:10:36 pm Όταν φτιάχνεις τον πίνακα cells στην ουσία αναπαριστας έναν διδιάστατο πίνακα με τη βοήθεια ενός μονοδιάστατο. Ή getArrayIndex() πρέπει να μετατρέπει τις διδιαστατες συντεταγμένες σε μονοδιάστατης . Για παράδειγμα αν έχεις έναν πίνακα με 3 γραμμές και 4 στήλες τότε για να πάρεις τη μονοδιάστατη συντεταγμένη του κελιού που βρίσκεται στη δεύτερη γραμμή στην πρώτη στήλη θα πεις 2*μηκος_γραμμης +1. Το μονο που πρέπει να προσέχεις είναι ότι οι συντεταγμένες ξεκινάνε από το 0.
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: TheoProt on November 30, 2016, 21:59:52 pm Όταν φτιάχνεις τον πίνακα cells στην ουσία αναπαριστας έναν διδιάστατο πίνακα με τη βοήθεια ενός μονοδιάστατο. Ή getArrayIndex() πρέπει να μετατρέπει τις διδιαστατες συντεταγμένες σε μονοδιάστατης . Για παράδειγμα αν έχεις έναν πίνακα με 3 γραμμές και 4 στήλες τότε για να πάρεις τη μονοδιάστατη συντεταγμένη του κελιού που βρίσκεται στη δεύτερη γραμμή στην πρώτη στήλη θα πεις 2*μηκος_γραμμης +1. Το μονο που πρέπει να προσέχεις είναι ότι οι συντεταγμένες ξεκινάνε από το 0. Μήκος γραμμής εννοείς πόσα cells υπάρχουν στον διδιάστατο μέχρι να φτάσουμε στο κελί που θέλουμε ; Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: konsalex on November 30, 2016, 22:28:59 pm Παιδια πως κάνουμε test απο Codeblocks πχ ή απο καθε ενα IDE?
Για παραδειγμα θελω να δω αν λειτουργει σωστα η πρωτη function int Maze::getArrayIndex(const Location loc) const Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: MrRobot on November 30, 2016, 23:50:46 pm Μήκος γραμμής εννοείς πόσα cells υπάρχουν στον διδιάστατο μέχρι να φτάσουμε στο κελί που θέλουμε ; Μήκος γραμμής είναι το μήκος των γραμμών του διδιαστατου πίνακα, δηλαδή στην περιπτωση μας 2*numCols+1 που είναι το συνολικό μήκος μιας γραμμής του expanded λαβυρίνθου. Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: MrRobot on December 01, 2016, 00:00:59 am Tips για την λύση της άσκησης Αφού φορτωσετε τα αρχεία σε όποιο περιβάλλον κάνετε την εργασία (Linux, codeblocks, visual studio, κτλ)υπάρχει το πρόβλημα ότι δεν μπορεί να γίνει built το project (στα liux δεν ξέρω αν υπάρχει πρόβλημα) γιατί οι συναρτήσεις στο maze.cc δεν επιστρέφουν κάτι ενώ είναι τύπου int , Location κτλ. Αρα μπορείτε να βαλετε να επιστρέφουν κάποια "dummy values" , πχ return 0 στις int και αντίστοιχα στους άλλους τύπους τύπους. Επίσης εμένα με βοήθησε να δω το test-maze.cc και να φτιάχνω τις συναρτήσεις του maze.cc με τις σειρά που τις ελέγχει το πρώτο. Μόλις κάνετε σωστά τις συναρτήσεις που ελέγχει το κάθε τεστ θα σας βγάζει OK εκτελώντας το project Happy Coding :D :D Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kongr45gpen on December 04, 2016, 01:20:21 am Quote CMS Programming Task 5 by Φλωρος Δημητριος - Saturday, 3 December 2016, 7:38 PM Για την επιτυχή υποβολή του αρχείου, πρέπει να αλλάξετε την πρώτη γραμμή του αρχείου maze.cc σε #include "ps5.h" Αλλιώς θα σας βγάλει compile error. Για να δοκιμάζετε τον κώδικα τοπικά, χρησιμοποιείτε κανονικά #include "maze.hh" Version 3 -- 04/12/2016 13:22
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: JasonV97 on December 04, 2016, 02:55:48 am Παιδιά να ρωτήσω, στη getNeighborCell, όταν δοθεί κάποιο από τα τετράγωνα που δεν έχει γειτονικό, τι υποτίθεται πρέπει να κάνουμε?
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kongr45gpen on December 04, 2016, 03:25:04 am Παιδιά να ρωτήσω, στη getNeighborCell, όταν δοθεί κάποιο από τα τετράγωνα που δεν έχει γειτονικό, τι υποτίθεται πρέπει να κάνουμε? Δεν χρειάζεται να κάνεις κάτι, αν θες όμως μπορείς να βάλεις μερικές assert στον κώδικά σου (π.χ. στην Maze::getArrayIndex() για να ελέγχονται όλες οι προσπελάσεις), ώστε να βγάζει error το πρόγραμμα και να μην κρασάρει. Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: Egkelados on December 04, 2016, 23:39:19 pm Στη συνάρτηση
Code: MazeCell getCell(int cellRow, int cellCol) const; και γενικά σε όλες όσες έχουν ορίσματα τα cellRow και cellCol, αυτά δίνονται σε cell-coordinates ή σε expanded cell-coordinates? Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kongr45gpen on December 04, 2016, 23:42:15 pm Στη συνάρτηση Code: MazeCell getCell(int cellRow, int cellCol) const; και γενικά σε όλες όσες έχουν ορίσματα τα cellRow και cellCol, αυτά δίνονται σε cell-coordinates ή σε expanded cell-coordinates? Δίνονται σε καθαρά cell coordinates (εξ' άλλου, υποτίθεται πως τα expanded coordinates είναι θέμα της υλοποίησης της Maze, και ο κώδικας έξω από αυτήν δεν γνωρίζει για την εσωτερική αναπαράσταση των κελιών και των τοίχων, οπότε όλες οι public συναρτήσεις καλούνται με τις απλές συντεταγμένες του κελιού). Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: Egkelados on December 04, 2016, 23:43:59 pm Ευχαριστώ πολύ για τη διευκρίνηση!
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kanou_tom on December 05, 2016, 00:22:49 am Πως μπορούμε να τρέξουμε το test maze σε περιβάλλον visual studio για να ελέγχουμε το κώδικα;Απο τη στιγμή που δεν υπάρχει εκτελέσιμο.
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: annakom on December 05, 2016, 01:12:06 am για όσους δουλεύουν σε codeblocks σε windows για να διαβάζει τους κώδικες- να τους κάνει built- το πρόγραμμα καλό θα ήταν να προσθέσουν τις #include<stdlib.h> και #include <stdio.h> προτού ξεκινήσουν
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: KG8 on December 05, 2016, 13:25:42 pm Μήπως μπορεί κάποιος να μου πει τι τύπο επιστρέφει η συνάρτηση:
MazeCell Maze::getCell(int cellRow, int cellCol) const Γιατι δε μπορώ να κάνω build το αρχείο και να τεστάρω τον κώδικα Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: sotiristsar on December 05, 2016, 13:27:09 pm Γνωρίζει κανείς γιατί μου πετάει οτι δεν υπαρχει το NORTH,EAST κτλ όταν εκτελώ την εντολή
if (direction == NORTH) { ......... } Και γενικα για τη κλάση enum Direction τα στοιχεια της τι τα θεωρούμε ;;; Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: leukosaraphs! on December 05, 2016, 13:33:27 pm Γνωρίζει κανείς γιατί μου πετάει οτι δεν υπαρχει το NORTH,EAST κτλ όταν εκτελώ την εντολή if (direction == NORTH) { ......... } Και γενικα για τη κλάση enum Direction τα στοιχεια της τι τα θεωρούμε ;;; το enum θετει το καθε στοιχειο του block με 0,1, ... etc , αρα μην γραφεις north αλλα βαλε 0,1... Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: afro on December 05, 2016, 13:49:20 pm Μήπως μπορεί κάποιος να μου πει τι τύπο επιστρέφει η συνάρτηση: Η συναρτηση επιστρέφει τύπο MazeCell , έχει οριστεί στο maze.hh ως enumeration που παίρνει τιμές VISITED,WALL,EMPTY.MazeCell Maze::getCell(int cellRow, int cellCol) const Γιατι δε μπορώ να κάνω build το αρχείο και να τεστάρω τον κώδικα Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kongr45gpen on December 05, 2016, 14:20:47 pm Πως μπορούμε να τρέξουμε το test maze σε περιβάλλον visual studio για να ελέγχουμε το κώδικα;Απο τη στιγμή που δεν υπάρχει εκτελέσιμο. Φρόντισε να υπάρχουν μέσα στο project σου στο visual studio και τα 5 αρχεία του code.zip (3 source files & 2 header files - και αν ακόμα διαμαρτύρεται ότι δεν βρίσκει τα header files, κάν' τα αντιγραφή στο φάκελο με τα αρχεία .cc)Για το εκτελέσιμο είναι υπεύθυνο το test-maze.cc, επειδή εκεί μέσα βρίσκεται η main() που τρέχει όλα τα τεστ για τον κώδικά σου. Μήπως μπορεί κάποιος να μου πει τι τύπο επιστρέφει η συνάρτηση: Θα σου συνιστούσα να ξοδέψεις χρόνο ώστε να καταφέρεις να κάνεις build, γιατί είναι αρκετά σημαντικό να ελέγχεις τον κώδικά σου και να μπορείς να δεις πού ακριβώς έχει πρόβλημα.MazeCell Maze::getCell(int cellRow, int cellCol) const Γιατι δε μπορώ να κάνω build το αρχείο και να τεστάρω τον κώδικα Γνωρίζει κανείς γιατί μου πετάει οτι δεν υπαρχει το NORTH,EAST κτλ όταν εκτελώ την εντολή Εκτός από αυτό που είπε ο leukosaraphs! πιο πάνω, μπορείς αντί για π.χ. NORTH να γράψεις Direction::NORTH, αφού το NORTH δεν υπάρχει από μόνο του σαν τύπος, αλλά ανήκει στην Direction.if (direction == NORTH) { ......... } Και γενικα για τη κλάση enum Direction τα στοιχεια της τι τα θεωρούμε ;;; Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kanou_tom on December 05, 2016, 15:14:09 pm Φρόντισε να υπάρχουν μέσα στο project σου στο visual studio και τα 5 αρχεία του code.zip (3 source files & 2 header files - και αν ακόμα διαμαρτύρεται ότι δεν βρίσκει τα header files, κάν' τα αντιγραφή στο φάκελο με τα αρχεία .cc) Για το εκτελέσιμο είναι υπεύθυνο το test-maze.cc, επειδή εκεί μέσα βρίσκεται η main() που τρέχει όλα τα τεστ για τον κώδικά σου. Το πρόβλημα παραμένει..καμιά άλλη ιδέα γιατί δεν μπορεί να γίνει build το test-maze.cc; Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: sotiristsar on December 05, 2016, 16:59:47 pm Μήπως μπορεί κάποιος να μου πει τι τύπο επιστρέφει η συνάρτηση: MazeCell Maze::getCell(int cellRow, int cellCol) const Γιατι δε μπορώ να κάνω build το αρχείο και να τεστάρω τον κώδικα Και εγω εχω το ίδιο θέμα και δεν ξέρω καθόλου τι θελει. Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kongr45gpen on December 05, 2016, 19:47:20 pm Το πρόβλημα παραμένει..καμιά άλλη ιδέα γιατί δεν μπορεί να γίνει build το test-maze.cc; Τι error βλέπεις; Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: tomas on December 05, 2016, 20:38:16 pm Λεει οτι και η Mazecell και η Direction δεν ειναι κλασεις.!
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kanou_tom on December 05, 2016, 20:55:51 pm Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: tomas on December 05, 2016, 21:07:16 pm Αυτο ειναι το ερορ μου
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kongr45gpen on December 05, 2016, 22:27:46 pm Το error που εμφανίζεται. Πρέπει να αντιγράψεις τα 2 αρχεία .hh από τον φάκελο include στον φάκελο src. Εναλλακτικά, αν δεν θες να πειράζεις αρχεία και φακέλους, μπορείς μέσα από το Visual Studio να πας στο Project > Properties και να βάλεις τον φάκελο στα Additional Include Directories:(https://i.imgur.com/t4MCQ2Y.png) (https://i.imgur.com/t4MCQ2Y.png) Αυτο ειναι το ερορ μου Δεν πρέπει απλώς να τρέχεις τα αρχεία, αλλά χρειάζεται να δημιουργήσεις νέο project στο Dev-C++, με όλα τα .hh και .cc αρχεία μέσα, ώστε να τα κάνει compile όλα μαζί και να βρει τις κλάσεις που είναι ορισμένες στο maze.cc και maze.hh.Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: mprizou on December 05, 2016, 22:57:14 pm στην clearWall το Mazecell γινεται empty η visited?
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kongr45gpen on December 05, 2016, 23:09:31 pm στην clearWall το Mazecell γινεται empty η visited? Το κελί δίπλα από τον τοίχο μένει όπως ήταν, και το MazeCell που αναπαριστά τον τοίχο γίνεται EMPTY.Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: mprizou on December 05, 2016, 23:16:27 pm με την προϋποθεση οτι ειναι οντως wall το γειτονικο,αλλιως δεν γινεται τιποτα,σωστα?
ευχαριστω πολυ! Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kongr45gpen on December 05, 2016, 23:42:47 pm με την προϋποθεση οτι ειναι οντως wall το γειτονικο,αλλιως δεν γινεται τιποτα,σωστα? Δεν χρειάζεται να κάνεις έλεγχο, εφ' όσον η clearWall δέχεται ένα "κανονικό" κελί για όρισμα, ο γειτονικός τοίχος θα είναι ή "άδειος" ή "γεμάτος" τοίχος :)ευχαριστω πολυ! Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: sotiristsar on December 06, 2016, 01:17:32 am Μήπως ξέρει κάποιος γιατί μου πετάει αυτό το error???
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: MrRobot on December 06, 2016, 09:11:40 am Μήπως ξέρει κάποιος γιατί μου πετάει αυτό το error??? Ανέβασε άλλο ένα screenshot που να φαίνεται η γραμμή 50 του testbase.cc γιατί εκεί λέει είναι το λάθος. Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: sotiristsar on December 06, 2016, 12:50:49 pm Ανέβασε άλλο ένα screenshot που να φαίνεται η γραμμή 50 του testbase.cc γιατί εκεί λέει είναι το λάθος. ναι όντως δεν φαινόταν στο προηγουεμενο screenshot :D!! Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: MrRobot on December 06, 2016, 13:14:40 pm Ή auto δεν δουλεύει σε όλους τους compilers. Βαλε τον gcc και θα είσαι εντάξει.
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: Egkelados on December 06, 2016, 21:31:50 pm Το copied object πρέπει να γίνει και αυτό delete από τον destructor ?
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: leukosaraphs! on December 06, 2016, 21:54:10 pm Το copied object πρέπει να γίνει και αυτό delete από τον destructor ? οχι , αλλα στην πραγματικοτητα οταν κανεις το destructor το θα καταστρεφει κι το copy (οταν αυτο θα βγαινει εξω απο το scope) Τουλαχιστον ετσι καταλαβα εγω :Ρ επισης , μπορεις να βαλεις ενα print για να βλεπεις ΠΟΤΕ εκτελειται ο destructor , απλα θυμησου να το σβησεις , για να φαινεται καλυτερα το display του cmd Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: TheoProt on December 06, 2016, 22:37:35 pm Τι τύπο επιστρέφει η Maze& Maze::operator=(const Maze &m) ;
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: leukosaraphs! on December 06, 2016, 22:40:32 pm Τι τύπο επιστρέφει η Maze& Maze::operator=(const Maze &m) ; διαβασε εδώ (http://en.cppreference.com/w/cpp/language/copy_assignment) ;) Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: TheoProt on December 06, 2016, 22:57:58 pm διαβασε εδώ (http://en.cppreference.com/w/cpp/language/copy_assignment) ;) Ευχαριστώ!Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: TheoProt on December 06, 2016, 23:19:24 pm Ξέρει κανείς το δεύτερο outcome στο evaluation του CMS για ποια συνάρτηση είναι ;
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: leukosaraphs! on December 07, 2016, 01:41:43 am Ξέρει κανείς το δεύτερο outcome στο evaluation του CMS για ποια συνάρτηση είναι ; στην print :) Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: TheoProt on December 07, 2016, 02:47:15 am στην print :) οκ, ευχαριστώ!Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: sotiristsar on December 07, 2016, 17:20:06 pm Μπορεί να εξηγήσει κάποιος τι θέλει στην get/set Cell γιατι αν μας δίνει τις cell συντεταγμένες δεν μου βγάζει κάποιο νόημα ?
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kongr45gpen on December 07, 2016, 19:33:46 pm Μπορεί να εξηγήσει κάποιος τι θέλει στην get/set Cell γιατι αν μας δίνει τις cell συντεταγμένες δεν μου βγάζει κάποιο νόημα ? Το κάθε κελί σε κάποιες συντεταγμένες μπορεί να είναι empty ή visited, δηλαδή MazeCell::EMPTY ή MazeCell::VISITED (αντίστοιχα, οι τοίχοι μπορούν να είναι άδειοι ή γεμάτοι - MazeCell::EMPTY ή MazeCell::WALL αντίστοιχα). Επομένως, με τις s/g etCell() πρέπει να επιστρέφεις αν το κάθε κελί είναι MazeCell::EMPTY ή MazeCell::VISITED. Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kanou_tom on December 07, 2016, 23:04:20 pm Πως μπορούμε να τσεκάρουμε αν οι συναρτήσεις που έχουμε υλοποιήσει είναι σωστές χωρίς ακόμα να έχουμε ολοκληρώσει όλο τον κώδικα;
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: sotiristsar on December 07, 2016, 23:08:10 pm Το κάθε κελί σε κάποιες συντεταγμένες μπορεί να είναι empty ή visited, δηλαδή MazeCell::EMPTY ή MazeCell::VISITED (αντίστοιχα, οι τοίχοι μπορούν να είναι άδειοι ή γεμάτοι - MazeCell::EMPTY ή MazeCell::WALL αντίστοιχα). Επομένως, με τις s/g etCell() πρέπει να επιστρέφεις αν το κάθε κελί είναι MazeCell::EMPTY ή MazeCell::VISITED. Ωραια και αυτό που θα συγκρίνουμε ποιο θα ειναι ?? Αυτό ειναι το θέμα μου.. Βασικά το *cells περιέχει αυτή την πληροφορία ?? Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kongr45gpen on December 07, 2016, 23:22:46 pm Πως μπορούμε να τσεκάρουμε αν οι συναρτήσεις που έχουμε υλοποιήσει είναι σωστές χωρίς ακόμα να έχουμε ολοκληρώσει όλο τον κώδικα; Χρειάζεται να υλοποιήσεις μόνο τον πρώτο constructor Maze::Maze(int rows, int cols), έτσι ώστε να δημιουργούνται κατ' αρχάς τα Mazes που θα τεσταριστούν :P Τις υπόλοιπες συναρτήσεις μπορείς να τις υλοποιήσεις με όποια σειρά θες, και το test-maze θα σου εμφανίζει ακριβώς σε ποιά συνάρτηση (και από ποιά σειρά του test-maze.cc ελέγχεται αυτή) υπάρχει κάποιο λάθος - αν κάποια δεν την έχεις υλοποιήσει, θα σου βγάζει errors σε αυτήν. Δες και αυτό το post του MrRobot (https://www.thmmy.gr/smf/index.php?topic=67757.msg1159634#msg1159634) αν έχεις θέμα.Ωραια και αυτό που θα συγκρίνουμε ποιο θα ειναι ?? Αυτό ειναι το θέμα μου.. Βασικά το *cells περιέχει αυτή την πληροφορία ?? Δεν χρειάζεται να συγκρίνεις τίποτα. Η πληροφορία που λες όντως αναπαριστάται από τον πίνακα στον οποίο δείχνει το *cells.Αν π.χ. ένα κελί βρίσκεται στη θέση 50 του πίνακα (cells[50] - τον αριθμό της θέσης τον βρίσκεις από τα coordinates μέσω των Maze::getCellArrayCoord() και Maze::getArrayIndex()), τότε στην getCell() απλώς πρέπει να επιστρέφεις το cells[50], και στην setCell() θα πρέπει να εκχωρείς την τιμή val στο cells[50]. Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: sotiristsar on December 08, 2016, 00:37:12 am Τελειααα!!!
Το Location αναφερεται σε expanded η σε cell συντεταγμενες ??? Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: tomas on December 08, 2016, 01:18:20 am Παιδια εχω προβλημα με το memory allocation του πινακα-pointer cells.Ενω γινεται κανονικα build βγαζει debug accersion failed.
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kanou_tom on December 08, 2016, 01:30:25 am Στο private section της κλάσης maze,είναι δυνατό να προσθέσουμε συναρτήσεις και μεταβλητές.Έτσι;
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: leukosaraphs! on December 08, 2016, 02:02:15 am Τελειααα!!! Το Location αναφερεται σε expanded η σε cell συντεταγμενες ??? στην setCell εχεις τις αρχικες συντεταγμενες κι πρεπει εσυ να φροντισεις για τα expanded ...Γενικα , παντου τις αρχικες θα δεχεσαι απο τον "χρηστη" αφου ουσιαστικα τα expanded ειναι δικια σου υλοποιηση ;) Στο private section της κλάσης maze,είναι δυνατό να προσθέσουμε συναρτήσεις και μεταβλητές.Έτσι; Θεωρητικα ναι , αλλα δεν ξερω αν χτυπαει καθως δεν το δοκιμασα ;Ρ Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: leukosaraphs! on December 08, 2016, 02:10:19 am Παιδια εχω προβλημα με το memory allocation του πινακα-pointer cells.Ενω γινεται κανονικα build βγαζει debug accersion failed. χωρις να ειμαι σιγουρος, το ερρορ μπορει να σημαινει ειτε οτι δεν κανεις καλα allocate την μνημη ειτε οτι δεν την κανεις delete Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kanou_tom on December 08, 2016, 02:17:14 am Θεωρητικα ναι , αλλα δεν ξερω αν χτυπαει καθως δεν το δοκιμασα ;Ρ χτυπάει..το δοκίμασα.. Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: leukosaraphs! on December 08, 2016, 02:28:19 am χτυπάει..το δοκίμασα.. βασικα τωρα που το ξαναδιαβασα , σου λεει οτι εχεις την δυνατοτητα να ορισεις δικες σου συναρτησεις που να σε βοηθανε να διαχειριστεις τις private μεταβλητες ! αρα ακυρο αυτο που ειπα Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: MrRobot on December 08, 2016, 03:42:09 am Στο private section της κλάσης maze,είναι δυνατό να προσθέσουμε συναρτήσεις και μεταβλητές.Έτσι; Γενικά νομίζω ότι δεν γίνεται να ορίσεις νέες συναρτήσεις μέσα στην κλάση Maze αφού ο ορισμός της γίνεται μέσα στο maze.hh το οποίο δεν το ανεβάζεις κάπου. Άρα αν θέλεις κάποια βοηθητική συνάρτηση φτιάξτην στο maze.cc, απλά δεν θα έχει πρόσβαση στα private members της maze. Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: tomas on December 08, 2016, 04:55:30 am You can use the << stream-output operator on the ostream object, just as if it were cout.
αυτο παλι τ φαση???? κανω (os<< kati ) και πεταει ερορ για πλακα Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: leukosaraphs! on December 08, 2016, 13:25:45 pm You can use the << stream-output operator on the ostream object, just as if it were cout. αυτο παλι τ φαση???? κανω (os<< kati ) και πεταει ερορ για πλακα os << "This is a test string" << endl; κατι τετοιο σου περναει? Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: tomas on December 08, 2016, 13:58:49 pm Εχω κ αλλα μικρα θεματακια αλλα αυτο ειναι αστα να πανε....Βρηκα αυτο παρεπιπτοντως
ostream& operator<<(ostream& os, const MazeCell& s){ //os << s; //return os; ostream& operator<<(ostream& os, const MazeCell& cells); Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: leukosaraphs! on December 08, 2016, 14:04:43 pm Εχω κ αλλα μικρα θεματακια αλλα αυτο ειναι αστα να πανε....Βρηκα αυτο παρεπιπτοντως ostream& operator<<(ostream& os, const MazeCell& s){ //os << s; //return os; ostream& operator<<(ostream& os, const MazeCell& cells); γενικα προσεξες οτι εχει γινει αλλαγη στην εκφωνηση? η εχεις το τερμα αρχικο code.zip? η αλλαγη αναφερεται στην print , για αυτο στο λεω... η εντολη μου επρεπε να σου τρεχει Code: void Maze::print(ostream &os) const{ τετοια μορφη πρεπει να εχει Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kongr45gpen on December 08, 2016, 14:24:24 pm You can use the << stream-output operator on the ostream object, just as if it were cout. αυτο παλι τ φαση???? κανω (os<< kati ) και πεταει ερορ για πλακα Το os είναι όρισμα μόνο στην print, δεν μπορείς να το χρησιμοποιήσεις κάπου αλλού :) Θα χρειαστεί μόνο να το βάλεις μέσα στην print (η οποία μετά καλείται έτσι: m.print(cout), οπότε η os γίνεται ίση με την cout), και το χρησιμοποιείς κανονικά, σαν το cout, όπως είπε και ο leukosaraphs! Στην ουσία η print βάζει τους χαρακτήρες στην έξοδο που αναπαριστά το os (output stream). Αν το os είναι η κανονική έξοδος του terminal, δηλαδή το cout, το κείμενο θα πάει στο terminal. Διαφορετικά, το os θα μπορούσε π.χ. να είναι κάποιο άλλο αρχείο, οπότε η εντολή os << "something" θα έγραφε το "something" μέσα στο αρχείο αυτό. Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: tomas on December 08, 2016, 14:48:30 pm Ευχαριστω πολυ για τις διευκρινισεις με το os .Μηπως ομως ξερει καποιος επισης που οφειλονται τα output 9,10?
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kanou_tom on December 08, 2016, 15:24:30 pm Ευχαριστω πολυ για τις διευκρινισεις με το os .Μηπως ομως ξερει καποιος επισης που οφειλονται τα output 9,10? Bασικά,ξέρει κάποιος που αντιστοιχεί το κάθε output στο CMS; Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: leukosaraphs! on December 08, 2016, 15:40:07 pm Απο την στιγμη που εχετε τα failures και τα OK , δεν σας νοιαζει για τα outputs
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kanou_tom on December 08, 2016, 16:55:01 pm Στον constructor της maze θα δημιουργήσουμε το expanded version της maze;Eτσι δεν είναι;
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: MrRobot on December 08, 2016, 17:09:31 pm Στον constructor της maze θα δημιουργήσουμε το expanded version της maze;Eτσι δεν είναι; Ναι έτσι ακριβώς. Δεν χρειάζεται να τον αρχικοποιησεις κιόλας, μόνο να δεσμεύσεις μνημη Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: sotiristsar on December 08, 2016, 17:22:28 pm Για τον two argument costructor μου πεταει αυτα τα 2 λάθη
Failure detected on line 30 Failure detected on line 45 εκτος απο δεσμευση μνήμης θέλει και κατι άλλο; Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: tomas on December 08, 2016, 17:42:05 pm αυτο παλι;Ψαχνω ποση ωρα στο ιντερνετ και τπτ.....
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: tomas on December 08, 2016, 20:43:05 pm Οποιος εχει θεμα και δεν του αναγνωριζει τις enum πρεπει να κανει αυτο http://stackoverflow.com/questions/18174988/how-can-i-add-c11-support-to-codeblocks-compiler
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kanou_tom on December 08, 2016, 22:22:05 pm Oυσιαστικά αυτό που πρέπει να υπάρχει στον constructor της maze είναι μόνο μια δυναμική δέσμευση μνήμης για ένα μονοδιάστατο πίνακα διάστασης(2*rows+1)*(2*cols+1);Και για αυτή την υλοποίηση χρησιμοποιούμε τον MazeCell *cells;
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kongr45gpen on December 08, 2016, 22:40:12 pm Oυσιαστικά αυτό που πρέπει να υπάρχει στον constructor της maze είναι μόνο μια δυναμική δέσμευση μνήμης για ένα μονοδιάστατο πίνακα διάστασης(2*rows+1)*(2*cols+1);Και για αυτή την υλοποίηση χρησιμοποιούμε τον MazeCell *cells; Ναι, και δεν πρέπει να ξεχάσεις να βάλεις τις σωστές τιμές στις μεταβλητές numRows και numCols της κλάσης. Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kanou_tom on December 08, 2016, 23:59:24 pm Ναι, και δεν πρέπει να ξεχάσεις να βάλεις τις σωστές τιμές στις μεταβλητές numRows και numCols της κλάσης. Φαντάζομαι εννοούμε τη μετατροπή σε expanded coordinates; Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: tomas on December 09, 2016, 01:22:59 am τελευται συναρτηση print .....πως εκτυπωνεις αυτο το πραμα @@....εντωμεταξυ στο run μ βγαζει περασες τα τεστ 10/10 και στο cms 7...kappa
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: leukosaraphs! on December 09, 2016, 01:27:11 am τελευται συναρτηση print .....πως εκτυπωνεις αυτο το πραμα @@....εντωμεταξυ στο run μ βγαζει περασες τα τεστ 10/10 και στο cms 7...kappa εχει ενα hint στην εκφωνηση ;)επισης τα test του test.maze , ελεγχουν ελαχιστες οριακες καταστασεις ;) αρα λογικα εκει το χανεις Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: sotiristsar on December 09, 2016, 01:56:36 am ρε παιδια εχω κολλησει στον constructor της maze ενω κανω κανονικα allocate την μνημη συνεχιζει να βγαζει λαθος ...
επισης numRows = rows ή numRows = 2 * rows +1 ?? Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kongr45gpen on December 09, 2016, 12:19:02 pm Φαντάζομαι εννοούμε τη μετατροπή σε expanded coordinates; ρε παιδια εχω κολλησει στον constructor της maze ενω κανω κανονικα allocate την μνημη συνεχιζει να βγαζει λαθος ... επισης numRows = rows ή numRows = 2 * rows +1 ?? Καλύτερα να μην κάνετε μετατροπή σε expanded coordinates, να βάζετε απλώς numRows = rows, και να κάνετε την μετατροπή όταν χρειάζεται. Αν έχεις πρόβλημα με την allocate, δοκίμασε απλώς να κάνεις allocate 100 000 στοιχεία που θα σου φτάσουν σίγουρα, και δες αν συνεχίζεις να έχεις πρόβλημα :D Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: sotiristsar on December 09, 2016, 12:56:26 pm Επίσης γνωρίζει κάποιος γιατι μου λεει οτι δεν υπάρχει η συνάρτηση assert ??
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kongr45gpen on December 09, 2016, 14:06:17 pm Επίσης γνωρίζει κάποιος γιατι μου λεει οτι δεν υπάρχει η συνάρτηση assert ?? Δοκίμασε αυτό το #include: Code: #include <cassert> Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: sotiristsar on December 09, 2016, 19:12:18 pm το έχει στο test-maze δηλωμενο.
Πρέπει να το ξαναγράψω και δτο maze ?? Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: MrRobot on December 09, 2016, 21:09:26 pm το έχει στο test-maze δηλωμενο. Πρέπει να το ξαναγράψω και δτο maze ?? Ναι πρέπει. Αν ήταν γραμμένο στο maze.hh δεν θα ήταν υποχρεωτικό να το γράψεις στο test-maze αφού στο test-maze κάνεις include τον κώδικα του maze.hh. Το αντίστροφο δεν ισχύει, αρα το maze.cc και το maze.hh δεν ξέρουν τίποτα για τα include στο test-maze. Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kanou_tom on December 09, 2016, 21:11:52 pm Οι συναρτήσεις getNumRows και getNumCols επιστρέφουν τις σειρές και τις στήλες που έχει η expanded maze ή η κανονική μορφή της;
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: steveng8 on December 09, 2016, 21:20:27 pm στο cms μου βγαζει ως αποτελεσμα στα περισσοτερα
Execution killed with signal 11 (could be triggered by violating memory limits) Ξερει κανεις τι παιζει; Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: leukosaraphs! on December 09, 2016, 21:26:52 pm Οι συναρτήσεις getNumRows και getNumCols επιστρέφουν τις σειρές και τις στήλες που έχει η expanded maze ή η κανονική μορφή της; τις χρησιμοποιεις απλα για να κανεις access στα private members της class σου ;) στο cms μου βγαζει ως αποτελεσμα στα περισσοτερα Execution killed with signal 11 (could be triggered by violating memory limits) Ξερει κανεις τι παιζει; δεν κανεις σωστα δεσμευση της δυναμικης μνημης ή/και δεν την αποδεσμευεις Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kanou_tom on December 09, 2016, 21:45:47 pm τις χρησιμοποιεις απλα για να κανεις access στα private members της class σου ;) Ευχαριστώ πολύ!Για να εμφανίζονται τα ok για τις συναρτήσεις που έχουν γίνει σωστά,αρκεί να έχει υλοποιηθεί μόνο ο maze constrcuctor; Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: leukosaraphs! on December 09, 2016, 21:54:36 pm Ευχαριστώ πολύ! Για να εμφανίζονται τα ok για τις συναρτήσεις που έχουν γίνει σωστά,αρκεί να έχει υλοποιηθεί μόνο ο maze constrcuctor; θα βγαζει διαφορα errors , οσες περισσοτερες συναρτησεις κανετε , τοσα περισσοτερα failures θα γινονται σωστα .. αλλα προσωπικα δεν ξερω ποιες πρεπει να γινουν πρωτα :Ρ γιατι τις εκανα μπερδεμενες Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kanou_tom on December 09, 2016, 21:59:33 pm θα βγαζει διαφορα errors , οσες περισσοτερες συναρτησεις κανετε , τοσα περισσοτερα failures θα γινονται σωστα .. αλλα προσωπικα δεν ξερω ποιες πρεπει να γινουν πρωτα :Ρ γιατι τις εκανα μπερδεμενες ψιλοπάμε στα τυφλά λίγο δηλαδή; Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: leukosaraphs! on December 09, 2016, 22:03:25 pm ψιλοπάμε στα τυφλά λίγο δηλαδή; για να κτλβεις , εγω εκανα πρωτα ολα τα operations (χωρις την print) , και μετα πηγα εκανα τις υπολοιπες συναρτησεις...τα οκ μου τα επαιρνα κανονικα , απλα επρεπε να κανω ΚΑΙ τον operator και να διορθωσω τον copy constructor για να σταματησει να βγαζει κατι χαζα errors ... για αυτο δεν ξερω τι χρειαζεται κι τι οχι :D τα failures ετσι κι αλλιως σου λενε σε ποια σειρα ειναι το λαθος , εε πηγαινε στο test maze και δες τι πρεπει να κανεις/διορθωσεις Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kanou_tom on December 09, 2016, 22:09:46 pm μάλιστα..τα errors που μου πετάει είναι για κάποιες συναρτήσεις που δεν έχουν υλοποιηθεί ακόμα επειδή δεν επιστρέφουν τιμή.Λογικά αν υλοποιηθούν και αυτές θα γίνει build το project και θα αρχίζουν να πετάγονται και τα οκ;Σωστά;
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: leukosaraphs! on December 09, 2016, 22:11:23 pm build θα επρεπε ηδη να κανει , αλλα ναι ... πρεπει να βαλεις return values
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kanou_tom on December 09, 2016, 22:13:32 pm ναι ντάξει λάθος μου,κάνει build απλά πετάει τα errors
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: tomas on December 10, 2016, 02:33:39 am Πως γινεται αυτο να μου το παιρνει λαθος(εννοω το output 2 incorrect) ;
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: filip on December 10, 2016, 11:17:24 am Για να γίνει σωτά η Copy constructor και η Copy assignment operator τι πρέπει να αντιγράφεται στο νέο αντικείμενο;
- numRows, numCols; - και cells? - ή τα πάντα (και start, stop κτλ); Και αν αντιγράφεται το cells τι ακριβώς αντιγράφεται; μόνο ο δείκτης; ή όλα τα περιεχόμενα του πίνακα σε έναν νέο ίδιου μεγέθους αλλά αλλού στη μνήμη...??? :-\ Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: leukosaraphs! on December 10, 2016, 12:03:36 pm Πως γινεται αυτο να μου το παιρνει λαθος(εννοω το output 2 incorrect) ; θελει το σηματακι της καθετου | οχι 2 γραμμουλες (υποθετω :Ρ ) Για να γίνει σωτά η Copy constructor και η - numRows, numCols; - και cells? - ή τα πάντα (και start, stop κτλ); Και αν αντιγράφεται το cells τι ακριβώς αντιγράφεται; μόνο ο δείκτης; ή όλα τα περιεχόμενα του πίνακα σε έναν νέο ίδιου μεγέθους αλλά αλλού στη μνήμη...??? :-\ ουσιαστικα ο copy constructor "δημιουργει" ενα αλλο ιδιο object για να κανεις την δουλεια σου μαυτο ;) . Αρα , το νεο ¨δημιουργημα" δεν πρεπει να εχει τα ιδια χαρακτηριστικα με το πρωτοτυπο? ο assignement opperator , εχει μια μικρη διαφορα στην εννοια του , απο τον copy constructor .., Καντε μια αναζητηση , για deep copy. Υ.γ. Η λεξη "δημιουργει" δεν ξερω αν ειναι η καταλληλη , μην σας μπερδεψω κιολας :P Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kongr45gpen on December 10, 2016, 12:25:33 pm Πως γινεται αυτο να μου το παιρνει λαθος(εννοω το output 2 incorrect) ; Βάλε μια επιπλέον cout << "\n"; στο τέλος της print :PTitle: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: tomas on December 10, 2016, 14:17:26 pm Βάλε μια επιπλέον cout << "\n"; στο τέλος της print :P To ιδιο ακριβως μ βγαζει >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( τι φταιει.... Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: Achilleas1997 on December 10, 2016, 14:48:48 pm To ιδιο ακριβως μ βγαζει >:( >:( >:( >:( >:( >:( >:( >:( >:( >:( τι φταιει.... Εμενα το επαιρνε λαθος οσο εκανα print απο το 0 εως το numRows - 1 και απο το 0 εως το numCols - 1.. Αν κανεις το ιδιο δοκιμασε απο το start μεχρι το end :) Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: kanou_tom on December 10, 2016, 15:31:53 pm Ξέρει κανείς σε ποια σημεία του κώδικα πρέπει να υπάρχει η assert;Kαι γενικά πως υλοποιείται;
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: steveng8 on December 10, 2016, 15:48:16 pm στην set start
this->start.row=row; this->start.col=col; get start return this->start; o κωδικας αν και απλος συνεχιζει να πεταει incorrect στο δευτερο test.. καποιος καμια ιδεα; Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: leukosaraphs! on December 10, 2016, 16:28:05 pm Ξέρει κανείς σε ποια σημεία του κώδικα πρέπει να υπάρχει η assert;Kαι γενικά πως υλοποιείται; γενικα ειναι καλο να υπαρχουν στο προγραμμα σου , για να ελεγχεις τις εισοδους πρεπει να υπαρχει σιγουρα μια στην getWallArrayCoord για να ελεγχεις αν υπαρχουν στοιχεια "πανω" απο το (0,0) Οπως εγραψαν και παλαιοτερα, συντασσεται ετσι: Code: #include <assert.h> στην set start this->start.row=row; this->start.col=col; get start return this->start; o κωδικας αν και απλος συνεχιζει να πεταει incorrect στο δευτερο test.. καποιος καμια ιδεα; το this για ποιον λογο? Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: steveng8 on December 10, 2016, 17:03:20 pm μου βγαζει στα περισσοτερα τεστ στο cms Execution failed because the return code was nonzero
ξερει κανεις αν τις ελεγχει με την ιδια σειρα οπως h test maze για να βρω που βρισκεται το προβλημα. Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: gkouziik on December 10, 2016, 20:25:20 pm το end στον constructor της maze δεν το αρχικοποιουμε στελνωντας ορισματα στην Location τα 2*numRows+1 kai 2*numCols+1 ?? η το βαζουμε και αυτο 0 καλωντας την Location()?
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: afro on December 10, 2016, 20:53:42 pm το end στον constructor της maze δεν το αρχικοποιουμε στελνωντας ορισματα στην Location τα 2*numRows+1 kai 2*numCols+1 ?? η το βαζουμε και αυτο 0 καλωντας την Location()? Το end είναι σε cell-coordinates όπως περιγράφεται στην maze.hh.Άρα το ορίζεις ως Location αλλά όχι με τις συντεταγμένες που ανέφερες γιατί αντιστοιχούν σε expanded .Επίσης πρέπει να προσέξεις το γεγονός ότι ο πίνακας ξεκινάει από το 0.Δες και τη φωτο που αναπαριστά το λαβύρινθο σε πίνακα για να σε βοηθήσει.Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: SaltyMeatBalls on December 10, 2016, 20:58:32 pm το end στον constructor της maze δεν το αρχικοποιουμε στελνωντας ορισματα στην Location τα 2*numRows+1 kai 2*numCols+1 ?? η το βαζουμε και αυτο 0 καλωντας την Location()? μπορεις να το αρχικοποιησεις στο 0,0 Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: steveng8 on December 10, 2016, 21:22:33 pm ξερει καποιος στο cms τι τεσταρουν το 6ο και το 8ο output?
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: smegalou on December 10, 2016, 21:50:47 pm Στο cms τα outputs είναι με την ίδια ακριβώς σειρά με το testmaze απλώς το δεύτερο output είναι το print αντί να είναι το τελευταίο, οπότε πάει :
1ο Constructor 2o Print 3ο get/set start/end value ... και ούτω καθεξής! Αυτό μου είπεο Φλώρος τουλάχιστον όταν το ρώτησα!! ;) Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: steveng8 on December 11, 2016, 03:13:07 am πως κανω built και run και τα 5 αρχεια σε codeblocks:
πως κανω make clean; make sto testing; Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: thanosthehuge on December 11, 2016, 12:56:10 pm Μου έτυχε ένα περίεργο πρόβλημα: όταν τρέχω το test-maze μου βγάζει failure στο set-wall, αλλά μόνο στις σειρές που ελέγχει τα EAST και WEST, ενώ τα NORTH και SOUTH τα περνάει κανονικά :o
Η setWall μου είναι αυτή: Code: void Maze::setWall(int cellRow, int cellCol, Direction direction){ δηλαδή όπως το λέει να το υλοποιήσουμε στην εκφώνηση... Μήπως βλέπει κανείς που μπορεί να είναι το λάθος?? Έχω καρακολλήσει! :( Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: steveng8 on December 11, 2016, 17:37:40 pm φιλε και εγω το ιδιο ακριβως προβλημα εχω..αν και το εκανα ετσι
cells[getArrayIndex(getWallArrayCoord(cellRow,cellCol,direction))]=MazeCell::WALL; βγαζει προβλημα στις set wall kai set all walls..ειτε δεν εγιναν σωστα οι τριες βοηθητικες στην αρχη ειτε χανουμε κατι προφανη... Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: leukosaraphs! on December 11, 2016, 17:38:37 pm η συναρτηση λεγεται setWall , εχεις υλοποιησει ολοκληρη συναρτηση για να παιρνεις τις συντεταγμενες τοιχων 8)) ...εκμεταλλευσου την , κι μην κανεις 2 φορες την ιδια δουλεια ;) Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: gkouziik on December 11, 2016, 17:40:30 pm ενω οταν κανω test-maze στο terminal παιρνω σε ολα οκ οταν το ανεβαζω στο cms μου βγαζει 0/10 ενω αντικαθιστω το #include "maze.hh" με #include "ps5.h"
το maze.cc δεν πρεπει να ανεβασω απλως?? δεν μπορω να καταλαβω τι συμβαινει Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: mprizou on December 11, 2016, 20:04:58 pm απο τη στιγμη που κανει compile δεν εχεις λαθος στο include παντως.δες τα error που σου βγαζει το cms
Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: alekosts on December 11, 2016, 20:18:47 pm φιλε και εγω το ιδιο ακριβως προβλημα εχω..αν και το εκανα ετσι cells[getArrayIndex(getWallArrayCoord(cellRow,cellCol,direction))]=MazeCell::WALL; βγαζει προβλημα στις set wall kai set all walls..ειτε δεν εγιναν σωστα οι τριες βοηθητικες στην αρχη ειτε χανουμε κατι προφανη... ειχαμε καποια εξελιξη στο θεμα γιατι εχω και εγω το ιδιο προβλημα? Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: leukosaraphs! on December 11, 2016, 20:25:19 pm φιλε και εγω το ιδιο ακριβως προβλημα εχω..αν και το εκανα ετσι cells[getArrayIndex(getWallArrayCoord(cellRow,cellCol,direction))]=MazeCell::WALL; βγαζει προβλημα στις set wall kai set all walls..ειτε δεν εγιναν σωστα οι τριες βοηθητικες στην αρχη ειτε χανουμε κατι προφανη... η εντολη : Code: cells[getArrayIndex(getWallArrayCoord(cellRow,cellCol,direction))]=MazeCell::WALL; οταν την βαζω στο δικο μου maze.cc τρεχει (οπως ειναι κι λογικο ) αρα κοιταξτε τις αλλες συναρτησεις σας Title: Re: [Προγραμματιστικές Τεχνικές] Task 5 - Κυριακή, 11/12 11:55 μμ Post by: Panthera Leo on December 12, 2016, 00:04:57 am Ανοιξε παλι, οκ |