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

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

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

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

Δημοσίευσηαπό migf1 » 08 Σεπ 2011, 21:31

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

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

Δημοσίευσηαπό stamatiou » 08 Σεπ 2011, 22:36

Οκ, ωρίστε :
Spoiler: show
Κώδικας: Επιλογή όλων
#include <stdio.h>

int main(void) {
int *p,i;
i = &p;
printf("%d\n",i);
return 0;
}

Αλλά γιατί έχει ένα - μπροστά;
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

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

Δημοσίευσηαπό Star_Light » 08 Σεπ 2011, 22:56

Καλο ειναι το επιπεδο μας!!!! (Ας μας εμψυχωσω λιγο) απλα θελει σωστο και καλα δομημενο προγραμμα το ειπα και στο θρεντ των δικτυων
δεν εχει σημασια αν διαβαζεις ή ποσο διαβάζεις αλλα ΠΩΣ διαβαζεις(+ απο ποιες πηγες)... αν εσυ πας να διαβασεις 5 συνεχομενες ωρες ενω εισαι με 2 ωρες υπνο τις 3 ωρες τις εχασες ειναι σαν να μην εκατσες καν καλυτερα να πηγαινες να συναντησεις καμια τυπισσα να πιεις καφεδακι μαζι της που δεν θέλει και πολυ λογικη ή να σκεφτεις πολλα .... :lol: :lol:

Εγω πιστευω μπορεις να διαβασεις πολλα πραγματα ταυτοχρονα ΑΛΛΑ... οταν έχεις τελειωσει με τα ΔΙκτυα ριξε εναν υπνο μισης ωριτσας και σηκω με καθαρο κεφαλι και πιασε προγραμματισμο... και εκει που θα χεις πιασει επικεντρωνεσαι φυσικα σε ενα πραγμα χωρις να πηδας σε επομενο οση ωρα διαβαζεις προγραμματισμο αυτα τα πολυ σημαντικα που μας ειπε και ο migf1 μολις τελειωσει η 1 ωρα μελετης του προγραμματισμου ξεκουρασου λιγο ακομη και μετα ξαναξεκινα.... κτλπ. ΑΠλα θελει προγραμμα... και μην βιαζεσαι να δεις δυναμη στις γνωσεις... το καλο πραγμα αργει να γινει.

Πιστευω κατι πολυ σημαντικο το οποιο αγνοουν τα περισσοτερα φροντιστηρια ειτε μεσης εκπαιδευσης ειτε σχολεια ειτε πανεπιστημια ειναι οτι δεν αφιερωνουν 2 ολοκληρα μαθηματα να μαθουν τον κοσμο πως να διαβαζει... κανεις δεν ειναι χαζος.... απλα υπαρχουν ατομα που ξερουν ή οχι να διαβαζουν ή για να μην ειμαι και τελειως απολυτος υπάρχουν άτομα που καταφέρνουν να εκμεταλευτουν στο επακρο τις 2 ωρες μεχρι το τελευταιο δευτερολεπτο που θα κατσουν (δευτερολεπτο αρχης) εως το δευτερολεπτο τελους (σταματιου θυμησου τα flags για την οριοθετηση στα δικτυα :lol: μονο που εκει οριοθετουσαμε πακετα ενω εδω οριοθετουμε τον χρονο!!! Ειναι η ιδια φιλοσοφια!) σε συγκριση με αλλους που ας πουμε καθονται να διαβασουν κουρασμενοι. Και 15 λεπτα να κλεισεις τα ματια ακομη και αν ειχες αλλες υποχρεωσεις και γυρισες σπιτι ειναι αρκετα για 2 - 3 ωρες αποδοτικου διαβασματος μετα... αυτο επι καθε μερα... δινει το χρονο 365 χ 3 = 1095 ωρες. Σε 3 χρονια εχεις γινει χακερ!!!!Με 3 ωρες την ημερα.... ;) πιστευω αυτα ειναι τα σημαντικοτερα
Τελευταία επεξεργασία από Star_Light και 08 Σεπ 2011, 23:01, έχει επεξεργασθεί 3 φορά/ες συνολικά
Γνώσεις ⇛ 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 » 08 Σεπ 2011, 22:58

migf1 έγραψε:Λοιπόν, ο i (που καλύτερα να τον μετονομάσεις σε p) είναι δηλωμένος σαν απλός δείκτης τον οποίον τον βάζεις να δείχνει στον πίνακά σου. Με το που κάνεις αυτή την ανάθεση ο i δείχνει σε έγκυρα περιεχόμενα μνήμης (δηλωμένα μέσω του x, που καλύτερα να το μετονομάσεις σε table).

Δες και τι εννοώ όταν μιλάω για λιτό, αραιωμένο κι ευανάγνωστο κώδικα...
Κώδικας: Επιλογή όλων

#include <stdio.h>

#define EMPTY_ELEMENT -1
#define MAX_ELEMENTS 10

// ----------------------------------------------
int main( void )
{
int table[ MAX_ELEMENTS ] = {1,2,3,4,5,6,7,8,9, EMPTY_ELEMENT};
int *p = table;

if ( !p ) {
puts("*** nothing to do, p is NULL");
return 0;
}

while ( *p != EMPTY_ELEMENT )
{
if ( *p % 2 == 0 ) // εξήγησε γιατί εξετάζεις για υπόλοιπο ίσο με 0 εδώ
printf("\n ...\n %d", *p);

else if ( *p % 2 == 1 ) // εξήγησε γιατί εξετάζεις για υπόλοιπο ίσο με 1 εδώ
printf("\n ...\n %d", *p);

p++;
}

return 0;
}

Είναι ακριβώς ο ίδιος κώδικας με αυτόν που έχεις γράψει στο spoiler του προηγούμενου post ;) ... με διορθωμένο τον έλεγχο για NULL. Πιστεύω η διαφορά σε readability είναι πολύ μεγάλη.


Ε προφανως

ε καμια σχεση ρε συ το ξερω αυτο που μου λες αλλα στα γρηγορα ειπα να φτιαξω το πρωι κατι που μου ηρθε εκεινη την ωρα στο μυαλο

να φανταστεις με φωναζε η μανα μου να παω να ψωνισω :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++

Δημοσίευσηαπό migf1 » 08 Σεπ 2011, 23:03

stamatiou έγραψε:Οκ, ωρίστε :
Spoiler: show
Κώδικας: Επιλογή όλων
#include <stdio.h>

int main(void) {
int *p,i;
i = &p;
printf("%d\n",i);
return 0;
}

Αλλά γιατί έχει ένα - μπροστά;


Γιατί είναι λάθος :) Να φανταστείς η Pelles-C στα Windows δεν το κάνει καν compile. Ο mingw32 το κάνει, αλλά με το εξής warning:

Κώδικας: Επιλογή όλων
test.c:6:4: warning: assignment makes integer from pointer without a cast


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

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

Δημοσίευσηαπό Star_Light » 08 Σεπ 2011, 23:08

migf1 έγραψε:
stamatiou έγραψε:Οκ, ωρίστε :
Spoiler: show
Κώδικας: Επιλογή όλων
#include <stdio.h>

int main(void) {
int *p,i;
i = &p;
printf("%d\n",i);
return 0;
}

Αλλά γιατί έχει ένα - μπροστά;


Γιατί είναι λάθος :) Να φανταστείς η Pelles-C στα Windows δεν το κάνει καν compile. Ο mingw32 το κάνει, αλλά με το εξής warning:

Κώδικας: Επιλογή όλων
test.c:6:4: warning: assignment makes integer from pointer without a cast


Μπορείς να καταλάβεις τι εννοεί;


Τι προσπαθει να κανει ο φιλος μας?
Γνώσεις ⇛ 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++

Δημοσίευσηαπό stamatiou » 08 Σεπ 2011, 23:11

migf1 έγραψε:
stamatiou έγραψε:Οκ, ωρίστε :
Spoiler: show
Κώδικας: Επιλογή όλων
#include <stdio.h>

int main(void) {
int *p,i;
i = &p;
printf("%d\n",i);
return 0;
}

Αλλά γιατί έχει ένα - μπροστά;


Γιατί είναι λάθος :) Να φανταστείς η Pelles-C στα Windows δεν το κάνει καν compile. Ο mingw32 το κάνει, αλλά με το εξής warning:

Κώδικας: Επιλογή όλων
test.c:6:4: warning: assignment makes integer from pointer without a cast


Μπορείς να καταλάβεις τι εννοεί;

Εννοεί ότι προσπαθώ να περάσω έναν pointer σε int, να δοκιμάσω με cast;
Edit: Oκ, τελικά δουλεύει έτσι:
Spoiler: show
Κώδικας: Επιλογή όλων
#include <stdio.h>

int main(void) {
int *p,i;
i = (int )&p;
printf("%d\n",i);
return 0;
}

Αλλά εγώ τι έκανα print πριν;
Τελευταία επεξεργασία από stamatiou και 08 Σεπ 2011, 23:14, έχει επεξεργασθεί 1 φορά/ες συνολικά
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

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

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

σταματιου αν επιτρεπεται τι προσπαθεις να κανεις? :D

Aν ειναι να δοκιμασω να σε κατευθυνω και εγω και αν υπαρχει προβλημα μας διορθωνει

με την μια και τους 2 ο 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++

Δημοσίευσηαπό stamatiou » 08 Σεπ 2011, 23:19

Star_Light έγραψε:σταματιου αν επιτρεπεται τι προσπαθεις να κανεις? :D

Aν ειναι να δοκιμασω να σε κατευθυνω και εγω και αν υπαρχει προβλημα μας διορθωνει

με την μια και τους 2 ο migf1 ;)

Μια άσκηση του migf1, πρέπει να βάλουμε τη διεύθυνση του διευθυντή και μετά να το τυπώσουμε :D
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

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

Δημοσίευσηαπό Star_Light » 08 Σεπ 2011, 23:23

stamatiou έγραψε:
Μια άσκηση του migf1, πρέπει να βάλουμε τη διεύθυνση του διευθυντή και μετά να το τυπώσουμε :D


Του ποιού? :D ΓΙΑ δωσε λινκ γιατι ημουν στα αγγλικα και δεν θα το ειδα...
με την εκφωνηση να το προσπαθησω και εγω.
Γνώσεις ⇛ 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
Εκτύπωση

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

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