THMMY.gr

Μαθήματα Βασικού Κύκλου => Αντικειμενοστραφής Προγραμματισμός => Topic started by: Mr K on November 10, 2012, 13:44:47 pm



Title: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: Mr K on November 10, 2012, 13:44:47 pm
Στο δεύτερο μάθημα ασκήσεων που έγινε την παρασκευή και δεν μπόρεσα να παρακολουθήσω, στην λύση της δεύτερης άσκησης που ανέβηκαν στο ethmmy, υπάρχει η  συνάρτηση conjugate της κλάσης Complex που επιστρέφει τον συζυγή μιγαδικό.

Complex Complex::conjugate()
{
   Complex A(re,-im);
   return A;

}
1) Η πρώτη εντολή δεν πρέπει να είχε την μορφη Complex:: Complex conjugate(); (Ορίζεται ως Complex conjugate(); στο τμήμα που δηλώνεται η κλάση);

2) Αν μπορεί κάποιος να εξηγήσει πως λειτουργεί η συγκεκριμένη συνάρτηση. Αν καταλαβαίνω καλά δημιουργεί στιγμιότυπο κλάσης μέσα στην ιδια την κλάση. Αυτο δεν μας οδηγεί σε ατέρμονα κλήση στιγμιοτύπων;;


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: c0ndemn3d on November 10, 2012, 15:09:39 pm
Στο δεύτερο μάθημα ασκήσεων που έγινε την παρασκευή και δεν μπόρεσα να παρακολουθήσω, στην λύση της δεύτερης άσκησης που ανέβηκαν στο ethmmy, υπάρχει η  συνάρτηση conjugate της κλάσης Complex που επιστρέφει τον συζυγή μιγαδικό.

Complex Complex::conjugate()
{
   Complex A(re,-im);
   return A;

}
1) Η πρώτη εντολή δεν πρέπει να είχε την μορφη Complex:: Complex conjugate(); (Ορίζεται ως Complex conjugate(); στο τμήμα που δηλώνεται η κλάση);

2) Αν μπορεί κάποιος να εξηγήσει πως λειτουργεί η συγκεκριμένη συνάρτηση. Αν καταλαβαίνω καλά δημιουργεί στιγμιότυπο κλάσης μέσα στην ιδια την κλάση. Αυτο δεν μας οδηγεί σε ατέρμονα κλήση στιγμιοτύπων;;

Όχι. Έχουμε Complex Complex::conjugate διότι:
Η συνάρτηση conjugate ορίστηκε για την κλάση Complex (άρα σίγουρα θα έχουμε Complex::conjugate) και επίσης, επιστρέφει αντικέιμενο τύπου Complex (Άρα όλο μαζί Complex Complex::conjugate). Μην σε μπερδεύει που έχεις 2 complex εκεί (δεν είναι συνάρτηση αρχικών συνθηκών), θα μπορούσες να έχεις π.χ. float Complex::conjugate ή void Complex::conjugate κτλπ. Η συνάρηση αυτή δημιουργεί ένα αντικείμενο τύπου Complex (άρα καλεί συνάρηση αρχικών συνθηκών για re και -im) και το επιστρέφει.


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: Locke on November 11, 2012, 23:30:42 pm
Όταν είπε ότι μπορεί να έχουμε επικάλυψη στις συναρτήσεις αρχικών συνθηκών π.χ.
sums::sums();
sums::sums(int a);
τί εννούσε; Ότι θα έχουμε 2 συναρτήσεις α.σ. στην ίδια κλάση και ανάλογα αν θα δώσουμε όρισμα στο αντικείμενο ή όχι, θα χρησιμοποιηθεί η κατάλληλη συνάρτηση;


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: Nerevar on November 11, 2012, 23:47:07 pm
Όταν είπε ότι μπορεί να έχουμε επικάλυψη στις συναρτήσεις αρχικών συνθηκών π.χ.
sums::sums();
sums::sums(int a);
τί εννούσε; Ότι θα έχουμε 2 συναρτήσεις α.σ. στην ίδια κλάση και ανάλογα αν θα δώσουμε όρισμα στο αντικείμενο ή όχι, θα χρησιμοποιηθεί η κατάλληλη συνάρτηση;

Nαι.


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: pentium4 on November 21, 2012, 13:58:37 pm
process.h βιβλιοθήκη για......;


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: Endeavour X on November 21, 2012, 14:37:41 pm
για την exit θα πρεπει να ειναι αλλα μετα απο ενα γρηγορο γουγλινγκ, δε το λεω με σιγουρια


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: bakeneko on November 21, 2012, 14:54:48 pm
Δεν ξέρω για τι μιλάτε αλλά... :P

Την exit μπορείς να τη χρησιμοποιήσεις με την <cstdlib>
Η process.h έχει άρθρο στην wikipedia που λέει ποιες φάνκσιονς έχει! Αλλά δεν είναι ούτε στην στάνταρ C, και είναι μόνο για Windows...


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: pentium4 on November 21, 2012, 15:13:22 pm
Δεν ξέρω για τι μιλάτε αλλά... :P

Την exit μπορείς να τη χρησιμοποιήσεις με την <cstdlib>
Η process.h έχει άρθρο στην wikipedia που λέει ποιες φάνκσιονς έχει! Αλλά δεν είναι ούτε στην στάνταρ C, και είναι μόνο για Windows...

ναι αλλα διαβαζοντας ημουν σε φαση "wtf r u telling me now ??"  :o :o :o και νομιζω δε τη βρηκα στις σημειωσεις


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: Infinite Loop on November 21, 2012, 16:16:51 pm
Δεν ξέρω για τι μιλάτε αλλά... :P

Την exit μπορείς να τη χρησιμοποιήσεις με την <cstdlib>
Η process.h έχει άρθρο στην wikipedia που λέει ποιες φάνκσιονς έχει! Αλλά δεν είναι ούτε στην στάνταρ C, και είναι μόνο για Windows...

ναι αλλα διαβαζοντας ημουν σε φαση "wtf r u telling me now ??"  :o :o :o και νομιζω δε τη βρηκα στις σημειωσεις

http://www.cplusplus.com/

Πληρεστατο reference για C και C++. Η κεφαλιδα που λες δεν θυμαμαι τι εχει (και εχω καλυτερα πραματα να κανω απο το να το ψαξω :P), αλλα κατα 99.9% δεν χρειαζεται στην C++.



Α, και ειναι "φακσιονς", οχι "φανκσιονς". Κατα το "ρικαρσιονς" ;)


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: Mr K on December 12, 2012, 23:02:38 pm
Στις ασκήσεις της προηγούμενης εβδομάδας και συγκεκριμένα στην άσκηση σχετικά με pointer σε παραγόμενες κλάσεις:

Οριζει μια κλάση Vehicle με δυο μεταβλητες μέσα..

Ορίζει μια παραγόμενη Truck απο αυτήν που έχει επιπλέον μια μεταβλητή μέσα..

Μετά κάνει ότι κάνει με έναν pointer τυπου Vehicle (αυτά τα καταλαβαίνω)

Μετατρέπει σε τύπο Truck τον pointer για να εκτυπώσει κατι επιπλεον (εντάξει)

Μετά αυξάνει τον pointer  (ολα οκ)

και έχει το εξής σχόλιο ο κυρ Συμεωνιδης:
        // PROSOXI!!!!!
   // O pointer einai tupou Vehicle, opote to bima einai megalutero.
   //H timh tou weight(δευτερη μεταβλητη της Vehicle) exei skoupidia
   // An omws au3aname ton pointer ptr2 (τυπου Truck), i timi 8a itan swsti.

Και ερωτώ: Αφου η Truck ειναι παραγόμενη με επιπλέον μεταβλητές δεν έχει μεγαλύτερο μέγεθος; Άρα το βήμα του Pointer ptr2 θα ήταν μεγαλύτερο.

Και βάζω να μου εκτυπώσει μέγεθος Vehicle και Τruck και όντως είναι 8 και 12 αντίστοιχα..


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: Exomag on December 12, 2012, 23:10:53 pm
Και ερωτώ: Αφου η Truck ειναι παραγόμενη με επιπλέον μεταβλητές δεν έχει μεγαλύτερο μέγεθος; Άρα το βήμα του Pointer ptr2 θα ήταν μεγαλύτερο.

Έχεις δίκιο σε αυτό που λες, μάλλον έκανε λάθος ο Συμεωνίδης.

ΥΣ: Εκτός, βέβαια, και αν εννοούσε "οπότε το βήμα (εννοείται: που θα έπρεπε να γίνει για να τρέξει σωστά το πρόγραμμα) είναι μεγαλύτερο" :D


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: Mr K on December 12, 2012, 23:15:08 pm
Και ερωτώ: Αφου η Truck ειναι παραγόμενη με επιπλέον μεταβλητές δεν έχει μεγαλύτερο μέγεθος; Άρα το βήμα του Pointer ptr2 θα ήταν μεγαλύτερο.

Έχεις δίκιο σε αυτό που λες, μάλλον έκανε λάθος ο Συμεωνίδης.

ΥΣ: Εκτός, βέβαια, και αν εννοούσε "οπότε το βήμα (εννοείται: που θα έπρεπε να γίνει για να τρέξει σωστά το πρόγραμμα) είναι μεγαλύτερο" :D

Η επιρροή του κυριου Κορτέσιου αρχίζει να φαίνεται. (Πες μου ότι δεν πήγες στο μάθημα; My university standards ruined)


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: Exomag on December 13, 2012, 00:13:44 am
Λογικά έγραψε λάθος στο σχόλιο του κώδικα μόνο, όταν σχολίαζε την άσκηση στο μάθημα των ασκήσεων νομίζω το είπε σωστά. Εκεί ήμουν και εγώ απλά βαριόμουν και δεν πολυπρόσεχα...


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: Gaara on February 22, 2013, 10:59:20 am
H χρηση static μεταβλητων στην E γιατι ειναι απαραιτητη ?


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: varvoutis on February 23, 2013, 03:45:11 am
Έχει ασχοληθεί κανείς με την υλοποίηση της άσκησης 3 της δέκατης εβδομάδας ασκήσεων;

Αν ναι, μπορεί να ανεβάσει εδώ τον κώδικά του; (δεδομένου ότι τρέχει και ότι τρέχει σωστά  :P)


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: trakas on February 23, 2013, 17:48:31 pm
Στην δευτερη ασκηση απο τεταρτη εβδομαδα, τι σημαινει να "δωσετε αρχικες τιμες, ΔΥΝΑΜΙΚΑ";


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσ^
Post by: Αλντεμπαράν on February 23, 2013, 18:53:11 pm
Στην δευτερη ασκηση απο τεταρτη εβδομαδα, τι σημαινει να "δωσετε αρχικες τιμες, ΔΥΝΑΜΙΚΑ";
σελ 320-321 απο τον Schildt το εξηγηγεί(απλά : oι τιμές των μεταβλητών καθορίζονται από τον χρήστη την ώρα της εκτέλεσης)


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: MG9S on February 25, 2013, 21:20:35 pm
Παιδια καμια βοηθεια με την πρωτη ασκηση αυτη με τον πινακα απο το τελευταιο μαθημα????


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: ThanosAm on February 25, 2013, 21:42:49 pm
Ναι για πες?


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: MG9S on February 25, 2013, 22:05:00 pm
βασικα τα αποτελεσματα ψαχνω επειδη τα βαζω στο compiler μου αλλα μου βγαζει λαθοι δεν ξερω γιατι!! και ακομα ενα εκει π γραφει Β β(4) apo την κλαση Α εκτελειτε εκεινο που γραφει οπερατορ int?


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσ^
Post by: Infinite Loop on February 25, 2013, 22:06:34 pm
βασικα τα αποτελεσματα ψαχνω επειδη τα βαζω στο compiler μου αλλα μου βγαζει λαθοι δεν ξερω γιατι!! και ακομα ενα εκει π γραφει Β β(4) apo την κλαση Α εκτελειτε εκεινο που γραφει οπερατορ int?

Αυτο καλει τον ctor με ορισμα 4.

Το λαθος προφανως το βγαζει επειδη υπαρχει το ανεκδιηγητο

Code:
void main()

που ειναι εκτος προτυπου...


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: Ed on February 25, 2013, 23:04:30 pm
ρε παιδιά η μεταβλητή M στην εργασία Ε τι ακριβώς δηλώνει?


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσ^
Post by: Αλντεμπαράν on February 25, 2013, 23:50:14 pm
βασικα τα αποτελεσματα ψαχνω επειδη τα βαζω στο compiler μου αλλα μου βγαζει λαθοι δεν ξερω γιατι!! και ακομα ενα εκει π γραφει Β β(4) apo την κλαση Α εκτελειτε εκεινο που γραφει οπερατορ int?

Αυτο καλει τον ctor με ορισμα 4.

Το λαθος προφανως το βγαζει επειδη υπαρχει το ανεκδιηγητο

Code:
void main()

που ειναι εκτος προτυπου...
μήπως μπορεί να εξηγήσει κάποιος αναλυτικά τι κάνει η εντολη "cout<<a+b<<"\n";  σε αυτήν την άσκηση????



Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσ^
Post by: Jim D. Ace on February 25, 2013, 23:58:03 pm
βασικα τα αποτελεσματα ψαχνω επειδη τα βαζω στο compiler μου αλλα μου βγαζει λαθοι δεν ξερω γιατι!! και ακομα ενα εκει π γραφει Β β(4) apo την κλαση Α εκτελειτε εκεινο που γραφει οπερατορ int?

Αυτο καλει τον ctor με ορισμα 4.

Το λαθος προφανως το βγαζει επειδη υπαρχει το ανεκδιηγητο

Code:
void main()

που ειναι εκτος προτυπου...
μήπως μπορεί να εξηγήσει κάποιος αναλυτικά τι κάνει η εντολη "cout<<a+b<<"\n";  σε αυτήν την άσκηση????


τι εννοεις;
απλα θα εμφανισει το αθροισμα α+β και μετα θα δημιουργησει μια κενη γραμμη...


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσ^
Post by: Αλντεμπαράν on February 26, 2013, 00:02:26 am
βασικα τα αποτελεσματα ψαχνω επειδη τα βαζω στο compiler μου αλλα μου βγαζει λαθοι δεν ξερω γιατι!! και ακομα ενα εκει π γραφει Β β(4) apo την κλαση Α εκτελειτε εκεινο που γραφει οπερατορ int?

Αυτο καλει τον ctor με ορισμα 4.

Το λαθος προφανως το βγαζει επειδη υπαρχει το ανεκδιηγητο

Code:
void main()

που ειναι εκτος προτυπου...
μήπως μπορεί να εξηγήσει κάποιος αναλυτικά τι κάνει η εντολη "cout<<a+b<<"\n";  σε αυτήν την άσκηση????


τι εννοεις;
απλα θα εμφανισει το αθροισμα α+β και μετα θα δημιουργησει μια κενη γραμμη...



πώς γίνεται και προσθέτει 2 αντικείμενα μεταξύ τους??


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσ^
Post by: varvoutis on February 26, 2013, 00:06:07 am
βασικα τα αποτελεσματα ψαχνω επειδη τα βαζω στο compiler μου αλλα μου βγαζει λαθοι δεν ξερω γιατι!! και ακομα ενα εκει π γραφει Β β(4) apo την κλαση Α εκτελειτε εκεινο που γραφει οπερατορ int?

Αυτο καλει τον ctor με ορισμα 4.

Το λαθος προφανως το βγαζει επειδη υπαρχει το ανεκδιηγητο

Code:
void main()

που ειναι εκτος προτυπου...
μήπως μπορεί να εξηγήσει κάποιος αναλυτικά τι κάνει η εντολη "cout<<a+b<<"\n";  σε αυτήν την άσκηση????


τι εννοεις;
απλα θα εμφανισει το αθροισμα α+β και μετα θα δημιουργησει μια κενη γραμμη...



πώς γίνεται και προσθέτει 2 αντικείμενα μεταξύ τους??

Διάβασε σημειώσεις stk §6.5

Θα τα καταλάβεις όλα


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσ^
Post by: Αλντεμπαράν on February 26, 2013, 00:08:33 am
βασικα τα αποτελεσματα ψαχνω επειδη τα βαζω στο compiler μου αλλα μου βγαζει λαθοι δεν ξερω γιατι!! και ακομα ενα εκει π γραφει Β β(4) apo την κλαση Α εκτελειτε εκεινο που γραφει οπερατορ int?

Αυτο καλει τον ctor με ορισμα 4.

Το λαθος προφανως το βγαζει επειδη υπαρχει το ανεκδιηγητο

Code:
void main()

που ειναι εκτος προτυπου...
μήπως μπορεί να εξηγήσει κάποιος αναλυτικά τι κάνει η εντολη "cout<<a+b<<"\n";  σε αυτήν την άσκηση????


τι εννοεις;
απλα θα εμφανισει το αθροισμα α+β και μετα θα δημιουργησει μια κενη γραμμη...



πώς γίνεται και προσθέτει 2 αντικείμενα μεταξύ τους??

Διάβασε σημειώσεις stk §6.5

Θα τα καταλάβεις όλα
και το 'ξερα ότι κάτι ακόμη είχα σημειώσει να διαβάσω αλλά δεν θυμόμουν τι...thanks


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: Lord on February 26, 2013, 00:55:30 am
ρε παιδιά η μεταβλητή M στην εργασία Ε τι ακριβώς δηλώνει?

Πόσες διαφορετικές παραγόμενες κλάσεις έχεις .  ;)


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: talkshowhost on February 26, 2013, 01:23:54 am
Παιδιά ,  αν ξέρει κάποιος , στο παράδειγμα  του 6.1.1 από τις σημειώσεις, στην εντολή p=  new abc[3];
  η συνάρτηση επικαλυψης του new επιστρέφει void pointer , ενώ ο p εχει δηλωθει ως abc pointer . Δεν χρειάζεται μετατροπή , ξερω γω  p= (abc*)( new abc[3]);
Επισης το #include <alloc.h> για ποιο λόγο γίνεται?
Ευχαριστώ


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: ThanosAm on February 26, 2013, 03:02:20 am
Βασικα η  alloc.h περιεχει ολες τις σχετικες συναρτησεις για δυναμικη δεσμευση μνημης (malloc , new κτλ )
Αλλοι compiler το χρειαζονται αλλοι οχι,εχει να κανει με το προτυπο της γλωσσας που χρησιμοποιει ο καθενας , μην δινεις και πολυ σημασια στις βιβλιοθηκες που θα κανεις include .


Βαζε στανταρ #include <iostream> και <math.h>  αν χρειαστεις συναρτησεις pow κτλ . Αν χρειαστει κατι παραπανω οπως η time θα το αναφερει .


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: c0ndemn3d on February 26, 2013, 03:10:31 am
Παιδιά ,  αν ξέρει κάποιος , στο παράδειγμα  του 6.1.1 από τις σημειώσεις, στην εντολή p=  new abc[3];
  η συνάρτηση επικαλυψης του new επιστρέφει void pointer , ενώ ο p εχει δηλωθει ως abc pointer . Δεν χρειάζεται μετατροπή , ξερω γω  p= (abc*)( new abc[3]);
Επισης το #include <alloc.h> για ποιο λόγο γίνεται?
Ευχαριστώ



Δεν χρειάζεται μετατροπή.


Οι συναρτήσεις malloc και free βρίσκονται στη βιβλιοθήκη αυτή. Παρόλα αυτά, βρίσκονται επίσης και στη stdlib οπότε αν βάλεις τη δεύτερη δεν χρειάζεσαι την πρώτη.


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: pentium4 on July 07, 2013, 16:08:05 pm
εχει να ανεβασει κανεις σημειωσεις απο τα μαθηματα ασκησεων;


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: pentium4 on July 10, 2013, 20:29:37 pm
εχει να ανεβασει κανεις σημειωσεις απο τα μαθηματα ασκησεων;

up (?)


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: skipper on July 26, 2013, 17:47:06 pm
εχει να ανεβασει κανεις σημειωσεις απο τα μαθηματα ασκησεων;

+1


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: TrueForce on September 02, 2013, 17:46:48 pm
Code:
#include <iostream.h>
#include <alloc.h>
#include  <process.h>
#define CMAX 31
class  device{
  protected:
    char class_id[CMAX];
    static device **D;
    static int N;
    static device **ID;
    static int M;
  public:
    device(char *p);
    device(){};
    virtual float d_power()=0;
    virtual void set_intensity(float V)=0;
    virtual int get_tolerance()=0;
    virtual float get_cable()=0;
    virtual char *get_id()=0;
    virtual void create_units(int n)=0;

    void device_registry();

    char *get_class_id(){return class_id;}

    static device **get_D(){return D;}
    static int get_N(){return N;}
    static device **get_ID(){return ID;}
    static int get_M(){return M;}
};

device **device::D;
int device::N=0;
device **device::ID;
int device::M=0;
Από την άσκηση Ε του κορτέση:
τις 4 τελευταίες γραμμές έχει καταλάβει κανείς γιατί τις γράφει; Μηδενίζει τα Ν και Μ; Γιατί το κάνει έτσι;


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: Αλντεμπαράν on September 02, 2013, 18:09:50 pm
Code:
#include <iostream.h>
#include <alloc.h>
#include  <process.h>
#define CMAX 31
class  device{
  protected:
    char class_id[CMAX];
    static device **D;
    static int N;
    static device **ID;
    static int M;
  public:
    device(char *p);
    device(){};
    virtual float d_power()=0;
    virtual void set_intensity(float V)=0;
    virtual int get_tolerance()=0;
    virtual float get_cable()=0;
    virtual char *get_id()=0;
    virtual void create_units(int n)=0;

    void device_registry();

    char *get_class_id(){return class_id;}

    static device **get_D(){return D;}
    static int get_N(){return N;}
    static device **get_ID(){return ID;}
    static int get_M(){return M;}
};

device **device::D;
int device::N=0;
device **device::ID;
int device::M=0;
    Από την άσκηση Ε του κορτέση:
    τις 4 τελευταίες γραμμές έχει καταλάβει κανείς γιατί τις γράφει; Μηδενίζει τα Ν και Μ; Γιατί το κάνει έτσι;
η απάντηση,αν κατάλαβα καλά,βρίσκεται σελ 537 του βιβλίου "στατικά μέλη", 2η παράγραφος


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: TrueForce on September 02, 2013, 18:35:03 pm
Υπάρχει περίπωση να βρίσκεται πουθενά αλλού, γιατι το βιβλιο δεν το εχω. ;D


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: Αλντεμπαράν on September 02, 2013, 19:54:30 pm
Υπάρχει περίπωση να βρίσκεται πουθενά αλλού, γιατι το βιβλιο δεν το εχω. ;D
"όταν σε μια τάξη δηλώνεται ένα μέλος δεδομένων ως static,δεν το ορίζεται ,θα πρέπει να δημιουργήσετε γι'αυτό το μέλος έναν καθολικό ορισμό κάπου αλλού έξω από την τάξη(και συγκεκριμένα μετά απ'αυτήν).Αυτό μπορείτε να το κάνετε με μια νέα δήλωση της μεταβλητής static στην οποία θα χρησιμοποιήσετε τον τελεστή επίλυσης εμβέλειας για να προσδιορίσετε την τάξη στην οποία ανήκει"

τάδε έφη ο Schildt:p


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: TrueForce on September 02, 2013, 20:05:39 pm
Thanks men! ;)


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσ^
Post by: ThanosAm on September 03, 2013, 15:10:09 pm
Απο άσκηση E

"Η συνάρτηση get_total_P() καθώς και η συνάρτηση main() να είναι ανεξάρτητες από τον αριθμό και τον τύπο των συσκευών."

Πως μεταφραζεται στην υλοποιηση ?


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσ^
Post by: Exomag on September 03, 2013, 16:21:58 pm
Απο άσκηση E

"Η συνάρτηση get_total_P() καθώς και η συνάρτηση main() να είναι ανεξάρτητες από τον αριθμό και τον τύπο των συσκευών."

Πως μεταφραζεται στην υλοποιηση ?

"Η συνάρτηση get_total_P() να είναι ανεξάρτητη από τον αριθμό και τον τύπο των συσκευών."
Αρκεί να δώσεις στη συνάρτηση, σαν ορίσματα, ένα πίνακα με pointers στον τύπο μιας abstract class (και της οποίας static μεταβλητή θα είναι ο πίνακας με τους pointers που είπαμε) από την οποία παράγονται οι classes των συσκευών που θες να υλοποιήσεις. Επίσης, στα ορίσματα, θα πρέπει να υπάρχει και το μέγεθος του πίνακα. Έτσι, μέσω των virtual συναρτήσεων της abstract class, η συνάρτηση θα χειρίζεται τα αντικείμενα.

"Η συνάρτηση main() να είναι ανεξάρτητη από τον αριθμό και τον τύπο των συσκευών."
Θα πρέπει να προσθέσεις και έναν ακόμη πίνακα (πάλι static στην abstract class) που θα περιέχει ένα αντικείμενο από κάθε είδος συσκευής (το οποίο αντικείμενο θα το δημιουργείς αμέσως μετά το declaration της class πριν το ; -δες και στο ενδεικτικό παράδειγμα του Κορτέση πώς το έχει-) καθώς και μια static μεταβλητή με το μέγεθος αυτού του πίνακα. Μέσω αυτών των δύο, η main() θα μπορεί να είναι ανεξάρτητη.


Επειδή μπορεί να μην τα έγραψα πολύ καλά/αναλυτικά, δες καλύτερα και το πρόγραμμα του Κορτέση για λεπτομέρειες.


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: ThanosAm on September 03, 2013, 16:24:32 pm
ωραίος ! Thanks!


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: dimi93gr on September 04, 2013, 12:19:59 pm
Είχε πει ότι μπορούμε να έχουμε τις σημειώσεις του μαζί μας;


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: Fcoriolis on September 04, 2013, 12:22:34 pm
Είχε πει ότι μπορούμε να έχουμε τις σημειώσεις του μαζί μας;
Ναι ότι θέλεις ακόμα και εργασίες


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: Exomag on September 05, 2013, 00:01:59 am
Είχε πει ότι μπορούμε να έχουμε τις σημειώσεις του μαζί μας;
Ναι ότι θέλεις ακόμα και εργασίες

Αρκεί οι σημειώσεις να είναι φωτοτυπημένες, όχι χειρόγραφες. Το τόνισε αυτό, το λέω για να μη γίνει καμιά παρεξήγηση.


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: pentium4 on September 05, 2013, 00:29:35 am
Είχε πει ότι μπορούμε να έχουμε τις σημειώσεις του μαζί μας;
Ναι ότι θέλεις ακόμα και εργασίες

Αρκεί οι σημειώσεις να είναι φωτοτυπημένες, όχι χειρόγραφες. Το τόνισε αυτό, το λέω για να μη γίνει καμιά παρεξήγηση.

καθαρη απορία, οι χειρόγραφες τι παραπανω απο τις φωτοτυπημενες εχουν;

(οκ τωρα σκεφτηκα οτι ισως φοβαται ανταλλαγη φυλλων εν ωρα εξετασης για αντιγραφη)


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: Fcoriolis on September 05, 2013, 00:41:59 am
καθαρη απορία, οι χειρόγραφες τι παραπανω απο τις φωτοτυπημενες εχουν;

(οκ τωρα σκεφτηκα οτι ισως φοβαται ανταλλαγη φυλλων εν ωρα εξετασης για αντιγραφη)

Αυτό φοβάται, βέβαια εγώ είχα το τετράδιο μου και δεν είπε κάτι.


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: johnnykost on September 05, 2013, 13:08:44 pm
Στην άσκηση Ε: Η δήλωση των αντικειμένων των device1 και device2 γίνεται στην create_units μέσω της new?


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: Exomag on September 05, 2013, 16:09:48 pm
Στην άσκηση Ε: Η δήλωση των αντικειμένων των device1 και device2 γίνεται στην create_units μέσω της new?

yeap


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: Luffy on September 05, 2013, 18:28:10 pm
θεμα φεβρουαριου 2009, μου ζηταει να υπολογισω εμβαδο οικοπεδου σε 2 περιπτωσεις:
1η Το οικοπεδο ειναι ορθογωνιο , αρα θελω 2 παραμετρους(βαση -υψος)
2η Το οικοπεδο ειναι τραπεζιο   , αρα θελω 3 παραμετρους(ΒΑΣΗ-βαση-υψος).

Μπορω να ορισω 3 παραμετρους στην abstract σα γενικη δηλωση αλλα στη περιπτωση του ορθογωνιου να χρησιμοποιει μονο τις 2 ? Ή ειναι προτιμοτερο να περναω στα ορισματα στην περιπτωση του ορθογωνιου δυο φορες τη βαση του και να χρησιμοποιω τον ιδιο τυπο ?   


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: Αλντεμπαράν on September 05, 2013, 18:35:40 pm
θεμα φεβρουαριου 2009, μου ζηταει να υπολογισω εμβαδο οικοπεδου σε 2 περιπτωσεις:
1η Το οικοπεδο ειναι ορθογωνιο , αρα θελω 2 παραμετρους(βαση -υψος)
2η Το οικοπεδο ειναι τραπεζιο   , αρα θελω 3 παραμετρους(ΒΑΣΗ-βαση-υψος).

Μπορω να ορισω 3 παραμετρους στην abstract σα γενικη δηλωση αλλα στη περιπτωση του ορθογωνιου να χρησιμοποιει μονο τις 2 ? Ή ειναι προτιμοτερο να περναω στα ορισματα στην περιπτωση του ορθογωνιου δυο φορες τη βαση του και να χρησιμοποιω τον ιδιο τυπο ?   
ίσως να ταν καλύτερο να τα διαβάζεις μέσα στην συνάρτηση δόμησης με cout,cin τα στοιχεία κάθε κλάσεις όπως γίνεται στην E,οπότε δεν υπάρχει ανάγκη για ορίσματα


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: Pjr on September 05, 2013, 18:42:11 pm
είναι εύκολο να  εξηγήσει κάποιος πως βγαινουν τα νούμερα στο 3ο θέμα του Φεβρουαρίου 2013??
μου βγαζει:  5 12 13
                 15 5


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσ^
Post by: Αλντεμπαράν on September 05, 2013, 18:58:49 pm
Απο άσκηση E

"Η συνάρτηση get_total_P() καθώς και η συνάρτηση main() να είναι ανεξάρτητες από τον αριθμό και τον τύπο των συσκευών."

Πως μεταφραζεται στην υλοποιηση ?

"Η συνάρτηση get_total_P() να είναι ανεξάρτητη από τον αριθμό και τον τύπο των συσκευών."
Αρκεί να δώσεις στη συνάρτηση, σαν ορίσματα, ένα πίνακα με pointers στον τύπο μιας abstract class (και της οποίας static μεταβλητή θα είναι ο πίνακας με τους pointers που είπαμε) από την οποία παράγονται οι classes των συσκευών που θες να υλοποιήσεις. Επίσης, στα ορίσματα, θα πρέπει να υπάρχει και το μέγεθος του πίνακα. Έτσι, μέσω των virtual συναρτήσεων της abstract class, η συνάρτηση θα χειρίζεται τα αντικείμενα.

"Η συνάρτηση main() να είναι ανεξάρτητη από τον αριθμό και τον τύπο των συσκευών."
Θα πρέπει να προσθέσεις και έναν ακόμη πίνακα (πάλι static στην abstract class) που θα περιέχει ένα αντικείμενο από κάθε είδος συσκευής (το οποίο αντικείμενο θα το δημιουργείς αμέσως μετά το declaration της class πριν το ; -δες και στο ενδεικτικό παράδειγμα του Κορτέση πώς το έχει-) καθώς και μια static μεταβλητή με το μέγεθος αυτού του πίνακα. Μέσω αυτών των δύο, η main() θα μπορεί να είναι ανεξάρτητη.


Επειδή μπορεί να μην τα έγραψα πολύ καλά/αναλυτικά, δες καλύτερα και το πρόγραμμα του Κορτέση για λεπτομέρειες.
στην ανεξαρτησία συνάρτησης(μόνο),είναι απαρραίτητη η χρήση του static pointer στον πίνακα των αντικειμένων???παραθέτω λύση του 2011 από άλλων


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: TrueForce on September 05, 2013, 19:19:19 pm
Καμιά βοήθεια με ο 3ο θεμα του φλεβάρη του 2013; Στο cout στην main και τον operator int αναφέρομαι...


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: ThanosAm on September 05, 2013, 19:51:15 pm
είναι εύκολο να  εξηγήσει κάποιος πως βγαινουν τα νούμερα στο 3ο θέμα του Φεβρουαρίου 2013??
μου βγαζει:  5 12 13
                 15 5

photos κανουν ?


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: L on September 05, 2013, 20:01:19 pm
Καμιά βοήθεια με ο 3ο θεμα του φλεβάρη του 2013; Στο cout στην main και τον operator int αναφέρομαι...

Νομίζω, ότι πχ σε αυτή τη γραμμή:
Code:
p[0].fun()->x=*(p[1].fun())+p[2];

η οποία είναι ισοδύναμη με:  p[0].fun()->x=p[1]+p[2]; γίνεται αυτόματα cast σε int, δηλαδή:  p[0].fun()->x=(int)p[1]+(int)p[2];

Υ.Γ.: Όμοια και στο cout της main()...


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: ThanosAm on September 05, 2013, 20:04:19 pm
here u r


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: ThanosAm on September 05, 2013, 20:05:35 pm
αδικο θεμα , πολυ πιο δυσκολο απο αλλες χρονιες και χρονοβορο .


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: Pjr on September 05, 2013, 20:26:23 pm
thanks..


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: rainmaker on September 05, 2013, 20:49:35 pm
πραγματικα το 3ο του φλεβαρη ηταν απαραδεκτο..πολυ δυσκολο και ηθελε πραγματικα αρκετο χρονο ο οποιος σε ΚΑΜΙΑ περιπτωση δεν υπηρχε.γενικα πολυ κακη εξεταστικη με ελαχιστο χρονο ο φλεβαρησ


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: L on September 05, 2013, 20:57:28 pm
θεμα φεβρουαριου 2009, μου ζηταει να υπολογισω εμβαδο οικοπεδου σε 2 περιπτωσεις:
1η Το οικοπεδο ειναι ορθογωνιο , αρα θελω 2 παραμετρους(βαση -υψος)
2η Το οικοπεδο ειναι τραπεζιο   , αρα θελω 3 παραμετρους(ΒΑΣΗ-βαση-υψος).

Μπορω να ορισω 3 παραμετρους στην abstract σα γενικη δηλωση αλλα στη περιπτωση του ορθογωνιου να χρησιμοποιει μονο τις 2 ? Ή ειναι προτιμοτερο να περναω στα ορισματα στην περιπτωση του ορθογωνιου δυο φορες τη βαση του και να χρησιμοποιω τον ιδιο τυπο ?  


Mugiwara, κάτι τέτοιο μήπως;

Code:
class orthogonio:public oikopedo
{
    float vasi,ypsos;
public:
    orthogonio(float,float);
void calculate_emvadon(){emvadon=vasi*ypsos;};
}

και

Code:
class trapezio:public oikopedo
{
    float vasi1,vasi2,ypsos;
public:
    trapezio(float,float,float);
    void calculate_emvadon(){emvadon=(((vasi1+vasi2)*ypsos)/2);};
};

όπου float emvadon; και virtual void calculate_emvadon()=0; βρίσκονται στην oikopedo...


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: TrueForce on September 06, 2013, 00:40:42 am
Thanks για την απαντηση μαν, αν και τελικα το βρηκα. ;D
Εντωμεταξυ, αυτη την ασκηση μου την ειχαν εξηγησει 1 μερα πριν την εξεταση. Αλλα εκανα λαθος το "%", νομιζα οτι ηταν ακεραιο υπολοιπο(μαλακας) και εχασα ολες τις μοναδες. ;D Απαραδεκτο θεμα παντως... >.<

edit: ειδα τις εικονες μαν, πολυ καλη εξηγηση, ty! ;)


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: New_Entry on September 06, 2013, 02:34:32 am
here u r

thanks a lot!!!!!! ΘΕΟΣ!!
 ^super^


Title: Re: [Προγραμματιστικές Τεχνικές] Aπορίες στις ασκήσεις 2012/2013
Post by: L on September 06, 2013, 09:44:31 am
Thanks για την απαντηση μαν, αν και τελικα το βρηκα. ;D
Εντωμεταξυ, αυτη την ασκηση μου την ειχαν εξηγησει 1 μερα πριν την εξεταση. Αλλα εκανα λαθος το "%", νομιζα οτι ηταν ακεραιο υπολοιπο(μαλακας) και εχασα ολες τις μοναδες. ;D Απαραδεκτο θεμα παντως... >.<

edit: ειδα τις εικονες μαν, πολυ καλη εξηγηση, ty! ;)

Ώπα, το "%" είναι το υπόλοιπο.