Page 2 of 4

Re: Προγραμματισμός Υπολογιστών με C++

Posted: Thu Nov 24, 2016 12:10 am
by mashua
Παιδιά χαιρετώ σας, 3 ερωτησούλες η πρώτη πιθανότατα περιττή:

1) είναι δυνατό να παραδοθούν οι εργασίες όλες μαζί στο τέλος του εξαμήνου και αν ναι πότε ακριβώς γίνεται αυτο; πρεπει να στείλω στον καθηγητή email και να τον ειδοποιήσω δλδ;

2) είναι δυνατόν να γίνουν οι εργασίες ατομικά χωρίς ομάδα;

3) όταν λέει με χρήση gcc για windows, μέσω ποιου περιβάλλοντος εννοεί; μέσω Cygwin ( http://cygwin.com/ ) ή μέσω msys ( http://mingw.org/wiki/msys ), ποιο είναι εγκατεστημένο στα μηχανήματα που θα γίνει η εξέταση;

thanks προκαταβολικά

Re: Προγραμματισμός Υπολογιστών με C++

Posted: Thu Nov 24, 2016 2:50 am
by Georgilakis Antonios
mashua wrote:Παιδιά χαιρετώ σας, 3 ερωτησούλες η πρώτη πιθανότατα περιττή:

1) είναι δυνατό να παραδοθούν οι εργασίες όλες μαζί στο τέλος του εξαμήνου και αν ναι πότε ακριβώς γίνεται αυτο; πρεπει να στείλω στον καθηγητή email και να τον ειδοποιήσω δλδ;

2) είναι δυνατόν να γίνουν οι εργασίες ατομικά χωρίς ομάδα;

3) όταν λέει με χρήση gcc για windows, μέσω ποιου περιβάλλοντος εννοεί; μέσω Cygwin ( http://cygwin.com/ ) ή μέσω msys ( http://mingw.org/wiki/msys ), ποιο είναι εγκατεστημένο στα μηχανήματα που θα γίνει η εξέταση;

thanks προκαταβολικά
1) Είναι δυνατόν.

2) Αν δεν κάνω λάθος, οι εργασίες μπορούν να γίνουν ατομικά μόνο από φοιτητές μεγαλύτερων ετών. Μπορεί όμως αυτό που λέω να μην ισχύει πλέον, κάποιος να διορθώσει ASAP αν λέω βλακείες. :-D

3) Περιβάλλον Cygwin.

Re: Προγραμματισμός Υπολογιστών με C++

Posted: Thu Nov 24, 2016 11:23 am
by mashua
Georgilakis Antonios wrote:
1) Είναι δυνατόν.

2) Αν δεν κάνω λάθος, οι εργασίες μπορούν να γίνουν ατομικά μόνο από φοιτητές μεγαλύτερων ετών. Μπορεί όμως αυτό που λέω να μην ισχύει πλέον, κάποιος να διορθώσει ASAP αν λέω βλακείες. :-D

3) Περιβάλλον Cygwin.
thanks a lot! :-)

Re: Προγραμματισμός Υπολογιστών με C++

Posted: Sat Nov 26, 2016 12:37 pm
by skater1995
Σχετικά με την εργασία στο μέρος υλοποίησης της SetData έχω κάνει το εξής: *buffer = *data_ptr;
Όταν τρέχω την εργασία μου πετάει Unhandled exception σε αυτό το σημείο.Πιστεύω τα υπόλοιπα functions τα έχω σωστά.Αν κατάλαβε κάποιος τι γράφω ας βοηθήσει γιατί από ίντερνετ δεν υπάρχει σωτηρία...

Re: Προγραμματισμός Υπολογιστών με C++

Posted: Sat Nov 26, 2016 5:52 pm
by Georgilakis Antonios
skater1995 wrote:Σχετικά με την εργασία στο μέρος υλοποίησης της SetData έχω κάνει το εξής: *buffer = *data_ptr;
Όταν τρέχω την εργασία μου πετάει Unhandled exception σε αυτό το σημείο.Πιστεύω τα υπόλοιπα functions τα έχω σωστά.Αν κατάλαβε κάποιος τι γράφω ας βοηθήσει γιατί από ίντερνετ δεν υπάρχει σωτηρία...
Αυτό που κάνεις εδώ είναι το εξής: στο σημείο που δείχνει ο δείκτης buffer αντιγράφεις το περιεχόμενο του σημείου που δείχνει ο δείκτης data_ptr.

Αυτό είναι ΟΚ για δείκτες που δείχνουν σε single objects ή primitive values, αλλά δεν αντιγράφει σωστά ένα array, διότι μόνο το πρώτο στοιχείο του array αντιγράφεται στον προορισμό.

Φυσικά, pointer dereference μπορείς να κάνεις ΜΟΝΟ αν pointer != NULL, και επειδή εδώ κατά πάσα πιθανότητα ο buffer pointer είναι NULL, έχεις unhandled exception.

Αν και οι δύο buffer pointers δείχνουν σε array buffers (!= NULL), τα οποία είναι και τα δύο ίσα με την τιμή, έστω size_t szBufferSize, τότε πολύ απλά μπορείς να κάνεις copy ως εξής:

Code: Select all

#include <cstring>

// ...

	// Copy buffer.
	
	(void) memcpy(buffer, data_ptr, szBufferSize);

// ...
EDIT: Η τιμή szBufferSize είναι σε bytes.

Re: Προγραμματισμός Υπολογιστών με C++

Posted: Mon Nov 28, 2016 5:12 pm
by AkisMadrugada
Αν υπάρχει κάποπς που ψάχνει ομάδα για τη 2η εργασία, pm! Ευχαριστώ

Re: Προγραμματισμός Υπολογιστών με C++

Posted: Thu Dec 01, 2016 6:57 pm
by efev2014
Καλησπέρα. Μέχρι τώρα χρησιμοποιούσα για τη C++ το Eclipse αλλά λόγω κάποιων προβλημάτων που υπήρχαν σκέφτηκα να βάλω την δωρεάν έκδοση του Visual Studio - Blend. Παρ'όλ'αυτά λόγω του ότι έχω Windows 8.1 μου εμφανίζει το παρακάτω μήνυμα:
"visual studio requires a newer version of windows to display this content. Please update to windows 10 anniversarry edition (10.0.14393.0) or later."
Έχει κανείς κάποια ιδέα για το τι μπορώ να κάνω εκτός από το να τρέχω να εγκαθιστώ τα Windows 10;

Ευχαριστώ

Re: Προγραμματισμός Υπολογιστών με C++

Posted: Thu Dec 01, 2016 7:47 pm
by Georgilakis Antonios
efev2014 wrote:Καλησπέρα. Μέχρι τώρα χρησιμοποιούσα για τη C++ το Eclipse αλλά λόγω κάποιων προβλημάτων που υπήρχαν σκέφτηκα να βάλω την δωρεάν έκδοση του Visual Studio - Blend. Παρ'όλ'αυτά λόγω του ότι έχω Windows 8.1 μου εμφανίζει το παρακάτω μήνυμα:
"visual studio requires a newer version of windows to display this content. Please update to windows 10 anniversarry edition (10.0.14393.0) or later."
Έχει κανείς κάποια ιδέα για το τι μπορώ να κάνω εκτός από το να τρέχω να εγκαθιστώ τα Windows 10;

Ευχαριστώ
Υπάρχει περίπτωση να θέλει κάποιο update το σύστημα.
Με μια πρώτη σκέψη μπορείς να βάλεις το Microsoft® Visual Studio 2013.

Re: Προγραμματισμός Υπολογιστών με C++

Posted: Thu Dec 01, 2016 9:03 pm
by efev2014
Georgilakis Antonios wrote:
efev2014 wrote:Καλησπέρα. Μέχρι τώρα χρησιμοποιούσα για τη C++ το Eclipse αλλά λόγω κάποιων προβλημάτων που υπήρχαν σκέφτηκα να βάλω την δωρεάν έκδοση του Visual Studio - Blend. Παρ'όλ'αυτά λόγω του ότι έχω Windows 8.1 μου εμφανίζει το παρακάτω μήνυμα:
"visual studio requires a newer version of windows to display this content. Please update to windows 10 anniversarry edition (10.0.14393.0) or later."
Έχει κανείς κάποια ιδέα για το τι μπορώ να κάνω εκτός από το να τρέχω να εγκαθιστώ τα Windows 10;

Ευχαριστώ
Υπάρχει περίπτωση να θέλει κάποιο update το σύστημα.
Με μια πρώτη σκέψη μπορείς να βάλεις το Microsoft® Visual Studio 2013.
Ok θα το τσεκάρω. Ευχαριστώ

Re: Προγραμματισμός Υπολογιστών με C++

Posted: Tue Dec 06, 2016 12:55 pm
by AkisMadrugada
Καλησπέρα, για να κάνω check το ppmfile ότι τα bytes αποθηκευονται με σωστή σειρά, μπορώ
κάπως να δω το Image01.ppm σε μορφή τέτοια ώστε να μπορώ να τα συγκρίνω? το hex editor αυτό
κάνει? Ευχαριστώ

Re: Προγραμματισμός Υπολογιστών με C++

Posted: Tue Dec 06, 2016 3:52 pm
by Georgilakis Antonios
AkisMadrugada wrote:Καλησπέρα, για να κάνω check το ppmfile ότι τα bytes αποθηκευονται με σωστή σειρά, μπορώ
κάπως να δω το Image01.ppm σε μορφή τέτοια ώστε να μπορώ να τα συγκρίνω? το hex editor αυτό
κάνει? Ευχαριστώ
Ναι, μπορείς να χρησιμοποιήσεις ένα hex editor.

Re: Προγραμματισμός Υπολογιστών με C++

Posted: Tue Dec 06, 2016 9:13 pm
by skater1995
Καλησπέρα
Σχετικά με το τελευταίο κομμάτι φωτεινότητας στην πρώτη εργασία.Έχω δημιουργήσει ένα αντικείμενο τύπου color x και προσπαθώ μέσα στην for μου να διαβάσω τις τιμές των rgb,χρησιμοποιώντας το function με το index.Προσπαθώ να κάνω κάτι τέτοιο
x-> *buffer; Μπορεί να είναι τελείως λάθος.Την λογική άμα έχει καταλάβει κάποιος θα ήθελα να μάθω,που παίρνει το index και επιστρέφει το χρώμα. Ευχαριστώ

Re: Προγραμματισμός Υπολογιστών με C++

Posted: Wed Dec 07, 2016 3:22 am
by Georgilakis Antonios
skater1995 wrote:Καλησπέρα
Σχετικά με το τελευταίο κομμάτι φωτεινότητας στην πρώτη εργασία.Έχω δημιουργήσει ένα αντικείμενο τύπου color x και προσπαθώ μέσα στην for μου να διαβάσω τις τιμές των rgb,χρησιμοποιώντας το function με το index.Προσπαθώ να κάνω κάτι τέτοιο
x-> *buffer; Μπορεί να είναι τελείως λάθος.Την λογική άμα έχει καταλάβει κάποιος θα ήθελα να μάθω,που παίρνει το index και επιστρέφει το χρώμα. Ευχαριστώ

Αρχικά, και μόνο η ύπαρξη του member function pointer operator (->*, δεν υπάρχουν παρενθέσεις) υποδηλώνει σφάλμα.

Εάν τα RGB είναι unsigned char, τότε κάτι όπως το παρακάτω νομίζω ότι αρκεί:

Code: Select all

#include <cstddef>	// 'size_t' type.
#include "Color.h"

// ...
// 'buffer' is of type: 'unsigned char *'

for (size_t i = 0; i < szBufferSize; i += 3U)
{
	// Get the current color:
	
	Color c(buffer[i],	     // R
		     buffer[i + 1U],   // G
		     buffer[i + 2U]);  // B
	
	// Do something with the color ...
}

// ...
όπου szBufferSize το μέγεθος του buffer. (πολλαπλάσιο του 3)

Η ιδέα είναι ότι τα pixels είναι αποθηκευμένα στο buffer ως RGBRGBRGB...RGB, και διαβάζεις μια τριπλέτα (ένα χρώμα) σε κάθε iteration.

Τροποποίησε κατάλληλα τον κώδικα σύμφωνα με την εργασία.

Re: Προγραμματισμός Υπολογιστών με C++

Posted: Thu Dec 08, 2016 5:13 pm
by Gtkall
Ψάχνω συμφοιτητή για δημιουργία ομάδας για τις προγραμματιστικές εργασίες του μαθήματος. Δεν με νοιάζει έτος ούτε εμπειρία, μαζί θα μάθουμε :P

Όποιος ενδιαφέρεται, ΠΜ. Ευχαριστώ.

Re: Προγραμματισμός Υπολογιστών με C++

Posted: Mon Dec 12, 2016 4:40 pm
by AkisMadrugada
Οι μέσοι όροι για το Image01.ppm είναι αυτοί που έχει στο παράδειγμα?

Re: Προγραμματισμός Υπολογιστών με C++

Posted: Mon Dec 12, 2016 5:52 pm
by v4ss4s1n
Καλησπέρα παιδιά, μήπως γνωρίζει κανείς πότε θα είναι η τελευταία προθεσμία παράδωσης της συνολικής εργασίας?(Μήπως είναι την ημέρα που δίνουμε το μάθημα ή θυμάμαι λάθος;)

Re: Προγραμματισμός Υπολογιστών με C++

Posted: Mon Dec 19, 2016 7:25 pm
by skater1995
Καλησπέρα,
Μήπως γνωρίζει κάποιος πως δηλώνουμε τον buffer μας στην ppm_format.Μας λέει Vec3<float> αλλά ακριβώς πώς είναι?
:S

Re: Προγραμματισμός Υπολογιστών με C++

Posted: Mon Dec 19, 2016 10:35 pm
by v4ss4s1n
Καλησπέρα παιδιά, ήθελα να ρωτήσω αν γνωρίζει κανείς να μου πει πως είναι ο σωστός τρόπος να διαβάσω την εικόνα γιατί την διαβάζω με ifstream και getline().Τα format, width, height, pixel value τα διαβάζει μια χαρά, όμως όταν προσπαθώ να κάνω print το επόμενο getline τρελαίνεται το cmd(ατελείωτο cout)..είναι λογικό αυτό?(ακόμα και ένα getline να συμβεί)

Re: Προγραμματισμός Υπολογιστών με C++

Posted: Mon Dec 19, 2016 11:42 pm
by Georgilakis Antonios
skater1995 wrote:Καλησπέρα,
Μήπως γνωρίζει κάποιος πως δηλώνουμε τον buffer μας στην ppm_format.Μας λέει Vec3<float> αλλά ακριβώς πώς είναι?
:S
Δεν νομίζω ότι το Vec3<float> είναι για τον buffer, αλλά για κάτι άλλο. Εξάλλου, το κάθε pixel είναι RGB, με R,G,B: 0-255 (unsigned char)
Μπορεί να κάνω και λάθος όμως.

EDIT: Υπάρχει μια μικρή πιθανότητα να χρειάζεται για υπολογισμούς, με clamp της χρωματικής τιμής από 0-255 σε 0.0F-1.0F.
v4ss4s1n wrote:Καλησπέρα παιδιά, ήθελα να ρωτήσω αν γνωρίζει κανείς να μου πει πως είναι ο σωστός τρόπος να διαβάσω την εικόνα γιατί την διαβάζω με ifstream και getline().Τα format, width, height, pixel value τα διαβάζει μια χαρά, όμως όταν προσπαθώ να κάνω print το επόμενο getline τρελαίνεται το cmd(ατελείωτο cout)..είναι λογικό αυτό?(ακόμα και ένα getline να συμβεί)
Υπάρχει περίπτωση μια χρωματική τιμή να είναι ίση με 13 (0-255). Όμως, αυτός είναι ο κωδικός ASCII του χαρακτήρα "\r" (Windows), όπου και σταματάει την ανάγνωση η μέθοδος "getLine()". Σκέψου η εικόνα να μην έχει καθόλου χρωματικές τιμές ίσες με 13 (πιθανό αν είναι μονοχρωματική).

Προσπάθησε να δεις την εικόνα ως byte array και όχι ως char array (με την ευρύτερη έννοια του όρου). Η μέθοδος "getLine()" δεν είναι για δουλειά με bytes.

Re: Προγραμματισμός Υπολογιστών με C++

Posted: Tue Dec 20, 2016 4:21 pm
by AkisMadrugada
Καλησπέρα, για την 2η εργασία Εφόσον η Image είναι απόγονος της Array όταν καλείται ο constructor της Image, καλείται και ο constructor της Array σωστά? αλλα σύμφωνα με αυτά που έχει δώσει ο καθηγητής η Array δεν έχει default constructor και μου πετάει error
error C2512: 'math::Array<math::Vec3<float>>' : no appropriate default constructor available όταν καλείται ο constructor της Image.
Καμία ιδέα κανείς?

Re: Προγραμματισμός Υπολογιστών με C++

Posted: Tue Dec 20, 2016 7:15 pm
by Georgilakis Antonios
AkisMadrugada wrote:Καλησπέρα, για την 2η εργασία Εφόσον η Image είναι απόγονος της Array όταν καλείται ο constructor της Image, καλείται και ο constructor της Array σωστά? αλλα σύμφωνα με αυτά που έχει δώσει ο καθηγητής η Array δεν έχει default constructor και μου πετάει error
error C2512: 'math::Array<math::Vec3<float>>' : no appropriate default constructor available όταν καλείται ο constructor της Image.
Καμία ιδέα κανείς?

Code: Select all

#include "Image.h"
#include "Array.h"
#include "Vec3.h"

// ...

using namespace math;

// ...
// inside the .cpp file:

/* Constructor */

Image::Image(Vec3<float> & var1/*, ... */) :
	Array(var1)	// WARNING: passing reference to super-class.
{
	// rest of initialization with/without 'var1' ...
}

// ...

Re: Προγραμματισμός Υπολογιστών με C++

Posted: Tue Dec 20, 2016 7:57 pm
by AkisMadrugada
Ναι το βρήκα πρέπει να καλείς directly τον constructor της Array στην υλοποίηση του constructor της Image()