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

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

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

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

Δημοσίευσηαπό Ilias95 » 18 Μαρ 2012, 17:28

migf1 έγραψε:
Ilias95 έγραψε:@migf1
Μου πήρε αρκετή ώρα αλλά τελικά νομίζω ότι επιτέλους κατάλαβα πως δουλεύει.

Το κλειδί στην κατανόησή του είναι η κατανόηση του πως δουλεύει το pointer-arithmetic.

Από τη στιγμή που...

α) ο 2-διάστατος πίνακας a[NROWS][NCOLS] όπως ξέρουμε εσωτερικά υλοποιείται μονοδιάστατα σε συνεχόμενη μνήμη, συνολικού μεγέθους (NROWS * NCOLS) * sizeof(int) bytes

β) το p ορίζεται δείκτης σε πίνακα NCOLS ακεραίων (δηλαδή ανά πάσα στιγμή δείχνει σε τμήμα μνήμης μεγέθους NCOLS * sizeof(int) bytes)

τότε κάθε p++ προχωράει στη μνήμη κατά NCOLS ακέραιους, που επί της ουσίας είναι μια γραμμή του πίνακα a[ ] [ ] (το p-- θα πήγαινε πίσω κατά NCOLS ακέραιους).

Δηλαδή κάθε ++ του p προχωράει αυτόματα τον p κατά NCOLS * sizeof(int) bytes στη μνήμη ;)


Ναι, σωστά το κατάλαβα τελικά.
Ευχαριστώ.
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

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

Δημοσίευσηαπό stamatiou » 18 Μαρ 2012, 18:57

Η τελευταία γραμμή στο pseudocode γιατί χρειάζεται;
1Γνώσεις→Linux: Αρχάριος┃Προγραμματισμός:Αρχάριος┃Αγγλικά:Μέτριος
2Λειτουργικό→Arch Linxu 32bit
3Προδιαγραφές→2x AMD AthlonX2 DualCore QL-66 ‖ RAM 1751 MiB ‖ Hewlett-Packard 308C - Hewlett-Packard Compaq 615
4Κάρτες γραφικών:ATI RS780M/RS780MN [Radeon HD 3200 Graphics][1002:9612]
5Δίκτυα:eth0:Marvell 88E8042 PCI-E Fast Ethernet Controller [11ab:4357] (rev 10)⋮eth1: Broadcom BCM4312 802.11b/g LP-PHY [14e4:4315](rev 01)
Πρωσοπική Ιστοσελίδα: http://giwrg98.co.cc
Άβαταρ μέλους
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

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

Δημοσίευσηαπό migf1 » 18 Μαρ 2012, 22:35

stamatiou έγραψε:Η τελευταία γραμμή στο pseudocode γιατί χρειάζεται;

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

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

Δημοσίευσηαπό stamatiou » 19 Μαρ 2012, 22:04

migf1 έγραψε:
stamatiou έγραψε:Η τελευταία γραμμή στο pseudocode γιατί χρειάζεται;

Δεν σου κάνει καμία διαφορά αν τη βγάλεις;
ΥΓ. Απορία: προσπαθείς να μάθεις sorting χωρίς να γράψεις κώδικα; Αν ναι, forget it!

Δεν πρέπει να μάθω πρώτα πως λειτουργεί;
1Γνώσεις→Linux: Αρχάριος┃Προγραμματισμός:Αρχάριος┃Αγγλικά:Μέτριος
2Λειτουργικό→Arch Linxu 32bit
3Προδιαγραφές→2x AMD AthlonX2 DualCore QL-66 ‖ RAM 1751 MiB ‖ Hewlett-Packard 308C - Hewlett-Packard Compaq 615
4Κάρτες γραφικών:ATI RS780M/RS780MN [Radeon HD 3200 Graphics][1002:9612]
5Δίκτυα:eth0:Marvell 88E8042 PCI-E Fast Ethernet Controller [11ab:4357] (rev 10)⋮eth1: Broadcom BCM4312 802.11b/g LP-PHY [14e4:4315](rev 01)
Πρωσοπική Ιστοσελίδα: http://giwrg98.co.cc
Άβαταρ μέλους
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

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

Δημοσίευσηαπό migf1 » 20 Μαρ 2012, 19:14

stamatiou έγραψε:Δεν πρέπει να μάθω πρώτα πως λειτουργεί;

Αν η μόνη γραμμή που δεν καταλαβαίνεις είναι η τελευταία, τότε ένας ωραίος τρόπος είναι να τρέξεις τον κώδικα όπως στον δίνει, και κατόπιν να κάνεις comment-out την τελευταία γραμμή και να συγκρίνεις την έξοδο.

Ένας ακόμα καλύτερος τρόπος είναι να μη κοιτάξεις καθόλου τον ψευδοκώδικα. Να γράψεις την ρουτίνα μόνος σου σύμφωνα με τις υποδείξεις της θεωρίας. Όταν καταφέρεις να την κάνεις να δουλεύει σωστά, τότε να τη συγκρίνεις με τον ψευδοκώδικα ;)

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

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

Δημοσίευσηαπό migf1 » 21 Μαρ 2012, 13:36

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

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

Δημοσίευσηαπό Ilias95 » 21 Μαρ 2012, 15:37

migf1 έγραψε:Ηλία, έχεις σταματήσει να ποστάρεις απορίες κι έχω αρχίσει να ανησυχώ πως τα παράτησες :lol:

Καλησπέρα,

Όχι δεν τα παράτησα, απλά λόγο των σχολικών και άλλων υποχρεώσεων προχωράω πιο αργά τελευταία.
Έχω ολοκληρώσει τα πρώτα 13 κεφάλαια όμως και πιστεύω πως έχω κατανοήσει όσα έχω διδαχθεί ως τώρα.

Όσο για απορίες μην ανησυχείς, θα επανέλθω σε λίγο καιρό δριμύτερος. :P
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

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

Δημοσίευσηαπό migf1 » 21 Μαρ 2012, 15:57

Ω, διάβασες και strings; Ωραίος!

Αυτά είναι μια κατηγορία από μόνα τους... πολύ σημαντική κατηγορία μιας και χρησιμοποιούνται (σχεδόν) πάντα, σε όλα τα προγράμματα και στη C έχουν πολλές ιδιαιτερότητες.

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

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

Δημοσίευσηαπό Ilias95 » 21 Μαρ 2012, 16:05

Το κατάλαβα ότι είναι μία κατηγορία μόνα τους. :D
Ναι, εννοείται πως θα κάνω όλες τις ασκήσεις. Δεν ξεκίνησα ακόμα όμως, διάβασα μόνο την θεωρία.
Ξεκινάω σήμερα, καλή μου επιτυχία... :P
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

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

Δημοσίευσηαπό migf1 » 21 Μαρ 2012, 16:15

Καλή σου επιτυχία!!! :clap: :clap: :clap: :clap:

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

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

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