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

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

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

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

Δημοσίευσηαπό Star_Light » 28 Ιούλ 2011, 01:05

migf1 έγραψε:Τελικά έχουμε πολλά κενά παίδες, πρέπει να τα πιάσουμε από πολύ αρχή τα πράγματα νομίζω και να τα βάλουμε σε μια σειρά. Δεν ξέρω βέβαια κατά πόσο είστε διατεθειμένοι να ασχοληθείτε, διαπιστώνω όμως πως υπάρχουν βασικότατες ελλείψεις.

Σας δίνω τη λύση της άσκησης, την οποία για να είμαι ειλικρινής πίστευα πως θα σας φαινόταν πολύ απλή. Γράψτε αν είναι τι δεν καταλαβαίνετε (αν υπάρχουν σημεία που δεν καταλαβαίνετε) για να τα ξεδιαλύνουμε αν είναι, διότι αυτά είναι πάρα πολύ βασικά πράγματα.

Είδα που γράφετε πως έχετε διαβάσει βιβλία πάνω στη C και υπέθεσα πως αυτό θα σας φαινόταν απλό, αλλά τελικά νομίζω πρέπει να ξεκινήσουμε από αρκετά αρχή ;)

Για δείτε τη λύση και γράψτε απορίες να τις επιλύσουμε αν είναι:

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

#include <stdio.h>
#include <stdlib.h>

#define MAXINBUF 255+1

// ***********************************************************
char *s_get(char *s, size_t len)
{
char *cp;

for (cp=s; (*cp=getc(stdin)) != '\n' && (cp-s) < len-1; cp++ )
; // for-loop with empty body
*cp = '\0'; // null-terminate last character

return s;
}

// ***********************************************************
int main( void )
{
char inbuf[ MAXINBUF ];
char c;
int n1, n2;
long l1, l2;
float f1, f2;

printf("Enter a character: ");
s_get(inbuf, MAXINBUF); // διάβασμα γραμμής εισόδου
c = *inbuf; // απομόνωση του 1ου χαρακτήρα
printf("\tyou entered: %c\n\n", c); // τύπωμα του χαρακτήρα

printf("Integer #1: ");
s_get(inbuf, MAXINBUF); // διάβασμα γραμμής εισόδου
n1 = atoi(inbuf ); // μετατροπή της σε int (n1)
printf("Integer #2: ");
s_get(inbuf, MAXINBUF); // διάβασμα γραμμής εισόδου
n2 = atoi(inbuf ); // μετατροπή της σε int (n2)
printf("\t%d * %d = %d\n\n", n1, n2, n1*n2); // τύπωμα του γινομένου: n1*n2

printf("Long #1: ");
s_get(inbuf, MAXINBUF); // διάβασμα γραμμής εισόδου
l1 = atol(inbuf ); // μετατροπή της σε long (l1)
printf("Long #2: ");
s_get(inbuf, MAXINBUF); // διάβασμα γραμμής εισόδου
l2 = atol(inbuf ); // μετατροπή της σε long (l2)
printf("\t%ld + %ld = %d\n\n", l1, l2, l1+l2); // τύπωμα του αθροίσματος: l1+l2

printf("Float #1: ");
s_get(inbuf, MAXINBUF); // διάβασμα γραμμής εισόδου
f1 = atof(inbuf ); // μετατροπή της σε float (f1)
printf("Float #2: ");
s_get(inbuf, MAXINBUF); // διάβασμα γραμμής εισόδου
f2 = atof(inbuf ); // μετατροπή της σε float (f2)
printf("\t%f / %f = %f\n\n", f1, f2, f1/f2); // τύπωμα της διαίρεσης: f1/f2

return 0;
}


Οπα γκαφα..... ξεχασα να χρησιμοποιησω τις συναρτησεις που ειπες.... :/
Μωρε βιβλια εχουμε διαβασει (1) για την ακριβεια :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/C++

Δημοσίευσηαπό migf1 » 28 Ιούλ 2011, 01:25

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

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

Δημοσίευσηαπό Star_Light » 28 Ιούλ 2011, 01:33

migf1 έγραψε:Το χρήσιμο θα είναι από δω και πέρα να συζητάμε την κάθε άσκηση μέχρι να γίνει κατανοητή πριν πηγαίνουμε στην επόμενη, ώστε να μην αφήνουμε κενά.


ε ναι. Δεν θα πρεπει να φευγει καθολου σε καινουργιες αμα δεν εχουν λυθει τελειως οι αρχικες οπως λες και εσυ . Κατα την γνωμη σου ποσες ωρες την ημερα πρεπει να αφιερωσει καποιος ειδικα σε αυτο ωστε σε ενα 6μηνο να εχει φτασει σε ενα καλο επιπεδο ? αυριο θα δοκιμασω να ξαναγραφτιαξω τον κωδικα χωρις να κοιταω απο την λυση.
Γνώσεις ⇛ 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++

Δημοσίευσηαπό clepto » 28 Ιούλ 2011, 02:00

παιδιά θα έχετε παρατηρήσει ότι δε συμμετέχω και πολύ τώρα τελευταία...το θέμα είναι ότι καλοκαιριάτικα βαριέμαι να κάτσω να διαβάσω C...
επίσης από φέτος αρχίζει το διάβασμα και προετοιμασία για τις πανελλήνιες οπότε δεν θα βλέπετε και πολύ συμμετοχή από μένα...
κάποια στιγμή θα ξανασχοληθώ σίγουρα και τότε θα κάτσω και τις αλλάξω τα φώτα.. :P
απλά ίσως να αργήσει αυτή η στιγμή ;)
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

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

Δημοσίευσηαπό Star_Light » 28 Ιούλ 2011, 03:40

λοιπον τελικα το επιασα αποψε να το κανω γιατι με πεισμωσε. ΕΝταξει ο κωδικας εχει 3-4 warnings.... δοκιμασα να τον υλοποιησω με συναρτησεις βεβαια η συναρτηση που απλα διαβαζει το string στο α) ερωτημα δεν μου εβγαινε συγκεκριμενα μου πετουσε ενα περιεργο error σε στυλ =>

mathima7.c:61: error: ‘x’ redeclared as different kind of symbol

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


Κώδικας: Επιλογή όλων
#include<stdio.h>
#include<stdlib.h>
#define BUFFER_SIZE 255
void a_function(char x);
void b_function(int z,int y);
void c_function(long int l1,long int l2);

char *s_get(char *s, size_t len)
{
char *cp;
for (cp=s; (*cp=getc(stdin)) != '\n' && (cp-s) < len-1; cp++ )
; // for-loop with empty body
*cp = '\0'; // null-terminate last character

return s;
}

int main(void)
{
char table_characters[BUFFER_SIZE]="";
int y,z;
long int l1,l2;

b_function(z,y);/* SUnarthsh pou kalei tin arxiki s_get() k stin sunexeia metatrepei to string se integer k ulopoiei to ginomeno */
c_function(l1,l2); /* Sunarthsh pou kalei tin arxiki s_get() k stin sunexeia metatrepei se long int k ulopoiei to athroisma */


return 0;
}void b_function(int z,int y)
{

char table_characters[BUFFER_SIZE]="";

printf("Dwste enan akeraio arithmo: \n");
s_get(table_characters,BUFFER_SIZE);
y=atoi(table_characters);
printf("Dwste enan akomi akeraio: \n");
s_get(table_characters,BUFFER_SIZE);
z=atoi(table_characters);
printf("To apotelesma tou z * y einai: %d \n", z*y);

return;
}
void c_function(long int l1,long int l2)
{
char table_characters[BUFFER_SIZE]="";
printf("Dwste enan akeraio arithmo: \n");
s_get(table_characters,BUFFER_SIZE);
l1=atol(table_characters);
printf("Dwste enan akomi akeraio: \n");
s_get(table_characters,BUFFER_SIZE);
l2=atol(table_characters);
printf("To apotelesma tou l1 * l2 einai: %lu ", l1+l2);

return;
}
/*
void a_function(char x)
{
char x;
char table_characters[BUFFER_SIZE]="";

while( x != 'K')
{
printf("\nenter a character: \n\n");
s_get(table_characters, BUFFER_SIZE); // διάβασμα γραμμής εισόδου στο BUFFER_SIZE
x = *table_characters;
printf("You entered: \n");
putchar( x );
}

return;
}*/


ελπιζω να το προσεγγισα καπως γιατι αν ειμαι παλι τελειως εκτος , θα δουμε αυριο προς το παρον καληνυχτα :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
Εκτύπωση

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

Δημοσίευσηαπό migf1 » 28 Ιούλ 2011, 09:55

Μια χαρά το προσέγγισες αυτή τη φορά! Το πρόβλημα με το warning είναι πως στη c_function το χ το δηλώνεις σαν όρισμα της συνάρτησης αλλά μετά τα ορίζεις και ως τοπική μεταβλητή.

Και μια σημείωση, την table_characters[BUFFER_SIZE] στην main() δεν τη χρησιμοποιείς, οπότε δεν χρειάζεται να την ορίσεις στην main. Επίσης, για να τυπώσουμε long βάζουμε %ld στην printf (το %lu που έχεις το βάζουμε για να τυπώσουμε unsigned long).

ΑΝ είμαστε όλοι οκ με την λύση που έδωσα για την άσκηση αυτή και δεν έχουμε απορίες (αν έχετε απορίες, ΓΡΑΨΤΕ ΤΕΣ να τις λύσουμε) δείτε έναν ακόμα τρόπο επίλυσης της άσκησης και πείτε αν δεν καταλαβαίνετε κάτι και τι, για να το λύσουμε κι αυτό πριν πάμε παρακάτω. Ξεκινήστε να τον διαβάζετε από την main() στο τέλος και όποια συνάρτηση συναντάτε δείτε τον κώδικά της.

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

/* ******************************
* 2ος Τρόπος Επίλυσης
* ******************************/

#include <stdio.h>
#include <stdlib.h>

#define BUFFER_SIZE (255+1)

// ------------------------------------------------------------------------------
char *s_get(char *s, size_t len)
{
char *cp;
for (cp=s; (*cp=getc(stdin)) != '\n' && (cp-s) < len-1; cp++ )
; // for-loop with empty body
*cp = '\0'; // null-terminate last character

return s;
}

// ------------------------------------------------------------------------------
void get_char(char *c)
{
char buffer[BUFFER_SIZE] = "";

s_get( buffer, BUFFER_SIZE );
*c = buffer[0];

return;
}

// ------------------------------------------------------------------------------
void get_int(int *n)
{
char buffer[BUFFER_SIZE] = "";

s_get( buffer, BUFFER_SIZE );
*n = atoi( buffer );

return;
}

// ------------------------------------------------------------------------------
void get_long(long int *l)
{
char buffer[BUFFER_SIZE] = "";

s_get( buffer, BUFFER_SIZE );
*l = atol( buffer );

return;
}

// ------------------------------------------------------------------------------
void get_float(float *x)
{
char buffer[BUFFER_SIZE] = "";

s_get( buffer, BUFFER_SIZE );
*x = atof( buffer );

return;
}

// ------------------------------------------------------------------------------
int main( void )
{
char c;
int y,z;
long int l1,l2;
float f1, f2;

printf("Dwste enan xarakthra: ");
get_char( &c );
printf("dwsate ton xarakthra: %c\n", c);

printf("Dwste enan akeraio: ");
get_int( &y );
printf("Dwste enan akeraio: ");
get_int( &z );
printf("%d * %d = %d\n", y, z, y * z);

printf("Dwste enan megalo akeraio: ");
get_long( &l1 );
printf("Dwste enan megalo akeraio: ");
get_long( &l2 );
printf("%ld + %ld = %ld\n", l1, l2, l1 + l2);

printf("Dwste enan pragmatiko arithmo: ");
get_float( &f1 );
printf("Dwste enan pragmatiko arithmo: ");
get_float( &f2 );
printf("%f1 / %f2 = %f\n", f1, f2, f1 / f2);

return 0;
}


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

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

Δημοσίευσηαπό Star_Light » 28 Ιούλ 2011, 10:46

Καλημερα! Ναι βασικα ηθελα να χωσω και μια switch μεσα οπου αναλογα την επιλογη του χρηστη θα καλουσε την αντιστοιχη συναρτηση που θα εκανε την δουλεια της! Σωστα το %ld ειναι το %lu απο οσο θυμαμαι τωρα ειναι για τους δεικτες σε καποιους μεταγλωτιστες αμα δεν δουλευει το %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/C++

Δημοσίευσηαπό migf1 » 28 Ιούλ 2011, 10:51

migf1 έγραψε:
[snip]
ΑΝ είμαστε όλοι οκ με την λύση που έδωσα για την άσκηση αυτή και δεν έχουμε απορίες (αν έχετε απορίες, ΓΡΑΨΤΕ ΤΕΣ να τις λύσουμε) δείτε έναν ακόμα τρόπο επίλυσης της άσκησης και πείτε αν δεν καταλαβαίνετε κάτι και τι, για να το λύσουμε κι αυτό πριν πάμε παρακάτω. Ξεκινήστε να τον διαβάζετε από την main() στο τέλος και όποια συνάρτηση συναντάτε δείτε τον κώδικά της...

Βασικά, μάλλον είναι καλύτερα να γράψω και 2 λόγια, ε;

Λοιπόν στον 2ο τρόπο έχω φτιάξει ξεχωριστές συναρτήσεις για κάθε τύπο μεταβλητής που θέλω να διαβάσω. Οπότε όταν θέλω να διαβάσω π.χ. έναν int, καλώ την get_int και της περνάω σαν όρισμα την διεύθυνση της int μεταβλητής που θέλω να διαβάσει η συνάρτηση (αντίστοιχο δηλαδή του: scanf('%d", &x) ).

Θα μπορούσαμε να πούμε πως οι αντιστοιχίες είναι οι εξής:

  • η get_char( &c ) αντιστοιχεί με scanf("%c", &c)
  • η get_int( &n ) αντιστοιχεί με scanf("%d", &n)
  • η get_long( &n ) αντιστοιχεί με scanf("%ld", &n)
  • η get_int( &x ) αντιστοιχεί με scanf("%f", &x)
Το βασικό πλεονέκτημα αυτής της προσέγγισης είναι πως απελευθερωνόμαστε από το βάσανο των απομειναριών στη γραμμή εισόδου, όταν ο χρήστης πληκτρολογεί περισσότερα δεδομένα από όσα περιμένει το πρόγραμμά μας (με την προϋπόθεση όμως πως στη σταθερά BUFFER_SIZE έχουμε ορίσει μεγάλη τιμή... στο παραπάνω παράδειγμα κώδικα το έχουμε ορίσει σε 255 χαρακτήρες + 1 για το '\0' στο τέλος).

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

Προς τι όμως όλη αυτή η βαβούρα;

Καταρχήν, όπως έχουμε πει γλιτώνουμε το πρόβλημα με τα απομεινάρια στη γραμμή εισόδου. Δοκιμάστε δυο παραλλαγές του κώδικα, μια με τις συναρτήσεις get_ που φτιάξαμε παραπάνω και μια με τα scanf που τους αντιστοιχούν. Στην κάθε παραλλαγή πληκτρολογήστε στην είσοδο περίεργα δεδομένα, π.χ πολλές τιμές αντί για μια που ζητάει το πρόγραμμα σε κάθε είσοδο. Θα δείτε πως η παραλλαγή με τα scanf θα "προσπερνάει" αναπάντητες πολλές από τις ερωτήσεις του προγράμματος.

Ο άλλος ΒΑΣΙΚΟΤΑΤΟΣ λόγος για την προσέγγιση που αναλύουμε είναι πως στην συντριπτική πλειοψηφία των γραφικών περιβαλλόντων (GUI) π.χ. Gnome, KDE, Windows, και σχεδόν οποιοδήποτε άλλο η είσοδος διαβάζεται ΠΑΝΤΑ ως string. Οπότε είναι ΕΩΣ ΚΑΙ ΑΠΑΡΑΙΤΗΤΟ να ξέρουμε πως να μετατρέπουμε strings σε int, long, float, κλπ (όπως και το ανάποδο, να μετατρέπουμε δηλαδή τις μεταβλητές μας int, long, float, κλπ σε strings για να τις τυπώσουμε στην οθόνη... αυτό το κάνουμε ήδη με την printf αλλά θα το δούμε αργότερα και με την sprintf).

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

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

Δημοσίευσηαπό migf1 » 28 Ιούλ 2011, 10:53

Star_Light έγραψε:Καλημερα! Ναι βασικα ηθελα να χωσω και μια switch μεσα οπου αναλογα την επιλογη του χρηστη θα καλουσε την αντιστοιχη συναρτηση που θα εκανε την δουλεια της! Σωστα το %ld ειναι το %lu απο οσο θυμαμαι τωρα ειναι για τους δεικτες σε καποιους μεταγλωτιστες αμα δεν δουλευει το %p .

Καλημέρα!

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

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

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

Δημοσίευσηαπό Star_Light » 28 Ιούλ 2011, 11:02

migf1 έγραψε:
Star_Light έγραψε:Καλημερα! Ναι βασικα ηθελα να χωσω και μια switch μεσα οπου αναλογα την επιλογη του χρηστη θα καλουσε την αντιστοιχη συναρτηση που θα εκανε την δουλεια της! Σωστα το %ld ειναι το %lu απο οσο θυμαμαι τωρα ειναι για τους δεικτες σε καποιους μεταγλωτιστες αμα δεν δουλευει το %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
Εκτύπωση

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

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