Τα πάντα για την C

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Star_Light » 16 Σεπ 2011, 12:47

migf1 έγραψε:
Σωστά είπαν, η C δεν υποστηρίζει εγγενώς pass by reference, μόνο pass by value. Μπορείς να την "προσομοιώσεις" όμως χρησιμοποιώντας δείκτες. Κι οι δείκτες by value περνιούνται, αλλά είναι σαν να περνάς by value τα περιεχόμενά τους.


Οταν μου ειπαν αυτο εγω τους ειπα αν εννοουν σαν value την δεκαεξαδικη τιμη ενος δεικτη που ειναι διευθυνση και μου ειπαν πως ολα ειναι τιμες στην C ειτε ειναι 16-δικο ειτε 10-δικο και απο καπου εκει ξεκινησε η συζητηση και με τις 16-αδικες.

migf1 έγραψε:
"ενδιάμεσο βήμα" για τι πράγμα;


Ενδιαμεσο για εναν ανθρωπο. Human - friendly.
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Star_Light » 16 Σεπ 2011, 12:48

ρεζιλι εγινα :lol: :lol: :lol:

απλα σε τοσα βιβλια και στην σχολη το παρουσιαζε σαν κληση με αναφορα. Τι να πω.

Π.Σ Ενιγουει τελος καλο - ολα καλα παω να το διορθωσω και στον οδηγο στα ΔΙκτυα μαθημα 2ο μερος 1ο. Το θεμα ειναι οτι το ξεδιαλυναμε και αυτο.

migf1 αν θες σου δινω το λινκ με την χθεσινη συζητηση.
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 16 Σεπ 2011, 13:43

Star_Light έγραψε:ρ
...
migf1 αν θες σου δινω το λινκ με την χθεσινη συζητηση.

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

ΥΓ. Στην 1η παράθεση που μου έχεις κάνει, το τελευταίο "value" το έχω διορθώσει σε "reference".
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Star_Light » 16 Σεπ 2011, 13:55

migf1 έγραψε:
Star_Light έγραψε:ρ
...
migf1 αν θες σου δινω το λινκ με την χθεσινη συζητηση.

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

ΥΓ. Στην 1η παράθεση που μου έχεις κάνει, το τελευταίο "value" το έσω διορθώσει σε "reference".


http://cboard.cprogramming.com/c-progra ... rithm.html

βρηκα και αλλους να πρηζω :lol: :lol:
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Star_Light » 16 Σεπ 2011, 14:11

απλα λεπτομερεια της λεπτομερειας ώ λεπτομερεια

αν καταλαβα καλα οι προγραμματιστες αυτοι θεωρούν οτι το

Κώδικας: Επιλογή όλων
function ( &x)


ειναι περασμα με τιμη και οτι αναφορες δεν υπάρχουν στην C.

Επειδη το &x ειναι διευθυνση αλλα καθε διευθυνση ειναι μια τιμη στην C και συνηθως εχει επικρατησει το 16-δικο σαν προγραμματιστικη παραδοση. Μιας και οπως ειπαν ολα ειναι τιμες στην C
επισης καπου ειδα οτι δεν περνιεται ο ιδιος ο δεικτης αλλα ενα αντιγραφο του. Τουλαχιστον αυτα καταλαβα εκει εγω.
Ως προς την γενικοτερη λειτουργια δεν διαφωνει κανεις καπου με κανεναν απλα ειναι πιο αυστηροι στους ορισμους απο οσο καταλαβα
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 16 Σεπ 2011, 14:45

Star_Light έγραψε:απλα λεπτομερεια της λεπτομερειας ώ λεπτομερεια

αν καταλαβα καλα οι προγραμματιστες αυτοι θεωρούν οτι το

Κώδικας: Επιλογή όλων
function ( &x)


ειναι περασμα με τιμη και οτι αναφορες δεν υπάρχουν στην C.

Δεν το θεωρούν οι προγραμματιστές αυτοί, αυτή ακριβώς είναι η πραγματικότητα... η C δεν υποστηρίζει by reference, μονάχα by value. Σου το έγραψα κι εγώ 2-3 posts νωρίτερα, είπες πως το ξεκαθάρισες και τώρα επανέρχεσαι :(

έγραψε:
Επειδη το &x ειναι διευθυνση αλλα καθε διευθυνση ειναι μια τιμη στην C και συνηθως εχει επικρατησει το 16-δικο σαν προγραμματιστικη παραδοση. Μιας και οπως ειπαν ολα ειναι τιμες στην C
επισης καπου ειδα οτι δεν περνιεται ο ιδιος ο δεικτης αλλα ενα αντιγραφο του. Τουλαχιστον αυτα καταλαβα εκει εγω.
Ως προς την γενικοτερη λειτουργια δεν διαφωνει κανεις καπου με κανεναν απλα ειναι πιο αυστηροι στους ορισμους απο οσο καταλαβα

Πάλι μπλέκεις όρους κι έννοιες σε περίεργες... συνθέσεις προτάσεων που δεν έχουν και κανένα ουσιαστικό αποτέλεσμα!

Γιατί μπλέκεις τώρα το by value, με την 16δική γραφή απεικόνισης αριθμών; Τι σχέση έχει το ένα με το άλλο;

Ο μόνος τρόπος να τα ξεκαθαρίσεις στο μυαλό σου είναι να γράψεις κώδικα (ασκήσεις) με παραδείγματα που ασχολούνται με το θέμα που σε προβληματίζει... το by value σε αυτή την περίπτωση. Κώδικα που ασχολείται μονάχα με το θέμα σου και τίποτα άλλο, και να συνεχίσεις να γράφεις ασκήσεις μέχρι να σου είναι τελείως ξεκάθαρο!

Στον προγραμματισμό έχεις τη δυνατότητα να τυπώνεις με printf τις τιμές όλων των μεταβλητών σου, σε όποιο σημείο του κώδικά σου επιθυμείς. Πολύτιμη πρακτική όταν θες να ανακαλύψεις πως και γιατί λειτουργούν τα πράγματα όπως λειτουργούν.

Δυστυχώς Κώστα φοβάμαι πως όσο επιλέγεις να ασχολείσαι ταυτόχρονα με πολλά & διαφορετικής δυσκολίας πράγματα, χωρίς καμία σειρά και σύστημα, δεν πρόκειται να ξεδιαλύνεις ποτέ τίποτα. Αντίθετα, θα τα κάνεις ολοένα και μεγαλύτερο... αχταρμά μέσα στο μυαλό σου.
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 16 Σεπ 2011, 14:58

Α, σε ότι αφορά την ερώτηση που τους έκανες σχετικά με το πέρασμα του array στην bubble-sort, να στο πω κι εγώ στα Ελληνικά που σου είναι πιο κατανοητά.

Όταν περνάς πίνακες σε συναρτήσεις, τότε περνιέται by value ο δείκτης με το όνομα του πίνακα, που περιέχει τη διεύθυνση του 1ου στοιχείου του πίνακα. Αυτό λοιπόν είναι σαν να περνάς by reference το 1ο στοιχείο του πίνακα: arr == &arr[0] και άρα *arr == arr[0]

Όταν μέσα στη συνάρτηση γράφεις π.χ. arr[i] ο δείκτης μετακινείται στο i-οστό στοιχείο του πίνακα, και εξακολουθεί να συμπεριφέρεται σαν να επεξεργάζεσαι by refrenece το i-οστό στοιχείο του πίνακα.

Που όλο μαζί σημαίνει, πως επεξεργάζεσαι by reference όλα τα στοιχεία του πίνακα, αλλά ο δείκτης αυτός κάθε αυτός έχει περαστεί by value.

Από την άλλη, αν θέλεις να επεξεργαστείς μέσα σε μια συνάρτηση σαν by reference έναν δείκτη, θα πρέπει να περάσεις στη συνάρτηση τη διεύθυνση του δείκτη (δηλαδή δείκτη σε δείκτη)... αλλά αυτό αν δεν έχεις καταλάβει πρώτα το παραπάνω δεν πρόκειται να το καταλάβεις. Πρώτα πρέπει να καταλάβεις τα απλά στάδια πριν επιχειρήσεις να ασχοληθείς με πιο προχωρημένα.
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Star_Light » 16 Σεπ 2011, 17:24

Ευχαριστω migf1 . Ξεκάθαρη η εξηγηση σου .

Οσο για τις ασχολιες μην σου πω πως κανονικα θα επρεπε ηδη να ειμαι στην αγορα εργασιας αρκετοι γνωστοι και φιλοι στριφογυριζονται πλεον... :P
με σωζει οτι τα 2 πρωτα ετη σαν φοιτητης δουλεψα σαν σερβιτορος αλλιως θα ειχα φαει μεγαλο κραξιμο απο γονεις.
ΓΙα αυτο εχουν ακομη ανοχη και δεν χαλαω κιολας το μηνα.

Καλα και τα διαβασματα... και η γνωση αλλα σε λιγο καιρο θα πεινασουμε εδω μεσα... βγηκα σημερα εξω για μια δουλεια

και οι ζητιανοι εχουν αυξηθει κατα 50% τα πραγματα ειναι δυσκολα. Εμαθα , οτι εμαθα στην σχολη θα παω στον αλλον και θα του πω βαλε με στην αγορα εργασιας... οτι ξερω να το φτιαξω. Δεν χρειαζεται να ειμαι χακερ για να βγαλω ενα 700αρι το μηνα και να εχω και εγω κανα δικο μου φραγκο.

Εσυ τα λες τελειως σωστα και στο εχω ξαναπει. Αλλα ετσι οπως εγιναν τα πραγματα θα συνεχισω ετσι και οτι μαθω εμαθα. Δεν θα πεθανουμε κιολας αλλωστε απο ενα σημειο και μετα ειναι θεμα ταλεντου. Εσυ μπορει να χεις εφεση που άλλοι δεν εχουν πχ. ;)
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Star_Light » 16 Σεπ 2011, 17:44

Οχι πως εχω προβλημα με τους γονεις μου. Απλα επειδη εχουμε γινει και φιλαρακια λεω και κατι παραπανω.

Καλοπροαιρετα παντα ;)
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Star_Light » 16 Σεπ 2011, 17:54

τελος αν κανεις μια προχειρη αναζητηση

http://www.google.gr/#sclient=psy-ab&hl ... 17&bih=796

και διαβασεις τα 2 πρωτα pdf's τα οποια τυγχανει να ειναι πανεπιστημιακα... Δεν λεει πουθενα(νομιζω) οτι δεν υπάρχουν αναφορες στην C.

Κανεις απο αυτους τους 2 τους καθηγητες δεν το διαφοροποιει. Γιατι? Αν ειναι να τα βρισκεις μονος σου αυτα και να μην στα λενε απο την σχολη τοτε παιρνω πτυχιο και μονος μου :lol: :lol: :lol: τοσα λεφτα παιρνουν.

Διαβασε απο περιεργεια τα 2 pdf . Αν εχεις χρονο.

(Ουτε στα αλλα το λεει.)

εχω αδικο ? Αν εχω να το συζητησουμε.
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

ΠροηγούμενηΕπόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι