ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ ΣΤΗΝ C  Το θέμα επιλύθηκε

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

ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ ΣΤΗΝ C

Δημοσίευσηαπό linuxs » 01 Φεβ 2011, 17:37

Κεφάλαιο 1 - Εισαγωγή στην C

...τι περιλαμβάνει αυτό το κεφάλαιο:
στο κεφάλαιο αυτό δεν γίνεται καμία αναφορά στο πως θα προγραμματίζετε. Αναφέρεται γενικά στην C και στο πως κάποιος με λίγη υπομονή μπορεί να κάνει τα πρώτα του βήματα και να πάρει μια "γεύση". Συγκεκριμένα, θα δούμε πως να κάνουμε compile τα προγράμματά μας με χρήση του gcc τόσο σε Linux περιβάλλον όσο και σε Windows. Τέλος, γίνεται μια αναφορά τους τύπους αρχείων που θα χρειαστείτε και στις απαραίτητες εντολές για το τερματικό! Καλή συνέχεια...

Κατηγορίες Λειτουργικων
Καλως ήρθατε στον κόσμο του προγραμματισμού! Σε αυτή τη κατηγορία θα σας δείξω πως να αρχίσετε με την C, θα προσπαθήσω να σας μεταδώσω την λογική και το σκεπτικό που είναι καλό να ακολουθείτε και τέλος, θα δείτε πως να τρέξετε το πρώτο σας πρόγραμμα! Ίσως να μην καλυφτούν λεπτομέριες και μόλις τελειώσετε την ανάγνωση σας να έχετε πολλές απορίες. Είναι φυσιολογικό! Στα επόμενα κεφάλαια θα μπορέσετε να δείτε με μεγαλύτερη λεπτομέρια την C και σίγουρα να λύσετε πολλές απορίες. Σήμερα 22-03-2011 υπάρχουν δύο κυρίως λογισμικά που μπορείτε να τρέξετε και να γράψετε κώδικα. Τα Windows και το linux. Απο προσωπική εμπειρία, αν είστε αρχάριος χρήστης του Linux η δεν τα συμπαθείτε προσπαθήστε να ξεκινήσετε με τα Windows και στην συνέχεια μόλις εξοικειωθείτε συνεχίζετε με Linux. ;)

Απο Windows
Στα Windows δεν υπάρχει κάποιο τερματικό όπως στο linux, οπότε αυτό που θα κάνουμε είναι να κατεβάσουμε ένα προγραμματάκι ονόματι, DEV++. Το πρόγραμμα αυτό μπορέιτε να το βρείτε εδώ. Αν υπάρχει κάποιο πρόβλημα μπείτε στην κεντρική σελίδα της bloodshed και προσπαθήστε ξανά απο εκεί. Η κεντρική σελίδα είναι αυτή Το επόμενο βήμα αφού το κατεβάσετε είναι να το κάνετε εγκατάσταση. Αυτό γίνεται ανοίγοντας το .exe αρχείο.
Τώρα, έχουμε το πρόγραμμα στα χέρια μας και το μόνο που χρειάζεται είναι λίγος κώδικας (θα βρείτε στο τέλος του post). Ανοίξτε ένα νέο κείμενο με την συντόμευση, Ctrl+N και κάντε τον κώδικα copy/paste. Θα πρέπει να το αποθηκεύσετε με κατάληξη .c. Η εκτέλεση του προγράμματος βασίζεται σε δύο φάσεις, το compile(μεταγλώττιση) και run(εκτέλεση). Το DEV++ σας προσφέρει και τα δύο με ένα μόνο κουμπί. Βρείτε ένα κουμπάκι που λέει Compile & Rum πρός τα πάνω και πατήστε το! Μόλις τρέξατε το πρώτο σας πρόγραμμα σε C!

Απο Linux
Σε Linux περιβάλλον, υπάρχουν δυο τρόποι για να τρέχετε και να γράφετε προγράμματα σε C. Ο πρώτος τρόπος είναι, χρησιμοποιώντας και πάλι ένα πρόγραμμα και ο δεύτερος χρησιμοποιώντας το τερματικό και έναν editor της επιλογής σας. Θα δώσουμε βάση στον δεύτερο τρόπο που πιστεύω πως έιναι και ο πιό δύσκολος (σε σχέση με τον πρώτο).
Αυτά που χρειάζεστε είναι ένα τερματικό και ένα editor της επιλογής σας. Το τερματικό είναι απλά ένα παράθυρο ή αλλιώς μια κονσόλα που γράφουμε διάφορες εντολές. Καταλαβαίνω πως θα σας είναι δύσκολο για αρχή αλλα στην πραγματικότητα είναι απλά μια συνήθεια. Για να ανοίξετε το τερματικό θα πρέπει να πάτε Applications/Accessories/Terminal. Βέβαια, ανάλογα με την έκδοση μπορεί να διαφέρει λίγο το path. Ο editor που θα χρησιμοποιήσουμε είναι ο gedit. Είναι πολύ απλός, σαν το notepad των Windows και μπορείτε να τον βρείτε στο Applications/Accessories/text editor. Έχοντας και τα δύο ανοιχτά προχωράμε στο επόμενο βήμα που είναι το compile & run! Μπορείτε και εδώ να προμηθευτείτε κώδικα απο το τέλος του post. Οπότε, με copy/paste και έχοντας κώδικα στον editor το αποθηκεύετε με κατάληξη .c. Αυτό που μένει είναι να το εκτελέσουμε. Ο compiler που θα χρησιμοποιήσουμε λέγεται gcc. Ίσως το έχετε ήδη εγκατεστημένο στο σύστημά σας αλλα για κάθε περίπτωση εγκαταστήστε το πληκτρολογώντας στο τερματικό:
Κώδικας: Επιλογή όλων
sudo apt-get install gcc

(στην ερώτηση που ίσως σας βγάλει απαντήστε με "yes"). Έτσι βάζετε μόνο το gcc! Εάν θέλετε μπορείτε να βάλετε ολόκληρο το πακέτο δηλαδή εκτός απο C και το compiler της C++, Java κτλ. Η εναλλακτική εντολή που μπορέιτε να χρησιμοποιείσετε και όλο το πακέτο είναι:
Κώδικας: Επιλογή όλων
sudo apt-get install build-essential

Τώρα, αυτό που μένει να κάνετε είναι να τα μεταγλωττίσετε το πρόγραμμα σας και να τα τρέξετε. Στο ίδιο τερματικό που είμαστε, βρίσκουμε το αρχείο με κατάληξη .c και το μεταγλωττίζουμε τρέχοντας το παρακάτω:
Κώδικας: Επιλογή όλων
gcc όνομα_αρχείου.c

Εάν δεν βγάλει καθόλου λάθη(errors κτλ) θα πρέπει να έχει δημιουργηθεί στον ίδιο φάκελο ένα αρχείο ονόματι a.out. Αυτό λοιπόν, είναι το εκτελέσιμο αρχείο και πάντα εμφανίζεται μετά απο ένα σωστό gcc. Για να εκτελέσουμε το πρόγραμμά μας πληκτρολογούμε:
Κώδικας: Επιλογή όλων
./a.out

Παρατηρήσεις: Θα πρέπει να γνωρίζετε πως όταν θα πάτε να εκτελέσετε το "gcc" το αρχείο με κατάληξη ".c" θα πρέπει να βρίσκεται στον ίδιο φάκελο. Με άλλα λόγια θα πρέπει να το βλέπετε εκτελώντας την εντολή "ls". Επιπλέον, το "a.out" εκτελέσιμο αρχείο δημιουργείται αυτόματα μετα απο ένα σωστό "gcc" στον ίδιο/τρέχων φάκελο! Ρίξτε και μια ματιά σε [url="http://forum.ubuntu-gr.org/viewtopic.php?f=61&t=16695&start=40"]αυτή τη δημοσίευση[/url].


Add-on' s
  • Το a.out λοιπόν, είναι το standard εκτελέσιμο αρχείο που εμφανίζεται μετά από ένα σωστό compile. Κατα το compile(πρίν γράφουμε την εντολή) μπορούμε να προσθέσουμε την παράμετρο -o εκτελώντας κάτι σαν το παρακάτω:
    Κώδικας: Επιλογή όλων
    gcc όνομα_αρχείου.c -ο my_executable_file

    Με αυτό το τρόπο αντί για το a.out θα μας εμφανιστεί το my_executable_file, το οποίο πάλι είναι ένα εκτελέσιμο αρχείο και συμπεριφέρεται ακριβώς το ίδιο. Για να το τρέξετε πληκτρολογήστε:
    Κώδικας: Επιλογή όλων
    ./my_executable_file

  • Μπορείτε να χρησιμοποιήσετε και γραφικό περιβάλλον. Κατεβάστε για παράδειγμα το geany τρέχοντας απο το τερματικό:
    Κώδικας: Επιλογή όλων
    sudo apt-get install geany

    και να εργαστείτε παρόμοια με τα windows!

Παραδείγμα στην C(hello world)
Το πρόγραμμά είναι 4 γραμμές και αυτό που κάνει είναι να εμφανίζει "Hello World!" στην οθόνη σας. Σε αυτό το σημείο δεν θα γίνει ανάλυση στο πως γίνεται αυτό, απλά δοκιμάστε να το τρέξετε και να δείτε πως περίπου δουλεύει η C.

PROGRAM
Κώδικας: Επιλογή όλων
#include <stdio.h>
int main(){
      printf ("Hello World!\n");
}


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


Ο παραπάνω οδηγός υπάγεται στην άδεια Creative Commons --> http://creativecommons.org/licenses/by/3.0/gr/ <--
Τελευταία επεξεργασία από linuxs και 04 Ιουν 2012, 23:18, έχει επεξεργασθεί 26 φορά/ες συνολικά
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ 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

Δημοσίευσηαπό konnn » 01 Φεβ 2011, 22:46

Ωραία, μπράβο, πες όμως και τη περίπτωση που ο χρήστης θέλει να δώσει όνομα στο παραγόμενο αρχείο ώστε να μην είναι όλα a.out .
1 Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Προχωρημένος
2 Desktop : Ubuntu 16.04 64bit
a Intel Core i3 CPU 530 2.93GHz ‖ RAM 3824 MiB ‖ Intel DH55HC -
b nVidia Device [10de:1040] (rev a1)
c eth0: Intel 82578DC Gigabit Network Connection
3 Notebook : Ubuntu 16.04 64 bit
a Intel Core i3-2365M CPU @ 1.40GHz ‖ RAM 3854 MiB ‖ LENOVO 20197
b Intel 2nd Generation Core Processor Family Integrated Graphics Controller
c 5 wlan0: Intel Centrino Wireless-N 2230 ⋮ eth0: Realtek RTL8101E/RTL8102E

Αυτόματη υπογραφή.
Άβαταρ μέλους
konnn
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 3568
Εγγραφή: 12 Ιούλ 2010, 17:54
Τοποθεσία: Καλαμάτα
Launchpad: konnn
Εκτύπωση

Re: Πως να ξεκινήσετε με την C

Δημοσίευσηαπό linuxs » 01 Φεβ 2011, 23:03

Έτοιμη η διόρθωση! Ούπς έχω και άλλο ένα λαθάκι...
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ 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

Δημοσίευσηαπό hlias » 02 Φεβ 2011, 01:59

Καλό θα ήταν να αναφέρεις και κανα-δυό IDE που δεν χρειάζεται η χρήση τερματικού. Όπως ο geany(sudo apt-get install geany)...2 κουμπάκια και έτοιμο το πρόγραμμα.
Γνώσεις ⇛ Linux: Κανονικό ┃ Προγραμματισμός: Μέτρια ┃ Αγγλικά: Καλά
Λειτουργικό ⇛ ubuntu 11.04 32bit σε Netbook HP Mini 210
Προδιαγραφές ⇛ Intel Atom(R) N450 1.66GHz │ 1GB RAM │ Broadcom 4312 │ Intel GMA 3150 │
hlias
punkTUX
punkTUX
 
Δημοσιεύσεις: 193
Εγγραφή: 02 Νοέμ 2009, 17:05
Τοποθεσία: Ξάνθη, Θράκη
Εκτύπωση

Re: Πως να ξεκινήσετε με την C

Δημοσίευσηαπό linuxs » 02 Φεβ 2011, 02:12

Ναι βεβαίως όλο ποιό λεπτομερής τόσο το καλύτερο! :) Απλά δεν χρησιμοποιώ γραφικό περιβάλλον σε Ubuntu πολύ...Ναι όμως θα το προσθέσω με την πρώτη ευκαιρία(το πρωί η αύριο)... ;)
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ 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

Δημοσίευσηαπό konnn » 02 Φεβ 2011, 02:21

Νομίζω πως σε γραφικό περιβάλλον δεν έχει και ιδιαίτερο νόημα ο οδηγός.
1 Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Προχωρημένος
2 Desktop : Ubuntu 16.04 64bit
a Intel Core i3 CPU 530 2.93GHz ‖ RAM 3824 MiB ‖ Intel DH55HC -
b nVidia Device [10de:1040] (rev a1)
c eth0: Intel 82578DC Gigabit Network Connection
3 Notebook : Ubuntu 16.04 64 bit
a Intel Core i3-2365M CPU @ 1.40GHz ‖ RAM 3854 MiB ‖ LENOVO 20197
b Intel 2nd Generation Core Processor Family Integrated Graphics Controller
c 5 wlan0: Intel Centrino Wireless-N 2230 ⋮ eth0: Realtek RTL8101E/RTL8102E

Αυτόματη υπογραφή.
Άβαταρ μέλους
konnn
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 3568
Εγγραφή: 12 Ιούλ 2010, 17:54
Τοποθεσία: Καλαμάτα
Launchpad: konnn
Εκτύπωση

Re: Πως να ξεκινήσετε με την C

Δημοσίευσηαπό linuxs » 02 Φεβ 2011, 02:34

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

Off topic:
Θα προσπαθήσω να ανεβάσω και έναν "οδηγό" για το gdb και ελπίζω να φανεί χρήσιμο! ;)


ΟΟΟΟΟοοοο! Μόλις έγινα punkTUX...η επόμενη κατηγορία στα πόσσα posts είναι? ξέρει κανείς...?
Αν το πρόβλημά μας επιλυθεί. Επιλέγουμε το θέμα που βοήθησε στην επίλυση και πατάμε το κουμπάκι Εικόνα.
Γνώσεις ⇛ 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

Δημοσίευσηαπό konnn » 02 Φεβ 2011, 02:46

linuxs έγραψε:ΟΟΟΟΟοοοο! Μόλις έγινα punkTUX...η επόμενη κατηγορία στα πόσσα posts είναι? ξέρει κανείς...?

Υπάρχει πίνακας που λέει viewtopic.php?f=2&t=7674
1 Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Προχωρημένος
2 Desktop : Ubuntu 16.04 64bit
a Intel Core i3 CPU 530 2.93GHz ‖ RAM 3824 MiB ‖ Intel DH55HC -
b nVidia Device [10de:1040] (rev a1)
c eth0: Intel 82578DC Gigabit Network Connection
3 Notebook : Ubuntu 16.04 64 bit
a Intel Core i3-2365M CPU @ 1.40GHz ‖ RAM 3854 MiB ‖ LENOVO 20197
b Intel 2nd Generation Core Processor Family Integrated Graphics Controller
c 5 wlan0: Intel Centrino Wireless-N 2230 ⋮ eth0: Realtek RTL8101E/RTL8102E

Αυτόματη υπογραφή.
Άβαταρ μέλους
konnn
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 3568
Εγγραφή: 12 Ιούλ 2010, 17:54
Τοποθεσία: Καλαμάτα
Launchpad: konnn
Εκτύπωση

Re: Πως να ξεκινήσετε με την C

Δημοσίευσηαπό simosx » 04 Φεβ 2011, 03:31

Για τον κώδικα που έχεις, διόρθωσέ τον σε

Κώδικας: Επιλογή όλων
#include <stdio.h>

int main(void)
{
    char name[81];

    printf("Παρακαλούμε δώστε το όνομά σας: ");
    scanf("%s", name);
    printf("\n");
    printf("Το όνομά σας είναι %s\n", name);

    return 0;
}


Είναι καλό να βάζουμε στο τέλος return 0, διότι διαφορετικά επιστρέφει τυχαία τιμή. Μερικοί φλοιοί δείχουν την τιμή αυτή αν δεν είναι 0.
Ακόμα, το παραπάνω στυλ με τη στοίχιση βοηθάει για να ενοποιείς σε ομάδες τις εντολές.
Τέλος, ελληνικά επιτρέπονται. Είναι UTF-8 που έχει κάποιες ιδιαιτερότητες, ωστόσο είναι πιο ωραία έτσι.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

Re: Πως να ξεκινήσετε με την C

Δημοσίευσηαπό simosx » 04 Φεβ 2011, 03:33

Για την εγκατάσταση του μεταγλωττιστή, είναι καλό να γράφουμε την εντολή
Κώδικας: Επιλογή όλων
sudo apt-get install build-essential


Τι διαφορά έχει; Εγκαθιστά τα βασικά πακέτα για τη μεταγλώττιση προγραμμάτων, οπότε μπαίνουν «make», g++, κτλ

Είναι καλό να συνεχίσουμε τους οδηγούς προγραμματισμού ώστε ο καθένας να έχει τις βάσεις.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

Επόμενο

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

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