Εισαγωγή. Ανάπτυξη Συστημάτων Λογισμικού. Οργάνωση μαθήματος. #1. Εισαγωγή στον Προγραμματισμό

Σχετικά έγγραφα
Προγραμματισμός Η/Υ. Ενότητα 1: Εισαγωγή στον Προγραμματισμό

Μεθοδολογία. Aνάλυσης Προβλήµατος. Τι είναι αλγόριθµος? Σχεδιάσµος Αλγορίθµου

Αρχές Προγραμματισμού Υπολογιστών

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Εισαγωγή στον προγραμματισμό

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

ΕΠΛ 034: Εισαγωγήστον ΠρογραµµατισµόγιαΗΜΥ

Κεφάλαιο 1 Προγραμματισμός Υπολογιστή. Εφαρμογές Πληροφορικής Κεφ. 7 Καραμαούνας Πολύκαρπος 1

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

ΠαράδειγµαΠρογραµµατισµού

Δομημένος Προγραμματισμός

Εισαγωγή στον Προγραμματισμό

ΑΕΠΠ Ερωτήσεις θεωρίας

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

Πληροφορική 2. Γλώσσες Προγραμματισμού

ΚΑΤΑΝΟΗΣΗ ΑΝΑΛΥΣΗ ΕΠΙΛΥΣΗ. Ο προγραμματισμός ασχολείται με το σύνολο των εντολών που δίνονται στον υπολογιστή ώστε να υλοποιείται ο αλγόριθμος.

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

ΕΠΛ 131 ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Ι

Μαλούτα Θεανώ Σελίδα 1

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ

ΕΠΛ Εισαγωγή στον Προγραµµατισµό: Λογισµικό. Το λογισµικό του συστήµατος: 1 Εισαγωγή ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ. Ενότητα 1 η : Ανάπτυξη Λογισμικού & Προγραμματισμός

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ

Επιµέλεια Θοδωρής Πιερράτος

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Εισαγωγή στον Προγραμματισμό Μάθημα 4: Αλγόριθμοι και Γλώσσες Προγραμματισμού Δεκέμβριος 2015 Χ. Αλεξανδράκη

Α. Ερωτήσεις Ανάπτυξης

Προγραμματισμός Η/Υ. Ενότητα 3: Top Down Σχεδιασμός

Γλώσσες Προγραμματισμού Μεταγλωττιστές

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Στέφανος Ουγιάρογλου

6. Εισαγωγή στον προγραµµατισµό

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

Προγραμματισμός και Εφαρμογές Υπολογιστών

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ

6. 1 Η έννοια του προγράμματος

Προγραμματισμός I (Θ)

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία εξίσου σημαντικά στάδια.

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

Ενότητα 2 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

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

Βασικές Αρχές Προγραμματισμού

Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων. 1. Εισαγωγή. Ιωάννης Κατάκης. ΕΠΛ 032: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων

Εισαγωγή στην Ανάπτυξη Πληροφοριακών Συστημάτων

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 6 ο

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Εισαγωγή στον δομημένο προγραμματισμό

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Προγραµµατισµός Η/Υ. Μέρος2

Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ

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

ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY

Εισαγωγή στον Προγραμματισμό

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 3 : Γλώσσες προγραμματισμού. Δρ.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

Τεχνολογία Λογισµικού Ι Κεφάλαιο 5

Κεφάλαιο 1: Εισαγωγή. Αρχές Γλωσσών και Προγραμματισμού και Μεταφραστών. Γιάννης Γαροφαλάκης ΤΜΗΥΠ - Πανεπιστήμιο Πατρών

Μέρος Α. Λογισµικό & Προγράµµατα συστήµατος και εφαρµογών ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ. Το σηµερινό µάθηµα. Λογισµικό συστηµάτων & εφαρµογών

Κεφάλαιο 6 ο. Διαχείριση στοιχείων λογισμικού

Κεφάλαιο : Εισαγωγή Στον Προγραμματισμό. (Διάλεξη 2) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ. Περιεχόμενα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Μ Ε Ρ Ο Σ Γ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ

Διαδικασιακός Προγραμματισμός

ΕΠΛ 032 Προγραµµατισµός Μεθόδων Επίλυσης Προβληµάτων

ΕΠΛ 032 Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ. Γενική Περιγραφή

Π ρ ο γ ρ α μ μ α τ ι σ μ ό ς Β α σ ι κ έ ς έ ν ν ο ι ε ς Ι σ τ ο ρ ι κ ή α ν α δ ρ ο μ ή Η έννοια του προγράμματος Ιστορική αναδρομή

ΚΕΦΑΛΑΙΟ 6 Ο ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος

ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βήματα προς τη δημιουργία εκτελέσιμου κώδικα

Η γλώσσα προγραμματισμού C

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου

Εισαγωγή στην επιστήμη των υπολογιστών

Συμβολική γλώσσα Εκπαιδευτικού Υπολογιστή - Λογισμικό Υπολογιστών

ΑΕΠΠ Ερωτήσεις τύπου Σωστό-Λάθος

Transcript:

Εισαγωγή #. Εισαγωγή στον Προγραμματισμό Στόχοι Απόκτηση δεξιοτήτων στην επίλυση προβλημάτων με διαδικαστικό τρόπο (μέσω προγραμματισμού) Ανάπτυξη αλγοριθμικής σκέψης Θεμελίωση βασικών αρχών προγραμματισμού, αλγοριθμικών τεχνικών και δομών δεδομένων Σχεδίαση, υλοποίηση, εκτέλεση και αποσφαλμάτωση προγραμμάτων, καθώς και αξιολόγηση εναλλακτικών λύσεων Εκμάθηση μιας υψηλού επιπέδου γλώσσας προγραμματισμού (C) Τα παραπάνω αποτελούν βασικά εφόδια για ένα μηχανικό, και θα σας βοηθήσουν κατά τη συνέχεια των σπουδών σας στο Τμήμα Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης. Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης. Διδασκαλία μαθήματος Θεωρία Φροντιστήριο Εργαστήριο (6 ομάδες) Ιστοσελίδα μαθήματος Νέες ανακοινώσεις Σημειώσεις Διαλέξεων Πρόγραμμα Διαλέξεων Εργασίες Εξαμήνου Βιβλιογραφία Σχετικές Ιστοσελίδες Οργάνωση μαθήματος Ανάπτυξη Συστημάτων Λογισμικού Οι Η/Υ είναι σήμερα παντού 96: ~ Η/Υ : Δισεκατομμύρια Η/Υ Πληθώρα εφαρμογών Αυτοματοποίηση Απλοποίηση επίλυσης προβλήματος Αύξηση αποτελεσματικότητας Μείωση κόστους Κοινωνία Πληροφορικής Διαδίκτυο (Internet) Παγκόσμιος Ιστός Πληροφοριών (World Wide Web) Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης.3 Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης.4

Τεχνολογία Λογισμικού Η συστηματική εφαρμογή διαδικασιών, μεθόδων, εργαλείων και τεχνικών για την επίτευξη μιας καθορισμένης απαίτησης ενός συστήματος λογισμικού Ιστορικά στοιχεία 968 NATO Conference Στόχος: η επίλυση της «κρίσης» του λογισμικού (software crisis) Χτίσιμο μιας γέφυρας vs. «Χτίσιμο» ενός λειτουργικού συστήματος Τι γίνεται σε περίπτωση κατάρρευσης (collapse); Πολυπλοκότητα Συντήρηση Κύκλος Ζωής Λογισμικού (Software Life Cycle) Ο τρόπος που παράγουμε λογισμικό. Περιλαμβάνει: Μοντέλο κύκλου ζωής Άτομα που εμπλέκονται: αναλυτές, προγραμματιστές, managers,... Εργαλεία ανάπτυξης λογισμικού (CASE) Βασικές φάσεις κύκλου ζωής Ανάλυσης Απαιτήσεων (Requirements) Καθορισμού Προδιαγραφών (Specification) Σχεδιασμού (Design) Υλοποίησης (Implementation) Συνένωσης Κώδικα (Integration) Συντήρησης (Maintenance) Απόσυρσης (Retirement) Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης.5 Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης.6 Μοντέλα Κύκλου Ζωής Λογισμικού Μοντέλο «build and fix» Αφορούν τη σειρά των βημάτων μέσω των οποίων ένα προϊόν λογισμικού αναπτύσσεται Ανάπτυξη πρώτης έκδοσης (version) Ανάπτυξη Συντήρηση Παρέχουν οδηγίες για τις εργασίες που πρέπει να γίνουν, τη χρονική τους σειρά και τα κριτήρια μετάβασης από τη μία στην άλλη Υπάρχει ποικιλία μοντέλων Όλα έχουν δυνατά σημεία και αδύνατα σημεία Κριτήρια επιλογής οργάνωση management προσωπικό προϊόν Τροποποίηση μέχρι να ικανοποιηθεί ο πελάτης Δεν γίνεται καθορισμός προδιαγραφών Δεν γίνεται σχεδιασμός Κατάσταση λειτουργίας Απόσυρση Δουλεύει καλά μόνο σε περιπτώσεις που το λογισμικό δεν ξεπερνά τις - γραμμές κώδικα Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης.7 Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης.8

Μοντέλο καταρράκτη (waterfall model) Αρχιτεκτονική ενός Η/Υ Ανάλυση απαιτήσεων Επαλήθευση Καθορισμός προδιαγραφών Αλλαγμένες απαιτήσεις Επαλήθευση Έξοδος Πρωτεύουσα μνήμη Επαλήθευση Σχεδιασμός Επαλήθευση Ανάπτυξη Συντήρηση Κεντρική Μονάδα Επεξεργασίας Υλοποίηση Έλεγχος Συνένωση κώδικα Έλεγχος Είσοδος Πρόσβαση σε δευτερεύουσα μνήμη Κατάσταση λειτουργίας Απόσυρση Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης.9 Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης. Μητρική πλακέτα (motherboard) Βασική λειτουργία ΚΜΕ Motherboard Central Processing Unit Arithmetic & Logical Unit Registers Control Unit Primary Cache Memory Διεύθυνση Περιεχόμενο Address Bus Secondary Cache Memory Data Bus Main Memory 3 N - Μνήμη: Αποτελείται από ένα σύνολο κυψελίδων (memory cells). Κάθε κυψελίδα έχει μοναδική διεύθυνση και περιεχόμενο (μπορεί να είναι είτε εντολές είτε δεδομένα) Κύκλος Προσκόμισης και Εκτέλεσης Εντολής (Fetch- Execute Cycle) X=(N) X=X+ (N)=X X 49 + Ports Clock Είσοδος: Εντολές, Πρόγραμμα, Δεδομένα I/O Storage Έξοδος: Κατάσταση Προγράμματος, Αποτελέσματα, Λάθη N 49 Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης. Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης.

Βασική λειτουργία ΚΜΕ (συν.) Κύκλος Προσκόμισης και Εκτέλεσης Εντολής (Fetch- Execute Cycle) Βασική λειτουργία ΚΜΕ (συν.) Κύκλος Προσκόμισης και Εκτέλεσης Εντολής (Fetch- Execute Cycle) X=(N) X X=(N) X X=X+ 49 5 + X=X+ 5 + (N)=X (N)=X N 49 N 5 49 Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης.3 Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης.4 Φάση Υλοποίησης Μεταγλώττιση Αρχή Επεξεργασία πηγαίου κώδικα Μεταγλώττιση πηγαίου κώδικα Αρχείο test.c Μεταγλωττιστής (compiler) Λογισμικό το οποίο μεταφράζει γλώσσα υψηλού επιπέδου (στην οποία είναι γραμμένη ένα πρόγραμμα) σε γλώσσα μηχανής (η οποία είναι «κατανοητή» από τον Η/Υ) Εξαρτάται από τη γλώσσα Παράμετροι (βλ. εγχειρίδιο χρήσης) Βιβλιοθήκες, (object) αρχεία NAI Συντακτικά λάθη; Σύνδεση OXI Εκτέλεση Αρχείο test.obj Αρχείο test.exe <όνομα μεταγλωττιστή> [<λίστα παραμέτρων>] <όνομα αρχείου> > wcc test > gcc c test.c Πλήρως αυτοματοποιημένη διαδικασία /* Ένα απλό πρόγραμμα σε C*/ #include <stdio.h> main() { printf( hello world ); } NAI Λάθη; OXI Τέλος Ανεύρεση λαθών Παράλειψη τελευταίας αγκύλης > Error! E77: Missing } > Parse error at end of input Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης.5 Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης.6

Σύνδεση Ακολουθεί τη μεταγλώττιση Είναι κι αυτή πλήρως αυτοματοποιημένη Στα περισσότερα περιβάλλοντα ανάπτυξης, καλείται αυτόματα (χωρίς μεσολάβηση του προγραμματιστή) μετά από επιτυχημένη μεταγλώττιση Περίπτωση gcc Αποτέλεσμα σύνδεσης Δημιουργία εκτελέσιμου (executable) κώδικα, ή Αναφορά προβλημάτων Π.χ. αδυναμία εντοπισμού μιας συνάρτησης ή μιας εξωτερικής μεταβλητής Δυνατότητες Σύνδεση περισσοτέρων του ενός αρχείων αντικείμενου (object) κώδικα Αναζήτηση συναρτήσεων (π.χ. printf) σε βιβλιοθήκες #include <stdio.h> Βασικές μορφές (στυλ) προγραμματισμού Διαδικασιακός ή Προστακτικός Δεδομένα και ενέργειες (actions) C, Pascal, Ada, Algol, Fortran Αντικειμενοστραφής Αντικείμενο (object) Κληρονομικότητα, π.χ. C++, Smalltalk, Java, Simula Συναρτησιακός Συνάρτηση (function) Lisp, Miranda, ML Λογικός Μηχανισμός εξαγωγής συμπερασμάτων Prolog Προσοχή: Στην πράξη, μια γλώσσα προγραμματισμού σπάνια υποστηρίζει μια μόνο μορφή προγραμματισμού Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης.7 Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης.8 Γλώσσες Προγραμματισμού Γλώσσες Υψηλού Επιπέδου (High Level Language) Ανεξάρτητες του Η/Υ Συνδυάζουν αγγλικές λέξεις και «συνήθεις» μαθηματικούς συμβολισμούς Συχνά, είναι προσανατολισμένες στην επίλυση προβλημάτων συγκεκριμένου τύπου COBOL: επεξεργασία επιχειρησιακών δεδομένων BASIC: Beginners All-purpose Symbolic Instruction Code Γλώσσες Χαμηλού Επιπέδου (Low Level Language) Κατανοητές από («εξαρτημένες» με) συγκεκριμένη Κεντρική Μονάδα Επεξεργασίας Γλώσσα Μηχανής (machine language) Γλώσσα δυαδικών εντολών Συμβολική Γλώσσα (assembly language) Χρήση μνημονικών κωδικών που αντιστοιχούν σε εντολές της γλώσσας μηχανής (δύσχρηστη) LOAD MASS MPY ACCEL_CONST STORE FORCE Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης.9 Γιατί C; Εναλλακτικές χρήσεις Γλώσσα προγραμματισμού χαμηλού επιπέδου Άμεση πρόσβαση στους πόρους του Η/Υ Γλώσσα προγραμματισμού υψηλού επιπέδου Πληθώρα διαθέσιμων βιβλιοθηκών Μικρή (σχετικά) και εύκολη στην εκμάθηση Υποστήριξη top-down και αρθρωτού (modular) σχεδιασμού Υποστήριξη δομημένου (structured) προγραμματισμού Αποτελεσματική Συμπαγή και γρήγορα στην εκτέλεση προγράμματα Φορητή, ευέλικτη και με ισχυρές δυνατότητες Ευρύτατα χρησιμοποιούμενη γλώσσα Μαζί με τις C++ και Java Πολύ καλό εφόδιο για το «πέρασμα» στον αντικειμενοστραφή προγραμματισμό Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης.

Προγραμματισμός Ανάπτυξη αλγορίθμων και υλοποίηση τους σε γλώσσες προγραμματισμού για την επίλυση προβλημάτων Μεθοδολογία Ορισμός προβλήματος Ανάλυση προβλήματος Δεδομένα (inputs), αποτελέσματα, εξαγόμενα (outputs) Τι πρέπει να γίνει Ανάπτυξη αλγορίθμου επίλυσης προβλήματος Υλοποίηση αλγορίθμου (πρόγραμμα) Δοκιμή και επαλήθευση Αποσφαλμάτωση (προηγούμενα βήματα) Συντήρηση Διορθωτική Επαυξητική Τελειοποίησης Προσαρμογής Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης. Αλγόριθμος Πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος Αναπαράσταση / διατύπωση της διαδικασίας μετασχηματισμού δεδομένων στα επιθυμητά αποτελέσματα Ψευδοκώδικας (pseudocode) Σχεδιασμός αλγορίθμου Σταδιακή εκλέπτυνση (stepwise refinement) από πάνω προς τα κάτω (top-down design) Το αρχικό πρόβλημα διασπάται σταδιακά σε απλούστερα Π προβλήματα Η σταδιακή αυτή διάσπαση (εκλέπτυνση) συνεχίζεται μέχρις ότου φτάσουμε σε προβλήματα που δεν είναι δυνατό να διασπασθούν περαιτέρω Π Π Επαλήθευση και Αξιολόγηση Π. Π. Π.3 Π. Π. Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης. Σταδιακή εκλέπτυνση Σπονδυλωτός σχεδιασμός (modular design) Αφαιρετικότητα (abstraction) Διαχωρισμός ανάμεσα στο τι και το πώς Διάφορα επίπεδα αφαιρετικότητας Διατύπωση διαπροσωπειών (interface) και διασυνδέσεων Παράμετροι εισόδου και εξόδου (input/output, I/O) Λειτουργικότητα Παράλληλη ανάπτυξη (parallel development) Επαναχρησιμοποίηση (reuse) Επαλήθευση και Αξιολόγηση Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης.3 Αφαιρετικότητα Αφαιρετικότητα μεθοδολογίας Ορισμός προβλήματος Ανάλυση προβλήματος Ανάπτυξη αλγορίθμου επίλυσης προβλήματος Υλοποίηση αλγορίθμου (πρόγραμμα) Δοκιμή και επαλήθευση Συντήρηση Ανεξάρτητα της γλώσσας προγραμματισμού Αλγόριθμος Αφαιρετικότητα αλγορίθμου Τι κάνει κι όχι πως θα υλοποιηθεί C Fortran Basic Αφαιρετικότητα προγράμματος Τι κάνει ένα πρόγραμμα κι όχι πως το κάνει Διαδικασίες και Συναρτήσεις Αφαιρετικότητα δεδομένων Τι είναι τα δεδομένα κάποιας δομής ή τύπου κι όχι πως είναι οργανωμένα Αφαιρετικότητα εντολών Τι κάνει μια εντολή κι όχι πως το κάνει Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης.4

Ένα απλό παράδειγμα Ορισμός Να γραφεί πρόγραμμα που να υπολογίζει το εμβαδόν ενός ορθογωνίου Εμβαδόν = Μήκος * Πλάτος Ανάλυση Δεδομένα: δύο πραγματικοί αριθμοί Αποτέλεσμα: ένας πραγματικός αριθμός Ένα απλό παράδειγμα (συν.) Ανάπτυξη αλγορίθμου Διάβασε τα δεδομένα διάβασε_δεδομένα(μήκος, πλάτος) Υπολόγισε το εμβαδόν ε=υπολόγισε_εμβαδόν(μήκος, πλάτος) Προβολή αποτελέσματος προβολή_αποτελ(μήκος, πλάτος, ε) Π: Πρόβλημα Ανάπτυξη αλγορίθμου Διάβασε τα δεδομένα Υπολόγισε το εμβαδόν Προβολή αποτελέσματος Π: Διάβασε δεδομένα Π: Υπολόγισε εμβαδόν Π3: Πρόβαλε αποτελέσματα Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης.5 Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης.6 Ένα απλό παράδειγμα (συν.) Ένα απλό παράδειγμα (συν.) Παράμετροι και Λειτουργικότητα Π: Πρόβλημα Παράμετροι Ι/Ο Λειτουργικότητα Π Διαβάζει και επιστρέφει δύο τιμές (μήκος, πλάτος) Διάβασε μήκος και πλάτος Έλεγξε αν είναι θετικά Π: Διάβασε δεδομένα Π: Υπολόγισε εμβαδόν Π3: Πρόβαλε αποτελέσματα Π Π3 Λαμβάνει δύο παραμέτρους (μήκος, πλάτος) Επιστρέφει εμβαδόν Λαμβάνει τρεις παραμέτρους (μήκος, πλάτος, εμβαδόν) Υπολόγισε εμβαδόν (εμβαδόν=μήκος*πλάτος) Πρόβαλε το αποτέλεσμα Π.: Διάβασε μήκος και πλάτος Π.: Έλεγχος Π.: εμβαδόν = μήκος * πλάτος Π3.: Πρόβαλε μήκος, πλάτος και εμβαδόν Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης.7 Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης.8

Ένα απλό παράδειγμα (συν.) Περαιτέρω εκλέπτυνση του Π get(μήκος) /* διάβασε μήκος */ get(πλάτος) /* διάβασε πλάτος */ /* έλεγχος για μήκος */ if (μήκος<=) print( λάθος τιμή για μήκος ) exit /* έλεγχος για πλάτος */ if (πλάτος<=) print( λάθος τιμή για πλάτος ) exit Ένα απλό παράδειγμα (συν.) Υλοποίηση Επιτυχής υλοποίηση προϋποθέτει γνώση γλώσσας προγραμματισμού Χρησιμοποίηση ονομάτων που βοηθούν στην εύκολη ερμηνεία του κώδικα Τεκμηρίωση Να συμπεριλαμβάνετε σχόλια στον κώδικα σας Εκτέλεση προγράμματος Επαλήθευση και αξιολόγηση λύσεων (ταχύτητα κλπ.) Μηνύματα προς τον χρήστη Enter length in meters 7 Enter width in meters The area of a rectangle with 7 m length and m width is 34 sq.m Enter length in meters -.5 Enter width in meters error: length should be positive Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης.9 Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης.3