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

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

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

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

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

ΘΕΜΑΤΑ + ΥΠΟ ΕΙΓΜΑΤΙΚΗ ΕΠΙΛΥΣΗ

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

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

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

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

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

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

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

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

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Εντολές επανάληψης Εντολές επανάληψης while for do-while ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Παράδειγμα #1 Εντολή while

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

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

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

Γλώσσα Προγραμματισμού C. Προγραμματισμός HY: Γλώσσα Προγραμματισμού C. Γρήγορος Πίνακας Αναφοράς Σύνταξης. Εισήγηση #4. Επαναληπτικές δομές:

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

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

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Εντολές for, while, do-while Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

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

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

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

Γ7.1 Επανάληψη ύλης Β Λυκείου. Γ Λυκείου Κατεύθυνσης

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

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

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

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

ΗΥ-150. Προγραμματισμός

8. Η δημιουργία του εκτελέσιμου προγράμματος γίνεται μόνο όταν το πηγαίο πρόγραμμα δεν περιέχει συντακτικά λάθη.

ΗΥ-150. Προγραμματισμός

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 2 η

8.4. Δραστηριότητες - ασκήσεις

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

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

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

Εντολές Επανάληψης. int sum = 0, i=1; sum += i++ ; sum += i++ ; Η πράξη αυτή θα πρέπει να επαναληφθεί Ν φορές!

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

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός (ΤΛ1006)

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

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

Δομές ελέγχου ροής προγράμματος

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

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

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

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

Β7.1.4 Δομές Επανάληψης. Β Λυκείου Κατεύθυνσης

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι χρειάζεται η εντολή if ; Εντολή if. Παράδειγμα #1. Παράδειγμα #1

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

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

Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

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

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

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

ΘΕΜΑΤΑ ΕΞΕΤΑΣΗΣ ΚΑΙ ΑΠΑΝΤΗΣΕΙΣ

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

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

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

Διάλεξη 5η: Εντολές Επανάληψης

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 6)

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

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

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

ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΑΤΙΣΜΟΣ Α (C++) ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΤΩΝ Δρ. Νικόλαος Ζ. Ζάχαρης

ΑΣΚΗΣΗ 4: ΟΜΕΣ ΒΑΣΙΚΩΝ ΒΡΟΧΩΝ

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java

Τι είναι υποπρόγραμμα; Τμήμα προγράμματος το οποίο επιτελεί ένα αυτόνομο υπολογιστικό έργο (γράφεται χωριστά από το υπόλοιπο πρόγραμμα)

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) a= b= c= 3 read(d,e)

Πληροφορική. Ενότητα 1: Α. Οργάνωση μαθήματος. Β. Στοιχεία Προγραμματισμού -Προγραμματιστικές Δομές, Πρόγραμμα, Γλώσσες.

Πρόβλημα 37 / σελίδα 207

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

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

Παίρνοντας Αποφάσεις 1

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

8 FORTRAN 77/90/95/2003

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επανάληψης. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

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

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

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

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

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013

Αριθμητική Ανάλυση & Εφαρμογές

Απλά Προγράμματα. Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων

Βήματα: μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων. Δομές Δεδομένων + Αλγόριθμοι = Προγράμματα

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

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ.

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

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

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

Transcript:

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόμων Τοπογράφων Μηχανικών Εισαγωγή στην πληροφορική Βασίλειος Βεσκούκης Δρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Παραδείγματα δομημένου προγραμματισμού σε C++ (Μέρος 2) Χρήση πινάκων Παράδειγμα 1: Πρόσθεση πινάκων Να κατασκευαστεί πρόγραμμα C++ που να προσθέτει δύο πίνακες ακεραίων, με διαστάσεις το πολύ ΝxM. Σχεδίαση του Ορισμός των Μ και Ν ως σταθερές με «εύλογα μεγάλες» τιμές: Μ_max, N_max Ορισμός τριών πινάκων Α, B, C διαστάσεων Μ_max x N_max Χρήση δύο μτβλ Μ και Ν για τις ανάγκες του Απόδοση τιμών στα Μ και Ν κατά την εκτέλεση του (τι πρέπει να ισχύει για τις τιμές των Μ και Ν;) Ανάγνωση τιμών των πινάκων Α, Β Υπολογισμός κάθε στοιχείου του πίνακα C ως άθροισμα των αντιστοίχων στοιχείων των Α και Β Εκτύπωση του πίνακα C 1

Χρήση πινάκων Υλοποίηση χωρίς συναρτήσεις (δες tables-example1.cpp) Μεγάλο κύριο πρόγραμμα Δύσκολο στην κατανόηση Δύσκολο στη συντήρηση βελτίωση διόρθωση Υλοποίηση με συναρτήσεις (δες tables-example2.cpp) Μικρό κύριο πρόγραμμα Κατανοητές λειτουργίες μέσα στο κύριο πρόγραμμα Υλοποίηση λειτουργιών ως συναρτήσεις Εύκολες οι τροποποιήσεις στις συναρτήσεις και διαθέσιμες σε όλες τις κλήσεις των συναρτήσεων Λίγες και μόνο στην αρχή οι δυσκολίες ορισμού συναρτήσεων και περάσματος παραμέτρων Χρήση του switch Παρατηρήσεις Ανάλογα με την τιμή μιας παράστασης (μεταβλητή ελέγχου) το switch αρχίζει την εκτέλεση ενός block εντολών από ένα συγκεκριμένο σημείο Το switch ΔΕΝ εκτελεί ένα block εντολών για κάθε τιμή της μεταβλητής ελέγχου Αν θέλουμε να εκτελούμε μόνο μία ομάδα εντολών για κάθε τιμή της μτβλ ελέγχου, πρέπει στο τέλος της ομάδας να βάζουμε break Παράδειγμα (υπολογισμός της ημέρας της εβδομάδας) Διάβασε τον αριθμό της ημέρας (0-6) Δώσε τιμή στη μτβλ dow (0=Sunday, 6=Saturday) Εμφάνισε στην οθόνη την τιμή της μτβλ dow 2

Χρήση του switch (παράδειγμα) int d; string dow; do { cout<<"enter the day number:"; cin>>d; } while ((d<0) (d>6)); switch (d) { case 0: dow="sunday"; case 1: dow="monday"; case 2: dow="tuesday"; case 3: dow="wednesday"; case 4: dow="thursday"; case 5: dow="friday"; case 6: dow="saturday"; default:dow="***"; } cout << endl << dow << endl; Χρήση του switch (παράδειγμα) int d; string dow; do { cout<<"enter the day number:"; cin>>d; } while ((d<0) (d>6)); switch (d) { case 0: dow="sunday"; case 1: dow="monday"; case 2: dow="tuesday"; case 3: dow="wednesday"; case 4: dow="thursday"; case 5: dow="friday"; case 6: dow="saturday"; default:dow="***"; } cout << endl << dow << endl; 3

Χρήση του switch int d; float parking_price; do { cout<<"parking from a specified day till Saturday"<<endl; cout<<"enter the day you will park the car:"; cin>>d; } while ((d<0) (d>6)); parking_price=20; // minimum charge switch (d) { case 0: case 1: parking_price=parking_price+10; case 2: parking_price=parking_price+10; case 3: parking_price=parking_price+10; case 4: parking_price=parking_price+10; case 5: parking_price=parking_price+10; case 6: parking_price=parking_price+10; } cout << endl << parking_price << endl; Παραδειγμα αθροίσματος σειράς Ας υπολογίζουμε το ημίτονο ως άθροισμα της σειράς sin(x) = x 1 /1! + x 3 /3! + x 5 /5! + x 7 /7! +... Μέχρι του σημείου που η διαφορά δύο διαδοχικών όρων να είναι μικρότερη από 10-4 Ακολουθούμε τα βήματα: Μαθηματικός τύπος: Σ (x n /n!) Ο πρώτος όρος: x Ο γενικός όρος: x n /n! Η συνθήκη συνέχισης της άθροισης: x n /n! >= 10-4 Επαλήθευση! Αλγόριθμος 4

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

Μια γνωστή ακολουθία ενεργειών... Δεδομένα, ζητούμενα, περιορισμοί Μέθοδος επίλυσης ΑΝ ΔΕΝ ΜΠΟΡΟΥΜΕ ΝΑ ΕΠΙΛΥΣΟΥΜΕ ΕΝΑ ΠΡΟΒΛΗΜΑ ΜΕ ΤΟ ΧΕΡΙ, ΔΕΝ ΜΠΟΡΟΥΜΕ ΝΑ ΤΟ ΕΠΙΛΥΣΟΥΜΕ ΟΥΤΕ ΜΕ ΥΠΟΛΟΓΙΣΤΗ Εισοδος, επεξεργασία, έξοδος Ακολουθία, απόφαση, επανάληψη Τύποι δεδομένων, συντακτικό, εκφράσεις, δομές ελέγχου και επανάληψης, είσοδος-έξοδος, δομή Σύνταξη εντολών και δομών ελέγχου Επιβεβαίωση ότι η περιγραφή της λύσης στη C++ είναι σωστή Επιβεβαίωση ότι η λύση είναι σωστή Μια γνωστή ακολουθία ενεργειών... Δεδομένα, ζητούμενα, περιορισμοί Μέθοδος επίλυσης Εισοδος, επεξεργασία, έξοδος Ακολουθία, απόφαση, επανάληψη "ΔΙΑΙΡΕΙ ΚΑΙ ΒΑΣΙΛΕΥΕ": ΕΙΣΗΓΑΓΕ ΔΟΜΗ ΣΤΗ ΛΥΣΗ, ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΑΥΤΑ ΤΑ ΤΡΙΑ ΜΕΣΑ Τύποι δεδομένων, συντακτικό, εκφράσεις, δομές ελέγχου και επανάληψης, είσοδος-έξοδος, δομή Σύνταξη εντολών και δομών ελέγχου Επιβεβαίωση ότι η περιγραφή της λύσης στη C++ είναι σωστή Επιβεβαίωση ότι η λύση είναι σωστή 6

Μια γνωστή ακολουθία ενεργειών... Δεδομένα, ζητούμενα, περιορισμοί Μέθοδος επίλυσης Εισοδος, επεξεργασία, έξοδος Ακολουθία, απόφαση, επανάληψη Τύποι δεδομένων, συντακτικό, εκφράσεις, δομές ελέγχου και επανάληψης, είσοδος-έξοδος, δομή Σύνταξη εντολών και δομών ελέγχου Επιβεβαίωση ότι η περιγραφή της λύσης στη C++ είναι σωστή Επιβεβαίωση ότι η λύση είναι σωστή ΠΕΡΙΓΡΑΨΕ ΤΗ ΛΥΣΗ ΜΕ ΕΝΤΟΛΕΣ C++ ΠΟΥ ΥΛΟΠΟΙΟΥΝ ΤΟΝ ΑΛΓΟΡΙΘΜΟ. ΧΡΗΣΙΜΟΠΟΙΗΣΕ ΤΑ ΕΡΓΑΛΕΙΑ ΤΗΣ ΓΛΩΣΣΑΣ. Μια γνωστή ακολουθία ενεργειών... Δεδομένα, ζητούμενα, περιορισμοί Μέθοδος επίλυσης Εισοδος, επεξεργασία, έξοδος Ακολουθία, απόφαση, επανάληψη Τύποι δεδομένων, συντακτικό, εκφράσεις, δομές ελέγχου και επανάληψης, είσοδος-έξοδος, δομή Σύνταξη εντολών και δομών ελέγχου Επιβεβαίωση ότι η περιγραφή της λύσης στη C++ είναι σωστή Επιβεβαίωση ότι η λύση είναι σωστή ΕΠΙΧΕΙΡΗΣΕ ΝΑ ΜΕΤΑΓΛΩΤΤΙΣΕΙΣ ΤΟ ΠΡΟΓΡΑΜΜΑ ΩΣΤΕ ΝΑ ΕΛΕΓΧΘΕΙ Η ΣΥΝΤΑΚΤΙΚΗ ΤΟΥ ΟΡΘΟΤΗΤΑ 7

Μια γνωστή ακολουθία ενεργειών... Δεδομένα, ζητούμενα, περιορισμοί Μέθοδος επίλυσης Εισοδος, επεξεργασία, έξοδος Ακολουθία, απόφαση, επανάληψη Τύποι δεδομένων, συντακτικό, εκφράσεις, δομές ελέγχου και επανάληψης, είσοδος-έξοδος, δομή Σύνταξη εντολών και δομών ελέγχου Επιβεβαίωση ότι η περιγραφή της λύσης στη C++ είναι σωστή Επιβεβαίωση ότι η λύση είναι σωστή ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΔΟΚΙΜΑΣΤΙΚΑ ΔΕΔΟΜΕΝΑ ή ΑΛΛΟ ΤΡΟΠΟ, ΕΠΙΒΕΒΑΙΩΣΕ ΟΤΙ ΕΚΤΟΣ ΑΠΟ ΤΗΝ ΠΕΡΙΓΡΑΦΗ, ΕΙ ΣΩΣΤΗ ΚΑΙ Η ΟΥΣΙΑ ΤΗΣ ΛΥΣΗΣ! Εφαρμογή των παραπάνω: παράδειγμα Δίδονται Ν σημεία στο καρτεσιανό επίπεδο. Nα επιλεχθούν εκείνα τα οποία ανήκουν σε κυκλικό δίσκο ακτίνας R και να εκτυπωθούν οι συντεταγμένες τους. y (x n, y n ) (x k, y k ) x R 8

Εφαρμογή των παραπάνω: παράδειγμα Δίδονται Ν σημεία στο καρτεσιανό επίπεδο. Nα επιλεχθούν εκείνα τα οποία ανήκουν σε κυκλικό δίσκο ακτίνας R και να εκτυπωθούν οι συντεταγμένες τους. y (x n, y n ) (x k, y k ) x ΛΥΣΗ ΜΕ ΤΟ ΧΕΡΙ: Αν για το σημείο i ισχύει ότι x i2 +y i2 <=R 2, τότε το σημείο ανήκει στον κυκλικό δίσκο ακτίνας R, διαφορετικά όχι R Εφαρμογή των παραπάνω: παράδειγμα ΛΥΣΗ ΜΕ ΤΟ ΧΕΡΙ: Αν για το σημείο i ισχύει ότι x i2 +y i2 <=R 2, τότε το σημείο ανήκει στον κυκλικό δίσκο ακτίνας R, διαφορετικά όχι ΕΙΣΑΓΩΓΗ ΑΡΧΗ ΔΙΑΒΑΣΕ ΤΙΣ ΣΥΝΤΕΤΑΓΜΕΝΕΣ ΤΩΝ Ν ΣΗΜΕΙΩΝ ΕΠΕΞΕΡΓΑΣΙΑ ΕΛΕΓΞΕ ΑΝ ΤΟ ΣΗΜΕΙΟ i ΑΝΗΚΕΙ ΣΤΟΝ ΔΙΣΚΟ (R) ANHK EI ΕΚΤΥΠΩΣΕ Xi, Yi ΕΞΟΔΟΣ i=n ΤΕΛΟΣ 9

Εφαρμογή των παραπάνω: παράδειγμα ΔΙΑΒΑΣΕ ΤΙΣ ΣΥΝΤΕΤΑΓΜΕΝΕΣ ΤΩΝ Ν ΣΗΜΕΙΩΝ ΕΛΕΓΞΕ ΑΝ ΤΟ ΣΗΜΕΙΟ i ΑΝΗΚΕΙ ΣΤΟΝ ΔΙΣΚΟ (R) ANHK EI ΕΚΤΥΠΩΣΕ Xi, Yi Πρέπει να: Εξασφαλίσω χώρο για την αποθήκευση των συντεταγμένων Διαβάσω το πλήθος των σημείων Ν και την ακτίνα R Επαναλάβω ανάγνωση συντεταγμένων για όλα τα Ν σημεία i=n ΤΕΛΟΣ Θα χρησιμοποιήσω μια επαναληπτική δομή for() η οποία χρειάζεται μια ακέραια μεταβλητή ελέγχου i, την οποία πρέπει να δηλώσω. Χρειάζομαι έναν πίνακα πραγματικών αριθμών x και έναν πίνακα y. Το πλήθος των στοιχείων των πινάκων (Μ) καθορίζεται αυθαίρετα. Χρειάζομαι έναν ακέραιο Ν για να αποθηκεύσω το πλήθος των σημείων. Πρέπει Ν<=Μ. Θα ορίσω έναν πραγματικό αριθμό για την R. Εφαρμογή των παραπάνω: παράδειγμα ΔΙΑΒΑΣΕ ΤΙΣ ΣΥΝΤΕΤΑΓΜΕΝΕΣ ΤΩΝ Ν ΣΗΜΕΙΩΝ ΕΛΕΓΞΕ ΑΝ ΤΟ ΣΗΜΕΙΟ i ΑΝΗΚΕΙ ΣΤΟΝ ΔΙΣΚΟ (R) ANHK EI ΕΚΤΥΠΩΣΕ Xi, Yi Πρέπει να: Επαναλάβω τον έλεγχο των Ν σημείων i=n ΤΕΛΟΣ Θα χρησιμοποιήσω μια επαναληπτική δομή for() για τιμές από i=0, ενόσω i<ν και αυξάνοντας κατά 1 σε κάθε επανάληψη. 10

Εφαρμογή των παραπάνω: παράδειγμα ΔΙΑΒΑΣΕ ΤΙΣ ΣΥΝΤΕΤΑΓΜΕΝΕΣ ΤΩΝ Ν ΣΗΜΕΙΩΝ ΕΛΕΓΞΕ ΑΝ ΤΟ ΣΗΜΕΙΟ i ΑΝΗΚΕΙ ΣΤΟΝ ΔΙΣΚΟ (R) ANHK EI ΕΚΤΥΠΩΣΕ Xi, Yi i=n ΤΕΛΟΣ Πρέπει να: Ελέγξω για το σημείο i: αν x i2 +y i2 <R 2 τότε εκτύπωσε x i, y i Θα χρησιμοποιήσω μια δομή ελέγχου if η οποία δεν χρειάζεται να έχει σκέλος "else". Εφαρμογή των παραπάνω: παράδειγμα int main() { const int M=100; int N, i; float x[m], y[m], R; ΔΙΑΒΑΣΕ ΤΙΣ ΣΥΝΤΕΤΑΓΜΕΝΕΣ ΤΩΝ Ν ΣΗΜΕΙΩΝ ΕΛΕΓΞΕ ΑΝ ΤΟ ΣΗΜΕΙΟ i ΑΝΗΚΕΙ ΣΤΟΝ ΔΙΣΚΟ (R) cin>>r; cin>>n; for(i=0;i<n;i++) { cin>>x[i]>>y[i]; } // είσοδος ANHK EI ΕΚΤΥΠΩΣΕ Xi, Yi for(i=0;i<n;i++) { // επεξεργασία if (x[i]*x[i]+y[i]*y[i]<=r*r) cout<<x[i]<<y[i]; // έξοδος } } i=n ΤΕΛΟΣ 11

Παράδειγμα με πίνακες (Θέμα εξέτασης και κατατακτηρίων) Συμμετρικός ως προς την κεντρική γραμμή είναι ο πίνακας Α διαστάσεων 3xN (Ν είναι ακέραιος υποχρεωτικά περιττός) για τον οποίο ισχύει ότι Α[0,j]=A[2,j] για κάθε επιτρεπτή τιμή του j. Στο διπλανό σχήμα φαίνεται ως παράδειγμα ένας τέτοιος πίνακας. Α. Σχεδιάστε έναν αλγόριθμο ο οποίος εξετάζει αν ο πίνακας ακεραίων αριθμών Α, διαστάσεων 3 x n είναι συμμετρικός ως προς την κεντρική γραμμή. Β. Να υλοποιήσετε τον αλγόριθμο που κατασκευάσατε σε πηγαίο κώδικα C++ θεωρώντας ότι τα στοιχεία του πίνακα Α έχουν ήδη διαβαστεί. Το πρόγραμμά σας να αποφασίζει αν ο πίνακας Α είναι ο μοναδιαίος ή όχι και να εμφανίζει ανάλογο μήνυμα στην οθόνη. 1 5 9 0 1 0 1 5 9 1 4 9 0 1 0 1 5 9 Παράδειγμα: Μέθοδος διχοτόμησης για επίλυση μη γραμμικών εξισώσεων 12

Παράδειγμα: Μέθοδος διχοτόμησης για επίλυση μη γραμμικών εξισώσεων Παράδειγμα: Μέθοδος διχοτόμησης για επίλυση μη γραμμικών εξισώσεων 13