Προς το περιεχόμενο

Ξεκίνημα στον προγραμματισμό


thephotoshoped

Προτεινόμενες αναρτήσεις

Εν πάσει περιπτώση, θα ήθελα να ενημερώσω τόσο τον defacer όσο και τον retromaniac, πως και στην C υπάρχουν τα λεγόμενα "libraries", "APIs", "Interfaces" ή όπως αλλιώς θέλει να τα ονομάσει κανείς, ώστε να μην είναι αναγκασμένος κανείς να ξαναγράφει τα πάντα από την αρχή.

 

Ευχαριστούμε πολύ για την ενημέρωση. Και εγώ με τη σειρά μου θα ήθελα να ενημερώσω πως

  1. οποιαδήποτε εξωτερική library δε βοηθάει καθόλου στην εκμάθηση της γλώσσας παρα μόνο στην υλοποίηση συγκεκριμένου κώδικα
  2. εφόσον μια library δεν είναι standard δε μπορεί να θεωρηθεί δεδομένη η ύπαρξή της -- ελπίζω να καταλαβαίνεις τη διαφορά μεταξύ της strcmp() και της οποιασδήποτε δικής σου migf1_strcmp() μπορεί να έχεις ανεβάσει
  3. όσο και να χτυπάς οτιδήποτε στο πάτωμα ή αλλού, το γεγονός ότι στη C π.χ. το string και ο πίνακας δεν είναι first-class type δε σώζεται με τίποτα όσες libraries και αν βάλεις στο παιχνίδι (είμαι σίγουρος πως εσύ ξέρεις τι είναι first-class type και το είχες υπόψη σου απαντώντας, αλλά λέω τώρα για όσους δεν ξέρουν) -- και αυτό φυσικά έχει συνέπειες στο πώς μαθαίνεις να γράφεις κώδικα

Και τέλος, επειδή μας διαβάζουν και παιδιά, να ενημερώσω για άλλη μια φορά πως το O(n/2) είναι το ίδιο ακριβώς πράγμα με το O(n) και με οποιοδήποτε άλλο O(Cn) όπου C σταθερά. Ακριβώς όπως το Ο(n² + n) είναι το ίδιο πράγμα με το Ο(n²) και το ίδιο πράγμα με το Ο(42n²). Είμαι σίγουρος πως μπορείς να βάλεις όπου 42 το 1/2 και να διαπιστώσεις την ομοιότητα. Για λόγους ομοιομορφίας, όλα αυτά τα αναφέρουμε χωρίς να δίνουμε τη σταθερά.

 

Αλλά what do I know.

 

Παιδιά συγγνώμη για την απάντηση στον migf1, δε θα επαναληφθεί.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Απαντ. 106
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Συχνή συμμετοχή στο θέμα

Αν θέλεις τα strings και τα arrays 1st class citizens,πολύ απλά χρησιμοποίησε άλλη γλώσσα. Αν θες να μάθεις πως και γιατί υλοποιούνται ως 1st citizens τα strings και τα arrays, πολύ απλά μάθε C.

 

Αν θες και τα 2, πολύ απλά μάθε περισσότερες τις 1 γλώσσες... ή μάθε μια άλλη που σου δίνει εύκολη πρόσβαση και σε C.

 

Αν θες να μας πεις πως π.χ το Android API σε κάποιο παράλληλο σύμπαν θεωρείται στανταρισμένο Java API, κάπου έχεις μπερδευτεί.

 

ΥΓ. Όσο για το O(N/2) ότι και να γράψεις ευτυχώς δεν το σώζεις.



EDIT:

 

Αν νομίζεις πως έγραψα πουθενά πως τα APIs είναι για να μάθει κάποιος τη core γλώσσα, πολύ απλά ξαναδιάβασε το νήμα.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αν θες να μάθεις πως και γιατί υλοποιούνται ως 1st citizens τα strings και τα arrays, πολύ απλά μάθε C.

 

Το κεφάλι μου, καθώς και όσων άλλων ξέρουν όντως τι σημαίνει first-class, μόλις εξερράγη.

 

Το αστείο είναι πως αν βάλουμε C++ αντί για C τότε όντως ισχύει.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το κεφάλι μου, καθώς και όσων άλλων ξέρουν όντως τι σημαίνει first-class, μόλις εξερράγη.

 

Το αστείο είναι πως αν βάλουμε C++ αντί για C τότε όντως ισχύει.

 

πρόσθεσε το "σε άλλες γλώσσες" μετά το "arrays" στο ποστ μου (που το παρέλλειψα από βιασύνη) για να ξαναρθει το κεφάλι σου στη θέση του.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Πραγματικά, αν ήταν οποιοσδήποτε άλλος, αντί να κράξω θα ρωτούσα μήπως κάτι δεν καταλαβαίνω καλά και σε αδικώ βρε αδερφέ. Αλλά στην παρούσα... άλλο ένα κεφάλαιο του "η άγνοια σκοτώνει".

 

Είναι δυνατόν να μάθω πώς (και πολύ περισσότερο γιατί, lol) υλοποιούνται first-class types ("σε άλλες γλώσσες", δεν κάνει καμία διαφορά στο νόημα) χρησιμοποιώντας μια γλώσσα όπως η C στην οποία δε μπορείς να υλοποιήσεις κανένα καινούριο first-class type?

 

Ρητορική ερώτηση. Δεν είναι.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Πραγματικά, αν ήταν οποιοσδήποτε άλλος, αντί να κράξω θα ρωτούσα μήπως κάτι δεν καταλαβαίνω καλά και σε αδικώ βρε αδερφέ. Αλλά στην παρούσα... άλλο ένα κεφάλαιο του "η άγνοια σκοτώνει".

 

Είναι δυνατόν να μάθω πώς (και πολύ περισσότερο γιατί, lol) υλοποιούνται first-class types ("σε άλλες γλώσσες", δεν κάνει καμία διαφορά στο νόημα) χρησιμοποιώντας μια γλώσσα όπως η C στην οποία δε μπορείς να υλοποιήσεις κανένα καινούριο first-class type?

 

Ρητορική ερώτηση. Δεν είναι.

 

Κράξε όσο θες, τσάμπα είναι έτσι κι αλλιώς... χώρια ότι σε κάνει να αισθάνεσαι και μάγκας (τσάμπα μάγκας βέβαια, αλλά ψιλά γράμματα).

 

Όσο για τα υπόλοιπα, και μόνο και μόνο επειδή το διαβάζει κι άλλος κόσμος το φόρουμ, αφενός η συντριπτική πλειοψηφία  όσων δημοφιλών γλωσσών χρησιμοποιούν ως 1st class citizens arrays και strings είναι γραμμένες σε C στον πυρήνα τους (άρα πως) και αφετέρου αν δεν βιώσεις για ποιους λόγους και σε ποιες περιπτώσεις εξυπηρετούν καλύτερα να είναι 1st class citizens τα strings και τα arrays είναι κομματάκι δύσκολο ή/και χρονοβόρο να συνειδητοποιήσεις τον ακριβή λόγο ύπαρξης τους (EDIT: άρα γιατί).

 

Από εκεί και πέρα, ίσως κάποια στιγμή τα φέρει έτσι η μοίρα και συνειδητοποιήσεις πως υπάρχουν και περιπτώσεις όπου ΔΕΝ εξυπηρετεί καλύτερα να είναι 1st class citizens τα arrays και τα strings. Τι σου λέω τώρα όμως ε; Δεν πειράζει... "μακάριοι οι μη γνωρίζοντες".

Επεξ/σία από migf1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Κάτι άσχετο με το νήμα.... αλλα μιας και βρηκα τοσους προγραμματιστες μαζεμενους λογικα θα ξέρετε ... :P

 

ποια η αγγλικη ορολογια της καταβόθρας ? (γραφημα)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αν εννοείς κόμβο στον οποίο καταφθάνουν οι κλάδοι λέγεται sink (βόθρος)

http://en.wikipedia.org/wiki/Directed_graph

 

Ευχαριστω... μολις εμπαινα να γραψω οτι το βρήκα !!!! Ναι sink ή total sink (ολικη καταβοθρα).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Για να μην τσακωνόμαστε. Μπορείτε να κατεβάσετε εδώ την καλύτερη γλώσσα προγραμματισμού http://www.bestlanguage.org/download

Δεν έχει κάποιο IDE, ούτε compiler.

IDE μπορείτε να πάρετε κάποιο έτοιμο αλλά μπορείτε και να το φτιάξετε και μόνοι σας να δείτε πως γίνεται.

Compiler θα πρέπει να φτιάξετε μόνοι σας οπωσδήποτε.

Το καλό είναι ότι στην πορεία θα μάθετε τα πάντα!!!!!

Μόλις τελειώσετε με τον compiler θα έχετε τις γνώσεις να προγραμματίσετε άμεσα!!!!

Για τον compiler μπορείτε να αρπάξετε την ευκαιρία που σας δίνετε και να τον φτιάξετε σε assembly για να δείτε πως υλοποιούνται τα πάντα σε γλώσσα μηχανής. Αφήστε που θα πηγαίνει σφαίρα και το footprint θα είναι μυρμηγκιού.

Θα σας βοηθήσει αργότερα και στην high level language που θα υλοποιήσετε! Θα ξέρετε πως ακριβώς γίνεται το κάθε τι που κάνει μέχρι επίδεδο op code της cpu.

 

Καλή επιτυχία!

 

ΥΓ. Για να ευθυμήσουμε και λίγο  :-D

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

...

ΥΓ. Για να ευθυμήσουμε και λίγο  :-D

Ωραίο! Δεν ξέρω όμως γιατί, αλλά διαβάζοντάς το αμέσως το μυαλό μου πήγε σε αυτό εδώ.

 

Για όσους το καταλάβουν δηλαδή.

 

ΥΓ. Εντός η εκτός εποχής άραγε; :P Αστείο ή σοβαρό; ;)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δεν έχει να κάνει με το αρχικό στόχο του νήματος, αλλά να συμφωνήσω με τον Defacer ότι καθαρά αλγοριθμικά  Ο(n) == O(n/2).

 

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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

 

@erevis:

 

Μιας και απάντησα σήμερα σε ένα άλλο νήμα περί πολυπλοκότητας, έβαλα κι ένα search στο φόρουμ και μου βρήκε και το επίμαχο νήμα, όπου η διαμάχη εξελίσσεται πέριξ αυτού του μηνύματος, το οποίο κατέληξε και σε ban και των 2 μας.

 

Παρατήρησε λοιπόν την αδυναμία του defacer να αντιληφθεί τη διαφοροποίηση σε απόλυτα νούμερα (και προφανώς όχι μόνο) που προκύπτει όταν αλλάξουμε το μέγεθος N προς όφελός μας (κάτι που προφανώς προϋποθέτει στοιχειώδεις γνώσεις πολυπλοκότητας και υποτίθεται πως είναι αυτονόητο) και το υφάκι του στις μετέπειτα απαντήσεις του.

 

@retromaniac:

 

Το link από το ερευνητικό κέντρο προγραμματισμού της Sony το διάβασες; Ρωτάω γιατί περίμενα πως θα είχες να κάνεις κάποιο σχόλιο σχετικά με την καλύτερη γλώσσα προγραμματισμού, καθώς και για τις εντός κι εκτός εποχής τεχνικές, πρακτικές, programming paradigms, niche/mainstream, κλπ :P

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...