ΕΠΛ 033: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ …...αλγόριθμος...
TRANSCRIPT
![Page 1: ΕΠΛ 033: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ …...αλγόριθμος πρόγραμμα εκτελέσιμο αρχείο π.χ. κώδικας σε C 00101010010101111011101](https://reader034.vdocuments.pub/reader034/viewer/2022050608/5faf306b11647c1e2f4a2925/html5/thumbnails/1.jpg)
ΕΠΛ 033: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΓΙΑ ΜΗΧΑΝΙΚΟΥΣ
Μάριος Belk, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου
Email: [email protected]
![Page 2: ΕΠΛ 033: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ …...αλγόριθμος πρόγραμμα εκτελέσιμο αρχείο π.χ. κώδικας σε C 00101010010101111011101](https://reader034.vdocuments.pub/reader034/viewer/2022050608/5faf306b11647c1e2f4a2925/html5/thumbnails/2.jpg)
Προγραμματισμός1
υπολογιστικό πρόβλημα
αλγόριθμος
πρόγραμμα
εκτελέσιμο αρχείο
π.χ. κώδικας σε C
001010100101011110111010101011010010010011010101010001010100
1. Αρχή.2. Διάβασε x.3. Τύπωσε x*x.4. Τέλος.
Δίνεται ακέραιος x. Να υπολογιστεί το τετράγωνό του, x2.
Προγραμματισμός: η διαδικασία του να επινοήσουμε αλγόριθμο και να συντάξουμε πρόγραμμα.
Εκτελέσιμο αρχείο: αλγόριθμος σε μορφή κατανοητή από τον Η/Υ.
Πρόγραμμα: αλγόριθμος σε τυπική μορφή
Μεταγλώττιση (compilation)
![Page 3: ΕΠΛ 033: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ …...αλγόριθμος πρόγραμμα εκτελέσιμο αρχείο π.χ. κώδικας σε C 00101010010101111011101](https://reader034.vdocuments.pub/reader034/viewer/2022050608/5faf306b11647c1e2f4a2925/html5/thumbnails/3.jpg)
Τι μάθαμε μέχρι τώρα;
Ποια είναι τα βασικά τμήματα ενός Η/Υ Τι είναι πρόγραμμα Τι είναι λογισμικό Τι είναι προγραμματισμός Ποιος είναι ο κύκλος ανάπτυξης προγράμματος
![Page 4: ΕΠΛ 033: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ …...αλγόριθμος πρόγραμμα εκτελέσιμο αρχείο π.χ. κώδικας σε C 00101010010101111011101](https://reader034.vdocuments.pub/reader034/viewer/2022050608/5faf306b11647c1e2f4a2925/html5/thumbnails/4.jpg)
ΕΙΣΑΓΩΓΗ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C
3
![Page 5: ΕΠΛ 033: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ …...αλγόριθμος πρόγραμμα εκτελέσιμο αρχείο π.χ. κώδικας σε C 00101010010101111011101](https://reader034.vdocuments.pub/reader034/viewer/2022050608/5faf306b11647c1e2f4a2925/html5/thumbnails/5.jpg)
Εισαγωγή στη C
Σαν κάθε γλώσσα έχει «λεξιλόγιο» εντολές τελεστές σημεία στίξης
συντακτικούς κανόνες για ονόματα μεταβλητών σύνταξη μαθηματικών εκφράσεων σύνταξη εντολών
printfscanfifcasewhilecharintvoid
*/+-===&&||
;(),/**///
![Page 6: ΕΠΛ 033: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ …...αλγόριθμος πρόγραμμα εκτελέσιμο αρχείο π.χ. κώδικας σε C 00101010010101111011101](https://reader034.vdocuments.pub/reader034/viewer/2022050608/5faf306b11647c1e2f4a2925/html5/thumbnails/6.jpg)
Ένα πρόγραμμα στη C
Κάθε πρόγραμμα έχει µία συνάρτηση µε το όνομα main από όπου αρχίζει η εκτέλεση του προγράμματος Σύνταξη: voidmain (void)
{}
Το σώμα μίας συνάρτησης αποτελείται από δηλώσεις μεταβλητών και εντολές
#include <stdio.h>voidmain ( void ){int a;a = 5;printf( ″Hello %d\n” , a ) ;
}
εντολές σώμα συνάρτησης main
![Page 7: ΕΠΛ 033: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ …...αλγόριθμος πρόγραμμα εκτελέσιμο αρχείο π.χ. κώδικας σε C 00101010010101111011101](https://reader034.vdocuments.pub/reader034/viewer/2022050608/5faf306b11647c1e2f4a2925/html5/thumbnails/7.jpg)
Ανάλυση προγράμματος
Αποτέλεσμα:
#include <stdio.h>voidmain ( void ){int a;a = 5;printf( ″Hello %d\n” , a ) ;
}
Hello 5
![Page 8: ΕΠΛ 033: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ …...αλγόριθμος πρόγραμμα εκτελέσιμο αρχείο π.χ. κώδικας σε C 00101010010101111011101](https://reader034.vdocuments.pub/reader034/viewer/2022050608/5faf306b11647c1e2f4a2925/html5/thumbnails/8.jpg)
Ανάλυση
#include <stdio.h> Περιέχεται στην αρχή κάθε προγράμματος και περιλαμβάνει οδηγίες για τον προεπεξεργαστή
main ( ) Το σημείο έναρξης του προγράμματος είναι η «κύρια» συνάρτηση main
{ } Δηλώνουν τον χώρο των εντολών, οι οποίες περιλαμβάνονται στη συνάρτηση main και πρέπει να εκτελεσθούν
![Page 9: ΕΠΛ 033: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ …...αλγόριθμος πρόγραμμα εκτελέσιμο αρχείο π.χ. κώδικας σε C 00101010010101111011101](https://reader034.vdocuments.pub/reader034/viewer/2022050608/5faf306b11647c1e2f4a2925/html5/thumbnails/9.jpg)
Ανάλυση
printf () Είναι μια συνάρτηση της βιβλιοθήκης της C και εμφανίζει στην
οθόνη ότι δίνεται μέσα στην παρένθεση \n οδηγεί τον κέρσορα (cursor) να πάει στην επόμενη γραμμή
scanf () Διαβάζει από την προκαθορισμένη είσοδο (από το χρήστη)
; όλες οι δηλώσεις των C‐προγραμμάτων καταλήγουν σε αυτό το
σύμβολο (semicolon). Χρησιμοποιείται προκειμένου να φανεί που τελειώνει μια δήλωση
/* */ Μεταξύ των συμβόλων αυτών γράφονται τα σχόλια.
![Page 10: ΕΠΛ 033: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ …...αλγόριθμος πρόγραμμα εκτελέσιμο αρχείο π.χ. κώδικας σε C 00101010010101111011101](https://reader034.vdocuments.pub/reader034/viewer/2022050608/5faf306b11647c1e2f4a2925/html5/thumbnails/10.jpg)
Μεταγλώττιση
Πηγαίοςκώδικας(source)
ΜεταγλωττιστήςC (compiler)
Αρχείαεπικεφαλίδας(header files)
Εκτελέσιμοπρόγραμμα(executable)
hello.c
hello
stdio.h
![Page 11: ΕΠΛ 033: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ …...αλγόριθμος πρόγραμμα εκτελέσιμο αρχείο π.χ. κώδικας σε C 00101010010101111011101](https://reader034.vdocuments.pub/reader034/viewer/2022050608/5faf306b11647c1e2f4a2925/html5/thumbnails/11.jpg)
Σχόλια Ενσωμάτωση βιβλιοθηκών Μεταβλητές και Τύποι δεδομένων
int, char, float, double
Τελεστές = + ‐ * / %
Αριθμητικές εκφράσεις a+b, …
10
Τι θα μάθουμε στα επόμενα μαθήματα
![Page 12: ΕΠΛ 033: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ …...αλγόριθμος πρόγραμμα εκτελέσιμο αρχείο π.χ. κώδικας σε C 00101010010101111011101](https://reader034.vdocuments.pub/reader034/viewer/2022050608/5faf306b11647c1e2f4a2925/html5/thumbnails/12.jpg)
Σύνταξη /* ξεκινούν τα σχόλια, τελειώνουν τα σχόλια */ // Έτσι επιτρέπεται να βάλουμε σχόλια σε μία γραμμή (χωρίς
//να τα κλείσουμε)
Ο μεταγλωττιστής τα αγνοεί αλλά τα σχόλια αποτελούν πολύ σημαντικό μέρος ενός προγράμματος/* auto einai ena syntaktika ortho sxolio*//* kai auto* einai* syntaktika* ortho*/
Σχόλια στη C
![Page 13: ΕΠΛ 033: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ …...αλγόριθμος πρόγραμμα εκτελέσιμο αρχείο π.χ. κώδικας σε C 00101010010101111011101](https://reader034.vdocuments.pub/reader034/viewer/2022050608/5faf306b11647c1e2f4a2925/html5/thumbnails/13.jpg)
Παράδειγμα 1
/*program example1.cthis program prints on your screen the expressionUniversity of Cyprus*/
#include <stdio.h> // use of pre‐processorintmain ( ){printf ("University of Cyprus\n"); /* printing University of Cyprus */return 0;
}
![Page 14: ΕΠΛ 033: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ …...αλγόριθμος πρόγραμμα εκτελέσιμο αρχείο π.χ. κώδικας σε C 00101010010101111011101](https://reader034.vdocuments.pub/reader034/viewer/2022050608/5faf306b11647c1e2f4a2925/html5/thumbnails/14.jpg)
Παράδειγμα 2
/************************************************* PROJECT: P1** FILE NAME: example1.c** AUTHOR: James Hetfield** DATE: 11 September 2017***********************************************/ #include <stdio.h> /*use of pre‐processor*/intmain ( ){printf ("University of Cyprus\n"); /*use of printf*/return 0;}
![Page 15: ΕΠΛ 033: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ …...αλγόριθμος πρόγραμμα εκτελέσιμο αρχείο π.χ. κώδικας σε C 00101010010101111011101](https://reader034.vdocuments.pub/reader034/viewer/2022050608/5faf306b11647c1e2f4a2925/html5/thumbnails/15.jpg)
Παράδειγμα 3
/*************************************************** EPL033 Eisagwgh sto Programmatismo gia Mhxanikous** AUTHOR: Kwnstantinos Palaiologos** ID: 1234566** DATE: 20 January 1453** FILE NAME: example1.c*************************************************/ /* this program prints on your screen the expression University of Cyprus */#include <stdio.h> /*use of pre‐processor*/intmain ( ){printf ("University of Cyprus\n");return 0;}
![Page 16: ΕΠΛ 033: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ …...αλγόριθμος πρόγραμμα εκτελέσιμο αρχείο π.χ. κώδικας σε C 00101010010101111011101](https://reader034.vdocuments.pub/reader034/viewer/2022050608/5faf306b11647c1e2f4a2925/html5/thumbnails/16.jpg)
/* auto * ti* einai */Σωστό!
/***********auto??? ***************/Σωστό!
/* swsto ‘h lathos? */ giati */Λάθος!
*/ einai lathos??? /*Λάθος!
Σωστό ή λάθος;
![Page 17: ΕΠΛ 033: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ …...αλγόριθμος πρόγραμμα εκτελέσιμο αρχείο π.χ. κώδικας σε C 00101010010101111011101](https://reader034.vdocuments.pub/reader034/viewer/2022050608/5faf306b11647c1e2f4a2925/html5/thumbnails/17.jpg)
Ενσωμάτωση βιβλιοθηκών
#include Οδηγία στον προεπεξεργαστή για ενσωμάτωση βιβλιοθηκώνΜια βιβλιοθήκη (library ή header file) είναι μια συλλογή χρήσιμων συναρτήσεων και σταθερών
Σύνταξη: #include <standard header file>#include “user‐defined header file”
Παράδειγμα: #include <stdio.h>#include <math.h>#include “to_diko_mou_arxeio.h”
![Page 18: ΕΠΛ 033: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ …...αλγόριθμος πρόγραμμα εκτελέσιμο αρχείο π.χ. κώδικας σε C 00101010010101111011101](https://reader034.vdocuments.pub/reader034/viewer/2022050608/5faf306b11647c1e2f4a2925/html5/thumbnails/18.jpg)
Ενσωμάτωση βιβλιοθηκών (συν.)
Ενσωμάτωση επιτρέπει την χρήση συναρτήσεων και σταθερών μιας βιβλιοθήκης
π.χ. η βιβλιοθήκη stdio περιέχει, ανάμεσα σε άλλα, τιςσυναρτήσεις: printf, για εκτύπωση πληροφοριών, και scanf, για εισδοχή πληροφοριών
Άλλες διαταγές στον προεξεργαστή: #define, #ifdef, #if, #else, #endif, #undef
![Page 19: ΕΠΛ 033: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ …...αλγόριθμος πρόγραμμα εκτελέσιμο αρχείο π.χ. κώδικας σε C 00101010010101111011101](https://reader034.vdocuments.pub/reader034/viewer/2022050608/5faf306b11647c1e2f4a2925/html5/thumbnails/19.jpg)
Ονόματα στην C
Κανόνες ονοματολογίας (σταθερές, μεταβλητές, συναρτήσεις): Τα ονόματα μεταβλητών μπορούν να περιέχουν γράμματα, ψηφία, και _ Τα ονόματα μεταβλητών πρέπει να ξεκινάνε με γράμματα Η C είναι CASE SENSITIVE
κεφαλαία και μικρά γράμματα είναι διαφορετικά! παράδειγμα: int foo; και int FOO; είναι δυο διαφορετικά ονόματα
Απαγορεύεται να χρησιμοποιούμε σαν ονόματα τις δεσμευμένες λέξεις(βλέπε επόμενη διαφάνεια)
Καλή Πρακτική: Να χρησιμοποιείτε αυτοεπεξηγηματικά ονόματα
![Page 20: ΕΠΛ 033: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ …...αλγόριθμος πρόγραμμα εκτελέσιμο αρχείο π.χ. κώδικας σε C 00101010010101111011101](https://reader034.vdocuments.pub/reader034/viewer/2022050608/5faf306b11647c1e2f4a2925/html5/thumbnails/20.jpg)
Δεσμευμένες Λέξεις (Reserved Words)
Λέξεις με ειδική σημασία για την C Δεν πρέπει να ορίζονται ξανά σαν ονόματα
auto double int structbreak else long switchcase enum register typedefchar extern return unionconst float short unsigned
continue for signed voiddefault goto sizeof volatiledo if static while
![Page 21: ΕΠΛ 033: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ …...αλγόριθμος πρόγραμμα εκτελέσιμο αρχείο π.χ. κώδικας σε C 00101010010101111011101](https://reader034.vdocuments.pub/reader034/viewer/2022050608/5faf306b11647c1e2f4a2925/html5/thumbnails/21.jpg)
Σύνταξη Ονόματος
L: letters a‐z A‐ZN: numbers 0‐9_ : underscore
Παραδείγματα (σωστό η λάθος;): int metavliti; int rectangle_area; int _index_123;
int 1variable; int %super^; int se tria meroi;
(σωστό)
(σωστό)(σωστό)
(λάθος)(λάθος)
(λάθος)
Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων · ΕΠΛ 032: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΜΕ ΤΗ ΓΛΩΣΣΑ C++...Η μακροανάπτυξη δεν γίνεται όταν το όνομα της μακροεντολής ευρεθεί