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

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

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

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

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

Star_Light έγραψε:αραγε εχουμε ελπιδες να γινουμε ποτε προγραμματιστες της προκοπης ή χλωμο το κοβεις? λολ

:lol: :lol:

Αν ζητάς σοβαρά την άποψή μου πάνω σε αυτό το θέμα, κοίτα... από τον λίγο καιρό που βρίσκομαι μαζί μας, νομίζω πως κάνετε ένα βασικό λάθος: παρατάτε στη μέση κάτι που ξεκινάτε και καταπιάνεστε με άλλα πράγματα. Μετά τα παρατάτε κι αυτά στη μέση κι επιστρέφετε σε κάποιο από τα προηγούμενα και πάει λέγοντας.

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

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

Ομοίως και για τα strings, και για τους δείκτες, και για τα struct και για όλα.

Και προφανώς πρέπει να υπάρχει και μια λογική ακολουθία σε αυτά που μαθαίνει κανείς. Π.χ. δεν μπορεί να ξεκινήσει με πίνακες χωρίς να έχει τριφτεί πρώτα σε βρόγχους, ή δεν μπορεί να ξεκινήσει απευθείας με strings χωρίς να έχει τριφτεί πρώτα με πίνακες και δείκτες.

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

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

Δημοσίευσηαπό evolgen » 26 Ιούλ 2011, 23:36

Έκανα μια δική μου υλοποίηση που -νομίζω ότι- δουλεύει. Να το ποστάρω σε spoiler;

EDIT: Δεν κρατήθηκα! :P
Spoiler: show
Κώδικας: Επιλογή όλων
#include <stdio.h>

int main()
{
int number=0;
int n,i,j;

printf("Please enter a number.\n");
scanf("%d",&number);

for(n=1;n<=2*number;n+=2)
{
for(j=(2*number-2);j>n;j-=2)
{
printf(" ");
}
for(i=0;i<n;i++)
{
printf("*");
}
printf("\n");
}
return(0);
}
Το να μειώνεις ένα έργο ελεύθερου λογισμικού, επειδή θεωρείς το δικό σου καλύτερο,
είναι απαράδεκτη συμπεριφορά και δε συμβαδίζει με τις αρχές του ελεύθερου λογισμικού.

Γνώσεις Linux: Μέτριο++ ┃ Προγραμματισμός: Perl, R, Python, SQL, C, Common Lisp, BashΑγγλικά: Άριστα

1. Ubuntu 14.04 trusty
2. Intel Core i7-3520M CPU @ 2.90GHz ‖ RAM 7892 MiB
3. Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
4. eth0: Broadcom NetXtreme BCM57765 Gigabit Ethernet PCIe [14e4:16b4] (rev 10) ⋮ eth1: Broadcom BCM4331 802.11a/b/g/n [14e4:4331] (rev 02)
Άβαταρ μέλους
evolgen
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1031
Εγγραφή: 28 Ιούλ 2010, 14:22
Τοποθεσία: UK
IRC: bioevolgenec
Εκτύπωση

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

Δημοσίευσηαπό Star_Light » 26 Ιούλ 2011, 23:47

@migf1 εχεις απολυτο δικιο. Μπορεις να διαβαζεις 2 ωρες την ημερα C και να διαβαζεις και αλλα πραγματα μετα αλλα αυτες οι 2 ωρες θα πρεπει να ειναι οργανωμενες οπως λες....

@evolgen συγχαρητηρια!
Γνώσεις ⇛ 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 » 26 Ιούλ 2011, 23:52

evolgen έγραψε:#include <stdio.h>

Spoiler: show
int main()
{
int number=0;
int n,i,j;

printf("Please enter a number.\n");
scanf("%d",&number);

for(n=1;n<=2*number;n+=2)
{
for(j=(2*number-2);j>=n;j-=2)
{
printf(" ");
}
for(i=0;i<n;i++)
{
printf("*");
}
printf("\n");
}
return(0);
}

We have a winner !!! :) :) :)

Ωραίος φίλε, evlogen !!! Δεν βάζεις εσύ την επόμενη άσκηση; (να το κάνουμε σαν παιχνίδι, ο πρώτος που θα ποστάρει τη λύση να βάζει την επόμενη);

Σου έσβησα το j, δεν το χρειάζεσαι...

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

#include <stdio.h>

int main( void )
{
int number = 0;
int n,i;

printf("Please enter a number.\n");
scanf("%d", &number);

for (n=1; n <= 2*number; n += 2)
{
for (i = 2*number-2; i >= n; i -= 2 )
printf(" ");

for (i=0; i < n; i++)
printf("*");

printf("\n");
}

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

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

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

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

Γνώσεις Linux: Μέτριο++ ┃ Προγραμματισμός: Perl, R, Python, SQL, C, Common Lisp, BashΑγγλικά: Άριστα

1. Ubuntu 14.04 trusty
2. Intel Core i7-3520M CPU @ 2.90GHz ‖ RAM 7892 MiB
3. Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
4. eth0: Broadcom NetXtreme BCM57765 Gigabit Ethernet PCIe [14e4:16b4] (rev 10) ⋮ eth1: Broadcom BCM4331 802.11a/b/g/n [14e4:4331] (rev 02)
Άβαταρ μέλους
evolgen
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1031
Εγγραφή: 28 Ιούλ 2010, 14:22
Τοποθεσία: UK
IRC: bioevolgenec
Εκτύπωση

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

Δημοσίευσηαπό Star_Light » 27 Ιούλ 2011, 00:42

εκτος απο τις δικιες σας.... κανα καλο σαιτ με ασκησουλες παιζει???? σε C? :)

για ακομη πιο εξτρα εξασκηση.
Γνώσεις ⇛ 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 » 27 Ιούλ 2011, 01:06

Ναι αμέ!

Εδώ οι λύσεις των ασκήσεων του "The C Programming Language" των K&R:
http://clc-wiki.net/wiki/K&R2_solutions

Εδώ η ύλη και οι ασκήσεις του ηλεκτρονικού "The C Book":
http://publications.gbdirect.co.uk/c_book/

Εδώ ακόμα μια εξαιρετική πηγή με πάρα πολλές ασκήσεις "Programming in C UNIX System Calls and Subroutines using C":
http://www.cs.cf.ac.uk/Dave/C/
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

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

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

migf1 έγραψε:Ναι αμέ!

Εδώ οι λύσεις των ασκήσεων του "The C Programming Language" των K&R:
http://clc-wiki.net/wiki/K&R2_solutions

Εδώ η ύλη και οι ασκήσεις του ηλεκτρονικού "The C Book":
http://publications.gbdirect.co.uk/c_book/

Εδώ ακόμα μια εξαιρετική πηγή με πάρα πολλές ασκήσεις "Programming in C UNIX System Calls and Subroutines using C":
http://www.cs.cf.ac.uk/Dave/C/


thanxxxx!!! :)
Γνώσεις ⇛ 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 » 27 Ιούλ 2011, 12:22

Να και μερικές άλλες:
Beginners Team Programming Challenges Index
http://ubuntuforums.org/showthread.php?t=1714324
Και για πιο μετά:
http://ubuntuforums.org/showthread.php?t=1750795
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

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

Δημοσίευσηαπό migf1 » 27 Ιούλ 2011, 13:37

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

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

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