Παραδείγματα & Ασκήσεις στην C

...ασύγχρονα μαθήματα γλώσσας C

Re: Προγράμματα & παραδείγματα στην C

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

linuxs έγραψε:Off topic:
migf1 γνωρίζεις assembly η συναρτησιακό προγραμματισμό? :/

Με είχε ρωτήσει κι ο φίλος star_light, και του είχα απαντήσει σε αυτό εδώ το τοπικ: viewtopic.php?p=196194#p196194

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

Re: Προγράμματα & παραδείγματα στην C

Δημοσίευσηαπό linuxs » 05 Ιούλ 2011, 23:57

...θα σε ενδιέφερε να πιάσουμε κάτι μαζί? Εννοώ ένα απο τα δυό πιο αναλυτικά και ίσως να ανεβάσουμε κάποιον οδηγό! Φυσικά όποιος μπορεί να βοηθήσει είναι δεκτός!!! Τι λες? ;/
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ Linux: Μέτριο┃Προγραμματισμός: C┃Αγγλικά: Καλά
Λειτουργικό ⇛ Linux Ubuntu 10.4 LTS
Προδιαγραφές ⇛ Intel Pentium @T4500 2.3GHz│ 512GB VRAM│ 500 HDD│ ATI RADEON HD545v 512 MB │ Screen: 15.6''
Άβαταρ μέλους
linuxs
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1060
Εγγραφή: 02 Ιούλ 2010, 13:19
Τοποθεσία: GR
IRC: linuxs
Εκτύπωση

Re: Προγράμματα & παραδείγματα στην C

Δημοσίευσηαπό migf1 » 06 Ιούλ 2011, 00:07

linuxs έγραψε:...θα σε ενδιέφερε να πιάσουμε κάτι μαζί? Εννοώ ένα απο τα δυό πιο αναλυτικά και ίσως να ανεβάσουμε κάποιον οδηγό! Φυσικά όποιος μπορεί να βοηθήσει είναι δεκτός!!! Τι λες? ;/

Χρειάζομαι τρελό διάβασμα για να τα θυμηθώ και μάλιστα να είμαι σε θέση να γράψω κι οδηγό κιόλας. Άσε που τη LISP ποτέ μου δεν τη γούσταρα (και δεν τη γουστάρω ακόμα :lol: )

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

Re: Προγράμματα & παραδείγματα στην C

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

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

Re: Προγράμματα & παραδείγματα στην C

Δημοσίευσηαπό linuxs » 06 Ιούλ 2011, 00:09

migf1 έγραψε:
linuxs έγραψε:...θα σε ενδιέφερε να πιάσουμε κάτι μαζί? Εννοώ ένα απο τα δυό πιο αναλυτικά και ίσως να ανεβάσουμε κάποιον οδηγό! Φυσικά όποιος μπορεί να βοηθήσει είναι δεκτός!!! Τι λες? ;/

Χρειάζομαι τρελό διάβασμα για να τα θυμηθώ και μάλιστα να είμαι σε θέση να γράψω κι οδηγό κιόλας. Άσε που τη LISP ποτέ μου δεν τη γούσταρα (και δεν τη γουστάρω ακόμα :lol: )

Όσο για την assembly, είναι machine-dependent οπότε και οδηγός να γραφτεί θα πρέπει να είναι για συγκεκριμένη πλατφόρμα (και μάλιστα και με συγκεκριμένη αρχιτεκτονική)


Εγώ την προσπάθειά μου την έκανα... :P Οπότε, γυρνάω στην παράδοση...C! :D
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ Linux: Μέτριο┃Προγραμματισμός: C┃Αγγλικά: Καλά
Λειτουργικό ⇛ Linux Ubuntu 10.4 LTS
Προδιαγραφές ⇛ Intel Pentium @T4500 2.3GHz│ 512GB VRAM│ 500 HDD│ ATI RADEON HD545v 512 MB │ Screen: 15.6''
Άβαταρ μέλους
linuxs
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1060
Εγγραφή: 02 Ιούλ 2010, 13:19
Τοποθεσία: GR
IRC: linuxs
Εκτύπωση

Re: Προγράμματα & παραδείγματα στην C

Δημοσίευσηαπό linuxs » 06 Ιούλ 2011, 00:10

migf1 έγραψε:Btw, μόλις είδα πως έχεις ποστάρει κι άλλα snippets στην 1η δημοσίευση, πάω να τα δω :)
Δεν είναι κάτι το τρομερό...και να μην τα δείς δηλαδή! ...
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ Linux: Μέτριο┃Προγραμματισμός: C┃Αγγλικά: Καλά
Λειτουργικό ⇛ Linux Ubuntu 10.4 LTS
Προδιαγραφές ⇛ Intel Pentium @T4500 2.3GHz│ 512GB VRAM│ 500 HDD│ ATI RADEON HD545v 512 MB │ Screen: 15.6''
Άβαταρ μέλους
linuxs
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1060
Εγγραφή: 02 Ιούλ 2010, 13:19
Τοποθεσία: GR
IRC: linuxs
Εκτύπωση

Re: Προγράμματα & παραδείγματα στην C

Δημοσίευσηαπό migf1 » 06 Ιούλ 2011, 00:12

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

Re: Προγράμματα & παραδείγματα στην C

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

Το παράδειγμα της καρκινικής συμβολοσειράς στην 1η δημοσίευση δεν λειτουργεί (π.χ. το "abca" το λέει καρκινικό).

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

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

/* ---------------------------------------------------------------------
* Από: migf1
* Διαβάζει ένα string από τον χρήστη και του απαντάει αν είναι παλινδρομικό.
* Παλινδρομικά (ή καρκινικά) ονομάζονται όσα strings διαβάζονται κι από τις μεριές
* ---------------------------------------------------------------------
*/

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

// ------------------------------------------------------------------------------------
int s_ispalindrome(char *s)
{
if ( !s ) // early exit
return 0;

char *cp1, *cp2;

cp2 = s + strlen(s) - 1; // set cp2 at end of s
for (cp1=s; cp1 < cp2 && *cp1 == *cp2; cp1++, cp2--)
;

return (cp1 >= cp2);
}

//-------------------------------------------------------------------------------------
int main( void )
{
char s[256] = "";

printf("Enter your string: ");
fgets(s, 256, stdin);
s[ strlen(s)-1 ] = '\0';

printf( "\t\"%s\" is%s palindromic\n",
s,
s_ispalindrome(s) ? "" : " not"
);

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

Re: Προγράμματα & παραδείγματα στην C

Δημοσίευσηαπό linuxs » 06 Ιούλ 2011, 02:05

migf1 έγραψε:Το παράδειγμα της καρκινικής συμβολοσειράς στην 1η δημοσίευση δεν λειτουργεί (π.χ. το "abca" το λέει καρκινικό).

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

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

/* ---------------------------------------------------------------------
* Διαβάζει ένα string από τον χρήστη και του απαντάει αν είναι παλινδρομικό.
* Παλινδρομικά (ή καρκινικά) ονομάζονται όσα strings διαβάζονται κι από τις μεριές
* ---------------------------------------------------------------------
*/

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

// ------------------------------------------------------------------------------------
int s_ispalindrome(char *s)
{
if ( !s ) // early exit
return 0;

char *cp1, *cp2;

cp2 = s + strlen(s) - 1; // set cp2 at end of s
for (cp1=s; cp1 < cp2 && *cp1 == *cp2; cp1++, cp2--)
;

return (cp1 == cp2);
}

//-------------------------------------------------------------------------------------
int main( void )
{
char s[256] = "";

printf("Enter your string: ");
fgets(s, 256, stdin);
s[ strlen(s)-1 ] = '\0';

printf( "\t\"%s\" is%s palindromic\n",
s,
s_ispalindrome(s) ? "" : " not"
);

exit( EXIT_SUCCESS );
}


Ομολογώ οτι είναι παράξενο γιατί για κάποια παραδείγματα που το έτρεξα δουλεύει. :/ Σε ευχαριστώ πάντως για το bug
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ Linux: Μέτριο┃Προγραμματισμός: C┃Αγγλικά: Καλά
Λειτουργικό ⇛ Linux Ubuntu 10.4 LTS
Προδιαγραφές ⇛ Intel Pentium @T4500 2.3GHz│ 512GB VRAM│ 500 HDD│ ATI RADEON HD545v 512 MB │ Screen: 15.6''
Άβαταρ μέλους
linuxs
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1060
Εγγραφή: 02 Ιούλ 2010, 13:19
Τοποθεσία: GR
IRC: linuxs
Εκτύπωση

Re: Προγράμματα & παραδείγματα στην C

Δημοσίευσηαπό linuxs » 06 Ιούλ 2011, 03:47

Σκέφτομαι να τα βάλω σε κατηγορίες...για παράδειγμα η πρώτη κατηγορία μπορεί να περιέχει if else και loops η δεύτερη συμβολοσειρές κτλ. γνώμες? καλύτερα δεν θα είναι? ;/
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ Linux: Μέτριο┃Προγραμματισμός: C┃Αγγλικά: Καλά
Λειτουργικό ⇛ Linux Ubuntu 10.4 LTS
Προδιαγραφές ⇛ Intel Pentium @T4500 2.3GHz│ 512GB VRAM│ 500 HDD│ ATI RADEON HD545v 512 MB │ Screen: 15.6''
Άβαταρ μέλους
linuxs
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1060
Εγγραφή: 02 Ιούλ 2010, 13:19
Τοποθεσία: GR
IRC: linuxs
Εκτύπωση

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

  • ΣΧΕΤΙΚΑ ΘΕΜΑΤΑ
    ΑΠΑΝΤΗΣΕΙΣ
    ΠΡΟΒΟΛΕΣ
    ΣΥΓΓΡΑΦΕΑΣ

Επιστροφή στο Μαθήματα C

cron