V.I.Smirnov Δημοσ. 30 Ιανουαρίου 2011 Δημοσ. 30 Ιανουαρίου 2011 Έτσι ! :eek: Να παιδεύεσται με τους πίνακες στην C/C++ ! -
thanos713 Δημοσ. 30 Ιανουαρίου 2011 Δημοσ. 30 Ιανουαρίου 2011 Μα το πρόβλημα είναι ότι δεν ξέρουμε τι παίζει με την εκφώνηση...
V.I.Smirnov Δημοσ. 30 Ιανουαρίου 2011 Μέλος Δημοσ. 30 Ιανουαρίου 2011 Όχι. Το πρόβλημα είναι ότι η C/C++ δεν υποστηρίζει πίνακες ! Και το χειρότερο είναι ότι δεν τους μαθαίνουν κάποια σχετική βιβλιοθήκη. Διότι η εκμάθηση των βασικών χρεάζεται, αλλά στην πράξη δεν θα δουλέψεις με πρωτογενές υλικό... -
thanos713 Δημοσ. 30 Ιανουαρίου 2011 Δημοσ. 30 Ιανουαρίου 2011 Όχι. Το πρόβλημα είναι ότι η C/C++ δεν υποστηρίζει πίνακες ! Σοβαρά; :confused:
V.I.Smirnov Δημοσ. 30 Ιανουαρίου 2011 Μέλος Δημοσ. 30 Ιανουαρίου 2011 @thanos713 Eίναι μακράν γνωστό ότι η C++ δεν υποστηρίζει πίνακες ενδογενώς. Δεδομένου ότι στην καθημερινή προγραμματιστική πρακτική οι πίνακες είναι βασικό εργαλείο, η έλλειψή τους προξενεί πολλά προβλήματα... -
thanos713 Δημοσ. 30 Ιανουαρίου 2011 Δημοσ. 30 Ιανουαρίου 2011 @thanos713 Eίναι μακράν γνωστό ότι η C++ δεν υποστηρίζει πίνακες ενδογενώς. Δεδομένου ότι στην καθημερινή προγραμματιστική πρακτική οι πίνακες είναι βασικό εργαλείο, η έλλειψή τους προξενεί πολλά προβλήματα... - Και τι βάζεις αντί για πίνακες;
V.I.Smirnov Δημοσ. 30 Ιανουαρίου 2011 Μέλος Δημοσ. 30 Ιανουαρίου 2011 @thanos713 Μάλλον δεν έχεις καταλάβει. Ενδογενής υποστήριξη πινάκων σημαίνει να μπορείς να τους χειριστείς όπως τους αριθμούς. Π.χ. C=A+B, a=maxval(A), D=A*B, C=sin(A), a=count(A>0), C= pack(A-B>0) κλπ. Δηλ. όπως και στο Matlab ή στην fortran για στατικούς και δυναμικούς. Όχι να τους φτιάχνεις εσύ απο "τα εξ ων συνετέθει". Και δυστυχώς οι περισσότερες βιβλιοθήκες (τουλάχιστον όσες έχω δει εγώ) γενικά υστερούν. Π.χ. η boost παρέχει όλη την λειτουργικότητα που χρειάζεται αλλά όχι για δυναμικούς πίνακες (δηλ. το πιο χρήσιμο λείπει). Η κλάση vector της STL έχει ελλείψεις ή είναι δύσχρηστη (π.χ. πολυδιάστατοι πίνακες). Όμοια και άλλες...(και χώρια η βραδύτητά τους)....Δυστυχώς... -
Timonkaipumpa Δημοσ. 30 Ιανουαρίου 2011 Δημοσ. 30 Ιανουαρίου 2011 Sorry Smirnov... αλλά είπες πατάτα. Φυσικά και ενδογενώς υποστηρίζει η C++ τον χειρισμό συνεχόμενων μπλοκ μνήμης... (για την απλή περίπτωση μιλώντας). Το ότι εσύ δεν έχεις βρει ή δεν έχεις μπει στο κόπο να υλοποιήσεις ή δεν ξέρεις να υλοποιήσεις κλάσεις και μεθόδους αρκετά αποτελεσματικές (για την εκάστοτε εφαρμογή) στον χειρισμό πινάκων, δεν σημαίνει πως η ίδια η γλώσσα δεν τους υποστηρίζει. Εκτός και εάν θεωρούμε ότι γλώσσα είναι μόνο ό,τι υπάρχει έτοιμο. //================================== Όσο για τον φίλο που θέλει κάτι γρήγορο για την άσκηση.... εάν δεν θες να μπεις στον κόπο να φτιάξεις δική σου κλάση, μπορείς να χρησιμοποιήσεις την έτοιμη Vector προσθέτοντας την λειτουργικότητα για πολλές διαστάσεις. Δηλαδή, φτιάξει μία δική σου κλάση, η οποία να έχει μέσα της την Vector, υλοποίηση της μεθόδους της Vector (όποιες σου χρειάζονται) και πρόσθεσε και μία που να σου παρέχει την λειτουργικότητα για πολλές διαστάσεις. Αυτό μπορείς να το κάνεις σκεπτόμενος ότι ένας πίνακας 2x5 έχει (σύνολο) 10 στοιχεία. Έτσι, ένας vector 10 στοιχείων μπορεί να συμπεριφερθεί ως ένας πίνακας 2 x 5 (π.χ.). Έτσι, την "append" της Vector θα την καλείς από μία δική σου η οποία θα πρέπει να ελέγχει ποιο στοιχείο μπήκε και αναλόγως να αυξάνει ή όχι τον αριθμό των γραμμών που έχεις. θα βάλεις και μία get για τις γραμμές και είσαι ready!
V.I.Smirnov Δημοσ. 30 Ιανουαρίου 2011 Μέλος Δημοσ. 30 Ιανουαρίου 2011 @Τimonkaipoumpa Μην προτρεχέτω η γλώσσα του μυαλού... Eγω ξέρω πολύ καλά τι λέω. Και βέβαια ξέρω και έχω υλοποιήσει και στην C++ πίνακες. Και αν ξαναδιαβάσεις αυτά που γράφω θα διαπιστώσεις ότι ΕΣΥ είπες ανοησία. Δεν μιλώ για συνεχόμενο blok μνήμης αλλά για βασική άλγεβρα μεταξύ (πολυδιάστατων) πινάκων, στατικών ή/και δυναμικά ορισμένων. Το δείχνω σαφώς με παραδείγματα. Τέτοια λειτουργικότητα ως γνωστόν δεν υπάρχει στον βασικό κορμό της C/C++. Oύτε έγραψα ότι δεν υπάρχουν κλάσεις ή βιβλιοθήκες αλλά ότι οι περισσότερες είναι ελλιπείς ή δύσχρηστες φέρνοντας και ως παραδείγματα τις πιο γνωστές. Και αν ξέρεις, δείξε μου μια ρουτίνα που λύνει ένα γραμμικό σύστημα μιγαδικών με απλή μ. gauss σε C++. (Όχι έτοιμη συνάρτηση.) Στo matlab η στην fortan που υποστηρίζουν πίνακες και μιγαδικούς ενδογενώς είναι λιγότερο από μια σελίδα. Την άλλη φορά να είσαι πιο προσεκτικός. -
Timonkaipumpa Δημοσ. 30 Ιανουαρίου 2011 Δημοσ. 30 Ιανουαρίου 2011 @Τimonkaipoumpa Μην προτρεχέτω η γλώσσα του μυαλού... Eγω ξέρω πολύ καλά τι λέω. Και βέβαια ξέρω και έχω υλοποιήσει και στην C++ πίνακες. Και αν ξαναδιαβάσεις αυτά που γράφω θα διαπιστώσεις ότι ΕΣΥ είπες ανοησία. Δεν μιλώ για συνεχόμενο blok μνήμης αλλά για βασική άλγεβρα μεταξύ (πολυδιάστατων) πινάκων, στατικών ή/και δυναμικά ορισμένων. Το δείχνω σαφώς με παραδείγματα. Τέτοια λειτουργικότητα ως γνωστόν δεν υπάρχει στην C/C++. Oύτε έγραψα ότι δεν υπάρχουν ή βιβλιοθήκες αλλά ότι οι περισσότερες είναι ελλιπείς ή δύσχρηστες φέρνοντας και παραδείγματα από τις πιο γνωστές. Και αν ξέρεις, δείξε μου μια ρουτίνα που λύνει ένα γραμμικό σύστημα μιγαδικών σε C++. Στo matlab η στην fortan που υποστηρίζουν πίνακες και μιγαδικούς ενδογενώς είναι λιγότερο από μια σελίδα. Την άλλη φορά να είσαι πιο προσεκτικός. - Smirnov . Θα ήταν χρήσιμο να κάνεις πράξη πρώτα εσύ αυτά που λες στους άλλους. Είναι σαφώς πιο γρήγορος τρόπος επικοινωνίας. Εάν πρόσεξες, που προφανώς δεν πρόσεξες, είπα στο τέλος: Εκτός και εάν θεωρήσουμε γλώσσα ό,τι υπάρχει έτοιμο. Έτσι, καταλήγουμε πάλι στο ίδιο συμπέρασμα, για το πολυαγαπημένο γεώμηλο. και... να δεις ότι κάπου διάβασα την φράση: την άλλη φορά να είσαι πιο προσεχτικός Ευχαριστω για την απαντηση σου φιλε αλλα δεν μπορω να χρησιμοποιησω αυτα που λες γιατι δεν τα εχω διδαχτει και θα θεωρηθει η εργασια αλλου ατομου και θα φαω ακυρο. Μα δεν είναι κάτι να έχεις διδαχθεί... Το να φτιάχνεις μεθόδους το ξέρεις. Το να ψάχνεις στο internet το ξέρεις. Ίσα ίσα... που έτσι όπως σου τα 'πα, θα πρέπει να ψάξεις για να τα κάνεις. Οπότε, έψαξες, έμαθες, τα έκανες. Δεν νομίζω να φας άκυρο.. ίσα ίσα που θα εκτιμηθεί η προσπάθειά σου.
V.I.Smirnov Δημοσ. 30 Ιανουαρίου 2011 Μέλος Δημοσ. 30 Ιανουαρίου 2011 @Timonkaipumpa Εγώ εκφράστηκα σαφέστατα. "Η C/C++ δεν υποστηρίζει ενδογενώς πίνακες", πιο ξεκάθαρα δεν μπορεί να γραφεί. Δεν αναφέρω κάτι λάθος ή άσχετο. Το "ενδογενώς" τι σημαίνει, ξέρεις ; Kαι μάλλον δεν γνωρίζεις την διαφορά του να υπάρχει κάτι κάτι έτοιμο στον κορμό της γλώσσας από το να υπάρχει έτοιμο ως εξωτερική υλοποίηση... Δεν μπορούμε να συνεννοηθούμε διότι μάλλον πάσχεις από λεγασθένεια και δεν έχει νόημα περαιτέρω κουβέντα. Όποιος διαβάσει τα λεγόμενα και των δύο θα καταλάβει... -
Timonkaipumpa Δημοσ. 30 Ιανουαρίου 2011 Δημοσ. 30 Ιανουαρίου 2011 @Timonkaipumpa Εγώ εκφράστηκα σαφέστατα. Αλλά δεν μπορούμε να συνοηθούμε διότι μάλλον πάσχεις από λεγασθένεια. Όποιος διαβάσει τα λεγόμενα και των δύο θα καταλάβει... - Smirnov, μην κρίνεις εξ ιδίων τα αλλότρια. Δεν είπα πουθενά, εκτός και εάν μπορείς να δείξεις το αντίθετο, ότι δεν εκφράστηκες σαφέστατα. άλλο είπα... και αυτό ακόμα να το καταλάβεις ή κάνεις πως δεν το καταλαβαίνεις.. πως το είπες; Α, ναι... Εγώ εκφράστηκα σαφέστατα. Αλλά δεν μπορούμε να συνοηθούμε διότι μάλλον πάσχεις από λεγασθένεια.
V.I.Smirnov Δημοσ. 30 Ιανουαρίου 2011 Μέλος Δημοσ. 30 Ιανουαρίου 2011 Γράφεις "αλλά είπες πατάτα". Δηλ. ότι έγραψα κάτι εσφαλμένο ή ανακριβές ή ασαφές (το νόημα μπορεί να είναι οποιοδήποτε σχετικό). Το οποίον δεν υφίσταται διότι τίποτε λάθος δεν έγραψα. Και βέβαια κρίνω εξ ιδίων τα αλλότροια : έπρεπε να ήσουν εξίσου ακριβολόγος με εμένα... Και ούτε βλέπω να δίνεις κάποια απάντηση επί της ουσίας (η ρουτίνα που σου ζήτησα να μου δείξεις ή κάποια έτοιμη βιβλιοθήκη με την λειτουργικότητα που ανάφερα) Όσο για τις ειρωνίες, ξέρω να πω κι' εγώ πολλές. Αλλά προτιμώ τον ορθό λόγο. -
Timonkaipumpa Δημοσ. 30 Ιανουαρίου 2011 Δημοσ. 30 Ιανουαρίου 2011 Γράφεις "αλλά είπες πατάτα" Δηλ. ότι έγραψα κάτι εσφαλμένο ή ανακριβές. Το οποίον δεν υφίσταται (η απόδιεξη που ήθελες). "Εκφράζομαι σαφέστατα" σημαίνει ότι λέω αυτό που θέλω να πω, όπως θέλω να το πω. Εάν αυτό που λέω δεν είναι ορθό είναι άλλο θέμα. Δεν μπορώ να καταλάβω όμως, γιατί θα πρέπει να αναλύω τόσο primitive πράματα.. Δεν μπορείς ή δεν θες να τα καταλάβεις μόνος σου; Και εάν δεν μπορείς, τότε πώς μπορείς και, λες ότι, καταλαβαίνεις πιο ανεπτυγμένα; Ή, εάν δεν θες, τότε γιατί γράφεις ό,τι γράφεις; Δεν το θεωρείς ανέντιμο; Τίποτε λάθος δεν έγραψα και ήμουν σαφέστατος. Έγραψες πως: Eίναι μακράν γνωστό ότι η C++ δεν υποστηρίζει πίνακες ενδογενώς. Το δεν υποστηρίζω σημαίνει πως δεν το στηρίζω, δεν μπορώ να το υλοποιήσω. Είναι μακράν γνωστό λοιπόν, πως η C++ μπορεί να στηρίξει την δομή δεδομένων που ονομάζεται πίνακες. Το ότι δεν είναι εύκολο να υλοποιηθεί, είναι επίσης μακράν γνωστό. Έτσι, είπες πατάτα και μεγάλη μάλιστα. Για αυτό και είπα ότι γλώσσα ΔΕΝ είναι μόνο τα έτοιμα (βασικά, το έθεσα ως ερώτηση... αλλά προφανέστατα, είτε δεν μπορείς είτε δεν θες να το αντιληφθείς...) Όπως καταλαβαίνεις ( ; ), τίθεται ένα θέμα... κατά πόσο μπορείς να αντιληφθείς το τι γράφεται ή κατά πόσο εσκεμμένα παραποιείς το γράφουν οι άλλοι, τόσο μέσα στο μυαλό σου όσο και στα γραπτά σου. Παράδειγμα, τα από πάνω. Και βέβαια κρίνω εξ ιδίων τα αλλότροια : έπρεπε να ήσουν εξίσου σαφής με εμένα... - Και έτσι φτάνουμε στο τέλος, όπου από τη μία παραποιείς τα όσα λέγονται και από την άλλη είσαι σαφέστατος (αυτό ναι). Έτσι, και βάσει των παραπάνω, είτε δεν καταλαβαίνεις τι γράφεται είτε καταλαβαίνεις και σκοπίμως παραποιείς. Πάρε όποιο θες. Και ούτε βλέπω να δίνεις κάποια απάντηση επί της ουσίας (η ρουτίνα που σου ζήτησα να μου δείξεις ή κάποια έτοιμη βιβλιοθήκη με την λειτουργικότητα που ανάφερα) Έτσι, λοιπόν, υπάρχει ένα ακόμα παράδειγμα του ότι παραποιείς τα όσα λέγονται ή δεν θες να τα καταλάβεις. Το θέμα δεν είναι να σου δείξω εγώ μία ρουτίνα που να κάνει την τάδε ή την δείνα πράξη Το θέμα είναι: Μπορεί να υλοποιηθεί σε C++; Εάν ναι, τότε η γλώσσα υποστηρίζει πίνακες. Εάν όχι, τότε η γλώσσα δεν υποστηρίζει πίνακες. Και μάντεψε ποια είναι η απάντηση...! (και επειδή είμαι 1000% ότι θα παραποιήσεις για άλλη μία φορά τα λεγόμενα των άλλων, ΝΑΙ, μπορεί να υλοποιηθεί). Και όσο για ειρωνίες, ξέρω να πω κι' εγώ πολλές. Αλλά προτιμώ τον ορθό λόγο. - Αυτή ήταν η μεγαλύτερη ειρωνεία που διάβασα μέχρι στιγμής σε αυτό το forum.
V.I.Smirnov Δημοσ. 30 Ιανουαρίου 2011 Μέλος Δημοσ. 30 Ιανουαρίου 2011 Το γράφω για πολλοστή φορά, "ενδογενής υποστήριξη" πινάκων σημαίνει ότι πρέπει να υφίσταται στον βασικό κορμό της γλώσσας, πράγμα που ΔΕΝ συμβαίνει στην C/C++, αντίθετα με άλλες γλώσσες (fortran) ή περιβάλλοντα (matlab ή mathematica). H C/C++ δεν υποστηρίζει πίνακες ως βασική δομή (όπως και μιγαδικούς), το ξέρουν άπαντες - το μαύρο δεν γίνεται άσπρο όσο κι' προσπαθείς με σοφιστείες. Και δυστυχώς βιβλιοθήκες ή κλάσεις που το υποκαθιστούν αυτό δεν είναι άνευ προβλημάτων. Όποιος ξέρει κάποια πέραν από αυτές της STL και boost ας μας πει να τις έχουμε υπόψη - θα χρειαστούν.... (Ο Directx μου υπέδειξε πριν λίγο καιρό την GNU scientific που δεν είχα υπόψη μου - τον ευχαριστώ και από εδώ.) Αν ξέρεις, μας δείχνεις κάποια όπως σου ζήτησα. Tα υπόλοιπα που γράφεις είναι κουραστική και ανούσια μπουρδολογία και υπεκφυγές που δεν πείθουν κανέναν - ειδικά τους γνώστες. -
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.