Δομή προγράμματος σε γλώσσα C. Βασικά στοιχεία της γλώσσας C: δομή ενός προγράμματος C, βασικοί τύποι και κατασκευή νέων τύπων, πράξεων και εκφράσεων

Ηλεκτρονική 07.07.2019

Το ίδιο το πρόγραμμα C++ είναι ένα αρχείο κειμένου που περιέχει τις δομές και τους τελεστές μιας δεδομένης γλώσσας με τη σειρά που καθορίζεται από τον προγραμματιστή. Στην απλούστερη περίπτωση, αυτό το αρχείο κειμένου μπορεί να περιέχει τις ακόλουθες πληροφορίες:

Λίστα 1.1. Ένα παράδειγμα απλού προγράμματος.

/* Παράδειγμα απλού προγράμματος */
#συμπεριλαμβάνω
int main()
{
printf("Hello World!");
επιστροφή 0;
}

και συνήθως έχει επέκταση cpp, για παράδειγμα "ex1.cpp".

Το επόμενο βήμα είναι η μεταγλώττιση του πηγαίου κώδικα. Η μεταγλώττιση είναι η διαδικασία με την οποία τα περιεχόμενα ενός αρχείου κειμένου μετατρέπονται σε εκτελέσιμο κώδικα μηχανής που μπορεί να γίνει κατανοητός από τον επεξεργαστή του υπολογιστή. Ωστόσο, ο μεταγλωττιστής δεν δημιουργεί πρόγραμμα έτοιμο για εκτέλεση, αλλά μόνο κώδικα αντικειμένου (αρχείο με επέκταση *.obj). Αυτός ο κώδικας είναι ένα ενδιάμεσο βήμα για τη δημιουργία ενός ολοκληρωμένου προγράμματος. Το γεγονός είναι ότι το πρόγραμμα που δημιουργήθηκε μπορεί να περιέχει συναρτήσεις τυπικών βιβλιοθηκών της γλώσσας C++, οι υλοποιήσεις των οποίων περιγράφονται στα αρχεία αντικειμένων βιβλιοθήκης. Για παράδειγμα, το παραπάνω πρόγραμμα χρησιμοποιεί τη συνάρτηση printf() της τυπικής βιβλιοθήκης "stdio.h". Αυτό σημαίνει ότι το αρχείο αντικειμένου ex1.obj θα περιέχει μόνο οδηγίες για την κλήση αυτής της συνάρτησης, αλλά ο κώδικας για την ίδια τη συνάρτηση δεν θα υπάρχει.

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

Ας ρίξουμε μια πιο προσεκτική ματιά στο παράδειγμα προγράμματος στη Λίστα 1.1. Η πρώτη γραμμή καθορίζει σχόλια, π.χ. σχόλια για να σας βοηθήσουν να κατανοήσετε καλύτερα το πρόγραμμα. Είναι μόνο για ανάγνωση και αγνοούνται από τον μεταγλωττιστή. Η δεύτερη γραμμή περιέχει την οδηγία #include, η οποία δίνει εντολή στον προεπεξεργαστή της γλώσσας C++ να εισάγει τα περιεχόμενα του αρχείου «stdio.h» στη θέση αυτής της γραμμής κατά τη μεταγλώττιση. Η τρίτη γραμμή ορίζει μια συνάρτηση που ονομάζεται main που επιστρέφει έναν ακέραιο (τύπος int) και δεν δέχεται ορίσματα (τύπος void). Η συνάρτηση main() είναι μια απαιτούμενη συνάρτηση για όλα τα προγράμματα της C++ και χωρίς αυτήν, εμφανίζεται ένα μήνυμα σφάλματος στο στάδιο της μεταγλώττισης που υποδεικνύει την απουσία αυτής της συνάρτησης. Αυτή η λειτουργία είναι υποχρεωτική λόγω του γεγονότος ότι είναι το σημείο εισόδου στο πρόγραμμα. Σε αυτήν την περίπτωση, το σημείο εισόδου είναι η συνάρτηση με την οποία ξεκινά και τελειώνει το πρόγραμμα. Για παράδειγμα, όταν εκτελείτε ένα αρχείο exe, ενεργοποιείται η συνάρτηση main(), εκτελούνται όλες οι δηλώσεις που περιλαμβάνονται σε αυτό και το πρόγραμμα τελειώνει. Έτσι, η λογική ολόκληρου του προγράμματος περιέχεται σε αυτή τη συνάρτηση. Στο παραπάνω παράδειγμα, όταν καλείται η συνάρτηση main(), καλείται η συνάρτηση printf(), η οποία εμφανίζει το μήνυμα «Hello World!» στην οθόνη της οθόνης και, στη συνέχεια, εκτελείται η εντολή return, η οποία επιστρέφει μια μηδενική τιμή. Αυτός ο αριθμός επιστρέφεται από την ίδια τη συνάρτηση main() στο λειτουργικό σύστημα και σημαίνει την επιτυχή ολοκλήρωση του προγράμματος. Τα σγουρά τιράντες () χρησιμοποιούνται για να ορίσουν την αρχή και το τέλος του σώματος συνάρτησης, δηλ. περιέχουν όλους τους πιθανούς τελεστές που περιγράφουν τη λειτουργία αυτής της συνάρτησης. Θα πρέπει να σημειωθεί ότι μετά από κάθε τελεστή στη γλώσσα C++ υπάρχει ένα σύμβολο «;». Έτσι, το παράδειγμα που δίνεται δείχνει τη γενική δομή των προγραμμάτων C++.

Διάλεξη Νο 1

Θέμα: Εισαγωγή στη γλώσσα C++. Χειριστές και τύποι δεδομένων

Σχέδιο

3. Μεταβλητές και τύποι τους

4. Τελεστές και μαθηματικές συναρτήσεις

5. Τελεστές εισόδου/εξόδου σε C++

6. Παράδειγμα προγράμματος σε C++

1. Ιστορία της ανάπτυξης της γλώσσας προγραμματισμού C++

Η γλώσσα C++, η οποία συνδυάζει τις ιδιότητες της γλώσσας C και τον αντικειμενοστραφή προγραμματισμό, έγινε μια από τις κύριες γλώσσες προγραμματισμού στη δεκαετία του '90 και συνεχίζει σταθερά να παραμένει έτσι στις αρχές του 21ου αιώνα. Η γλώσσα C++ κληρονόμησε από τη γλώσσα C ιδιότητες όπως η αποτελεσματικότητα, η συμπαγής ταχύτητα, η ταχύτητα εκτέλεσης και η φορητότητα των προγραμμάτων. Από αντικειμενοστραφή προγραμματισμό, η γλώσσα C++ έλαβε μια νέα μεθοδολογία προγραμματισμού που της επιτρέπει να αντιμετωπίσει την αυξημένη πολυπλοκότητα των σύγχρονων προβλημάτων προγραμματισμού. Και χαρακτηριστικά γλώσσας, όπως βελτιωμένα πρότυπα εισάγουν μια άλλη νέα μεθοδολογία προγραμματισμού στη C++: τον γενικό προγραμματισμό. Αυτή η τριπλή κληρονομιά είναι και ευλογία και κατάρα για τη γλώσσα C++. Κάνουν τη γλώσσα πολύ ισχυρή, αλλά ταυτόχρονα πολύπλοκη. που σημαίνει ότι οι προγραμματιστές πρέπει να μάθουν περισσότερα.

Τις τελευταίες δεκαετίες, η τεχνολογία των υπολογιστών έχει αναπτυχθεί με εκπληκτικό ρυθμό. Οι γλώσσες προγραμματισμού έχουν επίσης υποστεί σημαντική εξέλιξη. Στη δεκαετία του 1970, γλώσσες προγραμματισμού όπως η C και η Pascal βοήθησαν στην έναρξη της εποχής του δομημένου προγραμματισμού, φέρνοντας τάξη σε μια περιοχή που τον χρειαζόταν πολύ. Η γλώσσα C παρείχε στον προγραμματιστή τα απαραίτητα εργαλεία για δομημένο προγραμματισμό, καθώς και τη δημιουργία συμπαγών, γρήγορης εκτέλεσης προγραμμάτων και τη δυνατότητα αντιμετώπισης υλικού, όπως η δυνατότητα ελέγχου θυρών επικοινωνίας και μαγνητικού δίσκου. Αυτές οι ιδιότητες βοήθησαν τη C να γίνει η κυρίαρχη γλώσσα προγραμματισμού στη δεκαετία του 1980. Ταυτόχρονα, ένα νέο μοντέλο προγραμματισμού εμφανίστηκε κατά τη διάρκεια αυτών των ετών: αντικειμενοστραφής προγραμματισμός ή OOP, ενσωματωμένος σε γλώσσες όπως το SmallTalk και η C++.

Γλώσσα Γ

Ο υπάλληλος της Bell Laboratories Ken Thompson ανέπτυξε τη γλώσσα B (bi) το 1969 για να δημιουργήσει άλλα συστήματα λογισμικού. Ωστόσο, αυτή η γλώσσα ερμηνεύτηκε, η οποία δεν επέτρεψε τη δημιουργία ανεξάρτητων εκτελέσιμων αρχείων σε αυτήν. Ωστόσο, αυτή η γλώσσα ήταν ο προκάτοχος της γλώσσας S.

Στις αρχές της δεκαετίας του '70, ο Denis Ritchie των εργαστηρίων Bell ανέπτυζε το λειτουργικό σύστημα UNIX. Για να κάνει αυτή τη δουλειά, ο Ritchie χρειαζόταν μια γλώσσα προγραμματισμού που να είναι συνοπτική και να μπορεί επίσης να χειρίζεται αποτελεσματικά το υλικό και να δημιουργεί συμπαγή προγράμματα που εκτελούνται γρήγορα. Παραδοσιακά, τέτοιες ανάγκες των προγραμματιστών καλύπτονταν από τη γλώσσα assembly, η οποία σχετίζεται στενά με την εσωτερική γλώσσα μηχανής του υπολογιστή. Ωστόσο, η γλώσσα assembly είναι μια γλώσσα χαμηλού επιπέδου, δηλ. συνδέεται με έναν συγκεκριμένο τύπο επεξεργαστή (ή υπολογιστή). Επομένως, εάν ένα πρόγραμμα γλώσσας assembly πρέπει να μεταφερθεί σε διαφορετικό τύπο υπολογιστή, πρέπει να ξαναγραφτεί σε διαφορετική γλώσσα assembly.

Το λειτουργικό σύστημα UNIX σχεδιάστηκε για να λειτουργεί σε διάφορους τύπους (ή πλατφόρμες) υπολογιστών. Και αυτό περιλάμβανε τη χρήση μιας γλώσσας υψηλού επιπέδου. Η γλώσσα υψηλού επιπέδου επικεντρώνεται στην επίλυση προβλημάτων, όχι σε συγκεκριμένο υλικό. Ειδικά προγράμματα, που ονομάζονται μεταγλωττιστές, μεταφράζουν ένα πρόγραμμα σε γλώσσα υψηλού επιπέδου σε πρόγραμμα στην εσωτερική γλώσσα ενός συγκεκριμένου υπολογιστή. Έτσι, χρησιμοποιώντας έναν ξεχωριστό μεταγλωττιστή για κάθε πλατφόρμα, το ίδιο πρόγραμμα γλώσσας υψηλού επιπέδου μπορεί να εκτελεστεί σε διαφορετικές πλατφόρμες. Ο Ritchie χρειαζόταν μια γλώσσα που θα συνδύαζε την αποτελεσματικότητα και την πρόσβαση υλικού μιας γλώσσας χαμηλού επιπέδου με τη γενικότερη φύση και φορητότητα μιας γλώσσας υψηλού επιπέδου. Επομένως, με βάση την υπάρχουσα γλώσσα προγραμματισμού Β, ο Ritchie ανέπτυξε τη γλώσσα C Είναι γενικά αποδεκτό ότι οι συγγραφείς της γλώσσας είναι οι Ritchie και Thompson.

Η γλώσσα C, όπως και οι περισσότερες μεγάλες γλώσσες προγραμματισμού της εποχής μας, είναι διαδικαστική.

Γλώσσα C++

Με την ανάπτυξη της αντικειμενοστρεφούς τεχνολογίας, οι δυνατότητες της τυπικής γλώσσας C δεν ήταν πλέον επαρκείς. Το αποτέλεσμα ήταν η γλώσσα C++.

Η γλώσσα C++, όπως και η γλώσσα C, είναι το πνευματικό τέκνο της Bell Laboratories. Ο συγγραφέας Bjarni Stroustrup ανέπτυξε αυτή τη γλώσσα στις αρχές της δεκαετίας του '80. Με τα δικά του λόγια, «η C++ σχεδιάστηκε κυρίως έτσι ώστε οι φίλοι μου και εγώ να μην χρειάζεται να προγραμματίζουμε σε assembly, C ή σε διάφορες σύγχρονες γλώσσες υψηλού επιπέδου. Ο κύριος στόχος του ήταν ο εξής: να κάνει ευκολότερο και πιο ευχάριστο για μεμονωμένους προγραμματιστές να γράφουν καλά προγράμματα».

Ο Stroustrup δημιούργησε τη C++ από τη γλώσσα C επειδή η C ήταν συνοπτική, κατάλληλη για προγραμματισμό συστημάτων, ευρέως διαθέσιμη και στενά συνδεδεμένη με το λειτουργικό σύστημα UNIX. Το αντικειμενοστραφή μέρος της γλώσσας C++ επηρεάστηκε από τη γλώσσα μοντελοποίησης Simula67. Ο Stroustrup πρόσθεσε στοιχεία OOP στη γλώσσα C χωρίς να αλλάξει σημαντικά την ίδια τη γλώσσα C.

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

Γενικευμένος προγραμματισμός

Ο γενικός προγραμματισμός είναι ένα άλλο παράδειγμα προγραμματισμού που υποστηρίζεται από τη γλώσσα C++. Έχει έναν κοινό στόχο με το OOP - να απλοποιήσει την επαναχρησιμοποίηση των κωδικών προγραμμάτων. Ωστόσο, ενώ το OOP εστιάζει στα δεδομένα, ο γενικός προγραμματισμός δίνει έμφαση στους αλγόριθμους. Και έχει έναν άλλο τομέα εφαρμογής. Το OOP είναι ένα εργαλείο για την ανάπτυξη μεγάλων έργων, ενώ ο γενικός προγραμματισμός παρέχει εργαλεία για την εκτέλεση γενικών εργασιών, όπως η ταξινόμηση δεδομένων. Ο όρος γενικός σημαίνει τη δημιουργία κώδικα προγράμματος που είναι ανεξάρτητος από τον τύπο δεδομένων. Η γλώσσα C++ περιέχει δεδομένα διαφόρων τύπων - ακέραιους αριθμούς, αριθμούς με κλασματικό μέρος, χαρακτήρες, συμβολοσειρές χαρακτήρων, σύνθετες δομές που ορίζονται από το χρήστη και αποτελούνται από δεδομένα πολλών τύπων. Εάν, για παράδειγμα, πρέπει να ταξινομήσετε διαφορετικούς τύπους δεδομένων, συνήθως δημιουργείτε μια ξεχωριστή συνάρτηση ταξινόμησης για κάθε τύπο. Ο γενικός προγραμματισμός επεκτείνει τη γλώσσα έτσι ώστε να μπορείτε να γράψετε μια συνάρτηση μία φορά για έναν γενικό (δηλ. απροσδιόριστο) τύπο δεδομένων και στη συνέχεια να τη χρησιμοποιήσετε για μια ποικιλία τύπων δεδομένων πραγματικού κόσμου. Αυτό επιτυγχάνεται χρησιμοποιώντας πρότυπα γλώσσας C++. (αρχή)

2. Δομή προγράμματος σε C++

Ένα πρόγραμμα C++ δημιουργείται από μεμονωμένα μπλοκ που ονομάζονται συναρτήσεις. Συνήθως, ένα πρόγραμμα χωρίζεται σε έναν αριθμό μεγάλων εργασιών και στη συνέχεια αναπτύσσονται μεμονωμένες λειτουργίες για την εκτέλεση αυτών των εργασιών.

Τα περισσότερα προγράμματα C++ μοιάζουν με αυτό:

ενότητα για τη συμπερίληψη αρχείων κεφαλίδας

κεφαλίδα προγράμματος (συνάρτησης).

σώμα λειτουργίας

Τίτλος προγράμματος

Ένα πρόγραμμα C++ αποτελείται από μία ή περισσότερες ενότητες που ονομάζονται συναρτήσεις. Η εκτέλεση του προγράμματος ξεκινά με μια συνάρτηση που ονομάζεται main(), επομένως το πρόγραμμα πρέπει να περιέχει μια συνάρτηση με αυτό το όνομα. Εάν ένα πρόγραμμα δεν έχει τέτοια λειτουργία, τότε δεν υπάρχει πλήρες πρόγραμμα. Ο μεταγλωττιστής σε αυτήν την περίπτωση υποδεικνύει ότι η συνάρτηση main() δεν έχει οριστεί.

Η περιγραφή μιας τέτοιας λειτουργίας εκτελείται στην ενότητα κεφαλίδας του προγράμματος και γράφεται με τη μορφή:

Είναι σημαντικό να λάβετε υπόψη το γεγονός ότι ο μεταγλωττιστής C++ κάνει διάκριση πεζών-κεφαλαίων. Επομένως, ένα όνομα συνάρτησης που πληκτρολογείται σε διαφορετική περίπτωση (για παράδειγμα: Main() ή MAIN()) θα αναγνωριστεί ως εσφαλμένο.

Ενότητα σύνδεσης αρχείου κεφαλίδας

Κατά τη δημιουργία εκτελέσιμου κώδικα για προγράμματα C++, όπως και στην περίπτωση των προγραμμάτων C, χρησιμοποιείται ένας προεπεξεργαστής. Αυτό είναι ένα πρόγραμμα που επεξεργάζεται το αρχείο προέλευσης πριν από την κύρια μεταγλώττιση. Για να καλέσετε αυτόν τον προεπεξεργαστή, δεν χρειάζεται να κάνετε κάτι ιδιαίτερο. Εκτελείται αυτόματα κατά τη μεταγλώττιση του προγράμματος.

Κάθε πρόγραμμα C++ έχει πρώτα μια οδηγία με τη μορφή:

#συμπεριλαμβάνω

Αυτή η οδηγία αναγκάζει τον προεπεξεργαστή να προσθέσει τα περιεχόμενα του αρχείου iostream στο πρόγραμμα. Αυτή είναι μια τυπική ενέργεια προεπεξεργαστή: προσθήκη ή αλλαγή κειμένου στον πηγαίο κώδικα πριν από τη μεταγλώττιση.

Η οδηγία #include κάνει τα περιεχόμενα του αρχείου iostream να περάσουν στον μεταγλωττιστή μαζί με τα περιεχόμενα του αρχείου προέλευσης. Ουσιαστικά, τα περιεχόμενα του αρχείου iostream αντικαθιστούν τη γραμμή #include στο πρόγραμμα . Το αρχείο προέλευσης δεν τροποποιείται και το συνδυασμένο αρχείο που δημιουργήθηκε από το αρχείο προέλευσης και το αρχείο iostream υποβάλλεται σε επεξεργασία στο επόμενο βήμα μεταγλώττισης.

Τα αρχεία όπως το iostream ονομάζονται αρχεία συμπερίληψης (επειδή περιλαμβάνονται σε άλλα αρχεία) ή αρχεία κεφαλίδας (επειδή περιλαμβάνονται στην αρχή του αρχείου). Οι μεταγλωττιστές C++ συνοδεύονται από πολλά αρχεία κεφαλίδας, καθένα από τα οποία υποστηρίζει διαφορετική οικογένεια εργαλείων. Τα αρχεία κεφαλίδας στη γλώσσα C έχουν παραδοσιακά την επέκταση h, αυτός είναι ο απλούστερος τρόπος για να προσδιορίσετε έναν τύπο αρχείου με το όνομά του. Για παράδειγμα, το αρχείο κεφαλίδας math.h υποστηρίζει διάφορες μαθηματικές συναρτήσεις της γλώσσας C++.

Τα αρχεία κεφαλίδας βρίσκονται στο φάκελο Include του περιβάλλοντος ανάπτυξης Turbo C++. Εάν, κατά την εκκίνηση του προγράμματος, λάβετε ένα σφάλμα που υποδεικνύει ότι το αρχείο κεφαλίδας που περιλαμβάνεται λείπει, τότε πρέπει να το διαμορφώσετε στο περιβάλλον Turbo C++. Για να το κάνετε αυτό, εκτελέστε την εντολή Options – Directories, πληκτρολογήστε ..\INCLUDE στο πεδίο Include Directories και πληκτρολογήστε ..\LIB στο πεδίο Library Directories.

Σώμα λειτουργίας

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

Το σώμα της συνάρτησης μοιάζει με αυτό:

περιγραφή μεταβλητών·

χειριστές?

Όπως μπορείτε να δείτε, το σώμα της συνάρτησης περικλείεται σε σγουρά σιδεράκια. Η περιγραφή των μεταβλητών θα συζητηθεί στην επόμενη ενότητα της διάλεξης.

Μια δήλωση αντιπροσωπεύει οδηγίες για έναν υπολογιστή. Για να κατανοήσει τον πηγαίο κώδικα, ο μεταγλωττιστής πρέπει να γνωρίζει πότε τελειώνει μια πρόταση και ξεκινά μια άλλη. Ορισμένες γλώσσες προγραμματισμού χρησιμοποιούν διαχωριστικά δηλώσεων. Στον Pascal, μια πρόταση χωρίζεται από την επόμενη με ένα ερωτηματικό. Σε ορισμένες περιπτώσεις, το ερωτηματικό μπορεί να παραλειφθεί στο Pascal, για παράδειγμα μετά από μια πρόταση πριν από τη λέξη ΤΕΛΟΣ, όταν οι δύο προτάσεις δεν διαχωρίζονται πραγματικά. Αλλά στη γλώσσα C++, καθώς και στη γλώσσα C, χρησιμοποιείται ένας τερματιστής (δείκτης) παρά ένας διαχωριστής. Ο τερματιστής είναι ένα ερωτηματικό που σηματοδοτεί το τέλος μιας δήλωσης. είναι μέρος μιας δήλωσης και όχι διαχωριστικό μεταξύ δηλώσεων. Το πρακτικό αποτέλεσμα είναι ότι στη C++ δεν πρέπει ποτέ να παραλείπετε το ερωτηματικό.

Η εντολή RETURN 0 καθορίζει ότι η συνάρτηση εξέρχεται και επιστρέφει στο πρόγραμμα κλήσης. Αυτή η εντολή μπορεί να μην καθορίζεται στην κύρια συνάρτηση main().

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

Εφόσον ένα σχόλιο C δεν τελειώνει με χαρακτήρα τέλους γραμμής, αλλά με χαρακτήρα */, μπορεί να συνεχιστεί σε πολλές γραμμές. Τα προγράμματα μπορούν να χρησιμοποιήσουν έναν από αυτούς τους δύο τύπους σχολίων ή και τα δύο μαζί. (αρχή)

Το C, όπως στατικές και τοπικές μεταβλητές, πίνακες, δείκτες, συναρτήσεις κ.λπ., είναι όσο το δυνατόν πιο κοντά στην αρχιτεκτονική των πραγματικών υπολογιστών. Έτσι, ένας δείκτης είναι απλώς μια διεύθυνση μνήμης, ένας πίνακας είναι μια συνεχόμενη περιοχή μνήμης, οι τοπικές μεταβλητές είναι μεταβλητές που βρίσκονται στη στοίβα υλικού και οι στατικές μεταβλητές βρίσκονται στη στατική μνήμη. Ένας προγραμματιστής που γράφει σε C έχει πάντα μια αρκετά ακριβή ιδέα για το πώς θα λειτουργήσει το πρόγραμμα που δημιουργεί σε οποιαδήποτε συγκεκριμένη αρχιτεκτονική. Με άλλα λόγια, η γλώσσα C δίνει στον προγραμματιστή πλήρη έλεγχο του υπολογιστή.

Η γλώσσα C σχεδιάστηκε αρχικά ως αντικατάσταση της γλώσσας Assembly για τη γραφή λειτουργικών συστημάτων. Δεδομένου ότι η C είναι μια γλώσσα υψηλού επιπέδου που δεν εξαρτάται από μια συγκεκριμένη αρχιτεκτονική, το κείμενο του λειτουργικού συστήματος ήταν εύκολα φορητό από τη μια πλατφόρμα στην άλλη. Το πρώτο λειτουργικό σύστημα που γράφτηκε σχεδόν εξ ολοκλήρου σε C ήταν το Unix. Επί του παρόντος, σχεδόν όλα τα λειτουργικά συστήματα που χρησιμοποιούνται είναι γραμμένα σε C. Επιπλέον, εργαλεία προγραμματισμού που λειτουργικό σύστημαπαρέχει προγραμματιστές προγραμμάτων εφαρμογών (το λεγόμενο API - Διασύνδεση προγράμματος εφαρμογής) - αυτές είναι σύνολα λειτουργιών συστήματος στη γλώσσα C.

Ωστόσο, το πεδίο εφαρμογής της γλώσσας C δεν περιορίστηκε στην ανάπτυξη λειτουργικών συστημάτων. Η γλώσσα C έχει αποδειχθεί πολύ βολική σε προγράμματα επεξεργασίας κειμένου και εικόνας, σε επιστημονικούς και μηχανικούς υπολογισμούς. Οι αντικειμενοστρεφείς γλώσσες που βασίζονται στο C είναι εξαιρετικές για προγραμματισμό σε περιβάλλοντα με παράθυρα.

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

Θα χρησιμοποιήσουμε μεταγλωττιστή C++ αντί για C. Το γεγονός είναι ότι η γλώσσα C περιλαμβάνεται σχεδόν εξ ολοκλήρου στη C++, δηλ. ένα κανονικό πρόγραμμα γραμμένο σε C είναι ένα έγκυρο πρόγραμμα C++. Η λέξη "κανονικό" σημαίνει ότι δεν περιέχει ατυχείς κατασκευές που έχουν απομείνει από προηγούμενες εκδόσεις του C και δεν χρησιμοποιούνται επί του παρόντος. Ο μεταγλωττιστής C++ είναι προτιμότερος από τον μεταγλωττιστή C επειδή έχει αυστηρότερο έλεγχο σφαλμάτων. Επιπλέον, ορισμένες κατασκευές C++ που δεν σχετίζονται με αντικειμενοστραφή προγραμματισμό είναι πολύ βολικές και στην πραγματικότητα αποτελούν βελτίωση στη γλώσσα C. Αυτά είναι, πρώτα απ 'όλα, σχόλια // , η δυνατότητα περιγραφής τοπικών μεταβλητών σε οποιοδήποτε σημείο του προγράμματος, και όχι μόνο στην αρχή του μπλοκ, καθώς και η ρύθμιση σταθερών χωρίς τη χρήση του τελεστή #define του προεπεξεργαστή. Θα χρησιμοποιήσουμε αυτές τις δυνατότητες της C++ ενώ ουσιαστικά παραμένουμε στη γλώσσα C.

Δομή προγράμματος C

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

Στη γλώσσα C, υπάρχουν δύο τύποι αρχείων πηγής:

  • κεφαλίδα ή h-αρχεία.
  • αρχεία υλοποίησης ή αρχεία C.

Τα ονόματα αρχείων κεφαλίδας έχουν την επέκταση ".h". Τα ονόματα αρχείων υλοποίησης έχουν την επέκταση ".c" για τη γλώσσα C και ".cpp", ".cxx" ή ".cc" για τη γλώσσα C++.

Δυστυχώς, σε αντίθεση με τη γλώσσα C, οι προγραμματιστές δεν μπόρεσαν να συμφωνήσουν σε μια ενιαία επέκταση ονόματος για αρχεία που περιέχουν προγράμματα C++. Θα χρησιμοποιήσουμε την επέκταση ".h" για αρχεία κεφαλίδας και την επέκταση ".cpp" για αρχεία υλοποίησης.

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

ο ορισμός μιας ακέραιας μεταβλητής x είναι σφάλμα. Θα πρέπει να χρησιμοποιηθεί η περιγραφή

που σημαίνει ότι η μεταβλητή x ορίζεται κάπου στο αρχείο υλοποίησης (το οποίο είναι άγνωστο). Η λέξη extern (εξωτερικό) μόνο αναφέρει πληροφορίεςσχετικά με μια εξωτερική μεταβλητή, αλλά δεν ορίζει αυτήν τη μεταβλητή.

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

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

Τα αρχεία υλοποίησης μπορούν να περιλαμβάνουν περιγραφές που περιέχονται στα αρχεία κεφαλίδας. Τα ίδια τα αρχεία κεφαλίδας μπορούν επίσης να χρησιμοποιήσουν άλλα αρχεία κεφαλίδας. Το αρχείο κεφαλίδας περιλαμβάνεται χρησιμοποιώντας την οδηγία προεπεξεργαστή #include. Για παράδειγμα, περιγραφές τυπικών λειτουργιών I/O περιλαμβάνονται χρησιμοποιώντας τη γραμμή

#συμπεριλαμβάνω

(stdio - από τις λέξεις τυπική είσοδος / έξοδος). Το όνομα του αρχείου h γράφεται σε αγκύλες εάν αυτό το h-

Δομή προγράμματος σε γλώσσα C.

Χρήση της γλώσσας προγραμματισμού C στην επίλυση οικονομικών προβλημάτων

Προγράμματα και δεδομένα

Πλεονεκτήματα της γλώσσας C

1) Η C είναι μια σύγχρονη γλώσσα, η δομή της ενθαρρύνει τον προγραμματιστή να χρησιμοποιεί μεθόδους στην εργασία του: σχεδιασμός από πάνω προς τα κάτω, δομημένος προγραμματισμός, αρθρωτή δομή προγράμματος.

2) Η C είναι μια αποτελεσματική γλώσσα. Τα προγράμματα C είναι συμπαγή και γρήγορα στην εκτέλεση.

3) C – φορητή ή φορητή γλώσσα.

4) Η C είναι μια ισχυρή και ευέλικτη γλώσσα.

5) Προγράμματα γραμμένα σε C χρησιμοποιούνται για την επίλυση προβλημάτων σε διάφορα επίπεδα. Το C έχει μια σειρά από ισχυρές κατασκευές assembler.

6) Η C είναι μια βολική γλώσσα, είναι δομημένη και ταυτόχρονα δεν περιορίζει υπερβολικά την ελευθερία των προγραμματιστών.

7) Η C είναι μια γλώσσα μεταγλώττισης. Επειδή η C είναι μια τυποποιημένη, ανεξάρτητη από το υλικό, ευρέως διαθέσιμη γλώσσα, μια εφαρμογή γραμμένη σε C μπορεί συχνά να εκτελεστεί με ελάχιστη ή καθόλου τροποποίηση σε μια μεγάλη ποικιλία συστημάτων υπολογιστών. Ο υπολογιστής, παρά την ταχύτητα και την υπολογιστική του ισχύ, είναι μια απλή συσκευή που χειρίζεται δυαδικούς αριθμούς. Ορισμένοι δυαδικοί αριθμοί ερμηνεύονται από τον υπολογιστή ως εντολές, άλλοι ως δεδομένα. Για να κάνετε έναν υπολογιστή να κάνει οτιδήποτε χρήσιμο, πρέπει να γράψετε ένα πρόγραμμα.

Προγραμματισμόςδραστηριότητες ανάπτυξης προγράμματος.

Πρόγραμμα είναι μια περιγραφή ενός αλγορίθμου για την επίλυση ενός προβλήματος που καθορίζεται σε μια γλώσσα υπολογιστή.

Ομάδαμια σειρά που ορίζει το επόμενο βήμα.

Παράδειγμα ομάδες: C=A+B, όπου τα A, B είναι τελεστές, + είναι η πράξη.

Λειτουργία - αυτό πρέπει να κάνει ο υπολογιστής σύμφωνα με κάθε εντολή.

τελεστές - συμμετέχοντες στην επέμβαση, τι και με τι γίνεται η επέμβαση. Ένα σύνολο στοιχειωδών λειτουργιών από τις μεθόδους των περιγραφών τους σχηματίζει ένα σύστημα εντολών γλώσσας προγραμματισμού.

Παράδειγμα #1:

#συμπεριλαμβάνω

(void main(void) //κεφαλίδα της κύριας συνάρτησης του προγράμματος

έξω<< “Здравствуй, С!\ n”;

1 γραμμή: σύνδεση βοηθητικών βιβλιοθηκών που επικεντρώνονται στην είσοδο και έξοδο δεδομένων διαφορετικών τύπων σε μια ροή.

2η γραμμή:κεφαλίδα της κύριας λειτουργίας του προγράμματος. Χειριστής Cout για εμφάνιση πληροφοριών<< – помещение в класс данных, \n-переход к новой строке вывода.

Πρόγραμμα είναι μια ακολουθία εντολών που υλοποιούν έναν αλγόριθμο ένα σύνολο εντολών που καθορίζουν μοναδικά το περιεχόμενο και τη σειρά των πράξεων για την επίλυση προβλημάτων.

Χρήση του S.

1. Προγράμματα και δεδομένα.

2. Σχέδιο εκτέλεσης προγράμματος σε υπολογιστή:

Παράδειγμα #1:

#συμπεριλαμβάνω< stdio.h>

printf ("σπουδάζω στο BSUIR\ n");

Γραμμή 1: Η εντολή περιλαμβάνει προεπεξεργαστή περιλαμβάνει το αρχείο stdio.h, το οποίο περιγράφει τη λειτουργία βιβλιοθήκης printf.

Γραμμή 2: ορισμός μιας συνάρτησης που ονομάζεται main που δεν λαμβάνει ορίσματα. Η κύρια δήλωση περικλείεται σε σγουρά τιράντες. Η κύρια συνάρτηση καλεί τη συνάρτηση βιβλιοθήκης printf για να εκτυπώσει την καθορισμένη ακολουθία χαρακτήρων. Κάθετο (\n) - χαρακτήρας νέας γραμμής, μετάβαση σε νέα γραμμή.

Για να εκτελέσετε το πρόγραμμα σε ένα PCEM, πρέπει να κάνετε τα εξής:

1) Δημιουργήστε ένα πρόγραμμα σε γλώσσα προγραμματισμού.

2) Μεταφράστε το στο πρότυπο αυτής της γλώσσας.

3) Συνδέστε το με τα απαραίτητα προγράμματα και λειτουργίες.

4) Φόρτωση στη μνήμη RAM.

5) Εκτελέστε και λάβετε το αποτέλεσμα.


ΣΧΕΔΙΟ ΟΛΟΚΛΗΡΩΣΗΣ

Ο μεταφραστής είναι ένα πρόγραμμα υπολογιστή για τη μετάφραση ενός προγράμματος γραμμένου σε γλώσσα προγραμματισμού σε μορφή κατανοητή για έναν υπολογιστή. Η έξοδος του μεταγλωττιστή είναι ένα αρχείο με την επέκταση obj. Ένα εκτελέσιμο αρχείο ή μονάδα φόρτωσης είναι ένα αρχείο που περιέχει ένα πρόγραμμα μεταγλωττισμένο και έτοιμο για εκτέλεση. Το Borland C++ είναι ένα περιβάλλον ανάπτυξης προγράμματος που περιλαμβάνει και μεταγλωττιστή και κάποια άλλα εργαλεία.

Δομή προγράμματος σε γλώσσα C.

Κάθε πρόγραμμα C αποτελείται από μία ή περισσότερες συναρτήσεις και στοιχεία. Στις διάφορες λειτουργίες μπορεί να δοθεί οποιοδήποτε όνομα. Οι συναρτήσεις περιέχουν οδηγίες (εντολές) που ορίζουν ενέργειες σε ένα συγκεκριμένο βήμα εκτέλεσης και μια μεταβλητή αποθηκεύει τις τιμές που χρησιμοποιούνται κατά τη διάρκεια αυτών των ενεργειών. Τέτοιες ενέργειες μπορεί να είναι η εκχώρηση τιμών σε μεταβλητές ή ο έλεγχος κάποιας συνθήκης. Μια συνάρτηση με το όνομα main. Η εκτέλεση οποιουδήποτε προγράμματος ξεκινά με την κύρια συνάρτηση.

α) Γενική δομή ενός προγράμματος C χωρίς προσφυγή σε υπορουτίνα:

β) Γενική δομή ενός προγράμματος C με αναφορά στην υπορουτίνα:

Τα επιχειρήματα είναι ένας από τους μηχανισμούς αλληλεπίδρασης μεταξύ συναρτήσεων. Μια λίστα ορισμάτων σε παρένθεση ακολουθεί το όνομα της συνάρτησης. Τα σγουρά τιράντες σηματοδοτούν την αρχή και το τέλος ενός προγράμματος. Οδηγίες που απαρτίζουν το σώμα προγράμματος των τελεστών και των τελεστών. Στο C, κάθε πρόταση και κάθε γραμμή που καλεί μια συνάρτηση τελειώνει με ένα ερωτηματικό. Οι εξαιρέσεις είναι εντολές προεπεξεργαστή και ονόματα συναρτήσεων στην αρχή μιας μονάδας προγράμματος. Ο στόχος των περισσότερων προγραμμάτων είναι να λύσουν ένα πρόβλημα μέσω διαφόρων μετασχηματισμών των δεδομένων προέλευσης. Για αυτό είναι απαραίτητο.

Σύνθεση γλώσσας Σε ένα κείμενο σε οποιαδήποτε φυσική γλώσσα, διακρίνονται τέσσερα:
βασικά στοιχεία: σύμβολα, λέξεις, φράσεις και προτάσεις.
Η αλγοριθμική γλώσσα περιέχει επίσης παρόμοια στοιχεία:
Το αλφάβητο μιας γλώσσας, ή τα σύμβολά της, είναι τα βασικά αδιαίρετα σημάδια, με
με τη βοήθεια του οποίου γράφονται όλα τα κείμενα στη γλώσσα.
Λεξικό είναι μια ελάχιστη μονάδα γλώσσας που έχει ανεξάρτητο
έννοια.
Μια παράσταση καθορίζει έναν κανόνα για τον υπολογισμό μιας συγκεκριμένης τιμής.
Ο χειριστής καθορίζει μια πλήρη περιγραφή κάποιας ενέργειας.
Απαιτείται μια ακολουθία για την περιγραφή μιας πολύπλοκης ενέργειας
χειριστές. Οι τελεστές μπορούν να συνδυαστούν σε μια ένωση
τελεστή ή μπλοκ (εξετάζεται ένα μπλοκ στη γλώσσα C++
μια ακολουθία δηλώσεων που περικλείονται σε σγουρά άγκιστρα ( )).
Σε αυτή την περίπτωση, αντιμετωπίζονται ως μία δήλωση.
Κάθε στοιχείο μιας γλώσσας ορίζεται από τη σύνταξη και τη σημασιολογία.
Οι συντακτικοί ορισμοί θεσπίζουν κανόνες κατασκευής
στοιχεία της γλώσσας, και η σημασιολογία καθορίζει το νόημα και τους κανόνες τους
χρήση.
Ένα σύνολο περιγραφών και
Οι τελεστές σχηματίζουν ένα πρόγραμμα σε μια αλγοριθμική γλώσσα.

Διαδικασία εκτέλεσης προγράμματος

Για να εκτελέσετε το πρόγραμμα, πρέπει να το μεταφράσετε
σε γλώσσα κατανοητή από τον επεξεργαστή - σε κωδικούς μηχανής. Αυτό
η διαδικασία αποτελείται από διάφορα στάδια:
Πρώτα το πρόγραμμα περνά στον προεπεξεργαστή, ο οποίος
συνδέει αρχεία κειμένου που περιέχουν περιγραφή
στοιχεία που χρησιμοποιούνται στο πρόγραμμα.
Εισάγεται το πλήρες κείμενο του προγράμματος που προκύπτει
μεταγλωττιστής που εξάγει διακριτικά και στη συνέχεια βασίζεται σε
Η γραμματική της γλώσσας αναγνωρίζει εκφράσεις και τελεστές,
που κατασκευάστηκε από αυτά τα λεξήματα. Σε αυτήν την περίπτωση, ο μεταγλωττιστής εντοπίζει
συντακτικά λάθη και, ελλείψει αυτών, builds
μονάδα αντικειμένου.
Ο σύνδεσμος, ή ο επεξεργαστής συνδέσμων, δημιουργεί
εκτελέσιμη μονάδα προγράμματος, που συνδέεται με το αντικείμενο
ενότητα άλλες ενότητες αντικειμένων. Εάν το πρόγραμμα αποτελείται
από διάφορα αρχεία πηγής, μεταγλωττίζονται σύμφωνα με
χωριστά και συνδυασμένα στο στάδιο της διάταξης.
Η εκτελέσιμη μονάδα έχει την επέκταση .exe και μπορεί να είναι
δρομολογήθηκε για εκτέλεση.

Αλφάβητο γλώσσας C++

Το αλφάβητο Γ περιλαμβάνει:
κεφαλαία και πεζά γράμματα του λατινικού αλφαβήτου (A,B,...,Z, a, b,..., z) και και
υπογραμμίζω;
αριθμοί: 0,1,2,3,4,5,6,7,8,9
ειδικοί χαρακτήρες: " , () | () * + - / % \ ; " . :?< = >_! & # μη εμφανιζόμενοι χαρακτήρες ("κοινό κενό διάστημα"),
χρησιμοποιείται για να διαχωρίζει τα διακριτικά μεταξύ τους (για παράδειγμα, διάστημα,
καρτέλα, νέα γραμμή).
Από τα σύμβολα του αλφαβήτου
σχηματίζονται λεξήματα της γλώσσας:
αναγνωριστικά·
λέξεις-κλειδιά (δεσμευμένες) λέξεις?
σήματα λειτουργίας?
σταθερές?
οριοθέτες (παρενθέσεις, τελεία, κόμμα, κενό διάστημα).
Τα όρια διακριτικών καθορίζονται από άλλα διακριτικά, όπως π.χ
διαχωριστές ή πινακίδες λειτουργίας.

Αναγνωριστικά

Ένα αναγνωριστικό είναι το όνομα ενός αντικειμένου λογισμικού. ΣΕ
Μπορούν να χρησιμοποιηθούν λατινικά αναγνωριστικά
γράμματα, αριθμούς και κάτω παύλες. Κεφάλαια και
Τα πεζά γράμματα είναι διαφορετικά. Ο πρώτος χαρακτήρας
Το αναγνωριστικό μπορεί να είναι ένα γράμμα ή ένα σημάδι
υπογραμμίζοντας. Σε αυτή την περίπτωση:
Το αναγνωριστικό δεν πρέπει να ταιριάζει με το κλειδί
λέξεις και ονόματα των τυπικών που χρησιμοποιούνται
γλωσσικά αντικείμενα.
Δεν συνιστάται η έναρξη των αναγνωριστικών με σύμβολο
υπογράμμιση?
Τα αναγνωριστικά μπορούν να έχουν οποιοδήποτε μήκος, αλλά
ο μεταγλωττιστής λαμβάνει υπόψη όχι περισσότερο από τον 31ο χαρακτήρα από
αρχή του αναγνωριστικού·
Παραδείγματα αναγνωριστικών:
KOM_16, μέγεθος 88, _MIN, TIME, χρόνος

Λέξεις-κλειδιά

Οι λέξεις-κλειδιά είναι δεσμευμένα αναγνωριστικά που έχουν
ειδική σημασία για τον μεταγλωττιστή. Μπορούν να χρησιμοποιηθούν μόνο σε
την έννοια με την οποία ορίζονται. Δίνεται μια λίστα με λέξεις-κλειδιά C++
τραπέζι:
INT
ΑΠΑΝΘΡΑΚΩΝΩ
ΦΛΟΤΕΡ
ΔΙΠΛΟ
ΚΑΤΑΣΚΕΥΗ
ΕΝΩΣΗ
ΜΑΚΡΥΣ
ΜΙΚΡΟΣ
ΑΝΥΠΟΓΡΑΦΗ
ΑΥΤΟ
ΚΩΝΣΤ
ΑΛΗΘΗΣ
ΕΞΩΤΕΡΙΚΟ
ΜΗΤΡΩΟ
TYPEDEF
ΣΤΑΤΙΚΟΣ
GOTO
ΑΠΟΔΟΣΗ
ΜΕΓΕΘΟΣ
ΔΙΑΚΟΠΗ
ΣΥΝΕΧΙΖΩ
ΑΝ
ΚΕΝΟΣ
ΝΕΟΣ
ΑΛΛΟΥ
ΓΙΑ
ΚΑΝΩ
ΕΝΩ
ΔΙΑΚΟΠΤΗΣ
ΠΕΡΙΠΤΩΣΗ
ΑΘΕΤΗΣΗ
ΕΙΣΟΔΟΣ
ΚΑΙ
ΚΑΤΑΣΚΕΥΗ
TYPEDEF
ΜΠΟΥΛ

Σημάδια λειτουργίας

Ένα σημάδι λειτουργίας είναι ένα ή περισσότερα
σύμβολα που ορίζουν τη δράση
πάνω από τους τελεστές. Μέσα στην πινακίδα
δεν επιτρέπονται οι λειτουργίες χώρων.
Οι πράξεις χωρίζονται σε ενιαίες,
δυαδικό και τριαδικό κατά ποσότητα
εμπλεκόμενοι τελεστές.

Απλοί τύποι δεδομένων

Ο τύπος δεδομένων ορίζει:
εσωτερική αναπαράσταση δεδομένων στη μνήμη
ηλεκτρονικός υπολογιστής;
πολλές έννοιες που μπορούν
αποδεχτείτε τιμές αυτού του τύπου.
λειτουργίες και λειτουργίες που μπορεί να είναι
ισχύουν για ποσότητες αυτού του τύπου.
Η γλώσσα C++ ορίζει έξι πρότυπα
απλοί τύποι δεδομένων προς αναπαράσταση
ακέραιοι, πραγματικοί, σύμβολα και
λογικές ποσότητες.

Τύποι Δεδομένων
Οι προσδιοριστές τύπων περιλαμβάνουν:
απανθρακώνω
- συμβολικό
διπλή - πραγματική διπλή κινητή υποδιαστολή ακριβείας.
float - πραγματική κινητή υποδιαστολή.
int - ακέραιος;
μακρύς
- σύνολο αυξημένου μήκους (μακρύ ολόκληρο).
σύντομη - ακέραιος μειωμένου μήκους (μικρός ακέραιος).
υπογεγραμμένο - υπογεγραμμένο, δηλ. υπογεγραμμένος ακέραιος (λαμβάνεται υπόψη το πιο σημαντικό bit
εικονική);
ανυπόγραφο - ανυπόγραφο, δηλ. ανυπόγραφος ακέραιος (το πιο σημαντικό bit όχι
θεωρείται σημαντική)·
κενός
- έλλειψη νοήματος.
bool - λογικό (μπορεί να δέχεται μόνο αληθείς και ψευδείς τιμές.
Η εσωτερική μορφή αναπαράστασης της τιμής false είναι 0 (μηδέν).
Οποιαδήποτε άλλη τιμή ερμηνεύεται ως αληθής.)
Για να περιγράψετε σταθερές, χρησιμοποιήστε τη λέξη υπηρεσίας const πριν
περιγραφή τύπου. Για παράδειγμα, const float g=9,8;

10. Δομή προγράμματος C

Ένα πρόγραμμα C++ είναι
μία ή περισσότερες λειτουργίες. Μία από τις λειτουργίες
θα πρέπει να ονομάζεται main() . Είναι με αυτό
λειτουργία το πρόγραμμα αρχίζει να εκτελεί, και από
αυτή η λειτουργία, όπως απαιτείται,
καλούνται άλλες συναρτήσεις.
Ο απλούστερος ορισμός συνάρτησης έχει την ακόλουθη μορφή:
όνομα τύπου return ([ παράμετροι ])
{
δηλώσεις που αποτελούν το σώμα της συνάρτησης
}
Συνήθως, μια συνάρτηση χρησιμοποιείται για τον υπολογισμό ορισμένων
τιμές, οπότε το όνομα της συνάρτησης προηγείται από τον τύπο της. Αν
Η συνάρτηση δεν πρέπει να επιστρέψει μια τιμή ο τύπος είναι άκυρος.
Σε αυτή την περίπτωση:
– Το σώμα της λειτουργίας περικλείεται σε σγουρά σιδεράκια.
– Δεν είναι δυνατή η ένθεση των λειτουργιών.
– Κάθε πρόταση τελειώνει με ερωτηματικό (εκτός
σύνθετος χειριστής).

11. Δομή προγράμματος C

Ένα πρόγραμμα μπορεί να αποτελείται από πολλές ενότητες (αρχεία πηγής) και, κατά κανόνα,
περιέχει οδηγίες προεπεξεργαστή. Ένα παράδειγμα δομής προγράμματος που περιέχει
συναρτήσεις main, f1 και f2:
οδηγίες προεπεξεργαστή
περιγραφές
int main()
{
δηλώσεις κύριας συνάρτησης
}
int f1() (
τελεστές συνάρτησης f1
}
int f2() (
τελεστές συνάρτησης f2
}
/* Παράδειγμα απλού προγράμματος */
#συμπεριλαμβάνω
int main()
{
printf("Hello World!");
επιστροφή 0;
}

12. Λειτουργίες εισόδου/εξόδου τύπου C

Βασικές λειτουργίες εισόδου/εξόδου σε στυλ C:
int scanf (const char* format...) // input
int printf(const char* format...) // έξοδος
Εκτελούν μορφοποιημένη είσοδο και έξοδο ενός αυθαίρετου αριθμού τιμών σύμφωνα με μια συμβολοσειρά
μορφή μορφής. Η συμβολοσειρά μορφοποίησης περιέχει χαρακτήρες που, όταν εξάγονται, αντιγράφονται στη ροή (στην οθόνη) ή
ζητούνται από τη ροή (πληκτρολόγιο) καθώς πληκτρολογείτε και οι προδιαγραφές μετατροπής ξεκινούν από
σύμβολο %, οι οποίες αντικαθίστανται από συγκεκριμένες τιμές κατά την είσοδο και την έξοδο.
#συμπεριλαμβάνω
int main() (
int i?
printf("Εισαγάγετε έναν ακέραιο\n");
scanf("%d", &i);
printf("Εισαγάγατε τον αριθμό %d, ευχαριστώ!", i);
επιστροφή 0; )
Η πρώτη γραμμή αυτού του προγράμματος είναι μια οδηγία προεπεξεργαστή που εισάγει
αρχείο κεφαλίδας , που περιέχει μια περιγραφή των συναρτήσεων εισόδου/εξόδου που χρησιμοποιούνται στο πρόγραμμα. Ολοι
Οι οδηγίες προεπεξεργαστή ξεκινούν με το σύμβολο #.
Η τρίτη γραμμή είναι μια περιγραφή μιας μεταβλητής ακέραιου τύπου που ονομάζεται i.
Η συνάρτηση printf στη γραμμή τέσσερα εκτυπώνει το μήνυμα Enter an integer και μεταβαίνει σε μια νέα γραμμή
σύμφωνα με την ακολουθία διαφυγής \n.
Η συνάρτηση scanf τοποθετεί τον ακέραιο αριθμό που εισάγεται από το πληκτρολόγιο στη μεταβλητή i και εκτυπώνεται η ακόλουθη δήλωση
προβάλετε τη συμβολοσειρά που καθορίζεται σε αυτήν, αντικαθιστώντας την προδιαγραφή μετατροπής με την τιμή αυτού του αριθμού.

13. Λειτουργίες εισόδου/εξόδου σε στυλ C++

Το ίδιο πρόγραμμα χρησιμοποιώντας τη βιβλιοθήκη
Τάξεις C++ :
#συμπεριλαμβάνω
χρησιμοποιώντας namespace std?
int main()
{
int i?
cout<< "Введите целое число\n";
cin >> i;
cout<< "Вы ввели число" << i << ", спасибо!"; return 0;
}

14. Πρότυπες βιβλιοθήκες

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

15. Οδηγίες προεπεξεργαστή

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

16. Οδηγία προεπεξεργαστή # περιλαμβάνει

Για τη σύνδεση βιβλιοθηκών χρησιμοποιείται
οδηγία για τον προεπεξεργαστή
# περιλαμβάνει [όνομα αρχείου]
#include οδηγία<имя_файла>ένθετα
τα περιεχόμενα του καθορισμένου αρχείου σε εκείνο το σημείο
το αρχείο προέλευσης όπου έχει εγγραφεί.
Για παράδειγμα:
#συμπεριλαμβάνω
#include "mylib.h"

17. Οδηγία προεπεξεργαστή #define

Η οδηγία #define ορίζει την αντικατάσταση στο κείμενο
προγράμματα. Χρησιμοποιείται για τον προσδιορισμό
συμβολικές σταθερές.
Μορφή για τον ορισμό μιας συμβολικής σταθεράς:
#define name of wildcard_text /*Όλες οι εμφανίσεις
τα ονόματα αντικαθίστανται με το κείμενο αντικατάστασης */
Παραδείγματα:
#define M 1000
#define Vasia "Vasily Ivanovich"

18. Μερικές τυπικές βιβλιοθήκες

ΑΛΛΟΚ.Η
Περιγραφή των λειτουργιών διαχείρισης μνήμης
(κατανομή, κατανομή κ.λπ.)
BIOS.H
Περιγραφή των διαφόρων λειτουργιών που χρησιμοποιούνται όταν
πρόσβαση στις ρουτίνες του BIOS (βάση
σύστημα εισόδου/εξόδου).
CONIO.H Περιγραφή των διαφόρων λειτουργιών που χρησιμοποιούνται σε
πρόσβαση στις ρουτίνες DOS I/O με
πληκτρολόγια.
GRAPHICS.H Περιέχει πρωτότυπα λειτουργιών γραφικών.
MATH.H Περιέχει περιγραφή μαθηματικών πρωτοτύπων
λειτουργίες
STDIO.H Καθορίζει τους τύπους και τις μακροεντολές που απαιτούνται για
τυπικό πακέτο I/O. Ορίζει το ίδιο
τυπικές ροές εισόδου/εξόδου stdin, stdout και
περιγράφει τις ρουτίνες εισόδου/εξόδου.
Το STDLIB.H Περιγράφει ορισμένες ρουτίνες γενικού σκοπού:
ρουτίνες μετατροπής, αναζήτησης, ταξινόμησης και άλλα.
STRING.H
Περιγράφει διάφορες ρουτίνες επεξεργασίας συμβολοσειρών και
δουλεύοντας με τη μνήμη.

19. Λειτουργία εξόδου μορφής PRINTF

Έχουμε ήδη χρησιμοποιήσει τα πιο συνηθισμένα
η συνάρτηση εξόδου στο C είναι η υπορουτίνα printf. Αυτήν
ο σκοπός είναι η καταγραφή πληροφοριών στην οθόνη.
Η μορφή του είναι απλή και ευέλικτη:
printf(<строка формата>, <объект>, <объект>, ...);

20. Λειτουργία εισαγωγής μορφής SCANF

Για διαδραστική λειτουργία εισαγωγής μπορεί πιθανώς να χρησιμοποιηθεί σε
στις περισσότερες περιπτώσεις η λειτουργία σάρωσης. Το scanf είναι μια συνάρτηση εισόδου, που σημαίνει
ισοδυναμεί με printf? η μορφή του μοιάζει με αυτό:
scanf(<строка формата>,<адрес>,<адрес>,...)
Ωστόσο, το scanf έχει μια πολύ σημαντική διαφορά: τα αντικείμενα που ακολουθούν
Η συμβολοσειρά μορφοποίησης πρέπει να είναι διευθύνσεις, όχι τιμές. Για παράδειγμα, σε
Το πρόγραμμα περιέχει την ακόλουθη κλήση:
scanf("%d %d", &a, &b);
Αυτή η κλήση λέει στο πρόγραμμα ότι θα πρέπει να περιμένει είσοδο από εσάς
δύο δεκαδικοί (ακέραιοι) αριθμοί που χωρίζονται με κενό. το πρώτο θα είναι
ανατίθεται στο a, και το δεύτερο στο β. Σημειώστε ότι η λειτουργία που χρησιμοποιείται εδώ είναι
διευθύνει (&) για να περάσει τις διευθύνσεις a και b στη συνάρτηση scanf.

21. Μορφοποίηση συμβολοσειράς

Η συμβολοσειρά μορφοποίησης είναι η γραμμή που ξεκινά
και τελειώνει με διπλά εισαγωγικά ("σαν αυτό").
Ο σκοπός του printf είναι να γράψει αυτή τη συμβολοσειρά στην οθόνη. Προτού
Η έξοδος printf αντικαθιστά τα πάντα επιπλέον
καταχωρημένα αντικείμενα στη σειρά σύμφωνα με
με τις προδιαγραφές μορφής που καθορίζονται στο
η ίδια η γραμμή. Παράδειγμα δήλωσης printf:
printf(“ d= %f \n",d);

22. Μορφοποίηση συμβολοσειράς

Το %f στη συμβολοσειρά μορφής είναι μια προδιαγραφή μορφής. Ολοι
οι προδιαγραφές μορφής ξεκινούν με σύμβολο τοις εκατό (%) και
(συνήθως) συνοδεύεται από ένα μόνο γράμμα που υποδεικνύει τον τύπο
δεδομένα και πώς να τα μετατρέψετε.
Το %f που χρησιμοποιείται στις προδιαγραφές υποδεικνύει τι αναμένεται
κάποιο πραγματικό νούμερο. Ακολουθούν μερικές άλλες κοινώς χρησιμοποιούμενες προδιαγραφές μορφής:
- %u ανυπόγραφος ακέραιος
- %ld μακρύς ακέραιος
- %p τιμή δείκτη
- %d ακέραιος
- Το %e είναι ένας αριθμός κινητής υποδιαστολής σε εκθετική μορφή
- σύμβολο %c
- %s συμβολοσειρά
- %x ή %X ακέραιος σε δεκαεξαδική μορφή.

23. Μορφοποίηση συμβολοσειράς

Μπορείτε να ορίσετε το πλάτος του πεδίου τοποθετώντας το
μεταξύ % και ενός γράμματος, για παράδειγμα δεκαδικού πεδίου
Το πλάτος 4 καθορίζεται ως %4d. Η τιμή θα είναι
τυπωμένο μετατοπισμένο προς τα δεξιά (μπροστά
διαστήματα), οπότε το συνολικό πλάτος πεδίου είναι 4.
Ή για παράδειγμα το %6.2f θα σημαίνει ότι
6 θέσεις κατανέμονται για πραγματικούς αριθμούς,
και 2 – για το κλασματικό μέρος.
Εάν πρέπει να εκτυπώσετε το σύμβολο %, εισάγετε το %%.

24. Μορφοποίηση συμβολοσειράς

\n σε μια συμβολοσειρά δεν είναι προδιαγραφή μορφής, αλλά
χρησιμοποιείται (για ιστορικούς λόγους) ως
ακολουθία διαφυγής και αντιπροσωπεύει
ένας ειδικός χαρακτήρας που εισάγεται σε μια συμβολοσειρά. Σε αυτή την περίπτωση
\n εισάγει έναν χαρακτήρα στην αρχή μιας νέας γραμμής, οπότε
Μετά την έξοδο της γραμμής, ο κέρσορας θα μετακινηθεί στην αρχή μιας νέας
γραμμές.
- \f (μετάφραση μορφής ή εκκαθάριση οθόνης)
- \t (καρτέλα)
- \b (κάτω<-)
- \xhhh (εισαγάγετε έναν χαρακτήρα με κωδικό ASCII hhh, όπου hhh
περιέχει 1 έως 3 δεκαεξαδικά ψηφία)
Εάν πρέπει να εκτυπώσετε μια ανάστροφη κάθετο τότε
εισάγετε \\.

25. Παράδειγμα προγράμματος C

#συμπεριλαμβάνω
#συμπεριλαμβάνω
κύριος()
{
float x1,y1,x2,y2;
printf("Εισαγάγετε δύο αριθμούς: ");
scanf("%f %f %f %f",&x1,&y1,&x2,&y2);
float d = sqrt(pow((x2-x1),2)+pow((y2-y1),2));
printf(“d= %f \n”, d);
}

26. Άλλες λειτουργίες εξόδου PUTS, PUTCHAR

Υπάρχουν δύο άλλες λειτουργίες εξόδου που μπορούν να σας βοηθήσουν
ενδιαφέρον: βάζει και πουτσάρ. Η συνάρτηση puts εξάγει μια συμβολοσειρά σε
οθόνη και τερματίζει την έξοδο με χαρακτήρα νέας γραμμής.
Ας δούμε ένα παράδειγμα προγράμματος:
#συμπεριλαμβάνω
κύριος()
{
puts("Γεια σου, μαθητής του VKI NSU");
}
Σημειώστε ότι το \n παραλείπεται στο τέλος της γραμμής. αυτό δεν είναι απαραίτητο γιατί
βάζει τον εαυτό του προσθέτει αυτόν τον χαρακτήρα.
Αντίστροφα, η συνάρτηση putchar γράφει έναν μεμονωμένο χαρακτήρα
οθόνη και δεν προσθέτει \n. Ο τελεστής putchar(ch) είναι ισοδύναμος με
printf("%c",ch).

27. Λειτουργίες GETS, GETCH

κύριος()
{
όνομα char ;
printf("Ποιο είναι το όνομά σου: ");
scanf("%s",name);

}
Εάν εισάγετε ένα επώνυμο και ένα όνομα, θα εμφανιστεί μόνο το επίθετο. Επειδή
το διάστημα που εισάγετε μετά τα σήματα ονόματος σαρώνει το τέλος της εισόδου
γραμμές.
Μπορείτε να λύσετε αυτό το πρόβλημα χρησιμοποιώντας τη συνάρτηση gets.
κύριος()
{
όνομα char ;
printf("Ποιο είναι το όνομά σου: ");
παίρνει(όνομα);
printf("Γεια, %s\n", όνομα);
}

28. Λειτουργίες GETS, GETCH

#συμπεριλαμβάνω
#συμπεριλαμβάνω
κύριος()
{
clrscr();
όνομα char ;
printf("Ποιο είναι το όνομά σου: ");
παίρνει(όνομα);
printf("Γεια, %s\n", όνομα);
getch();
}
Εδώ η συνάρτηση getch περιμένει να εισαχθεί οποιοσδήποτε χαρακτήρας.
Η λειτουργία getch διαβάζει έναν χαρακτήρα από το πληκτρολόγιο χωρίς εκτύπωση
στην οθόνη (σε αντίθεση με το scanf and gets). Σημειώστε ότι δεν έχει
παράμετρος. Αν αντιστοιχίσουμε μια συνάρτηση σε μια συμβολική μεταβλητή, τότε
θα πάρει την τιμή του συμβόλου πατημένο.
Για παράδειγμα: c=getch();

29. Λειτουργία ανάθεσης

Η πιο κοινή λειτουργία είναι η ανάθεση.
για παράδειγμα p=a/b ή ch = getch(). Στο Γ
η ανάθεση υποδεικνύεται με ένα σημάδι
ισούται με (=); σε αυτήν την περίπτωση η τιμή στα δεξιά της πινακίδας
ισότητα εκχωρείται στη μεταβλητή στα αριστερά.
Μπορείτε επίσης να χρησιμοποιήσετε διαδοχικά
αναθέσεις, για παράδειγμα: sum=a= β. Σε τέτοια
στις περιπτώσεις που η ανάθεση γίνεται από δεξιά
προς τα αριστερά, δηλαδή, το b θα εκχωρηθεί στο a, το οποίο βρίσκεται μέσα
με τη σειρά του θα ανατεθεί στο άθροισμα, οπότε αυτό είναι
τρεις μεταβλητές θα έχουν την ίδια τιμή (και
δηλαδή, η αρχική τιμή του β).

30. Αριθμητικές πράξεις. Αύξηση. Μείωση.

Το C υποστηρίζει το συνηθισμένο σύνολο αριθμητικών πράξεων:
- πολλαπλασιασμός (*)
- διαίρεση (/)
- προσδιορισμός του υπολοίπου της διαίρεσης (%)
- προσθήκη (+)
- αφαίρεση (-)
Για να αυξήσετε την τιμή μιας μεταβλητής κατά ένα, χρησιμοποιήστε την αύξηση (++),
να μειωθεί κατά μία μείωση (--).
Ετσι:
x++; //αυξάνει το x κατά ένα
y--; // μειώνει το y κατά ένα
Παραδείγματα λειτουργιών postfix και prefix:
a=2;
a=2;
x=18-2*a++;
x=18-2*(++a);
Παίρνουμε:
a=3
a=3
x= 14
x=12

31. Συνδυασμένες λειτουργίες

Παρακάτω είναι μερικά παραδείγματα εκφράσεων
και τρόποι μείωσης τους:
a = a + b; μειώνεται σε a += b;
a = a - b; ανάγεται σε a -= b;
a = a * b; ανάγεται σε a *= b;
a = a / b; μειώνεται σε a /= b;
a = a % b; μειώνεται σε %= b;

32. Παράδειγμα 1

Υπολογίστε τα X3 και X10 χρησιμοποιώντας τέσσερις πράξεις πολλαπλασιασμού για
δίνεται ακέραια τιμή X.
#συμπεριλαμβάνω
int x,x2,x3,x5,x10;
κύρια () (
printf("\n Πρόγραμμα υπολογισμού για X^3 και X^10\n");
puts("Εισαγάγετε την τιμή X");
scanf("%i",&x);
x2=x*x;
x3=x*x2;
x5=x2*x3;
x10=x5*x5;
printf("%i στην 3η ισχύ = %i \n",x,x3);
printf("%i στη 10η ισχύ = %i",x,x10);
}

33. Παράδειγμα 2

Η γωνία δίνεται σε ακτίνια. Να υπολογίσετε το ημίτονο και το συνημίτονο μιας γωνίας.
#συμπεριλαμβάνω
#συμπεριλαμβάνω
Γωνία επίπλευσης,Αποτέλεσμα1,Αποτέλεσμα2;
κύριος()
{
printf("\nΠρόγραμμα για τον υπολογισμό της γωνίας αμαρτίας και cos\n");
puts("Ρύθμιση της γωνίας σε ακτίνια");
scanf("%f",&Angle);
Αποτέλεσμα1=αμαρτία(Γωνία);
Αποτέλεσμα2=cos(Γωνία);
printf("Το ημίτονο της γωνίας είναι %f \n",Αποτέλεσμα1);
printf("Το συνημίτονο της γωνίας είναι %f",Αποτέλεσμα2);

Συνιστούμε να διαβάσετε

Κορυφή