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

Τα posts που έγιναν κατά την διάρκεια του Ακαδημαϊκού Έτους 2016-2017 για τα προπτυχιακά μαθήματα.
User avatar
mashua
bit level
bit level
Posts: 18
Joined: Wed Mar 11, 2015 10:56 pm
Academic status: 1st year
Gender:
Location: @th3n$
Contact:

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

Post by mashua » Thu Nov 24, 2016 12:10 am

Παιδιά χαιρετώ σας, 3 ερωτησούλες η πρώτη πιθανότατα περιττή:

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

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

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

thanks προκαταβολικά
--
--A.D Masiakos
--KeyId: 0x48D84811
---http://recodestuff.wordpress.com
User avatar
Georgilakis Antonios
Mbyte level
Mbyte level
Posts: 548
Joined: Mon Dec 02, 2013 11:10 pm
Academic status: Alumnus/a
Gender:
Location: Straight into your Mind

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

Post by Georgilakis Antonios » Thu Nov 24, 2016 2:50 am

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.
"Always keep a low profile. Cause when you get high, things can become strange."
"Never stop doing things you like. Never stop loving people you love. Never give up. Believe in yourself. Believe in your hidden powers."
"Honesty is an expensive gift, so don't expect it from cheap people."
The Scientist
User avatar
mashua
bit level
bit level
Posts: 18
Joined: Wed Mar 11, 2015 10:56 pm
Academic status: 1st year
Gender:
Location: @th3n$
Contact:

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

Post by mashua » Thu Nov 24, 2016 11:23 am

Georgilakis Antonios wrote:
1) Είναι δυνατόν.

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

3) Περιβάλλον Cygwin.
thanks a lot! :-)
--
--A.D Masiakos
--KeyId: 0x48D84811
---http://recodestuff.wordpress.com
User avatar
skater1995
bit level
bit level
Posts: 44
Joined: Tue Jan 21, 2014 5:14 pm
Academic status: Alumnus/a
Gender:

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

Post by skater1995 » Sat Nov 26, 2016 12:37 pm

Σχετικά με την εργασία στο μέρος υλοποίησης της SetData έχω κάνει το εξής: *buffer = *data_ptr;
Όταν τρέχω την εργασία μου πετάει Unhandled exception σε αυτό το σημείο.Πιστεύω τα υπόλοιπα functions τα έχω σωστά.Αν κατάλαβε κάποιος τι γράφω ας βοηθήσει γιατί από ίντερνετ δεν υπάρχει σωτηρία...
User avatar
Georgilakis Antonios
Mbyte level
Mbyte level
Posts: 548
Joined: Mon Dec 02, 2013 11:10 pm
Academic status: Alumnus/a
Gender:
Location: Straight into your Mind

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

Post by Georgilakis Antonios » Sat Nov 26, 2016 5:52 pm

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.
"Always keep a low profile. Cause when you get high, things can become strange."
"Never stop doing things you like. Never stop loving people you love. Never give up. Believe in yourself. Believe in your hidden powers."
"Honesty is an expensive gift, so don't expect it from cheap people."
The Scientist
AkisMadrugada
bit level
bit level
Posts: 21
Joined: Tue Oct 06, 2009 12:36 am
Gender:

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

Post by AkisMadrugada » Mon Nov 28, 2016 5:12 pm

Αν υπάρχει κάποπς που ψάχνει ομάδα για τη 2η εργασία, pm! Ευχαριστώ
efev2014
byte level
byte level
Posts: 120
Joined: Tue Oct 07, 2014 8:17 pm
Academic status: Alumnus/a
Gender:

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

Post by efev2014 » Thu Dec 01, 2016 6:57 pm

Καλησπέρα. Μέχρι τώρα χρησιμοποιούσα για τη 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;

Ευχαριστώ
User avatar
Georgilakis Antonios
Mbyte level
Mbyte level
Posts: 548
Joined: Mon Dec 02, 2013 11:10 pm
Academic status: Alumnus/a
Gender:
Location: Straight into your Mind

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

Post by Georgilakis Antonios » Thu Dec 01, 2016 7:47 pm

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.
"Always keep a low profile. Cause when you get high, things can become strange."
"Never stop doing things you like. Never stop loving people you love. Never give up. Believe in yourself. Believe in your hidden powers."
"Honesty is an expensive gift, so don't expect it from cheap people."
The Scientist
efev2014
byte level
byte level
Posts: 120
Joined: Tue Oct 07, 2014 8:17 pm
Academic status: Alumnus/a
Gender:

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

Post by efev2014 » Thu Dec 01, 2016 9:03 pm

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 θα το τσεκάρω. Ευχαριστώ
AkisMadrugada
bit level
bit level
Posts: 21
Joined: Tue Oct 06, 2009 12:36 am
Gender:

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

Post by AkisMadrugada » Tue Dec 06, 2016 12:55 pm

Καλησπέρα, για να κάνω check το ppmfile ότι τα bytes αποθηκευονται με σωστή σειρά, μπορώ
κάπως να δω το Image01.ppm σε μορφή τέτοια ώστε να μπορώ να τα συγκρίνω? το hex editor αυτό
κάνει? Ευχαριστώ
User avatar
Georgilakis Antonios
Mbyte level
Mbyte level
Posts: 548
Joined: Mon Dec 02, 2013 11:10 pm
Academic status: Alumnus/a
Gender:
Location: Straight into your Mind

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

Post by Georgilakis Antonios » Tue Dec 06, 2016 3:52 pm

AkisMadrugada wrote:Καλησπέρα, για να κάνω check το ppmfile ότι τα bytes αποθηκευονται με σωστή σειρά, μπορώ
κάπως να δω το Image01.ppm σε μορφή τέτοια ώστε να μπορώ να τα συγκρίνω? το hex editor αυτό
κάνει? Ευχαριστώ
Ναι, μπορείς να χρησιμοποιήσεις ένα hex editor.
"Always keep a low profile. Cause when you get high, things can become strange."
"Never stop doing things you like. Never stop loving people you love. Never give up. Believe in yourself. Believe in your hidden powers."
"Honesty is an expensive gift, so don't expect it from cheap people."
The Scientist
User avatar
skater1995
bit level
bit level
Posts: 44
Joined: Tue Jan 21, 2014 5:14 pm
Academic status: Alumnus/a
Gender:

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

Post by skater1995 » Tue Dec 06, 2016 9:13 pm

Καλησπέρα
Σχετικά με το τελευταίο κομμάτι φωτεινότητας στην πρώτη εργασία.Έχω δημιουργήσει ένα αντικείμενο τύπου color x και προσπαθώ μέσα στην for μου να διαβάσω τις τιμές των rgb,χρησιμοποιώντας το function με το index.Προσπαθώ να κάνω κάτι τέτοιο
x-> *buffer; Μπορεί να είναι τελείως λάθος.Την λογική άμα έχει καταλάβει κάποιος θα ήθελα να μάθω,που παίρνει το index και επιστρέφει το χρώμα. Ευχαριστώ
User avatar
Georgilakis Antonios
Mbyte level
Mbyte level
Posts: 548
Joined: Mon Dec 02, 2013 11:10 pm
Academic status: Alumnus/a
Gender:
Location: Straight into your Mind

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

Post by Georgilakis Antonios » Wed Dec 07, 2016 3:22 am

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.

Τροποποίησε κατάλληλα τον κώδικα σύμφωνα με την εργασία.
"Always keep a low profile. Cause when you get high, things can become strange."
"Never stop doing things you like. Never stop loving people you love. Never give up. Believe in yourself. Believe in your hidden powers."
"Honesty is an expensive gift, so don't expect it from cheap people."
The Scientist
User avatar
Gtkall
Buffer underflow exception
Buffer underflow exception
Posts: 3
Joined: Thu Oct 17, 2013 10:29 am
Academic status: 4th year
Gender:

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

Post by Gtkall » Thu Dec 08, 2016 5:13 pm

Ψάχνω συμφοιτητή για δημιουργία ομάδας για τις προγραμματιστικές εργασίες του μαθήματος. Δεν με νοιάζει έτος ούτε εμπειρία, μαζί θα μάθουμε :P

Όποιος ενδιαφέρεται, ΠΜ. Ευχαριστώ.
AkisMadrugada
bit level
bit level
Posts: 21
Joined: Tue Oct 06, 2009 12:36 am
Gender:

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

Post by AkisMadrugada » Mon Dec 12, 2016 4:40 pm

Οι μέσοι όροι για το Image01.ppm είναι αυτοί που έχει στο παράδειγμα?
User avatar
v4ss4s1n
byte level
byte level
Posts: 80
Joined: Tue Nov 05, 2013 2:50 pm
Academic status: 4th year
Gender:

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

Post by v4ss4s1n » Mon Dec 12, 2016 5:52 pm

Καλησπέρα παιδιά, μήπως γνωρίζει κανείς πότε θα είναι η τελευταία προθεσμία παράδωσης της συνολικής εργασίας?(Μήπως είναι την ημέρα που δίνουμε το μάθημα ή θυμάμαι λάθος;)
Coders Cycle

:smt017 -> :smt018 -> :smt021 -> :smt022 -> :smt025
User avatar
skater1995
bit level
bit level
Posts: 44
Joined: Tue Jan 21, 2014 5:14 pm
Academic status: Alumnus/a
Gender:

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

Post by skater1995 » Mon Dec 19, 2016 7:25 pm

Καλησπέρα,
Μήπως γνωρίζει κάποιος πως δηλώνουμε τον buffer μας στην ppm_format.Μας λέει Vec3<float> αλλά ακριβώς πώς είναι?
:S
User avatar
v4ss4s1n
byte level
byte level
Posts: 80
Joined: Tue Nov 05, 2013 2:50 pm
Academic status: 4th year
Gender:

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

Post by v4ss4s1n » Mon Dec 19, 2016 10:35 pm

Καλησπέρα παιδιά, ήθελα να ρωτήσω αν γνωρίζει κανείς να μου πει πως είναι ο σωστός τρόπος να διαβάσω την εικόνα γιατί την διαβάζω με ifstream και getline().Τα format, width, height, pixel value τα διαβάζει μια χαρά, όμως όταν προσπαθώ να κάνω print το επόμενο getline τρελαίνεται το cmd(ατελείωτο cout)..είναι λογικό αυτό?(ακόμα και ένα getline να συμβεί)
Coders Cycle

:smt017 -> :smt018 -> :smt021 -> :smt022 -> :smt025
User avatar
Georgilakis Antonios
Mbyte level
Mbyte level
Posts: 548
Joined: Mon Dec 02, 2013 11:10 pm
Academic status: Alumnus/a
Gender:
Location: Straight into your Mind

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

Post by Georgilakis Antonios » Mon Dec 19, 2016 11:42 pm

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.
"Always keep a low profile. Cause when you get high, things can become strange."
"Never stop doing things you like. Never stop loving people you love. Never give up. Believe in yourself. Believe in your hidden powers."
"Honesty is an expensive gift, so don't expect it from cheap people."
The Scientist
AkisMadrugada
bit level
bit level
Posts: 21
Joined: Tue Oct 06, 2009 12:36 am
Gender:

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

Post by AkisMadrugada » Tue Dec 20, 2016 4:21 pm

Καλησπέρα, για την 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.
Καμία ιδέα κανείς?
User avatar
Georgilakis Antonios
Mbyte level
Mbyte level
Posts: 548
Joined: Mon Dec 02, 2013 11:10 pm
Academic status: Alumnus/a
Gender:
Location: Straight into your Mind

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

Post by Georgilakis Antonios » Tue Dec 20, 2016 7:15 pm

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' ...
}

// ...
"Always keep a low profile. Cause when you get high, things can become strange."
"Never stop doing things you like. Never stop loving people you love. Never give up. Believe in yourself. Believe in your hidden powers."
"Honesty is an expensive gift, so don't expect it from cheap people."
The Scientist
AkisMadrugada
bit level
bit level
Posts: 21
Joined: Tue Oct 06, 2009 12:36 am
Gender:

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

Post by AkisMadrugada » Tue Dec 20, 2016 7:57 pm

Ναι το βρήκα πρέπει να καλείς directly τον constructor της Array στην υλοποίηση του constructor της Image()
Locked

Return to “Ακαδημαϊκό Έτος 2016-2017”