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

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

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

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

Δημοσίευσηαπό Ilias95 » 11 Μαρ 2012, 04:03

migf1 έγραψε:Ναι, αυτή δεν μπορείς να την αποφύγεις. Για δομές έχεις μιλήσεις ή όχι ακόμα;

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

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

Δημοσίευσηαπό migf1 » 11 Μαρ 2012, 04:11

Να ρωτήσω κι εγώ κάτι γενικότερο (για το HexView).

Έστω ένα κείμενο...

Κώδικας: Επιλογή όλων

Hello, this a test line.

και οι εντολές:

Μορφοποιημένος Κώδικας: Επιλογή όλων
/this    /* αναζητά την επόμενη εμφάνιση του string "this" */
/!this /* αναζητάει τον 1ο string που ΔΕΝ αρχίζει από "this" */

Αν ο δρομέας βρίσκεται στο κενό διάστημα μετά το κόμα του "Hello" και δώσετε: /!this
που περιμένετε να πάει ο δρομέας; Στον χαρακτήρα 'h' ή στο κενό διάστημα μετά το "this"

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

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

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

migf1 έγραψε:
...
Αν ο δρομέας βρίσκεται στο κενό διάστημα μετά το κόμα του "Hello" και δώσετε: /!this
που περιμένετε να πάει ο δρομέας; Στον χαρακτήρα 'h' ή στο κενό διάστημα μετά το "this"

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

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

Δημοσίευσηαπό Ilias95 » 11 Μαρ 2012, 04:35

migf1 έγραψε:
migf1 έγραψε:
...
Αν ο δρομέας βρίσκεται στο κενό διάστημα μετά το κόμα του "Hello" και δώσετε: /!this
που περιμένετε να πάει ο δρομέας; Στον χαρακτήρα 'h' ή στο κενό διάστημα μετά το "this"

Ή μάλλον, για να το θέσω καλύτερα, ποια από τις 2 παραπάνω συμπεριφορές θεωρείτε πιο χρήσιμη;

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

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

Δημοσίευσηαπό migf1 » 11 Μαρ 2012, 11:23

Βασικά έχω ζοριστεί πολύ με το συγκεκριμένο, διότι δεν μπορώ να βγάλω αλγόριθμο που να λειτουργεί έτσι σε όλες τις πιθανές περιπτώσεις.

Π.χ., έχοντας...

Κώδικας: Επιλογή όλων

/******** 8 αστερίσκοι εκατέρωθεν ********/

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

Κώδικας: Επιλογή όλων

/!*
/!**
/!***

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

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

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

Ξεκίνησα και εγώ να το διαβάζω, έχω φτάσει στη σελίδα 45!
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

Δημοσίευσηαπό Star_Light » 12 Μαρ 2012, 01:03

migf1 έγραψε:
Ή μάλλον, για να το θέσω καλύτερα, ποια από τις 2 παραπάνω συμπεριφορές θεωρείτε πιο χρήσιμη;


Ρωτάς την αποψη μας σαν χρήστες. Στο κενό μετα το this ;)
Γνώσεις ⇛ 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

Δημοσίευσηαπό Star_Light » 12 Μαρ 2012, 01:08

Tελοςπαντων μπαινω και εγω 5ο κεφάλαιο.

Ως τωρα έχω να επισημάνω 2 αρκετά tricky σημεία στην γλώσσα.... (βεβαια ειμαι σιγουρος πως μιας και το βιβλιο λεει πως παράγουν αποτελεσματα που ειναι χωρις νοημα δεν θα κατσει κανεις να παιδευτει παραπανω) το ενα ειναι η undefined συμπεριφορα στις εκφρασεις. Ενω το αλλο ειναι φυσικα η scanf :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

Δημοσίευσηαπό Star_Light » 12 Μαρ 2012, 21:31

Η λύση της Άσκησης 2 στην Σελίδα 71

Μορφοποιημένος Κώδικας: Επιλογή όλων
#include<stdio.h>
int main(void)
{
int x ;

printf(" Enter a three digit number: ");

scanf("%d" , &x );

printf(" The reversal is: %d%d%d" , x%10 ,x/10%10 , x/10/10 );

return 0;
}


btw ακομη δεν εχω κοιταξει πως την λύνει ο King... αλλα πιστευω ειμαι ενταξει...
Ο παραπάνω κώδικας δεν λαμβάνει υποψιν του αρνητικές εισόδους αριθμών απο τον χρήστη. ;)
Γνώσεις ⇛ 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

Δημοσίευσηαπό Star_Light » 12 Μαρ 2012, 21:34

Παραθέτω και μια δικια μου "ασκηση" για τους bar codes των βιβλιων και των τροφιμων.... (Δεν υπολογιζουν αν ένας κωδικός ειναι έγκυρος)
απλα ειναι μια επέκταση μιας άσκησης του King στο 3ο κεφάλαιο!!!!

Μορφοποιημένος Κώδικας: Επιλογή όλων
#include<stdio.h>
void ISBN_13(int ch);
void ISBN_10(int ch);
void UPC(int ch);

int main(void)
{
int ch;

printf(" ISBN-13 / ISBN-10 / UPC ? Push 1 / 2 / 3 respectively : ");
scanf("%d" , &ch);

if( ch == 1 )
ISBN_13(ch);

if( ch == 2)
ISBN_10(ch);

if( ch == 3)
UPC(ch);

if( ch!= 1 || ch!=2 || ch!=3 )
printf(" Error Message : There is no option ");

return 0;
}
void ISBN_13(int ch)
{
int Prefix , Grp_id , Pub_co , Tit_id , Chk_digit;

printf(" Enter ISBN-13 like [x-x-x-x-x]: ");
scanf("%d-%d-%d-%d-%d" , &Prefix , &Grp_id , &Pub_co , &Tit_id , &Chk_digit);

printf(" Here is what you give: \n");
printf(" GS1 prefix : %d \n Group identifier: %d \n Publisher code: %d \n" ,Prefix , Grp_id , Pub_co);
printf(" Item number: %d \n Chech digit: %d " ,Tit_id , Chk_digit);

return ;
}
void ISBN_10(int ch)
{
int Grp_id , Pub_co , Tit_id , Chk_digit;

printf(" Enter ISBN-10 like [y-y-y-y]: ");
scanf("%d-%d-%d-%d" , &Grp_id , &Pub_co , &Tit_id , &Chk_digit);

printf(" Here is what you give: \n");
printf(" Group identifier : %d \n Publisher identifier: %d \n" ,Grp_id , Pub_co);
printf(" Title identifier: %d \n Check digit: %d " ,Tit_id , Chk_digit);

return ;
}
void UPC(int ch)
{
int Prefix , Man_co , Itm_num , Chk_digit;

printf( " Enter UPC code of your product like [z z z z] with spaces: ");
scanf("%d %d %d %d" , &Prefix , &Man_co , &Itm_num , &Chk_digit);

printf(" Here is what you give: \n");
printf(" Prefix: %d \n Manufacturer code: %d\n Item number: %d \n" , Prefix , Man_co , Itm_num);
printf(" Check digit: %d " , Chk_digit);

return ;
}
Γνώσεις ⇛ 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
Εκτύπωση

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

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