Ένα απλό πρόγραμμα στη C
Ακολουθεί παράδειγμα με Ένα απλό πρόγραμμα στη C.
/* η αξία ενός ποσού σε ευρώ */ #include main(){ float draxmes, euro; /* 2 μεταβλητές κινητής υποδιαστολής */ char beep; /* μια μεταβλητή τύπου χαρακτήρα */ beep = ‘\007’ /* καταχώρηση ενός ειδικού χαρακτήρα */ printf("Θέλετε να μάθετε την αξία των χρημάτων σας σε δραχμές;\n"); printf("Παρακαλώ δώστε την αξία σε ευρώ \n"); printf("και θα δούμε.\n"); scanf("%f", &euro); /* παίρνουμε δεδομένα από τον χρήστη */ draxmes = 340.75 * euro; /* ο συντελεστής 340.75 μετατρέπει τις δραχμές σε ευρώ */ printf("%c Η αξία σε δραχμές είναι %.2f%c. \n", beep, draxmes, beep); }
Αφού τρέξουμε αυτό το πρόγραμμα, θα πάρουμε το εξής αποτέλεσμα:
Θέλετε να μάθετε την αξία των χρημάτων σας σε δραχμές;
Παρακαλώ δώστε την αξία σε ευρώ και θα δούμε.
100.00
Η αξία σε δραχμές είναι 34075.00
Τι Καινούργια Στοιχεία Υπάρχουν
Πρώτα απ’ όλα χρησιμοποιούμε δύο είδη μεταβλητών, μια μεταβλητή κινητής υποδιαστολής (float) και μια μεταβλητή χαρακτήρων (char) και συνεπώς μπορούμε τώρα να διαχειριστούμε περισσότερα δεδομένα. Για την εμφάνιση στην οθόνη αυτών των νέων ειδών μεταβλητών χρησιμοποιούμε τους κώδικες %f και %c της printf() αντίστοιχα. Η χρήση του .2 σημαίνει δύο δεκαδικά ψηφία στην εμφάνιση του δεκαδικού αριθμού, άσχετα αν με τις δραχμές δεν είχαμε δεκαδικά ψηφία.
Για την εισαγωγή δεδομένων από το πληκτρολόγιο χρησιμοποιούμε τη συνάρτηση scanf(). Ο κώδικας %f καθοδηγεί το πρόγραμμα να διαβάσει έναν αριθμό κινητής υποδιαστολής και το &euro λέει στη συνάρτηση scanf() να καταχωρήσει την τιμή στη μεταβλητή euro. Το σύμβολο & θα αναλυθεί αργότερα.
Οι δύο συναρτήσεις printf() και scanf() επιτυγχάνουν τη διαλογική επικοινωνία μας με τον υπολογιστή, αφού η μεν scanf() διαβάζει δεδομένα από το πληκτρολόγιο και τα μεταφέρει για επεξεργασία στο πρόγραμμα και η printf() διαβάζει δεδομένα από το πρόγραμμα και τα εμφανίζει στην οθόνη. Υπάρχει ακόμα και ο χαρακτήρας beep που παριστάνει το ηχητικό σήμα.
Έλεγχος της Ορθότητας των Προγραμμάτων
Συντακτικά Λάθη
Το συντακτικό λάθος στη C είναι κάτι ανάλογο με το γραμματικό λάθος στη γλώσσα που μιλάμε. Συντακτικά λάθη στη C μπορούν να γίνουν και με τη χρήση επιτρεπτών συμβόλων σε λανθασμένες θέσεις. Παραδείγματα τέτοιων λαθών μπορεί να είναι η μη σωστή χρήση των αγκυλών { και } ή ακόμη το να ανοίγουμε μια αγκύλη και να μην την κλείνουμε, το να ανοίγουμε κάπου σχόλια και να ξεχνάμε να τα κλείσουμε κοκ.
Όπως ξέρουμε, μέρος της δουλειάς του μεταγλωττιστή είναι και η ανακάλυψη των συντακτικών λαθών του προγράμματος. Υπάρχουν, όμως, και περιπτώσεις όπου ένα λάθος παράγει, άθελά μας, και άλλα λάθη.
Λογικά (εννοιολογικά) Λάθη
Το εννοιολογικό λάθος είναι το λάθος στο νόημα των προτάσεων. Στη C εννοιολογικά λάθη μπορούμε να κάνουμε, όταν ακολουθούμε μεν σωστά τους κανόνες της γλώσσας, αλλά με λανθασμένο αποτέλεσμα. Τέτοιο λάθος μπορεί να γίνει, όταν π.χ. αντί να προσθέσουμε δύο μεταβλητές, τις πολλαπλασιάζουμε.
Με τα λάθη αυτά βέβαια δεν έχει καμία σχέση ο μεταγλωττιστής. Είναι δική μας δουλειά να τα ανακαλύψουμε και να τα διορθώσουμε. Ο καλύτερος τρόπος για να ανακαλύψουμε τέτοια λάθη είναι να εξετάσουμε το πρόγραμμα βήμα-βήμα.
Μπορούμε ακόμα να χρησιμοποιούμε επιλεκτικά και τη συνάρτηση printf() μέσα στο πρόγραμμα, ώστε να ελέγχουμε τις τιμές κάποιων μεταβλητών του προγράμματος. Τις εντολές printf() τις απομακρύνουμε μετά όταν το πρόγραμμά μας λειτουργήσει κανονικά. Και η χρήση των σχολίων μπορεί να αποδειχθεί χρήσιμη εδώ, γιατί με τη βοήθειά τους μπορούμε να απομονώσουμε κάποιο κομμάτι του προγράμματος προσωρινά και να ελέγξουμε έτσι την ορθότητα του υπόλοιπου προγράμματος.
Υπάρχουν και ειδικά προγράμματα που λέγονται αποσφαλματωτές (debuggers) και που μας επιτρέπουν να βλέπουμε τις τιμές των μεταβλητών του προγράμματος και ποια γραμμή του προγράμματος εκτελείται.