ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ

Σχετικά έγγραφα
ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Προγραμματισμός

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Προγραμματισμός

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

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

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1

ΕΠΛ003 ΑΣΚΗΣΕΙΣ ΕΠΑΝΑΛΗΨΗΣ

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

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

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

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

Ερωτήσεις. ΕΠΛ003 Εισαγωγή στην Επιστήμη της Πληροφορικής Φθινόπωρο 2011

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

8 Τεχνικός Εφαρμογών Πληροφορικής με Πολυμέσα

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

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

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

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

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

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Ασκήσεις Επανάληψης

Μάριος Αγγελίδης Ενότητες βιβλίου: 2.1, 2.3, 6.1 (εκτός ύλης αλλά χρειάζεται για την συνέχεια) Ώρες διδασκαλίας: 1

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

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

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

Θέματα Προγραμματισμού Η/Υ

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

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

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

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

Προγραμματισμός Η/Υ (ΤΛ2007 )

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

Υπολογισμός - Εντολές Επανάληψης

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

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

9. Εντολές επανάληψηςκαι η εντολή

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή

11/23/2014. Στόχοι. Λογισμικό Υπολογιστή

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΠΑΝΕΛΛΑ ΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ (ΟΜΑ Α Β ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙ ΙΚΟΤΗΤΑΣ

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

Παρο υσίαση αλ γόριθμου

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Θεωρία Προγραμματισμού

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

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

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

Προγραμματισμός Η/Υ (ΤΛ2007 )

A. Να γράψετε τον αριθμό της κάθε μιας από τις παρακάτω προτάσεις και δίπλα. το γράμμα Σ, εάν είναι σωστή, ή το γράμμα Λ, εάν είναι λανθασμένη.

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

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

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

Ο αλγόριθμος πρέπει να τηρεί κάποια κριτήρια

Κεφάλαιο 3: Εισαγωγή στους αλγορίθμους - διαγράμματα ροής

Θέματα ΑΕΠΠ Πανελλήνιες Εξετάσεις 2007

3. Να γραφεί πρόγραμμα που θα διαβάζει 100 ακεραίους αριθμούς από το πληκτρολόγιο και θα υπολογίζει το άθροισμά τους.

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

Γλώσσα Προγραμματισμού C

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

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

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

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

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

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά

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

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

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

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

Θεωρητικές Ασκήσεις. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος

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

Εργαστηριακή Άσκηση 1

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

3. Γράψτε μία εντολή που να εμφανίζει π.χ. «Πόσα είναι τα κορίτσια του;» και μία που να εμφανίζει: «Τα κορίτσια του Τζειμς Μποντ είναι 4»

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

Αρχές Προγραμματισμού Η/Υ Μέθοδοι παρουσίασης του αλγόριθμου και Βασικές έννοιες

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ

ΠΕΚ ΤΡΙΠΟΛΗΣ ΕΠΙΜΟΡΦΩΣΗ ΕΚΠ/ΚΩΝ ΠΕ19,20 ΗΜ/ΝΙΑ ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ

Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό. 3η Διάλεξη Είσοδος Δεδομένων Συνθήκες Βρόχοι Παραδείγματα

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Εισαγωγή - Βασικές έννοιες. Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος A Εξάμηνο

Ασκή σεις στή δομή επανα λήψής

Βασίλειος Κοντογιάννης ΠΕ19

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

Κεφάλαιο : Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) Δομές Έλεγχου Προγράμματος

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις:

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές. Δρ. Γιώργος Λαμπρινίδης 23/10/2015 Η - Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β. Καβακλή. Χειμερινό Εξάμηνο 2001

ΕΡΓΑΣΤΗΡΙΟ 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ. i. Η συνθήκη α > β ή α <= β α) είναι πάντα Αληθής β) είναι πάντα Ψευδής γ) δεν υπολογίζεται δ) τίποτα από τα προηγούμενα

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ. Α2. Να αναφέρετε ονομαστικά: i) τα αλγοριθμικά κριτήρια ii) τους τρόπους αναπαράστασης αλγορίθμου. (μονάδες 10)

Ανάπτυξη και Σχεδίαση Λογισμικού

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

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

Ο πιο κάτω πίνακας περιγράφει σε ποιες περιπτώσεις χρησιμοποιούμε τους τρεις πιο πάνω τρόπους:

Στόχοι και αντικείμενο ενότητας. Τύπος πίνακα. Τύπος πίνακα (συν.) #6. Πίνακες και Δείκτες

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

Transcript:

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ Δρ. Κουζαπάς Δημήτριος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός

Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος και του Προγράμματος/Αλγορίθμου και να εξηγήσουμε τι είναι Προγραμματισμός. Να περιγράψουμε την πορεία από ένα Υπολογιστικό Πρόβλημα έως ένα Εκτελέσιμο Αρχείο που το λύνει. Να περιγράψουμε τα στάδια του Κύκλου Ανάπτυξης Προγράμματος. Να περιγράψουμε τα βασικά συστατικά των Διαγραμμάτων Ροής και του Ψευδοκώδικα. Να επιλύσουμε κάποια Υπολογιστικά Προβλήματα, μέχρι την φάση της Σχεδίασης.

Υπολογιστικά Συστήματα: Στρώματα 2 Επικοινωνία Εφαρμογές Προγραμματισμός Λειτουργικό Σύστημα Υλικό Δεδομένα

Υπολογιστικά προβλήματα 3 Υπολογιστικό πρόβλημα είναι κάθε πρόβλημα στο οποίο μας προμηθεύουν κάποια δεδομένα και μας ζητούν να υπολογίσουμε κάποια αποτελέσματα. Για να περιγράψουμε ένα υπολογιστικό πρόβλημα, χρησιμοποιούμε κείμενο της μορφής: Δίνεται... Να υπολογιστεί/ελεγχθεί αν/βρεθεί....

Υπολογιστικά προβλήματα 4 Τα υπολογιστικά προβλήματα με τα οποία είμαστε πιο εξοικειωμένοι είναι τα αριθμητικά προβλήματα. Παράδειγμα 1: Δίνεται ακέραιος αριθμός x. Να υπολογιστεί το τετράγωνό του, x 2. Παράδειγμα 2: Δίνονται πραγματικοί αριθμοί x και y. Να υπολογιστεί το άθροισμά τους, x+y.

Υπολογιστικά προβλήματα 5 Τα υπολογιστικά προβλήματα με τα οποία είμαστε πιο εξοικειωμένοι είναι τα αριθμητικά προβλήματα. Παράδειγμα 3: Δίνονται πραγματικοί αριθμοί x, y, και z. Να υπολογιστεί ο ελάχιστός τους, min(x, y, z). Παράδειγμα 4: Δίνονται πραγματικοί αριθμοί x, y, και z. Να υπολογιστεί ο μέσος όρος, average(x, y, z).

Υπολογιστικά προβλήματα 6 Όμως ένα υπολογιστικό πρόβλημα μπορεί να αφορά και σε άλλα, μη αριθμητικά αντικείμενα. Παράδειγμα 5: Δίνονται γράμματα Γ 1 και Γ 2. Να βρεθεί λέξη από Γ 1 που να τελειώνει σε Γ 2. Παράδειγμα 6: Δίνονται χάρτης X και δύο σημεία του A, B. Να βρεθεί διαδρομή στον X από το A στο B.

Αλγόριθμοι 7 Ως (συστηματική) λύση ενός υπολογιστικού προβλήματος θεωρούμε κάθε ακολουθία σαφών βημάτων που μας οδηγεί από τα δεδομένα (όποιες τιμές κι αν έχουν) στα αποτελέσματα (που αντιστοιχούν σωστά στα δεδομένα). Π.χ.: Λύση για το πρόβλημα του Παραδείγματος 2 Δίνονται πραγματικοί αριθμοί x και y. Να υπολογιστεί το άθροισμά τους, x+y. είναι κάθε ακολουθία σαφών βημάτων που όταν την εκτελέσουμε πάνω σε δύο οποιουσδήποτε πραγματικούς αριθμούς θα καταλήξουμε στο άθροισμά τους. (Μια τέτοια ακολουθία βημάτων μάθατε στο δημοτικό.)

Αλγόριθμοι 8 Κάθε τέτοια ακολουθία βημάτων λέγεται Αλγόριθμος. Αλγόριθμός/Πρόγραμμα: Σειρά από οδηγίες/εντολές που πρέπει να ακολουθήσει το Υπολογιστικό Σύστημα για να επιλύσει ένα συγκεκριμένο (υπολογιστικό) πρόβλημα.

Προγραμματισμός 9 Υπολογιστικό Πρόβλημα Αλγόριθμος Πρόγραμμα Εκτελέσιμο Αρχείο Δίνεται ακέραιος x. Να υπολογιστεί το τετράγωνό του, x 2. 1. Αρχή. 2. Διάβασε x. 3. Τύπωσε x*x. 4. Τέλος. #include <stdio.h> void main(void) { int x; scanf( %d, &x); printf( %d, x*x); } 0010101001010111101 1101010101101001001 0011010101010001010 100 Προγραμματισμός: Η διαδικασία του να επινοήσουμε αλγόριθμο και να συντάξουμε πρόγραμμα. Πρόγραμμα: Αλγόριθμος σε τυπική μορφή (δηλ. μορφή έτοιμη να μεταφραστεί σε μορφή κατανοητή από τον Η/Υ Γλώσσα Προγραμματισμού). Μετάφραση (compilation) Εκτελέσιμο αρχείο: Αλγόριθμος σε μορφή κατανοητή από τον Η/Υ.

Προγραμματισμός 10 Το σύνολο των γραμματικών και συντακτικών κανόνων που ακολουθούμε κατά την συγγραφή ενός προγράμματος λέγεται Γλώσσα Προγραμματισμού (Programming Language). H μετατροπή του προγράμματος σε εκτελέσιμο αρχείο λέγεται Μετάφραση (Compilation). Το ειδικό λογισμικό που επιτελεί την μετάφραση λέγεται Μεταφραστής (Compiler).

Κύκλος Ανάπτυξης Προγράμματος 11 Γενικά, η πορεία μέχρι το εκτελέσιμο αρχείο είναι πιο σύνθετη από την απλή ακολουθία «προγραμματισμός + μετάφραση». Είναι μια διαδικασία που αποτελείται από πολλά στάδια και ενδέχεται να μην τερματίσει ποτέ. Η διαδικασία αυτή ονομάζεται Κύκλος Ανάπτυξης Προγράμματος (Program Development Cycle).

Κύκλος Ανάπτυξης Προγράμματος 12 Τον κύκλο ανάπτυξης προγράμματος συνιστούν 6 στάδια: 1. Περιγραφή του προβλήματος και τυχόν περιορισμών. 2. Ανάλυση του προβλήματος και επιλογή μιας λύσης. 3. Σχεδίαση της επιλεγμένης λύσης (Διάγραμμα Ροής και Ψευδοκώδικας). 4. Κωδικοποίηση σε Γλώσσα Προγραμματισμού. 5. Έλεγχος του προγράμματος και διόρθωση λαθών. 6. Συντήρηση του προγράμματος.

Στάδιο 1: Περιγραφή 13 Τις περισσότερες φορές, το υπολογιστικό πρόβλημα δεν μας δίνεται στην απλή μορφή «Δίνεται. Να βρεθεί.». Αντιθέτως, αυτό που έχουμε μπροστά μας είναι ένα πρόβλημα του πραγματικού κόσμου. Πρέπει οι ίδιοι να διακρίνουμε ποια συστατικά αυτού του προβλήματος είναι σημαντικά και να τα καταγράψουμε με σαφήνεια. Ποια είναι τα δεδομένα (Είσοδος, Input); Ποια αποτελέσματα πρέπει να προκύψουν (Έξοδος, Output); Εκτός από τον προφανή περιορισμό (να προκύπτουν πάντα τα σωστά αποτελέσματα που αντιστοιχούν στα δεδομένα), μήπως πρέπει να ικανοποιούνται και άλλοι, πρόσθετοι περιορισμοί;

Στάδιο 1: Περιγραφή (Παράδειγμα) 14 Παράδειγμα: Μόλις τελείωσε το εξάμηνο, και θέλουμε να μάθουμε ποιος ήταν ο μέγιστος βαθμός στο ΕΠΛ003. Ποιο ακριβώς είναι το υπολογιστικό πρόβλημα; Είσοδος: Ο κατάλογος όλων των φοιτητών & των βαθμών τους. Ο κατάλογος όλων των βαθμών. Έξοδος: Το όνομα του φοιτητή με τον μεγαλύτερο βαθμό. Ο μεγαλύτερος από όλους τους βαθμούς. Περιορισμοί: Το πρόγραμμα θα πρέπει να λειτουργεί γρήγορα.

Στάδιο 1: Περιγραφή (Παράδειγμα) 15 Παράδειγμα: Μόλις τελείωσε το εξάμηνο, και θέλουμε να μάθουμε ποιος ήταν ο μέγιστος βαθμός στο ΕΠΛ003. Ποιο ακριβώς είναι το υπολογιστικό πρόβλημα; Είσοδος: Μια ακολουθία μη αρνητικών αριθμών x 1, x 2,, x N από το πληκτρολόγιο (σήμα τέλους: αριθμός < 0). Έξοδος: Ο μεγαλύτερος από τους δεδομένους αριθμούς, δηλ. ο max(x 1, x 2,, x N ), τυπωμένος στην οθόνη. Περιορισμοί: Το πρόγραμμα θα πρέπει να λειτουργεί γρήγορα.

Στάδιο 2: Ανάλυση 16 Τώρα που το υπολογιστικό πρόβλημα είναι απολύτως σαφές, προσπαθούμε να επινοήσουμε κάποια λύση. Θυμηθείτε: λύση υπολογιστικού προβλήματος = αλγόριθμος που λύνει το υπολογιστικό πρόβλημα. Προσέξτε: Ίσως υπάρχουν πολλές λύσεις, δηλαδή πολλοί αλγόριθμοι που λύνουν το ίδιο πρόβλημα! Για κάθε λύση που σκεφτόμαστε, προσπαθούμε να βεβαιωθούμε ότι σε κάθε είσοδο θα παράγει τη σωστή έξοδο και ότι θα ικανοποιεί τους περιορισμούς. Διερευνούμε το ενδεχόμενο να υπάρχουν περισσότερες από μία λύσεις. Αν όντως επινοήσουμε περισσότερες από μία, τότε πρέπει να επιλέξουμε τη βέλτιστη.

Στάδιο 2: Ανάλυση (Παράδειγμα) 17 Στο παράδειγμά μας, μια λύση είναι η εξής: Διαβάζουμε τους x 1, x 2,, x N από το πληκτρολόγιο και τους αποθηκεύουμε. Έπειτα, για κάθε x i ελέγχουμε μήπως είναι μέγιστος, δηλαδή: Διατρέχουμε τους άλλους και ελέγχουμε αν είναι όλοι x i. Αν ναι, τότε τυπώνουμε τον x i στην οθόνη, και τερματίζουμε. Είναι αυτή η μέθοδος πράγματι λύση; Παράγει το σωστό αποτέλεσμα για οποιεσδήποτε τιμές των x 1, x 2,, x N ; Ναι.

Στάδιο 2: Ανάλυση (Παράδειγμα) 18 Μια άλλη λύση είναι η εξής: Διαβάζουμε τους x 1, x 2,, x N από το πληκτρολόγιο και ανά πάσα στιγμή παρακολουθούμε ποιος ήταν μέγιστος από τους μέχρι τώρα διαβασμένους. Στο τέλος τυπώνουμε στην οθόνη όποιον θυμόμαστε ως μέγιστο. Είναι αυτή η μέθοδος πράγματι λύση; Παράγει το σωστό αποτέλεσμα για οποιεσδήποτε τιμές των x 1, x 2,, x N ; Ναι.

Στάδιο 2: Ανάλυση (Παράδειγμα) 19 Ποια από τις δύο λύσεις είναι καλύτερη; Η δεύτερη λύση διατρέχει τους αριθμούς μόνο 1 φορά. Αντιθέτως, η πρώτη λύση ενδέχεται να τους διατρέχει πολλές φορές. (Στη χειρότερη περίπτωση, αν ο μέγιστος έχει δοθεί τελευταίος, οι αριθμοί διατρέχονται N φορές!) Άρα η δεύτερη λύση είναι ταχύτερη. Επομένως πρέπει να επιλέξουμε αυτήν.

Στάδιο 3: Σχεδίαση 20 Τώρα που γνωρίζουμε ποια λύση θέλουμε να υλοποιήσουμε, αναπτύσσουμε τον αλγόριθμο λεπτομερώς: 1. Μετατρέπουμε την λύση που έχουμε περιγράψει σε Διάγραμμα Ροής (Flow Chart). Αυτό αναπαριστά σχηματικά τη ροή του ελέγχου στον αλγόριθμό μας. 2. Μετατρέπουμε το διάγραμμα ροής σε Ψευδοκώδικα (Pseudocode). Αυτός αναπαριστά τον αλγόριθμό μας ως ακολουθία βημάτων, καθένα από τα οποία περιγράφεται μέσω ενός μείγματος λέξεων της ελληνικής ή της αγγλικής γλώσσας και κάποιων εντολών που είναι κοινές σε πολλές γλώσσες προγραμματισμού.

Στάδιο 3: Σχεδίαση 21 Βασικά σύμβολα σε διάγραμμα ροής: τερματικό γραμμές ροής σύζευξη είσοδος από πληκτρολόγιο εκτύπωση είσοδος/έξοδος από αρχείο ανάθεση κλήση υπομονάδας έλεγχος συνθήκης

Στάδιο 3: Σχεδίαση 22 Βασικές εντολές σε ψευδοκώδικα: Αρχή / Τέλος Διάβασε Τύπωσε Διάβασε/Γράψε Αν τότε Αν τότε αλλιώς Επανάληψη όσο Όσο επανέλαβε τερματικό είσοδος από πληκτρολόγιο εκτύπωση είσοδος /έξοδος από αρχείο ανάθεση έλεγχος συνθήκης έλεγχος συνθήκης βρόχος επανάληψης βρόχος επανάληψης

Στάδιο 3: Σχεδίαση (Παράδειγμα) 23 Ψ = Ψέμα Α = Αλήθεια αρχή max 0 x x 0 Πριν αρχίσουμε να διαβάζουμε αριθμούς από το χρήστη θεωρούμε ότι ο μεγαλύτερος αριθμός (ο max) είναι 0. Αν ο χρήστης δώσει αρνητικό αριθμό αυτό σημαίνει ότι δεν θέλει να καταχωρήσει άλλους αριθμούς. Αρά τυπώνουμε στην οθόνη αυτόν που μέχρι τώρα θυμόμαστε ως μεγαλύτερο (αυτός που είναι φυλαγμένος στο max) Ψ Διάγραμμα ροής για τη δεύτερη λύση. Ψ Α max<x Α max x max τέλος

Στάδιο 3: Σχεδίαση (Παράδειγμα) 24 1. Αρχή. 2. max 0. Ψευδοκώδικας για τη δεύτερη λύση. 3. Επανάληψη: 4. Διάβασε x. 5. Αν max < x 6. τότε max x. 7. Όσο x 0. 8. Τύπωσε max. 9. Τέλος.

Στάδιο 4: Κωδικοποίηση 25 Από τον Ψευδοκώδικα, συντάσσουμε πρόγραμμα σε κάποια Γλώσσα Προγραμματισμού (π.χ. C, Java, κ.ά.). Μέσω Μεταφραστή μετατρέπουμε το πρόγραμμα σε γλώσσα η οποία είναι αναγνωρίσιμη από τη μηχανή (Γλώσσα Μηχανής). Στο στάδιο αυτό γίνεται ο έλεγχος και η διόρθωση των Συντακτικών Λαθών (syntax errors), δηλαδή των λαθών που οφείλονται σε λανθασμένη χρήση των κανόνων της Γλώσσας Προγραμματισμού. 1. Αρχή. 2. Διάβασε x. 3. Τύπωσε x*x. 4. Τέλος. #include <stdio.h> void main(void) { int x; scanf( %d, &x); printf( %d, x*x); } 0010101001010111101 1101010101101001001 0011010101010001010 100

Στάδιο 4: Κωδικοποίηση (Παράδειγμα) 26 #include <stdio.h> void main(void) { int x, max = -1; Πρόγραμμα στη γλώσσα C για τη δεύτερη λύση. } do { scanf("%d", &x); if (max<x) max=x; } while (x>=0); printf("%d\n", max);

Στάδιο 4: Κωδικοποίηση (Παράδειγμα) 27 #include <stdio.h> void main(void) { int x, max = -1; } do { scanf("%d", &x); if (max<x) max=x; } while (x>=0); printf("%d\n", max); Πρόγραμμα στη γλώσσα C για τη δεύτερη λύση Μετάφραση Ο Μεταφραστής δέχεται στην είσοδο ένα αρχείο πηγαίου κώδικα (π.χ.: findmax.c) που περιέχει το πρόγραμμα και παράγει στην έξοδο ένα εκτελέσιμο αρχείο (findmax.exe). (Ή μία αναφορά με όλα τα συντακτικά λάθη που εντόπισε) 0010101001010110111101110110 0101101011001001011001101011 0010100101001001001010101010 0100000001111110101111001001 1100100110010010010000000111 1110101111011010010010011100 1001001001001001110010010101 0100100010000001111111111101 1111110111101010010101010010 0100101110000100100101010101 0101000000111111010111110011 0000011111010101001011001001 Εκτελέσιμο αρχείο (σε Γλώσσα Μηχανής) για τη δεύτερη λύση

Στάδιο 5: Έλεγχος 28 Πραγματοποιούμε πολλές δοκιμές προκειμένου να βεβαιωθούμε ότι το πρόγραμμα δουλεύει σωστά. Διορθώνουμε τυχόν Λογικά Σφάλματα που εμφανίζονται, δηλ. σφάλματα που αφορούν στη σχεδίαση της λύσης.

Στάδιο 5: Έλεγχος (Παράδειγμα) 29 Στο παράδειγμά μας, ίσως κατά την κωδικοποίηση να πληκτρολογήσαμε max>x αντί για max<x : Ή ίσως να κάναμε το ίδιο λάθος κατά την σχεδίαση: ΣΩΣΤΗ ΣΧΕΔΙΑΣΗ Ψ max<x Α max x scanf("%d", &x); if (max>x) max=x; ΛΑΘΟΣ ΣΧΕΔΙΑΣΗ Ψ max>x Α max x Ο μεταφραστής δεν μπορεί να ανιχνεύσει τέτοια Λογικά Σφάλματα. Εντοπίζονται μόνο στο στάδιο του ελέγχου.

Στάδιο 6: Συντήρηση 30 Συντάσσουμε Τεκμηρίωση (Documentation), δηλαδή ένα εγχειρίδιο που να εξηγεί την χρήση του προγράμματος. Εγκαθιστούμε το πρόγραμμα και αρχίζουμε να το χρησιμοποιούμε. Παρακολουθούμε την χρήση του προγράμματος και ενημερωνόμαστε για τυχόν νέες απαιτήσεις ή σφάλματα που εμφανίζονται. Όποτε είναι απαραίτητο, τροποποιούμε το πρόγραμμα καταλλήλως.

31 Ερωτήσεις;

Προβλήματα 32 Ακολουθεί σειρά προβλημάτων, που πρέπει να επιλύσουμε έως και τη φάση της σχεδίασης. Δηλαδή πρέπει: 1. Περιγραφή: Να παραθέσουμε μια σαφή περιγραφή του προβλήματος (αν δεν μας έχει ήδη δοθεί). 2. Ανάλυση: Να επινοήσουμε κάποιον αλγόριθμο (ή αλγορίθμους, και να επιλέξουμε τον καλύτερο). 3. Σχεδίαση: Για τον αλγόριθμό μας, να σχεδιάσουμε ένα διάγραμμα ροής και έπειτα έναν ψευδοκώδικα.

Πρόβλημα 1 33 Να γραφεί πρόγραμμα που να υπολογίζει τον μέσο όρο δύο αριθμών. Μια πιο σαφής περιγραφή: Δίνονται δύο πραγματικοί αριθμοί x και y, από το πληκτρολόγιο. Να υπολογιστεί ο μέσος όρος τους, (x+y)/2, και να τυπωθεί στην οθόνη.

Πρόβλημα 1: Διάγραμμα ροής 34 αρχή x, y x ο 1 ος αριθμός εισόδου y ο 2 ος αριθμός εισόδου average ο ζητούμενος μέσος όρος average (x+y)/2 average τέλος

Πρόβλημα 1: Ψευδοκώδικας 35 x ο 1 ος αριθμός εισόδου y ο 2 ος αριθμός εισόδου average ο ζητούμενος μέσος όρος 1. Αρχή. 2. Διάβασε x, y. 3. average (x + y)/2. 4. Τύπωσε average. 5. Τέλος.

Πρόβλημα 2 36 Να γραφεί πρόγραμμα που να υπολογίζει τον ελάχιστο δύο αριθμών. Μια πιο σαφής περιγραφή: Δίνονται δύο πραγματικοί αριθμοί x και y, από το πληκτρολόγιο. Να υπολογιστεί ο ελάχιστος των αριθμών, min(x,y), και να τυπωθεί στην οθόνη. (Διευκρίνιση: Σε μια ανάθεση, η παράσταση δεξιά του μπορεί να περιέχει μόνο τις πράξεις +, -, *, και /.)

Πρόβλημα 2: Διάγραμμα ροής 37 αρχή x, y x ο 1 ος αριθμός εισόδου y ο 2 ος αριθμός εισόδου min ο ζητούμενος ελάχιστος Α min x x y Ψ min y min τέλος

Πρόβλημα 2: Ψευδοκώδικας 38 1. Αρχή. 2. Διάβασε x, y. x ο 1 ος αριθμός εισόδου y ο 2 ος αριθμός εισόδου min ο ζητούμενος ελάχιστος 3. Αν x y 4. τότε min x 5. αλλιώς min y. 6. Τύπωσε min. 7. Τέλος.

Πρόβλημα 2: Εναλλακτικό διάγραμμα ροής 39 αρχή x, y x ο 1 ος αριθμός εισόδου y ο 2 ος αριθμός εισόδου Α x y Ψ x y τέλος

Πρόβλημα 2: Εναλλακτικός ψευδοκώδικας 40 1. Αρχή. 2. Διάβασε x, y. x ο 1 ος αριθμός εισόδου y ο 2 ος αριθμός εισόδου 3. Αν x y 4. τότε Τύπωσε x 5. αλλιώς Τύπωσε y. 6. Τέλος.

Ασκήσεις 1 & 2 41 Δώστε διάγραμμα ροής και ψευδοκώδικα για αλγορίθμους που λύνουν τα παρακάτω προβλήματα: Δίνονται τρεις πραγματικοί αριθμοί x, y, z, από το πληκτρολόγιο. Να υπολογιστεί ο μέσος όρος τους, (x+y+z)/3, και να τυπωθεί στην οθόνη. Δίνονται τρεις πραγματικοί αριθμοί x, y, z, από το πληκτρολόγιο. Να υπολογιστεί ο ελάχιστος των αριθμών, min(x,y,z), και να τυπωθεί στην οθόνη.

Άσκηση 1: Διάγραμμα ροής 42 αρχή x, y, z x ο 1 ος αριθμός εισόδου y ο 2 ος αριθμός εισόδου z ο 3 ος αριθμός εισόδου average ο ζητούμενος μέσος όρος average (x+y+z)/3 average τέλος

Άσκηση 1: Ψευδοκώδικας 43 1. Αρχή. 2. Διάβασε x, y, z. 3. average (x + y + z)/3. 4. Τύπωσε average. 5. Τέλος. x ο 1 ος αριθμός εισόδου y ο 2 ος αριθμός εισόδου z ο 3 ος αριθμός εισόδου average ο ζητούμενος μέσος όρος

Άσκηση 2: Διάγραμμα ροής 44 αρχή x ο 1 ος αριθμός εισόδου x, y, z y ο 2 ος αριθμός εισόδου z ο 3 ος αριθμός εισόδου Α x y Ψ min ο ζητούμενος ελάχιστος Α x z Ψ Α y z Ψ min x min z min y min z min τέλος

Άσκηση 2: Ψευδοκώδικας 45 1. Αρχή. 2. Διάβασε x, y, z. 3. Αν x y 4. τότε Αν x z 5. τότε min x 6. αλλιώς min z 7. αλλιώς Αν y z 8. τότε min y 9. αλλιώς min z. x ο 1 ος αριθμός εισόδου y ο 2 ος αριθμός εισόδου z ο 3 ος αριθμός εισόδου min ο ζητούμενος ελάχιστος 10. Τύπωσε min. 11. Τέλος.

Άσκηση 2: Εναλλακτικό διάγραμμα ροής 46 αρχή x, y, z x ο 1 ος αριθμός εισόδου y ο 2 ος αριθμός εισόδου z ο 3 ος αριθμός εισόδου Α x y Ψ Α x z Ψ Α y z Ψ x z y z τέλος

Άσκηση 2: Εναλλακτικός ψευδοκώδικας 47 1. Αρχή. 2. Διάβασε x, y, z. 3. Αν x y 4. τότε Αν x z 5. τότε Τύπωσε x 6. αλλιώς Τύπωσε z 7. αλλιώς Αν y z 8. τότε Τύπωσε y 9. αλλιώς Τύπωσε z. x ο 1 ος αριθμός εισόδου y ο 2 ος αριθμός εισόδου z ο 3 ος αριθμός εισόδου 10. Τέλος.

Πρόβλημα 3 48 Να γραφεί πρόγραμμα που να δέχεται μια απροσδιόριστα μεγάλη ακολουθία αριθμών (η οποία τερματίζει με τον αριθμό -1) και να υπολογίζει τα τετράγωνα αυτών. Μια πιο σαφής περιγραφή: Δίνεται μια ακολουθία αριθμών x 1, x 2,, x N, από το πληκτρολόγιο (σήμα τέλους: x N = -1). Να υπολογιστούν και να τυπωθούν στην οθόνη τα τετράγωνα των αριθμών, x 12, x 22,, x N2.

Πρόβλημα 3: Διάγραμμα ροής 49 αρχή x ο τρέχων αριθμός square το τρέχον τετράγωνο x x -1 Α square x * x Ψ τέλος square

Πρόβλημα 3: Ψευδοκώδικας 50 1. Αρχή. x ο τρέχων αριθμός square το τρέχον τετράγωνο 2. Επανάληψη: 3. Διάβασε x. 4. Αν x -1 5. τότε square x* x 6. τύπωσε square. 7. Όσο x -1. 8. Τέλος.

Πρόβλημα 4 51 Να γραφεί πρόγραμμα που να δέχεται μια απροσδιόριστα μεγάλη ακολουθία αριθμών (η οποία τερματίζει με τον αριθμό -1) και να υπολογίζει το άθροισμα αυτών. Μια πιο σαφής περιγραφή: Δίνεται μια ακολουθία αριθμών x 1, x 2,, x N, από το πληκτρολόγιο (σήμα τέλους: x N = -1). Να υπολογιστεί και να τυπωθεί στην οθόνη το άθροισμά τους, x 1 + x 2 +... + x N.

Πρόβλημα 4: Διάγραμμα ροής 52 αρχή sum 0 x ο τρέχων αριθμός sum το μέχρι στιγμής άθροισμα x x -1 Α sum sum + x Ψ sum τέλος

Πρόβλημα 4: Ψευδοκώδικας 53 1. Αρχή. 2. sum 0. x ο τρέχων αριθμός sum το μέχρι στιγμής άθροισμα 3. Επανάληψη: 4. Διάβασε x. 5. Αν x -1 6. τότε sum sum + x. 7. Όσο x -1. 8. Τύπωσε sum. 9. Τέλος.

Ασκήσεις 3 & 4 54 Δώστε διάγραμμα ροής και ψευδοκώδικα για αλγορίθμους που λύνουν τα παρακάτω προβλήματα: Δίνεται μια ακολουθία αριθμών x 1, x 2,, x N, από το πληκτρολόγιο (σήμα τέλους: x N = 1). Να υπολογιστεί και να τυπωθεί στην οθόνη το γινόμενό τους, x 1 * x 2 *... * x N. Δίνεται μια ακολουθία αριθμών x 1, x 2,, x N, από το πληκτρολόγιο (σήμα τέλους: x N = 0). Να υπολογιστεί το πλήθος τους, N, και να τυπωθεί στην οθόνη.

Άσκηση 3: Διάγραμμα ροής 55 αρχή prod 1 x ο τρέχων αριθμός prod το μέχρι στιγμής γινόμενο x x 1 Α prod prod * x Ψ prod τέλος

Άσκηση 3: Ψευδοκώδικας 56 1. Αρχή. 2. prod 1. x ο τρέχων αριθμός prod το μέχρι στιγμής γινόμενο 3. Επανάληψη: 4. Διάβασε x. 5. Αν x 1 6. τότε prod prod * x. 7. Όσο x 1. 8. Τύπωσε prod. 9. Τέλος.

Άσκηση 4: Διάγραμμα ροής 57 αρχή N 0 x ο τρέχων αριθμός N το μέχρι στιγμής πλήθος x x 0 Α N N + 1 Ψ N τέλος

Άσκηση 4: Ψευδοκώδικας 58 1. Αρχή. 2. N 0. x ο τρέχων αριθμός N το μέχρι στιγμής πλήθος 3. Επανάληψη: 4. Διάβασε x. 5. Αν x 0 6. τότε N N + 1. 7. Όσο x 0. 8. Τύπωσε N. 9. Τέλος.

Πρόβλημα 5 59 Να γραφεί πρόγραμμα που να δέχεται μια απροσδιόριστα μεγάλη ακολουθία αριθμών (η οποία τερματίζει με τον αριθμό 0) και να υπολογίζει τον μέσο όρο τους. Μια πιο σαφής περιγραφή: Δίνεται μια ακολουθία αριθμών x 1, x 2,, x N, από το πληκτρολόγιο (σήμα τέλους: x N = 0). Να υπολογιστεί και να τυπωθεί στην οθόνη ο μέσος όρος τους, (x 1 + x 2 +... + x N )/N.

Πρόβλημα 5: Διάγραμμα ροής 60 αρχή N 0 sum 0 x N N + 1 sum sum + x x ο τρέχων αριθμός N το μέχρι στιγμής πλήθος sum το μέχρι στιγμής άθροισμα average ο ζητούμενος μέσος όρος average sum/n Πρόβλημα! Αυξάνεται ακόμη και όταν x=0 Α x 0 Ψ average τέλος

Πρόβλημα 5: Ψευδοκώδικας 61 1. Αρχή. 2. Ν 0. 3. sum 0. 4. Επανάληψη: 5. Διάβασε x. 6. Ν Ν + 1. 7. sum sum + x. 8. Όσο x 0. x ο τρέχων αριθμός N το μέχρι στιγμής πλήθος sum το μέχρι στιγμής άθροισμα average ο ζητούμενος μέσος όρος Πρόβλημα! Αυξάνεται ακόμη και όταν x=0 9. average sum / N. 10. Τύπωσε average. 11. Τέλος.

Πρόβλημα 5: Διάγραμμα ροής 62 αρχή x ο τρέχων αριθμός N 0 N το μέχρι στιγμής πλήθος sum το μέχρι στιγμής άθροισμα sum 0 x 0 Ψ average ο ζητούμενος μέσος όρος x Α N N + 1 average sum/n sum sum + x average x τέλος

Πρόβλημα 5: Ψευδοκώδικας 63 1. Αρχή 2. Ν 0 3. sum 0 4. Διάβασε x 5. Όσο x 0: 6. Ν Ν + 1 7. sum sum + x 8. Διάβασε x 9. Επανέλαβε. x ο τρέχων αριθμός N το μέχρι στιγμής πλήθος sum το μέχρι στιγμής άθροισμα average ο ζητούμενος μέσος όρος 10. average sum / N 11. Τύπωσε average 12. Τέλος

64 Ερωτήσεις;

Πρόβλημα 6 65 Να γραφεί πρόγραμμα που να δέχεται μια απροσδιόριστα μεγάλη ακολουθία φυσικών αριθμών (που τερματίζει με τον αριθμό 0) και να υπολογίζει τον μέγιστο αυτών. Μια πιο σαφής περιγραφή: Δίνεται μια ακολουθία φυσικών αριθμών x 1, x 2,, x N, από το πληκτρολόγιο (σήμα τέλους: x N = 0). Να υπολογιστεί ο μέγιστος αυτών, max(x 1, x 2,, x N ), και να τυπωθεί στην οθόνη.

Πρόβλημα 6: Διάγραμμα ροής 66 αρχή max 0 x x ο τρέχων αριθμός max ο μέχρι στιγμής μέγιστος x 0 Ψ Α Α max<x Ψ max max x τέλος

Πρόβλημα 6: Ψευδοκώδικας 67 1. Αρχή. 2. max 0. x ο τρέχων αριθμός max ο μέχρι στιγμής μέγιστος 3. Επανάληψη: 4. Διάβασε x. 5. Αν x 0 6. τότε Αν max < x 7. τότε max x. 8. Όσο x 0. 9. Τύπωσε max. 10. Τέλος.

Ασκήσεις 5 & 6 68 Δώστε διάγραμμα ροής και ψευδοκώδικα για αλγορίθμους που λύνουν τα παρακάτω προβλήματα: Δίνεται μια ακολουθία αριθμών x 1,, x N στο [0..100] από το πληκτρολόγιο (σήμα τέλους: x N = 101). Να υπολογιστεί ο ελάχιστος αυτών, min(x 1,, x N ), και να τυπωθεί στην οθόνη. Δίνεται μια ακολουθία φυσικών αριθμών x 1, x 2,, x N, από το πληκτρολόγιο (σήμα τέλους: x N = 0). Να υπολογιστεί το πλήθος, ο μέσος όρος, και ο μέγιστος αυτών, και να τυπωθούν στην οθόνη.

Άσκηση 5: Διάγραμμα ροής 69 αρχή min 101 x x ο τρέχων αριθμός min ο μέχρι στιγμής ελάχιστος x 101 Ψ Ψ Α x < min Α min x min τέλος

Άσκηση 5: Ψευδοκώδικας 70 1. Αρχή. 2. min 101. x ο τρέχων αριθμός min ο μέχρι στιγμής ελάχιστος 3. Επανάληψη: 4. Διάβασε x. 5. Αν x 101 6. τότε Αν x < min 7. τότε min x. 8. Όσο x 101. 9. Τύπωσε min. 10. Τέλος.

Άσκηση 6: Διάγραμμα ροής 71 αρχή N 0 sum 0 max 0 Ψ average sum/n x average, max x 0 Ψ Α τέλος N N + 1 x ο τρέχων αριθμός N το μέχρι στιγμής πλήθος sum sum + x sum το μέχρι στιγμής άθροισμα max ο μέχρι στιγμής μέγιστος max<x Α average ο ζητούμενος μέσος όρος max x

Άσκηση 6: Ψευδοκώδικας 72 1. Αρχή. 2. Ν 0. 3. sum 0. 4. max 0. 5. Επανάληψη: 6. Διάβασε x. 7. Αν x 0 8. τότε Ν Ν + 1. 9. sum sum + x. 10. Αν max < x 11. τότε max x. 12. Οσο x 0. x ο τρέχων αριθμός N το μέχρι στιγμής πλήθος sum το μέχρι στιγμής άθροισμα max ο μέχρι στιγμής μέγιστος average ο ζητούμενος μέσος όρος 13. average sum / N. 14. Τύπωσε average, max. 15. Τέλος.

73

Πρόβλημα 7 74 Τα στοιχεία των φοιτητών του ΕΠΛ001 είναι αποθηκευμένα σε αρχείο με όνομα students.dat, ως εξής: id name year grade 123456 Τάκης Χατζητάκης 1 6.5 121212 Στέλλα Μαυροπούλου 2 9 552244 Πέτρος Πετρόπουλος 1 7 Να γραφεί πρόγραμμα που διαβάζει το αρχείο και τυπώνει στην οθόνη τα ονόματα των φοιτητών που αρίστευσαν (δηλ. έλαβαν βαθμό 8).

Πρόβλημα 7: Διάγραμμα ροής 75 αρχή άνοιξε students.dat διάβασε rec Α rec.name όχι EOF Α rec.grade 8 rec η τρέχουσα εγγραφή Ψ Ψ διάβασε rec κλείσε students.dat τέλος

Πρόβλημα 7: Ψευδοκώδικας 76 1. Αρχή. 2. Άνοιξε students.dat. 3. Διάβασε rec. rec η τρέχουσα εγγραφή 4. Όσο όχι EOF: 5. Αν rec.grade 8 6. τότε Τύπωσε rec.name. 7. Διάβασε rec. 8. Επανέλαβε. 9. Κλείσε students.dat. 10. Τέλος.

Πρόβλημα 8 77 Τα στοιχεία των φοιτητών του ΕΠΛ001 είναι αποθηκευμένα σε αρχείο με όνομα students.dat, ως εξής: id name grade final midterm 123456 Τάκης Χατζητάκης 6.5 5 121212 Στέλλα Μαυροπούλου 9 7 552244 Πέτρος Πετρόπουλος 7 8 Να γραφεί πρόγραμμα που διαβάζει το αρχείο και ενημερώνει το πεδίο grade κάθε φοιτητή με τον βαθμό που προκύπτει από την ενδιάμεση και την τελική εξέταση, σύμφωνα με τον τύπο: grade = 0.7 * final + 0.3 * midterm

Πρόβλημα 8: Διάγραμμα ροής 78 αρχή άνοιξε students.dat όχι EOF rec η τρέχουσα εγγραφή Ψ διάβασε rec Α rec.grade 0.7 * rec.final + 0.3 * rec.midterm γράψε rec διάβασε rec κλείσε students.dat τέλος

79

Πρόβλημα 8: Ψευδοκώδικας 80 1. Αρχή. 2. Άνοιξε students.dat. 3. Διάβασε rec. rec η τρέχουσα εγγραφή 4. Όσο όχι EOF: 5. rec.grade 0.7 * rec.final + 0.3 * rec.midterm. 6. Γράψε rec. 7. Διάβασε rec. 8. Επανέλαβε. 9. Κλείσε students.dat. 10. Τέλος.

Άσκηση 7 81 Τα στοιχεία των φοιτητών του ΕΠΛ001 είναι αποθηκευμένα σε αρχείο με όνομα students.dat, ως εξής: id name year grade 123456 Τάκης Χατζητάκης 1 6.5 121212 Στέλλα Μαυροπούλου 2 9 552244 Πέτρος Πετρόπουλος 1 7 Να γραφεί πρόγραμμα που διαβάζει το αρχείο, υπολογίζει το πλήθος των φοιτητών που βρίσκονται στο πρώτο έτος των σπουδών τους (δηλ. year = 1), και τυπώνει στην οθόνη αυτό το πλήθος.

Άσκηση 7: Διάγραμμα ροής 82 αρχή άνοιξε students.dat N 0 όχι EOF Α rec η τρέχουσα εγγραφή N το τρέχον πλήθος Ψ διάβασε rec Α N N+1 rec.year = 1 Ψ N διάβασε rec κλείσε students.dat τέλος

Άσκηση 7: Ψευδοκώδικας 83 1. Αρχή. 2. Άνοιξε students.dat. 3. N 0. 4. Διάβασε rec. rec η τρέχουσα εγγραφή N το τρέχον πλήθος 5. Όσο όχι EOF: 6. Αν rec.year = 1 7. τότε N N + 1. 8. Διάβασε rec. 9. Επανέλαβε. 10. Τύπωσε N. 11. Κλείσε students.dat. 12. Τέλος.

Άσκηση 8 84 Τα στοιχεία των φοιτητών του ΕΠΛ001 είναι αποθηκευμένα σε αρχείο με όνομα students.dat, ως εξής: id name year grade 123456 Τάκης Χατζητάκης 1 6.5 121212 Στέλλα Μαυροπούλου 2 9 552244 Πέτρος Πετρόπουλος 1 7 Να γραφεί πρόγραμμα που διαβάζει το αρχείο, υπολογίζει τον μέσο όρο των βαθμών όλων των φοιτητών, και τυπώνει στην οθόνη αυτόν τον μέσο όρο.

Άσκηση 8: Διάγραμμα ροής 85 αρχή άνοιξε students.dat N 0 sum 0 διάβασε rec όχι EOF Α N N+1 διάβασε rec Ψ sum sum + rec.grade rec η τρέχουσα εγγραφή N το τρέχον πλήθος sum το τρέχον άθροισμα average ο μέσος όρος average sum/n average κλείσε students.dat τέλος

Άσκηση 8: Ψευδοκώδικας 86 1. Αρχή. 2. Άνοιξε students.dat. 3. N 0. 4. sum 0. 5. Διάβασε rec. 6. Όσο όχι EOF: 7. N N + 1. 8. sum sum + rec.grade. 9. Διάβασε rec. 10. Επανέλαβε. rec η τρέχουσα εγγραφή N το τρέχον πλήθος sum το τρέχον άθροισμα average ο μέσος όρος 11. average sum / N. 12. Τύπωσε average. 13. Κλείσε students.dat. 14. Τέλος.

87 Ερωτήσεις;

88

89