Εισαγωγή στην C και C++ σε Ολοκληρωμένο Περιβάλλον Δημιουργίας Λογισμικού

(Ανακατεύθυνση από Εισαγωγή στην C και C++ σε Dev-C++)

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

Τα τρία ακόλουθα περιβάλλοντα δημιουργίας σε C, C++ είναι ελεύθερο λογισμικό και εκτελούνται σε περιβάλλον Windows και GNU/Linux με εξαίρεση το Dev-C++ που διατίθεται μόνο για MS Windows.

Εγκατάσταση

επεξεργασία

Μεταβείτε με το φυλλομετρητή σας στην ιστοσελίδα λήψης και κυλήστε το παράθυρο στην ενότητα Download. Προσέξτε να κάνετε λήψη του αρχείου στο σημείο The setup which includes MinGW32 can be downloaded here που περιέχει και τον μεταγλωττιστή MinGW . Εναλλακτικά, μπορείτε να κατεβάσετε το κατάλληλο αρχείο εγκατάστασης από την επίσημη ιστοσελίδα στο sourceforge.

Το Code::Blocks είναι ένα ανεξάρτητο πλατφόρμας (cross-platform) IDE για την ανάπτυξη C/C++ εφαρμογών με πληθώρα επιπρόσθετων (plugin) λειτουργιών, το οποίο μπορείτε να | κατεβάσετε από εδώ.

| Eclipse IDE for C/C++ Developers

Το πρώτο μας πρόγραμμα

επεξεργασία

Το πρώτο μας πρόγραμμα έχει ψυχολογικό και διδακτικό σκοπό. Η επιτυχής δημιουργία και εκτέλεση του θα μας δώσει το πρώτο ενθαρρυντικό σήμα ότι το περιβάλλον μας δουλεύει και ότι η έξοδος του προγράμματος είναι άμεσα ορατή!

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

  • [Dev-C++]Αρχείο->Νεο->Πηγαίο Αρχείο ή
  • [Code::Blocks]File->New->File... και από τα πλαίσια διαλόγου επιλέξτε C/C++ κατηγορία και κατόπιν C
  • [Eclipse CDT] File->New->C project (στo eclipse πρέπει δυστυχώς να δημιουργήσετε project για να μεταγλωττίσετε και εκτελέσετε ένα πρόγραμμα).
Το πρώτο μας πρόγραμμα θα εμφανίσει σαν έξοδο κείμενο με τη χρήση της συνάρτησης printf.
#include <stdio.h>
 
int main(void)
{
  printf("Hello, world!\n");
  
  getchar(); // Χρήσιμη σε ορισμένα περιβάλλοντα, ώστε να καθυστερήσουμε το παράθυρο κονσόλας
  return 0;
}


Σ'αυτό το πρόγραμμα εκτός από την συνάρτηση διακρίνουμε τα εξής στοιχεία:

  • την εντολή συμπερίληψης #include <stdio.h> (εκ'του standard input output header) ενός αρχείου επικεφαλίδα (header) που περιλαμβάνει τους ορισμούς της συνάρτησης printf και άλλων συναρτήσεων εισόδου εξόδου. Υπάρχουν και άλλα αρχεία επικεφαλίδες που μας προσφέρουν και άλλες συναρτήσεις.
  • το αναγνωριστικό main ξεχωρίζει την συνάρτηση από την οποία θα ξεκινήσει το πρόγραμμα. Μπορούμε σε ένα αρχείο ή ακόμα γενικότερα σε ένα έργο που περιλαμβάνει πολλά αρχεία να έχουμε όσες συναρτήσεις θέλουμε αλλά η πρώτη που θα εκτελεστεί είναι η main. Κοιτώντας την main βλέπουμε και μερικά χαρακτηριστικά που μοιράζονται όλες οι συναρτήσεις. Δηλαδή
    • ένα όνομα
    • τύπος επιστρεφόμενης τιμής (στο παράδειγμά μας είναι int) Σχετική με την τιμή αυτή είναι η τελευταία εντολή της main η return 0 η οποία επιστρέφει τον αριθμό 0.
    • λίστα παραμέτρων ( είναι το (void)) και σημαίνει ότι δεν έχει παραμέτρους η main αλλά όπως θα δούμε μπορούσαμε να έχουμε μια συνάρτηση με πολλές παραμέτρους. Οι παράμετροι είναι κάποια δεδομένα που δίνουμε στην συνάρτηση για να επεξεργαστεί και να δώσει κάποιο αποτέλεσμα.
    • ένα κύριο σώμα εντολών της συνάρτησης που περιέχεται ανάμεσα σε άγκιστρα . { , }.
  • η printf είναι η πιο συχνά χρησιμοποιούμενη εντολή και αυτό είναι λογικό αφού είναι εντολή εξόδου, δηλαδή εμφανίζει στην οθόνη μας τα αποτελέσματα του προγράμματος.
  • η εντολή getchar(); είναι πιο φορητή εκδοχή της system("PAUSE") η οποία παγώνει το πρόγραμμα πριν τελειώσει επιτρέποντας μας να δούμε την έξοδο του. Το πρόβλημα με την system("PAUSE") είναι ότι δεν υπάρχει σε συστήματα τύπου Unix σε αντίθεση με την getchar(); που υπάρχει και σε συστήματα Unix και επίσης σταματά απλούστερα το πρόγραμμα μέχρι να πατήσουμε enter.
  • Μετά την εντολή getchar(); υπάρχει ένα σχόλιο μιας γραμμής που το ξεκίνημά του οριοθετείται από τους χαρακτήρες // . Το λέμε σχόλιο μιας γραμμής γιατί αν συνεχίσετε στην επόμενη γραμμή το πρόγραμμα θα είναι λάθος συντακτικά.
  • και τέλος η εντολή return η οποία επιτελεί δυο ενέργειες. Τερματίζει την εκτέλεση της συνάρτησης (και επειδή η main είναι η πρώτη συνάρτηση αυτό σημαίνει ότι τερματίζει το πρόγραμμά μας) και επιστρέφει μια τιμή. Η δυνατότητα μια συνάρτηση να επιστρέφει τιμή έχει δυο βασικές χρησιμότητες. Μπορεί αυτό να είναι το αποτέλεσμα του υπολογισμού της συνάρτησης, μπορεί επίσης να είναι μια ένδειξη αν υπήρχε κάποιο σφάλμα.

Είσοδος Υπολογισμός Έξοδος

επεξεργασία

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

Το πρόγραμμα θα ζητήσει από το πληκτρολόγιο δυο αριθμούς και θα υπολογίσει και θα εμφανίσει σαν έξοδο τον μεγαλύτερο.
#include<stdio.h>

int main(void)
{
    system("chcp 1253");
    //system("chcp 28597");
  int a,b ; 
  int max ;
  char name[20] ;
  
  scanf("%d",&a);  
  scanf("%d",&b); 
  if ( a<b )
    printf("μεγαλύτερος είναι ο: %d \n",b);
  else 
    printf("μεγαλύτερος είναι ο  : %d \n ",a);
  
    system("PAUSE"); // Windows only
  return 0;
}


Η εντολή system("chcp 1253"); είναι χρήσιμη για την εμφάνιση ελληνικών( Μόνο για Windows ).