• Downloads
  • ! Read Me !
  • Μαθήματα
  • Φοιτητικά
  • Τεχνικά Θέματα
  • Συζητήσεις
  • Happy Hour!
  • About THMMY.gr
 V  < 
Search:  
Welcome, Guest. Please login or register.
June 17, 2025, 18:45:25 pm

Login with username, password and session length
Links
  Thmmy.gr portal
   Forum
   Downloads
   Ενεργ. Λογαριασμού
   Επικοινωνία
  
  Χρήσιμα links
   Σελίδα τμήματος
   Βιβλιοθήκη Τμήματος
   Elearning
   Φοιτητικά fora
   Πρόγραμμα Λέσχης
   Πρακτική Άσκηση
   Ηλεκτρονική Εξυπηρέτηση Φοιτητών
   Διανομή Συγγραμμάτων
   Ψηφιακό Καταθετήριο Διπλωματικών
   Πληροφορίες Καθηγητών
   Instagram @thmmy.gr
   mTHMMY
  
  Φοιτητικές Ομάδες
   ACM
   Aristurtle
   ART
   ASAT
   BEAM
   BEST Thessaloniki
   EESTEC LC Thessaloniki
   EΜΒ Auth
   IAESTE Thessaloniki
   IEEE φοιτητικό παράρτημα ΑΠΘ
   SpaceDot
   VROOM
   Panther
  
Πίνακας Ελέγχου
Welcome, Guest. Please login or register.
June 17, 2025, 18:45:25 pm

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
Πρακτική Άσκηση ΤΗΜΜΥ 201...
by asemas
[Today at 16:20:27]

Τι ακούτε αυτήν τη στιγμή...
by Katarameno
[Today at 14:25:00]

Αντικατάστασης πυκνωτή σε...
by george14
[Today at 13:58:20]

Πότε θα βγει το μάθημα; -...
by tzortzis
[Today at 13:19:53]

Αποτελέσματα Εξεταστικής ...
by george14
[Today at 12:08:25]

[ΨEE] Γενικές απορίες και...
by Juror8
[Today at 12:06:57]

Ισραήλ - Ιράν: Πόλεμος στ...
by okan
[Today at 02:33:21]

[Οργάνωση Υπολογιστών] Γε...
by RAFI
[June 16, 2025, 22:46:54 pm]

[Σ.Π.Η.Ε.] Γενικές απορίε...
by Nikos_313
[June 16, 2025, 19:49:00 pm]

[ΘΤΠΑ] Γενικές απορίες κα...
by Nikos_313
[June 16, 2025, 16:56:56 pm]

[Εφ.Θερμοδυναμική] Γενικέ...
by Λαμπτήρας
[June 16, 2025, 15:55:08 pm]

[Αρχές Οικονομίας] Να επι...
by _Trob
[June 16, 2025, 13:28:21 pm]

[Σ.Α.Π.Γ.] Εργασία 2025
by Nikos_313
[June 16, 2025, 12:13:45 pm]

[Διανεμημένη Παραγωγή] Γε...
by Διάλεξις
[June 16, 2025, 01:56:37 am]

[Σ.Π.Η.Ε.] Παλιά θέματα -...
by nmpampal
[June 15, 2025, 06:43:15 am]

Το thmmy.gr στο instagram...
by Mr Watson
[June 15, 2025, 00:50:23 am]

[Λογισμός ΙΙ] Απορίες σε...
by el mariachi
[June 14, 2025, 20:47:07 pm]

ΠΡΟΣΟΧΗ στο ανέβασμα θεμά...
by tzortzis
[June 14, 2025, 16:54:08 pm]

Ρυθμίσεις Θεμάτων της Ανώ...
by el mariachi
[June 14, 2025, 11:56:45 am]

Αρχείο Ανακοινώσεων [Arch...
by Nikos_313
[June 14, 2025, 09:58:14 am]
Στατιστικά
Members
Total Members: 9961
Latest: Poli
Stats
Total Posts: 1426690
Total Topics: 31710
Online Today: 218
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 86
Guests: 115
Total: 201
σπυρτσιωμ
vaggelis.ntokas
Vangelan
Smaragda
Nikoletta
Theislander
Giorgosap
kkon
itsikou
Acad-Mics
thanaf_231
Reidemption
arswagdapro
rafa98p
asimomyti
serafeim
kash_stp
kourkou
ioathemar
kutsukellis
uesli
Jordann
jkara
Gray139
Fraser
Patroklis
tsaliki
johnmax
thalia fokianou
nikitask
Mr Watson
cheefler
arisap
pave
Pakapis5
Saint_GR
smoul
estoimea
Vasilikikr
Γιώργος Τσανακτσιίης
kimxnas
Deviate
abiki
chaniotism
tzesi
nasos
Conriz
ntinara
AlexKyr
sisi
mdimitrig
sotkara
noimaginationforthis
Papalamprous humor
johnnypap
glavdakis
meliou
Lemonia
difis
freedom
et7gr
nikolihss
Louisa
Fotis Roukoutakis
marilita
Yamal
AngelosAthanasiou
aimgk
athena_apo
ekyriakos
tpt
dkoukn
nikpapoutsi
geoarg
kostaspap
iJasonOP
tsakalokagkouras
cpapast
chrysa.tsilika
ELEF
Athinaaz
Εμφάνιση

Νέα για πρωτοετείς
Είσαι πρωτοετής;... Καλώς ήρθες! Μπορείς να βρεις πληροφορίες εδώ. Βοήθεια για τους καινούργιους μέσω χάρτη.
Κατεβάστε εδώ το Android Application για εύκολη πρόσβαση στο forum.
Ανεβάζετε τα θέματα των εξετάσεων στον τομέα Downloads με προσοχή στα ονόματα των αρχείων!

Νέα!
Για οποιοδήποτε πρόβλημα με register/login, στείλτε email στο contact@thmmy.gr.
THMMY.gr > Forum > Μαθήματα Βασικού Κύκλου > 2ο Εξάμηνο > Αντικειμενοστραφής Προγραμματισμός (Moderators: chatzikys, tzortzis) > [C++] Εργασία Α (2011-12)
0 Members and 1 Guest are viewing this topic.
Pages: 1 ... 4 5 [6] 7 8 Go Down Print
Author Topic: [C++] Εργασία Α (2011-12)  (Read 12320 times)
pepper ann
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Female
Posts: 1132



View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #75 on: November 18, 2011, 23:21:29 pm »

Quote from: ValmadiaN on November 18, 2011, 23:20:06 pm
Quote from: pentium4 on November 18, 2011, 23:05:30 pm
το βαλα δυναμικα απλα εβαλα οριο 10 (counter)  :'( :'( :'(
κοπος 2 ημερων  :'( :'(

Γιατί δεν τον δηλώνεις μέσα στην κλάση σου σε στυλ:

int friends[10];

και να ξεμπερδεύεις;
+1
Logged
Andre
Θαμώνας
****
Gender: Male
Posts: 370


"there, a happy river, oh what a well-timed river"


View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #76 on: November 19, 2011, 13:13:22 pm »

Ορίζω έναν pointer σε αντικείμενο.
Δεσμεύω δυναμικά μνήμη, μέσω της malloc, ίση με το μέγεθος ενός αντικειμένου (το αντικείμενο δεν έχει φυσικά δημιουργηθεί ακόμα).
Για την εγγραφή δεύτερου μέλους χρειάζεται να χρησιμοποιήσω την realloc για να δεσμεύσω μνήμη για ένα ακόμη αντικείμενο; Ή μπορώ να ξαναχρησιμοποιήσω την malloc δεσμεύοντας μεγαλύτερη μνήμη από πριν (με τη χρήση ενός counter);
Σε τί διαφέρουν οι δύο υλοποιήσεις (εάν βέβαια μπορούν να γίνουν);
Logged
christineL
Καταξιωμένος/Καταξιωμένη
***
Posts: 294



View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #77 on: November 19, 2011, 13:27:33 pm »

Και εγω ετσι το εκανα και χρησιμοποιησα realloc καθε φορα που εγγραφοταν νεο μελος. Λένε όμως κάποιοι πως δεν γίνεται να λειτουργησει αυτο δεδομένου ότι χρησιμοποιουμε κλάσεις και πρεπει ν δουλεψουμε με new και delete. Τώρα τι ισχυει δεν ξερω γτ ο Κορτεσης απλα ανεφερε οτι υπαρχουν(και δεν τις προτιμα  Cheesy ) ..αλλα δεν θα κατσω και να σκασω. Ας ειναι λαθος.
Logged

Η πίστη είναι εντάξει γι'αυτούς που την έχουν.
Μόνο μην τη φορτώνετε σ'εμένα.
Έχω περισσότερη πίστη στον υδραυλικό μου
απ'ότι στην αιώνια ύπαρξη.
Οι υδραυλικοί κάνουν καλή δουλειά.
Αφήνουν τα σκατά να κυλούν!
Andre
Θαμώνας
****
Gender: Male
Posts: 370


"there, a happy river, oh what a well-timed river"


View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #78 on: November 19, 2011, 14:01:58 pm »

Quote from: christineL on November 19, 2011, 13:27:33 pm
Και εγω ετσι το εκανα και χρησιμοποιησα realloc καθε φορα που εγγραφοταν νεο μελος. Λένε όμως κάποιοι πως δεν γίνεται να λειτουργησει αυτο δεδομένου ότι χρησιμοποιουμε κλάσεις και πρεπει ν δουλεψουμε με new και delete. Τώρα τι ισχυει δεν ξερω γτ ο Κορτεσης απλα ανεφερε οτι υπαρχουν(και δεν τις προτιμα  Cheesy ) ..αλλα δεν θα κατσω και να σκασω. Ας ειναι λαθος.

Δηλαδή μπορούμε να χρησιμοποιήσουμε τις new και delete; Γιατί έχω την εντύπωση (από πέρυσι νομίζω), ότι αρχικά ζητά να χρησιμοποιήσουμε τις συναρτήσεις της C.

Αλλάζω το ερώτημά μου ως εξής;
Έστω ότι χρησιμοποιώ malloc για τη δέσμευση χώρου ίσος με ένα αντικείμενο:
p=(melos*)malloc(sizeof(melos));
όπου p ο pointer σε αντικείμενο και melos το όνομα της κλάσης (που ορίζει ένα νέο τύπο δεδομένων).
Μπορώ έπειτα να γράψω το εξής:
p=(melos*)malloc(2*sizeof(melos)); ?

Έτσι όπως το βλέπω, ουσιαστικά ξαναδεσμεύω τον ίδιο χώρο στη μνήμη (γίνεται?) και έναν επιπλέον ίσο με τον πρώτο.
Logged
Ναταλία
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Female
Posts: 1209



View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #79 on: November 19, 2011, 14:36:14 pm »

Quote from: Andre on November 19, 2011, 13:13:22 pm
Ορίζω έναν pointer σε αντικείμενο.
Δεσμεύω δυναμικά μνήμη, μέσω της malloc, ίση με το μέγεθος ενός αντικειμένου (το αντικείμενο δεν έχει φυσικά δημιουργηθεί ακόμα).

χμ, πως οριζεις pointer σε αντικειμενο χωρις να εχεις δημιουργησει το αντικειμενο??  Huh
Logged
Andre
Θαμώνας
****
Gender: Male
Posts: 370


"there, a happy river, oh what a well-timed river"


View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #80 on: November 19, 2011, 14:46:13 pm »

Βλέπω για παράδειγμα σε αυτό το λινκ: http://dmst.aueb.gr/dds/c/ptr/malloc.htm, η reallloc() να επιστρέφει τον ίδιο pointer με αυτόν που δείχνει το πρώτο byte της περιοχής που δέσμευσε η malloc():

iptr = (int *)realloc(iptr, 20 * sizeof(int));

Εάν χρησιμοποιούσα στη θέση της την malloc(), τί διαφορά θα είχα; Π.χ. το "iptr[0] to iptr[9] retain old values" δε θα ίσχυε πάλι;
Logged
nikitas350
Καταξιωμένος/Καταξιωμένη
***
Posts: 201



View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #81 on: November 19, 2011, 14:56:07 pm »

Quote from: Andre on November 19, 2011, 14:01:58 pm
Quote from: christineL on November 19, 2011, 13:27:33 pm
Και εγω ετσι το εκανα και χρησιμοποιησα realloc καθε φορα που εγγραφοταν νεο μελος. Λένε όμως κάποιοι πως δεν γίνεται να λειτουργησει αυτο δεδομένου ότι χρησιμοποιουμε κλάσεις και πρεπει ν δουλεψουμε με new και delete. Τώρα τι ισχυει δεν ξερω γτ ο Κορτεσης απλα ανεφερε οτι υπαρχουν(και δεν τις προτιμα  Cheesy ) ..αλλα δεν θα κατσω και να σκασω. Ας ειναι λαθος.

Δηλαδή μπορούμε να χρησιμοποιήσουμε τις new και delete; Γιατί έχω την εντύπωση (από πέρυσι νομίζω), ότι αρχικά ζητά να χρησιμοποιήσουμε τις συναρτήσεις της C.

Αλλάζω το ερώτημά μου ως εξής;
Έστω ότι χρησιμοποιώ malloc για τη δέσμευση χώρου ίσος με ένα αντικείμενο:
p=(melos*)malloc(sizeof(melos));
όπου p ο pointer σε αντικείμενο και melos το όνομα της κλάσης (που ορίζει ένα νέο τύπο δεδομένων).
Μπορώ έπειτα να γράψω το εξής:
p=(melos*)malloc(2*sizeof(melos)); ?

Έτσι όπως το βλέπω, ουσιαστικά ξαναδεσμεύω τον ίδιο χώρο στη μνήμη (γίνεται?) και έναν επιπλέον ίσο με τον πρώτο.

Η malloc σου δεσμεύει απλά μνήμη και σου επιστρέφει έναν void pointer που δείχνει στην μνήμη που μόλις δέσμευσες. Τελος πάντων, αν γράψεις:

p=(melos*)malloc(sizeof(melos));
p=(melos*)malloc(2*sizeof(melos));

Τότε έχει δεσμεύτει ένα κομμάτι μνήμης ίσο με sizeof(melos) και ένα κομμάτι μνήμης ίσο με 2*sizeof(melos), και ο pointer σου δείχνει στο 2ο. Βέβαια πρίν τρέξεις την δεύτερη εντολή θα έπρεπε να έκανες free(p); γιατί τώρα έχεις δεσμεύσει ένα κομμάτι μνήμης και έχεις χάσει τον pointer που δείχνει σε αυτό (δηλαδή δεν μπορείς πλέον να το βρεις).

Της malloc δεν της ενδιαφέρει τι είναι αυτό που δεσμεύει, ούτε και καλεί constructor όταν δημιουργεί ένα αντικείμενο. Θα μπορούσες να τρέξεις π.χ. και αυτό το κομμάτι κώδικα χωρίς πρόβλημα:

p=(melos*)malloc(sizeof(int));

Βέβαια όταν θα πήγαινες να προσπελάσεις το υποτιθέμενο αντικείμενο που δείχνει η p θα είχες πρόβλημα, γιατί το μέγεθος της μνήμης που δέσμευσες είναι μικρότερο από το μέγεθος του αντικειμένου. Γενικά η malloc δεν πρέπει να χρησιμοποιείται στην C++.
Logged
zisis00
Καταξιωμένος/Καταξιωμένη
***
Posts: 176


View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #82 on: November 19, 2011, 15:19:04 pm »

Quote from: christineL on November 19, 2011, 13:27:33 pm
Και εγω ετσι το εκανα και χρησιμοποιησα realloc καθε φορα που εγγραφοταν νεο μελος. Λένε όμως κάποιοι πως δεν γίνεται να λειτουργησει αυτο δεδομένου ότι χρησιμοποιουμε κλάσεις και πρεπει ν δουλεψουμε με new και delete. Τώρα τι ισχυει δεν ξερω γτ ο Κορτεσης απλα ανεφερε οτι υπαρχουν(και δεν τις προτιμα  Cheesy ) ..αλλα δεν θα κατσω και να σκασω. Ας ειναι λαθος.

Τελικά γίνεται και με malloc/realloc (έτσι το έκανα :p). Η(βασική) διαφορά τους απο την new είναι ότι η new καλέι και το constructor (πιο βαθια ανάλυση στο site του κατασκευαστή http://www2.research.att.com/~bs/bs_faq2.html#malloc Tongue). Πάντως αν χρησιμοποιείσει κάποιος malloc να προτιμίσει να δηλώσει τα username, password, login name, ως char * και όχι ως string όπως εγώ γιατί θα έχει μλν θεματάκι.

Quote from: Andre on November 19, 2011, 14:46:13 pm
Βλέπω για παράδειγμα σε αυτό το λινκ: http://dmst.aueb.gr/dds/c/ptr/malloc.htm, η reallloc() να επιστρέφει τον ίδιο pointer με αυτόν που δείχνει το πρώτο byte της περιοχής που δέσμευσε η malloc():

iptr = (int *)realloc(iptr, 20 * sizeof(int));

Εάν χρησιμοποιούσα στη θέση της την malloc(), τί διαφορά θα είχα; Π.χ. το "iptr[0] to iptr[9] retain old values" δε θα ίσχυε πάλι;

Θεωρητικά τουλάχιστον όχι. Η δουλεία της malloc είναι να σου δεσμεύει memory όπου βρει στο heap, χωρίς να την ενδιαφέρουν τα δεδομένα σου. ( Με πρόλαβε ο Νικήτας σχετικά με αυτό)

Επίσης η malloc στην C++ μάλλον χρησιμοποιείται για πολύ low-level δουλείες. Τώρα αν όντως ο Κορτέσης είπε ότι "προτιμα την malloc στην C++", μάλλον έρχεται σε αντιπαράθεση με τον δημιουργό της που αναφέρει
"Don’t use malloc(). The new operator (§6.2.6) does the same job better, and instead of malloc.  Instead of realloc try a vector."


Logged
raf
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 130


do it well...!


View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #83 on: November 19, 2011, 18:29:43 pm »

ρε παιδια να ρωτησω...login name kai password του διαχειρηστη απο που το ζηταμε???
Logged
pentium4
Veteran
Καταστραμμένος
******
Posts: 7940


εφακ


View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #84 on: November 19, 2011, 18:30:09 pm »

Quote from: raf on November 19, 2011, 18:29:43 pm
ρε παιδια να ρωτησω...login name kai password του διαχειρηστη απο που το ζηταμε???

το εκανα με #define
δε ξερω αν στεκει παντως
Logged

https://www.youtube.com/watch?v=doMu-YNc4wM&feature=emb_title

τιρκουαζ στοκος
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Female
Posts: 570


respect se kathe alitossa


View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #85 on: November 19, 2011, 18:50:38 pm »

Quote from: raf on November 19, 2011, 18:29:43 pm
ρε παιδια να ρωτησω...login name kai password του διαχειρηστη απο που το ζηταμε???
Μπορεις και μεσα στο while στην main κατευθειαν.
Logged

hmmy-ksirafaki
raf
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 130


do it well...!


View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #86 on: November 19, 2011, 19:37:00 pm »

ayto me tous filous  pws to kaneis;
για παραδειγμα ας υποθεσουμε οτι εγω γραφω babis πως θα δω αυτος υπαρχει?
θα το κανω απο την main...? cool
Logged
Andre
Θαμώνας
****
Gender: Male
Posts: 370


"there, a happy river, oh what a well-timed river"


View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #87 on: November 19, 2011, 19:42:36 pm »

Quote from: zisis00 on November 19, 2011, 15:19:04 pm
...Πάντως αν χρησιμοποιείσει κάποιος malloc να προτιμίσει να δηλώσει τα username, password, login name, ως char * και όχι ως string όπως εγώ γιατί θα έχει μλν θεματάκι.

Είναι τα λεγόμενα "κυριολεκτικά αλφαριθμητικά" που λέει στο βιβλίο του Schildt, σελ.147; Στις σημειώσεις πού υπάρχει αυτή η δήλωση;
Logged
τιρκουαζ στοκος
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Female
Posts: 570


respect se kathe alitossa


View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #88 on: November 19, 2011, 19:49:37 pm »

Quote from: raf on November 19, 2011, 19:37:00 pm
ayto me tous filous  pws to kaneis;
για παραδειγμα ας υποθεσουμε οτι εγω γραφω babis πως θα δω αυτος υπαρχει?
θα το κανω απο την main...? cool
Εφ'οσον ο μπαμπης ειναι εγγεγραμμενο μελος, οταν θα κανεις σαρωση στα ονοματα και οντως θα υπαρχει θα εκτυπωνεις εσυ χειροκινητα οτι υπαρχει το μελος,δηλαδη sto if που θα ρωτας αν υπαρχει ο μπαμπης η οποιοδηποτε αλλο ονομα θελεις στα μελη και οντως υπαρχει θα κανεις ενα cout<<"Tο μελος που ζητησατε υπαρχει";
Logged

hmmy-ksirafaki
zisis00
Καταξιωμένος/Καταξιωμένη
***
Posts: 176


View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #89 on: November 19, 2011, 20:07:41 pm »

Quote from: Andre on November 19, 2011, 19:42:36 pm
Quote from: zisis00 on November 19, 2011, 15:19:04 pm
...Πάντως αν χρησιμοποιείσει κάποιος malloc να προτιμίσει να δηλώσει τα username, password, login name, ως char * και όχι ως string όπως εγώ γιατί θα έχει μλν θεματάκι.

Είναι τα λεγόμενα "κυριολεκτικά αλφαριθμητικά" που λέει στο βιβλίο του Schildt, σελ.147; Στις σημειώσεις πού υπάρχει αυτή η δήλωση;

ποιές σημειώσεις ? δεν ανέφερα κάτι τέτοιο ..
Logged
Pages: 1 ... 4 5 [6] 7 8 Go Up Print
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Scribbles2 | TinyPortal © Bloc | XHTML | CSS
Loading...