Εισαγωγή στην πληροφορική

Σχετικά έγγραφα
Εισαγωγή στην πληροφορική

Εισαγωγή στην πληροφορική

Εισαγωγή στην πληροφορική

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

Προγραµµατιστικές Τεχνικές

Εισαγωγή στην πληροφορική

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

Εισαγωγή στην πληροφορική

Περιγραφή αλγορίθµων. ιαγράµµατα ροής

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

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

Εισαγωγή στην πληροφορική

Προγραµµατιστικές τεχνικές

Εισαγωγή στην πληροφορική

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

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

Πληροφορική 2. Αλγόριθμοι

Εισαγωγή στην πληροφορική

ΛΟΓΙΚΑ ΔΙΑΓΡΑΜΜΑΤΑ. Γ Λυκείου Κατεύθυνσης Mike Trimos

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

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

Λογισµικό (Software SW) Γλώσσες

Εισαγωγή στην Τεχνολογία Λογισµικού

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

Εισαγωγή στην Τεχνολογία Λογισµικού

Απλοποιεί τα γεγονότα έτσι ώστε να περιγράφει τι έχει γίνει και όχι πως έχει γίνει.

Τεχνολογία Λογισμικού

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Εισαγωγή στην Τεχνολογία Λογισµικού

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

Εισαγωγή στην πληροφορική

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

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

Εισαγωγή στην πληροφορική

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

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

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

Εισαγωγή στην πληροφορική

Rational Unified Process:

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2

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

Φρ. Κουτελιέρης. Επίκουρος Καθηγητής Παν/µίου Ιωαννίνων ΠΛΗΡΟΦΟΡΙΚΗ Ι

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

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

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων

Κεφάλαιο 10ο. ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ιαδικασίες - Συναρτήσεις

Σκοπός του μαθήματος

Προγραμματιστικές Τεχνικές

Προγραμματιστικές τεχνικές

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

Περιεχόµενα του µαθήµατος 1. στον προγραµµατισµό 2. Λογικά διαγράµµατα 3. Τα βασικά της FORTRAN 4. Μεταβλητές & παράµετροι 5. οµές επανάληψης 6. οµές

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

Προγραµµατιστικές τεχνικές

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

Τεχνολογία Λογισµικού Ι Κεφάλαιο 3 Μια αναλυτικότερη προσέγγιση στην δραστηριότητα 3.10

Μεθόδων Επίλυσης Προβλημάτων

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

ιαφάνειες παρουσίασης #3

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

Τεχνολογία Λογισµικού (software. engineering)

Τεχνολογία Λογισμικού

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

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

4.3. Γραµµικοί ταξινοµητές

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ

Επανάληψη για τις Τελικές εξετάσεις

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

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Τεχνικές Αναπαράστασης αλγορίθµων Ψευδοκώδικας Διάγραµµα Ροής Αλγοριθµικές δοµές (Ακολουθία Επιλογή Επανάληψη)

ÔÏÕËÁ ÓÁÑÑÇ ÊÏÌÏÔÇÍÇ

Κεφάλαιο 3.1, : Συναρτήσεις I. ( ιάλεξη 11) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Χωρική Βάση δεδοµένων Autocad

ΚΕΦΑΛΑΙΟ 5: Αλγόριθµοι

Προγραμματισμός Η/Υ. Συναρτήσεις & Υποπρογράμματα. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Προγραµµατιστικές τεχνικές

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

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

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

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

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

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

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

Κεφάλαιο 10 ο Υποπρογράµµατα

3 Αλληλεπίδραση Αντικειμένων

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης

Θεωρητικό Μέρος. int rec(int n) { int n1, n2; if (n <= 5) then return n; else { n1 = rec(n-5); n2 = rec(n-3); return (n1+n2); } }

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Ενότητα 13. Εισαγωγή στην Πληροφορική. Κεφάλαιο 13Α. Αρχεία. Χειµερινό Εξάµηνο ρ. Παναγιώτης Χατζηδούκας (Π..407/80) προγραµµατισµός

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

Προγραµµατιστικές Τεχνικές

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

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

public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);

Transcript:

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Εισαγωγή στην πληροφορική Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Αλγόριθµοι, στοιχεία δοµηµένης ανάλυσης και σχεδίασης

Προγραµµατισµός ηλεκτρονικών υπολογιστών Μια ιδιαίτερα δηµιουργική εργασία επίλυσης προβληµάτων (problem( solving) Κατανόηση και ανάλυση του προβλήµατος Περιγραφή των απαιτήσεων του προβλήµατος Σχεδίαση των διαδοχικών βηµάτων για την επίλυση ΑΛΓΟΡΙΘΜΟΣ: Η περιγραφή των διαδοχικών βηµάτων µιας διαδικασίας επίλυσης προβλήµατος η οποία καταλήγει σε λύση σε πεπερασµένο χρόνο Υλοποίηση του αλγορίθµου σε µια γλώσσα προγραµµατισµού Επαλήθευση της λειτουργίας Εκτέλεση Συντήρηση (διορθώσεις, µεταβολές)

Προγραµµατισµός ηλεκτρονικών υπολογιστών Ανάλυση και σχεδίαση προγραµµάτων: Κατανόηση του πεδίου του προβλήµατος (problem domain) Οριοθέτηση των απαιτήσεων του προβλήµατος (problem requirements) Χρειάζεται αλληλεπίδραση µε τον χρήστη; Τι είδους δεδοµένα εµπλέκονται στο πρόβληµα; Τι είδους αποτελέσµατα πρέπει να υπολογίζονται; Κατασκευή ενός αλγορίθµου Εφαρµογή του "διαίρει και βασίλευε" αν το πρόβληµα είναι µεγάλο Κατάτµηση σε µικρά προβλήµατα και εφαρµογή των παραπάνω για καθένα από αυτά Η παραπάνω διαδικασία λέγεται "δοµηµένη" ανάλυση και σχεδίαση" Οργανώνεται µακροσκοπικά µε τεχνικές που αναφέρονται ως: Top-down design Stepwise refinement Modular programming Περισσότερα στη γνωστική περιοχή "Τεχνολογία Λογισµικού" (software engineering)

Γλώσσες προγραµµατισµού Υπάρχει πλήθος γλωσσών προγραµµατισµού ανάλογα µε Το επίπεδο της τεχνολογίας των υπολογιστών Την επικρατούσα φιλοσοφία ανάπτυξης λογισµικού Το πεδίο εφαρµογής

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

Ανάλυση Σκοπός Η αποκάλυψη των συστατικών στοιχείων προγράµµατος που πρέπει να κατασκευαστούν ώστε να επιλύεται το εκάστοτε πρόβληµα Συστατικό στοιχείο προγράµµατος: συνάρτηση (function), διαδικασία (procedure), κλάση (class), κ.ά. Εχουν προταθεί διάφορες µεθοδολογίες σχετικά µε Τα βήµατα που ακολουθούνται κατά την ανάλυση Τα επιδιωκόµενα προϊόντα Τον τρόπο παράστασής τους (διαγράµµατα κλπ) Το αντικείµενο σχετίζεται µε άλλες γνωστικές περιοχές της πληροφορικής ορικής και κυρίως µε την Τεχνολογία λογισµικού (Software( engineering) Ακολουθεί µια σύντοµη αναφορά στη δοµηµένη ανάλυση ιαγράµµατα ροής δεδοµένων ιαγράµµατα δοµής προγράµµατος

οµηµένη ανάλυση: ιαγράµµατα ροής δεδοµένων ιάγραµµα ροής δεδοµένων Ένα δίκτυο όπου "ρέουν" δεδοµένα τα οποία µετασχηµατίζονται σε νέα δεδοµένα σε διαδοχικά βήµατα. Κάθε βήµα θεωρείται ως µετασχηµατισµός που εφαρµόζεται επί κάποιων δεδοµένων εισόδου προκειµένου να δηµιουργήσει νέα δεδοµένα εξόδου. Χρήστης Α Μονάδα εκτέλεσης πρόσθεσης Γ Μονάδα εκτέλεσης τετραγώνου Εκτυπωτής Β

οµηµένη ανάλυση: ιαγράµµατα ροής δεδοµένων Συµβολισµοί και συµβάσεις Συµβολισµοί διαγραµµάτων ροής δεδοµένων Α Μ Β Α Β Γ Μ ιαδικασία / µετασχηµατισµός δεδοµένων Εξωτερική πηγή ή αποδέκτης δεδοµένων Α Μ Β Γ Α Μ Β Γ Α Α Γ Ροή δεδοµένων Μ Γ Μ Αποθήκη δεδοµένων Β Β

οµηµένη ανάλυση: ιαγράµµατα ροής δεδοµένων ιαδοχικά επίπεδα λεπτοµέρειας Π 1 Π 2 Α Β 1 Α 1 Π 3 Γ Ε Α 2 1 Π 1 Π 2 Π 3 Γ Β Α Ζ 1.2 1.1 Θ Η 1.3 Ε Α 1 Α 2 Π 1 Α Ι Κ 1.1.1 1.1.2 1.1 Λ 1.1.3 Μ Η Α 1 1.3 Π 2 Β 1.2 1.2.1 Θ 1.3.1 1.3.2 Π 3 Γ 1.2.2 Ν Ο Π Ρ F 1.3.3 Τ 1.3.4 Ε Α 2

ιαγράµµατα ροής δεδοµένων - παράδειγµα 1.ΕΠΙΚΟΥΡΟΣ Στοιχεία µαθητών κλπ 1.1. ιαχείριση αρχείων Αρχεία Εγγραφή 1.2.Εγγραφές σε µαθήµατα εγγραφών Βαθµοί βαθµολογίας 1.3.Βαθµολόγηση Επιλογές Βαθµολογία 1.4.Εκτύπωση βαθµολογίας

ιαγράµµατα ροής δεδοµένων παράδειγµα 1.ΕΠΙΚΟΥΡΟΣ 1.1. ιαχείριση αρχείων Στοιχεία µαθητών κλπ Εγγραφή 1.2.Εγγραφές σε µαθήµατα Αρχεία εγγραφών Στοιχεία µαθητή 1.1.1. ιαχείριση αρχείου µαθητών Εγγραφή µαθητή Ενηµερωµένο αρχείο Βαθµοί βαθµολογίας 1.3.Βαθµολόγηση Επιλογές 1.4.Εκτύπωση βαθµολογίας Βαθµολογία Στοιχεία καθηγητή Στοιχεία µαθήµατος 1.1.2. ιαχείριση αρχείου καθηγητών Εγγραφή καθηγητή µαθητών Ενηµερωµένο αρχείο καθηγητών 1.1.3. ιαχείριση αρχείου µαθηµάτων Ενηµερωµένο αρχείο Εγγραφή µαθήµατος µαθηµάτων

ιαγράµµατα ροής δεδοµένων παράδειγµα 1.ΕΠΙΚΟΥΡΟΣ Στοιχεία µαθητών κλπ 1.1. ιαχείριση αρχείων Αρχεία Εγγραφή 1.2.Εγγραφές σε µαθήµατα εγγραφών Βαθµοί βαθµολογίας 1.3.Βαθµολόγηση Επιλογές Βαθµολογία 1.4.Εκτύπωση βαθµολογίας Αποτέλεσµα Στοιχεία εγγραφής 1.2.2. ιαχείριση εγγραφών εργασίας Αρ.µητρώου µαθητή 1.2.1. Ελεγχος Εγγραφή δεδοµένων Κωδικός µαθήµατος εγγραφών Α.µ.µαθητή Κωδ.Μαθ/τος µαθηµάτων µαθητών

ιαγράµµατα ροής δεδοµένων παράδειγµα 1.ΕΠΙΚΟΥΡΟΣ Στοιχεία µαθητών κλπ 1.1. ιαχείριση αρχείων Αρχεία Εγγραφή 1.2.Εγγραφές σε µαθήµατα εγγραφών Βαθµοί 1.3.Βαθµολόγηση βαθµολογίας Αποτέλεσµα Επιλογές 1.4.Εκτύπωση βαθµολογίας Βαθµολογία Βαθµός 1.3.2. ιαχείριση βαθµολογίας εργασίας Στοιχεία εξέτασης Βαθµολογία Αρ.µητρώου µαθητή 1.3.1. Ελεγχος Βαθµός Κωδικός µαθήµατος δεδοµένων βαθµολογίας Υπαρξη Κωδ.Μαθ/τος εγγραφής Κωδ.Μαθητή µαθηµάτων εγγραφών µαθητών

ιαγράµµατα ροής δεδοµένων παράδειγµα 1.ΕΠΙΚΟΥΡΟΣ Στοιχεία µαθητών κλπ 1.1. ιαχείριση αρχείων Αρχεία Εγγραφή 1.2.Εγγραφές σε µαθήµατα εγγραφών Επιλογές Βαθµοί 1.4.Εκτύπωση βαθµολογίας 1.3.Βαθµολόγηση βαθµολογίας Βαθµολογία Κωδ. µαθήµατος Σχολικό 1.4.1. Ρυθµίσεις εκτύπωσης εδοµένα εκτύπωσης ΕΚΤΥΠΩΤΗΣ έτος εδοµένα εκτύπωσης Κωδ. µαθήµατος Σχολικό έτος 1.4.2. Επιλογή και µορφοποίηση εγγραφών Εγγραφές Εγγραφές Εγγραφές µαθηµάτων µαθητών βαθµολογίας

οµηµένη ανάλυση: ιαγράµµατα ροής δεδοµένων Χρήσιµες συµβουλές Σηµασία στα κρίσιµα δεδοµένα της εφαρµογής Κατά τη µετάβαση σε νέο επίπεδο λεπτοµέρειας, αναλύονται και οι µετασχηµατισµοί και τα δεδοµένα Να µη συγχέεται µε παράσταση αλγορίθµου εν παριστάνεται πληροφορία χρονισµού Ισορροπία µεταξύ ουσιώδους και κατασκευαστικής λεπτοµέρειας Χρήση κατάλληλων εργαλείων

Από το διάγραµµα ροής δεδοµένων στο πρόγραµµα Αρχιτεκτονική Σχεδίαση: Από το ιάγραµµα Ροής εδοµένων, στο ιάγραµµα οµής Προγράµµατος Συµβολισµοί Proc1 P Q R Z Proc2 Proc3 Proc4

Αρχιτεκτονική σχεδίαση Η έννοια του κεντρικού µετασχηµατισµού ΛΗΨΗ ΚΑΙ ΠΡΟΕΤΟΙΜΑΣΙΑ Ε ΟΜΕΝΩΝ ΕΙΣΟ ΟΥ ΚΕΝΤΡΙΚΟΣ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ ΠΡΟΕΤΟΙΜΑΣΙΑ ΚΑΙ ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ ΕΞΟ ΟΥ

Αρχιτεκτονική σχεδίαση Παραδείγµατα κεντρικού µετασχηµατισµού 1 2 4 5 7 3 6 8 1 2 4 5 7 3 6 8

Αρχιτεκτονική σχεδίαση Απεικόνιση κεντρικού µετασχηµατισµού σε διάγραµµα δοµής προγράµµατος Μονάδα ελέγχου Λήψη δεδοµένων Υλοποίηση Υπολογισµών Κ.Μ. Εξοδος αποτελεσµάτων

Προγραµµατισµός Κυριολεκτικά: Η συγγραφή των εντολών ενός προγράµµατος Εντολές = πηγαίος κώδικας (program( source code) Συνήθης χρήση Ολη η διαδικασία ανάπτυξης λογισµικού Σχεδίαση και γράψιµο προγράµµατος «Τεχνοτροπίες» προγραµµατισµού Spaghetti programming οµηµένος προγραµµατισµός Αντικειµενοστρεφής προγραµµατισµός Λογικός προγραµµατισµός Ανάλογα µε τα εργαλεία προγραµµατισµού και τον τρόπο χρήσης τους

Προγραµµατισµός Η συγγραφή του πηγαίου κώδικα για κάποιες µονάδες προγράµµατος οι οποίες, όταν εκτελούνται, παράγουν ένα επιθυµητό αποτέλεσµα. Κανόνες που ακολουθούνται Συντακτικοί (γλώσσα προγραµµατισµού) Σηµασιολογικοί (γλώσσα προγραµµατισµού) Λογικοί (πρόβληµα) Οι κανόνες της γλώσσας προγραµµατισµού αφορούν... Τα σύµβολα, τις εντολές, τις δοµές της γλώσσας Τον τρόπο χρήσης των ιδιαίτερων χαρακτηριστικών κάθε υλοποίησης της γλώσσας (Visual C++, Borland C++, gcpp, κλπ) Τους γενικούς κανόνες και παραδοχές που αφορούν όλα τα προγράµµατα Η «δυσκολία» εκµάθησης µιας γλώσσας προγραµµατισµού εντοπίζεται Στην απόσταση από τη φυσική γλώσσα του ανθρώπου Στους κανόνες σύνταξης οι οποίοι συµβάλλουν στον εµπλουτισµό της σηµασιολογίας διότι οι Η/Υ δεν διαθέτουν ευφυία

οµηµένος προγραµµατισµός Ο τρόπος συγγραφής πηγαίου κώδικα, σύµφωνα µε τον οποίο η συντακτική δοµή του προγράµµατος βοηθάει στην κατανόηση της ροής ελέγχου αυτού. Τρεις δοµές: Ακολουθία (s 1 ; s 2 ) Επιλογή (if c then s 1 else s 2 ) Επανάληψη (while c do s) S 1 ;S 2 if C then S 1 else S 2 while C do S S1 true C false C false S2 S1 S2 true S

Από την ανάλυση στον προγραµµατισµό Μερικές χρήσιµες παρατηρήσεις Η λύση ενός προβλήµατος είναι στην καλύτερη περίπτωση τόσο «καλή» όσο «καλός» είναι ο ορισµός του προβλήµατος «Καλός»: σωστός και ακριβής Στη φάση του προγραµµατισµού (πρέπει να) είναι γνωστό το «τι θα κάνει το πρόγραµµα»... έτσι ώστε να µας απασχολεί πώς το πρόγραµµα θα κάνει µε σωστό τρόπο τα σωστά πράγµατα Ενα πρόγραµµα... (1) είναι µια ακολουθία από εντολές µιας γλώσσας προγραµµατισµού... οι οποίες οργανώνονται σε υποσύνολα που ονοµάζονται «µονάδες προγράµµατος» Ενα πρόγραµµα... (2) είναι ένα σύνολο από µονάδες προγράµµατος Κάθε µονάδα προγράµµατος είναι µια ακολουθία εντολών µιας γλώσσας προγραµµατισµού

Παράδειγµα Υπολογισµός µισθοδοσίας Ενας εργαζόµενος µε µικτό ηµεροµίσθιο Η πληρώνεται στο τέλος του µήνα, ανάλογα µε τον αριθµό των ηµερών που εργάστηκε (Ν) ως εξής: Από τη συνολική µικτή αµοιβή (Ν * Η) γίνεται κράτηση Α% για ασφαλιστικές εισφορές και Τ% για προκαταβολή φόρου. Το ποσοστό της κράτησης ασφαλιστικών εισφορών (Α) είναι 10% αν ασφαλίστηκε πριν το 1995 και 12% αν ασφαλίστηκε µετά το 1995. Το ποσοστό της κράτησης για προκαταβολή φόρου (Τ) είναι 5% αν το ηµεροµίσθιό του είναι κάτω από 50 και 8% αν το ηµεροµίσθιο είναι τουλάχιστον 50. Ζητείται η κατασκευή προγράµµατος Η/Υ που υπολογίζει και εκτυπώνει το καθαρό ποσό της µισθοδοσίας, όταν δίνονται το ηµεροµίσθιο και ο αριθµός ηµερών εργασίας. Ε ΟΜΕΝΑ ΕΙΣΟ ΟΥ Το µικτό ηµεροµίσθιο (Η) Ο αριθµός ηµερών εργασίας (Ν) ΑΠΟΤΕΛΕΣΜΑΤΑ Το καθαρό ποσό µηνιαίας αµοιβής (ΜΙΣΘΟΣ)

Παράδειγµα (συνέχεια) ΥΠΟΛΟΓΙΣΜΟΙ Κ.ΜΙΣΘΟΣ = Ν * Η ΚΡΑΤΗΣΕΙΣ ΚΡΑΤΗΣΕΙΣ = INS + ΤΑΧ INS = A * (N * H) TAX = T * (N * H) IF [(ΗΜ.ΑΣΦΑΛΙΣΗΣ) <= 1995] Α = 10% ELSE A = 12% IF (Η < 50 ) T = 5% ELSE T = 8% ΟΡΙΣΜΟΣ ΜΙΚΡΩΝ ΥΠΟ-ΠΡΟΒΛΗΜΑΤΩΝ ΠΡΟΒΛΗΜΑΤΩΝ Υπολόγισε το Α Υπολόγισε το Τ Υπολόγισε τα INS, TAX Υπολόγισε τις ΚΡΑΤΗΣΕΙΣ Υπολόγισε το µισθό Ε ΟΜΕΝΑ ΕΙΣΟ ΟΥ Το µικτό ηµεροµίσθιο (Η) Ο αριθµός ηµερών εργασίας (Ν) Το έτος ασφάλισης (ΗΜ.ΑΣΦΑΛΙΣΗΣ)

Παράδειγµα (συνέχεια) Επίλυση επιµέρους προβληµάτων... Υπολόγισε το Α IF [(ΗΜ.ΑΣΦΑΛΙΣΗΣ) <= 1995] Α = 10% ELSE A = 12% ΗΜ.ΑΣΦ <= 1995? ΝΑΙ ΟΧΙ A = 10% A = 12% Υπολόγισε το Τ IF (Η < 50 ) T = 5% ELSE T = 8% Η < 50? ΝΑΙ ΟΧΙ Τ = 5% Τ = 8% Υπολόγισε τα INS, TAX INS = A * (N * H) TAX = T * (N * H) INS = A * N * H TAX = T * N * H Υπολόγισε τις ΚΡΑΤΗΣΕΙΣ ΚΡΑΤΗΣΕΙΣ = INS + ΤΑΧ KΡΑΤΗΣΕΙΣ = INS + TAX Υπολόγισε το µισθό Κ.ΜΙΣΘΟΣ = Ν * Η ΚΡΑΤΗΣΕΙΣ K.ΜΙΣΘΟΣ = N * H - ΚΡΑΤΗΣΕΙΣ

Παράδειγµα (συνέχεια) ΕΙΣΟ ΟΣ ΕΠΕΓΕΡΓΑΣΙΑ ΑΡΧΗ ιάβασε τα Η, Ν, ΗΜ.ΑΣΦΑΛΙΣΗΣ Υπολόγισε τα Α και Τ Υπολόγισε τα INS και TAX Υπολόγισε το ΚΡΑΤΗΣΕΙΣ Υπολόγισε το Κ.ΜΙΣΘΟΣ ΗΜ.ΑΣΦ <= 1995? ΝΑΙ A = 10% A = 12% Η < 50? ΝΑΙ INS = A * N * H TAX = T * N * H ΟΧΙ ΟΧΙ Τ = 5% Τ = 8% ΕΞΟ ΟΣ Τύπωσε Κ.ΜΙΣΘΟΣ ΤΕΛΟΣ KΡΑΤΗΣΕΙΣ = INS + TAX K.ΜΙΣΘΟΣ = N * H - ΚΡΑΤΗΣΕΙΣ

Παράδειγµα (τέλος!) ΑΡΧΗ ιάβασε τα Η, Ν, ΗΜ.ΑΣΦΑΛΙΣΗΣ ΗΜ.ΑΣΦ <= 1995? ΟΧΙ ΝΑΙ A = 10% A = 12% Η < 50? ΝΑΙ ΟΧΙ Τ = 5% Τ = 8% INS = A * N * H TAX = T * N * H KΡΑΤΗΣΕΙΣ = INS + TAX K.ΜΙΣΘΟΣ = N * H - ΚΡΑΤΗΣΕΙΣ Τύπωσε Κ.ΜΙΣΘΟΣ ΤΕΛΟΣ

Προγραµµατισµός σε C++ Οι δοµικές µονάδες κάθε προγράµµατος λέγονται «συναρτήσεις» (functions)( Μια συνάρτηση περιέχει κάποιες εντολές που επιτελούν µια εργασία όταν εκτελεστούν Μια συνάρτηση µπορεί να επιστρέφει ένα αποτέλεσµα ή να µην επιστρέφει κανένα αποτέλεσµα στο περιβάλλον της x=max(3,4) printmax(3,4) Γενικοί κανόνες Κάθε πρόγραµµα περιέχει τουλάχιστον µία συνάρτηση, την main() Κάθε συνάρτηση µπορεί να καλεί άλλες συναρτήσεις ή και τον εαυτό της Κάθε συνάρτηση µπορεί να επιστρέφει ένα αποτέλεσµα στο περιβάλλον κλήσης της, δηλαδή στη συνάρτηση που την κάλεσε Το περιβάλλον κλήσης της main() είναι το λειτουργικό σύστηµα

Προγραµµατισµός σε C++ main() d ΤΙΜΗ ΠΟΥ ΕΠΙΣΤΡΕΦΕΙ Η ΣΥΝΑΡΤΗΣΗ int main() { int a, b, c, d; readabc(); //πάνω σχήµα d=findmax(); //κάτω σχήµα d=findmax(a,b,c); printmax(); } readabc() d=findmax() printmax() main() d a,b,c ΠΑΡΑΜΕΤΡΟΙ ΠΟΥ ΕΧΕΤΑΙ Η ΣΥΝΑΡΤΗΣΗ readabc() d=findmax(a,b,c) printmax(d) d void readabc() {... } int findmax() {... return x; } void printmax() {... } int findmax(int k, int l, int m) {... return x; }

Ενα πρώτο πρόγραµµα //MyFirstProgram.cpp #include <iostream> using namespace std; int main() { cout<<"welcome to C++ programming"; return 0; } MyFirstProgram.cpp compile MyFirstProgram.o link MyFirstProgram.exe iostream ΕΞΟ ΟΣ: Welcome to C++ Programming execute