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

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

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

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

Δημοσίευσηαπό migf1 » 28 Φεβ 2012, 21:51

Ακριβώς, κόλλησες με τις λέξεις!

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

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

Δημοσίευσηαπό migf1 » 28 Φεβ 2012, 21:57

Άσχετο, έχω εξελίξει το HexView σε σχεδόν κανονικό editor (viewer βασικά) εννοώντας πως έβαλα μετακίνηση ανά στήλη, γραμμή, σελίδα, αρχή/τέλος αρχείου, άμεση μετάβαση σε χαρακτήρα, γραμμή, σελίδα κλπ, καθώς και αναζήτηση μπροστά/πίσω τόσο για κείμενα όσο και για ακολουθίες από bytes.

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

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

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

Δημοσίευσηαπό Ilias95 » 28 Φεβ 2012, 21:58

migf1 έγραψε:Απλώς τώρα χρησιμοποιείς έτοιμη την printf()

Να ρωτήσω και κάτι που ήθελα να ρωτήσω απ' τις αρχές.
Η printf() δεν είναι built-in συνάρτηση της γλώσσας αλλά υπάρχει μέσα στην βιβλιοθήκη (;) stdio.h.
Επίσης η mySCANF πάλι "συμπεριλαμβάνεται" στο πρόγραμμα από την myextras.h αλλά και στις δύο περιπτώσεις για να γράψουμε την κάθε συνάρτηση απλά την καλούμε με το όνομα της.

Δεν είναι λίγο implicit αυτό; Θέλω να πω, που ξέρει αυτός που διαβάζει το πρόγραμμα από που ήρθε η mySCANF();

Πχ. στην python αναφέρουμε ρητά από που έρχεται η κάθε συνάρτηση:
Κώδικας: Επιλογή όλων
import math
math.sqrt(4)
Τελευταία επεξεργασία από Ilias95 και 28 Φεβ 2012, 21:59, έχει επεξεργασθεί 1 φορά/ες συνολικά
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

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

Δημοσίευσηαπό Star_Light » 28 Φεβ 2012, 21:59

migf1 έγραψε:Ακριβώς, κόλλησες με τις λέξεις!

Το βιβλίο τα γράφει σωστά όμως. Η printf() χαρακτήρες τυπώνει στην οθόνη. Και τα ψηφία των αριθμών σε χαρακτήρες τα μετατρέπει, μέσα της, ένα-ένα και τα τυπώνει στην οθόνη. Αυτό θα έκανες κι εσύ αν έφτιαχνες δικιά σου printf ;) Απλώς τώρα χρησιμοποιείς έτοιμη την printf() ;)


Eγω δεν ειπα οτι το βιβλιο τα γράφει λάθος. Εγω ειπα απλα οτι μπορεί τύπος με παρόμοιο
σκεπτικο σαν και το δικο μου να μπερδευτει. Btw κατι τελευταιο αν έχω :

Κώδικας: Επιλογή όλων
scanf("%d" , &x);


τοτε το %d μονο του δεν ειναι αποτελεί string αλλα μονο ετσι -> "%d" .

p.s Βεβαια ποσταρισε τον κωδικα να τον μεταγλωτισουμε... και το ρωτας ?
Γνώσεις ⇛ 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

Δημοσίευσηαπό Ilias95 » 28 Φεβ 2012, 22:01

migf1 έγραψε:Έχετε χρόνο να το δοκιμάστε αν το ποστάρω;

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

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

Δημοσίευσηαπό migf1 » 28 Φεβ 2012, 22:05

Όχι τώρα βρε σεις...
Σε κανα 2-ωράκι από το σπίτι... επίσης δεν εννοούσα να το δοκιμάσετε τώρα ή σήμερα. Θέλει το χρόνο του ... 1-2 μέρες με ηρεμία και με διάφορα αρχεία, κλπ. Να δούμε αν όλα λειτουργούν as expected μέχρι στιγμής (όσο εγώ σουλουπώνω τον μέχρι τώρα κώδικα) και να προχωρήσω μετά σε νέα features.
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

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

Δημοσίευσηαπό migf1 » 28 Φεβ 2012, 22:07

Star_Light έγραψε:
..Btw κατι τελευταιο αν έχω :

Κώδικας: Επιλογή όλων
scanf("%d" , &x);


τοτε το %d μονο του δεν ειναι αποτελεί string αλλα μονο ετσι -> "%d" .

Σε έχασα εδώ! Αν εννοείς επειδή δεν βρίσκεται μέσα σε διπλά εισαγωγικά, τότε ναι χωρίς αυτά δεν λογίζεται ως string.

έγραψε:p.s Βεβαια ποσταρισε τον κωδικα να τον μεταγλωτισουμε... και το ρωτας ?

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

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

Δημοσίευσηαπό Star_Light » 28 Φεβ 2012, 22:10

Nαι αυτο εννοω... οτι επειδη δεν ειναι μεσα σε αυτα
δεν μπορει να θεωρηθει σαν formatting string της scanf...
Τωρα τι να κανω ρε γμτ ... να ξαναδιαβασω για την printf ή θα μπερδευτω λες?
ΣΚάλωσα που σκάλωσα με τις λέξεις παντως δεν μ αρεσε :p
Γνώσεις ⇛ 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

Δημοσίευσηαπό migf1 » 28 Φεβ 2012, 22:13

Ilias95 έγραψε:Να ρωτήσω και κάτι που ήθελα να ρωτήσω απ' τις αρχές.
Η printf() δεν είναι built-in συνάρτηση της γλώσσας αλλά υπάρχει μέσα στην βιβλιοθήκη (;) stdio.h.
Επίσης η mySCANF πάλι "συμπεριλαμβάνεται" στο πρόγραμμα από την myextras.h αλλά και στις δύο περιπτώσεις για να γράψουμε την κάθε συνάρτηση απλά την καλούμε με το όνομα της.

Δεν είναι λίγο implicit αυτό; Θέλω να πω, που ξέρει αυτός που διαβάζει το πρόγραμμα από που ήρθε η mySCANF();

Πχ. στην python αναφέρουμε ρητά από που έρχεται η κάθε συνάρτηση:
Κώδικας: Επιλογή όλων
import math
math.sqrt(4)

Είναι implicit ναι. Δεν είναι oop η C, οπότε δεν έχει κλάσεις και μεθόδους ώστε να φαίνεται που αντιστοιχεί η κάθε μέθοδος. Επίσης η κάθε συνάρτηση (μέθοδος δηλαδή) δεν μπορεί να υπεφορτωθεί, πρέπει να έχει μοναδικό όνομα σε όλα τα αρχεία του προγράμματος.

Αυτό που κάνουν πολλοί είναι να βάζουν σε σχόλια δίπλα στο κάθε #include για ποιες συναρτήσεις το ενσωματωνουν. Π.χ..

Μορφοποιημένος Κώδικας: Επιλογή όλων
#include "myextras.h"      /* mySCANF(), ... */
Τελευταία επεξεργασία από migf1 και 28 Φεβ 2012, 22:16, έχει επεξεργασθεί 1 φορά/ες συνολικά
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

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

Δημοσίευσηαπό migf1 » 28 Φεβ 2012, 22:14

Star_Light έγραψε:Nαι αυτο εννοω... οτι επειδη δεν ειναι μεσα σε αυτα
δεν μπορει να θεωρηθει σαν formatting string της scanf...
Τωρα τι να κανω ρε γμτ ... να ξαναδιαβασω για την printf ή θα μπερδευτω λες?
ΣΚάλωσα που σκάλωσα με τις λέξεις παντως δεν μ αρεσε :p

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

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

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