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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση.
Advertisements

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Ανάλυση προβλημάτων και Αλγόριθμοι
Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
Αναδρομη και static Γραψετε την συναρτηση sequence_size που διαβαζει μια απροσδιοριστου μεγεθους σειρας και υπολογιζει και τυπωνει το μεγεθος της. int.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Γλώσσα Προγραμματισμού
ΜΑΘ-3122/106 Προγραμματισμός
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
Μήτρες (templates)  Μία μήτρα είναι ένα κομμάτι κώδικα που περιέχει παραμέτρους οι οποίες δέχονται ως τιμές τύπους δεδομένων.  Είναι ένας μηχανισμός.
Μεθοδολογίες Προγραμματισμού ΙΙ Έλεγχος Λογισμικού - ECLIPSE JUNIT – TDD TFD + Refactoring Παναγιώτης Σφέτσος, PhD
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ-150 Προγραμματισμός Αλγόριθμοι και Προγράμματα.
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
1 Ολυμπιάδα Πληροφορικής Μάθημα 7. 2 Στόχοι μαθήματος Δημιουργία συναρτήσεων από το χρήστη Δομή προγράμματος με συναρτήσεις Συναρτήσεις και παράμετροι.
ΣΥΝΑΡΤΗΣΕΙΣ.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II.
Ποιότητα Λογισμικού Ενότητα 6: Μέτρηση της κάλυψης των ελέγχων. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής.
Ποιότητα Λογισμικού Ενότητα 4: Παράδειγμα Ελέγχου. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής Εκπαίδευσης.
Εισαγωγή στον αντικειμενοστραφή προγραμματισμό Κλάσεις και αντικείμενα Κλάσεις και αντικείμενα Κατασκευαστές κλάσεων (constructors) Κατασκευαστές κλάσεων.
Ποιότητα Λογισμικού Ενότητα 3: Σουίτες Ελέγχων. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής Εκπαίδευσης.
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
Ποιότητα Λογισμικού Ενότητα 2: Παραμετρικοί έλεγχοι στο JUnit. Διδάσκων: Γεώργιος Κακαρόντζας, Καθηγητής Εφαρμογών. Τμήμα Μηχανικών Πληροφορικής, Τεχνολογικής.
ΜΑΘΗΜΑ: ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Τμ.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΤΟ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΗΣ ΓΛΩΣΣΑΣ PASCAL ΠΑΡΟΥΣΙΑΣΗ ΠΑΡΑΔΕΙΓΜΑΤΟΣ: ΕΚΤΕΛΕΣΗ ΠΡΟΓΡΑΜΜΑΤΟΣ ΜΕ ΤΙΣ ΤΡΕΙΣ ΕΠΑΝΑΛΗΠΤΙΚΕΣ.
Κεφάλαιο 10 – Υποπρογράμματα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
ΟΣΣ Δεκεμβρίου 2004 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις.
ΛΟΓ201: Τεχνολογία Λογισμικού ΙΙ Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ201:
Threads Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά η μία μετά.
Applets Εκτελούνται από τον appletviewer και από Java enabled web browsers Εκμεταλλεύονται τo γραφικό υπόβαθρο που παρέχουν οι browsers, έχοντας έτσι τη.
Κεφάλαιο 4 Εξαιρέσεις. Όταν σε ένα πρόγραμμα συμβεί κάποιο λάθος, ο κώδικας εγείρει (throw) μία εξαίρεση. Στη Java oι εξαιρέσεις εκπροσωπούνται από αντικείμενα.
ΗΥ150 – Προγραμματισμός Ξενοφών Ζαμπούλης 1 getchar() /* char_count.c A program to count characters of input. */ main() { int c ; int count = 0; while.
Βασικά στοιχεία της Java
Κεφάλαιο 3 Τύποι Δεδομένων - Τελεστές. Πρωτογενείς τύποι δεδομένων: int, float, double, chars ΤύποςΌνομαΜέγεθος byte 8-bit signed, short 16-bit.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 2: Μεταβλητές και Τύποι Δεδομένων. Διδάσκων: Νικόλαος Θ Λιόλιος,
Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 8: Κατασκευαστές. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής. Τμήμα.
Προγραμματισμός & Εφαρμογές Η/Υ (Θ) Ενότητα 10: Εισαγωγή στο Προγραμματισμό με το MatLab 7.x (Μέρος 1 ο ) Δρ. Β.Χ. Μούσας, Αναπληρωτής Καθηγητής Τμήμα.
Αντικειμενοστραφής Προγραμματισμός Ι
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 10: Αφηρημένες τάξεις. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές) Ένα μεγάλο παράδειγμα.
Εισαγωγή στον Προγ/μό Η/Υ Ενότητα 7 – 2ο μέρος: Επιπλέον έννοιες σχετικά με αντικείμενα Διδάσκων: Μιχάλης Τίτσιας.
ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Αντικειμενοστραφής προγραμματισμός Web Site: ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ.
Εισαγωγή στον Προγ/μό Η/Υ
Εργαστηριακό σεμινάριο Χειμερινό εξάμηνο
Βασικές έννοιες Αντικειμενοστραφούς Προγραμματισμού ΙΙ
Κληρονομικότητα [inheritance]
Εισαγωγή στον Προγ/μό Υπολογιστών
Εφαρμογές Υπολογιστών
Κλάσεις και αντικείμενα
Βασικές έννοιες Αντικειμενοστραφούς Προγραμματισμού ΙΙ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Τεχνολογία και Προγραμματισμός Υπολογιστών
Εφαρμογές Πληροφορικής
Εισαγωγή στον Προγ/μό Υπολογιστών
ΚΕΦΑΛΑΙΟ 2 ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΤΗΣ JAVA
Κεφάλαιο 10 Streams.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Η ΠΡΑΚΤΙΚΗ ΑΣΚΗΣΗ ΤΩΝ ΦΟΙΤΗΤΩΝ ΤΟΥ ΜΑΘΗΜΑΤΙΚΟΥ ΣΤΑ ΣΧΟΛΕΙΑ: ΜΙΑ ΠΙΛΟΤΙΚΗ ΕΦΑΡΜΟΓΗ Εαρινό εξάμηνο
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΑΣΚΗΣΕΙΣ.
Μεταγράφημα παρουσίασης:

Εισαγωγή στον Προγ/μό Η/Υ Ενότητα 4 Συναρτήσεις Διδάσκων: Μιχάλης Τίτσιας

Τι είναι οι συναρτήσεις Ορισμοί λειτουργιών/εντολών που δέχονται δεδομένα/ορίσματα εισόδου και επιστρέφουν (πιθανόν) μια έξοδο. Στην Java οι συναρτήσεις ονομάζονται μέθοδοι τις οποίες θα τις παρουσιάσουμε διεξοδικά και πιο αυστηρά σε επόμενα μαθήματα. Εδώ θα δούμε πως μπορούμε να ορίσουμε δικές μας απλές μεθόδους/συναρτήσεις.

Συναρτήσεις double R, per; double pi = 3.14; R = 5; per = 2*pi*R; import acm.program.*; public class test extends Program { public void run() { double R, per; double pi = 3.14; R = 5; per = 2*pi*R; println(”Περιφέρεια κύκλου ακτίνας ”+R+”=”+per); }

Συναρτήσεις double R, per; R = 5; per = perifereia(R); import acm.program.*; public class test extends Program { public void run() { double R, per; R = 5; per = perifereia(R); println(”Περιφέρεια κύκλου ακτίνας ”+R+”=”+per); }

Συναρτήσεις double R, per; R = 5; perifereia(R); import acm.program.*; public class test extends Program { public void run() { double R, per; R = 5; perifereia(R); println(”Περιφέρεια κύκλου ακτίνας ”+R+”=”+per); println(”Εμβαδό = ”+emvado(R)); }

Ορισμός συναρτήσεων Μαθηματικά Java perifereia(x) = 2πx emvado(x) = πx2 double perifereia(double x ) { return 2*3.14*x; } double emvado(double x ) { return 3.14*x*x; }

Ορισμός συναρτήσεων double perifereia(double x) { return 2*3.14*x; import acm.program.*; public class test extends Program { public void run() { double R, per; R = 5; per = perifereia(R); println(”Περιφέρεια κύκλου ακτίνας ”+R+”=”+per); println(”Εμβαδό = ”+emvado(R)); } double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x;

Επαναχρησιμοποίηση κώδικα import acm.program.*; public class test extends Program { public void run() { double R; R = 5; println(”Περιφέρεια κύκλου ακτίνας ”+R+”=”+ perifereia(R)); println(”Εμβαδό = ”+emvado(R)); R = 6; println(”Περιφέρεια κύκλου ακτίνας ”+R+”=”+perifereia(R)); } double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x;

Επαναχρησιμοποίηση κώδικα import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x;

Επαναχρησιμοποίηση κώδικα import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x; run circle_info perifereia emvado println

Επαναχρησιμοποίηση κώδικα import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x; Πρόβλημα Πληροφορίες κύκλου με δεδομένη ακτίνα περιφέρεια εμβαδό εμφάνιση

Αποτίμηση συναρτήσεων import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x; Πλαίσιο εκτέλεσης της run

Αποτίμηση συναρτήσεων import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x; Πλαίσιο εκτέλεσης της circle_info Πλαίσιο εκτέλεσης της run r double 5.0

Αποτίμηση συναρτήσεων import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x; Πλαίσιο εκτέλεσης της perifereia Πλαίσιο εκτέλεσης της circle_info x double 5.0 Πλαίσιο εκτέλεσης της run r short 5 Τιμή:

Αποτίμηση συναρτήσεων import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x; Πλαίσιο εκτέλεσης της perifereia Πλαίσιο εκτέλεσης της circle_info x double 5.0 Πλαίσιο εκτέλεσης της run r short 5 Τιμή: 31.4

Αποτίμηση συναρτήσεων import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x; 31.4 Πλαίσιο εκτέλεσης της circle_info Πλαίσιο εκτέλεσης της run r double 5.0

Αποτίμηση συναρτήσεων import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x; 31.4 Πλαίσιο εκτέλεσης της println s String ”Περιφέρεια κύκλου ακτίνας 5 = 31.4” Πλαίσιο εκτέλεσης της circle_info Πλαίσιο εκτέλεσης της run r short 5

Αποτίμηση συναρτήσεων import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x; Πλαίσιο εκτέλεσης της circle_info Πλαίσιο εκτέλεσης της run r double 5.0

Αποτίμηση συναρτήσεων import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x; Πλαίσιο εκτέλεσης της emvado Πλαίσιο εκτέλεσης της circle_info x double 5.0 Πλαίσιο εκτέλεσης της run r short 5 Τιμή:

Αποτίμηση συναρτήσεων import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x; Πλαίσιο εκτέλεσης της emvado Πλαίσιο εκτέλεσης της circle_info x double 5.0 Πλαίσιο εκτέλεσης της run r short 5 Τιμή: 785.0

Αποτίμηση συναρτήσεων import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x; 785.0 Πλαίσιο εκτέλεσης της circle_info Πλαίσιο εκτέλεσης της run r double 5.0

Αποτίμηση συναρτήσεων import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x; Πλαίσιο εκτέλεσης της println s String ”Εμβαδό=785.0” Πλαίσιο εκτέλεσης της circle_info Πλαίσιο εκτέλεσης της run r short 5

Αποτίμηση συναρτήσεων import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x; Πλαίσιο εκτέλεσης της circle_info Πλαίσιο εκτέλεσης της run r double 5.0

Αποτίμηση συναρτήσεων import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x; Πλαίσιο εκτέλεσης της run

Αποτίμηση συναρτήσεων import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x; Πλαίσιο εκτέλεσης της circle_info Πλαίσιο εκτέλεσης της run r double 6.0

Αποτίμηση συναρτήσεων import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x; Πλαίσιο εκτέλεσης της perifereia Πλαίσιο εκτέλεσης της circle_info x double 6.0 Πλαίσιο εκτέλεσης της run r short 5 Τιμή:

Αποτίμηση συναρτήσεων import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x; Πλαίσιο εκτέλεσης της perifereia Πλαίσιο εκτέλεσης της circle_info x double 6.0 Πλαίσιο εκτέλεσης της run r short 5 Τιμή: 37.68

Αποτίμηση συναρτήσεων import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x; 37.68 Πλαίσιο εκτέλεσης της circle_info Πλαίσιο εκτέλεσης της run r double 6.0

Αποτίμηση συναρτήσεων import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x; 37.68 Πλαίσιο εκτέλεσης της println s String ”Περιφέρεια κύκλου ακτίνας 5 = 37.68” Πλαίσιο εκτέλεσης της circle_info Πλαίσιο εκτέλεσης της run r short 5

Αποτίμηση συναρτήσεων import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x; Πλαίσιο εκτέλεσης της circle_info Πλαίσιο εκτέλεσης της run r double 6.0

Αποτίμηση συναρτήσεων import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x; Πλαίσιο εκτέλεσης της emvado Πλαίσιο εκτέλεσης της circle_info x double 6.0 Πλαίσιο εκτέλεσης της run r short 5 Τιμή:

Αποτίμηση συναρτήσεων import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x; Πλαίσιο εκτέλεσης της emvado Πλαίσιο εκτέλεσης της circle_info x double 6.0 Πλαίσιο εκτέλεσης της run r short 5 Τιμή: 113.04

Αποτίμηση συναρτήσεων import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x; 113.04 Πλαίσιο εκτέλεσης της circle_info Πλαίσιο εκτέλεσης της run r double 6.0

Αποτίμηση συναρτήσεων import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x; Πλαίσιο εκτέλεσης της println s String ”Εμβαδό=113.04” Πλαίσιο εκτέλεσης της circle_info Πλαίσιο εκτέλεσης της run r short 5

Αποτίμηση συναρτήσεων import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x; Πλαίσιο εκτέλεσης της circle_info Πλαίσιο εκτέλεσης της run r double 6.0

Αποτίμηση συναρτήσεων import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x; Πλαίσιο εκτέλεσης της run

Αποτίμηση συναρτήσεων import acm.program.*; public class test extends Program { public void run() { circle_info(5); circle_info(6); } void circle_info(double r) { println(”Περιφέρεια κύκλου ακτίνας ”+r+”=”+perifereia(r)); println(”Εμβαδό = ”+emvado(r)); double perifereia(double x) { return 2*3.14*x; double emvado(double x) { return 3.14*x*x; ΤΕΛΟΣ

Παράδειγμα Πρόβλημα: υπολογισμός συνολικής ετήσιας απόδοσης δύο καταθετικών λογαριασμών με μηνιαίο επιτόκιο 5%, 18% με αρχικά κεφάλαια 10€ και 3€ αντιστοίχως. Πρόβλημα Ετήσια απόδοση Εμφάνιση Μηνιαία απόδοση

Παράδειγμα Πρόβλημα: υπολογισμός συνολικής ετήσιας απόδοσης δύο καταθετικών λογαριασμών με μηνιαίο επιτόκιο 5%, 18% με αρχικά κεφάλαια 10€ και 3€ αντιστοίχως. run ethsia_apodosh println m

Παράδειγμα public void run() { import acm.program.*; public class test extends Program { public void run() { double synolo, kef1 = 10, kef2 = 3, tok1 = 5, tok2 = 18; synolo = ethsia_apodosh(kef1, tok1) + ethsia_apodosh(kef2, tok2); println(”Συνολική απόδοση = ”+synolo); } double ethsia_apodosh(double kef, double tok) { return m(m(m(m(m(m(m(m(m(m(m(kef, tok), tok), tok), tok), tok), tok), tok), tok), tok), tok), tok), tok); double m(double kef, double tok) { return kef*(1+tok/100);

Παράδειγμα public void run() { import acm.program.*; public class test extends Program { public void run() { double synolo, kef1 = 10, kef2 = 3, tok1 = 5, tok2 = 18; synolo = ethsia_apodosh(kef1, tok1) + ethsia_apodosh(kef2, tok2); println(”Συνολική απόδοση = ”+synolo); } double ethsia_apodosh(double kef, double tok) { return m(m(m(m(m(m(m(m(m(m(m(kef, tok), tok), tok), tok), tok), tok), tok), tok), tok), tok), tok), tok); double m(double kef, double tok) { return kef*(1+tok/100);

Παράδειγμα public void run() { import acm.program.*; public class test extends Program { public void run() { double synolo, kef1 = 10, kef2 = 3, tok1 = 5, tok2 = 18; synolo = ethsia_apodosh(kef1, tok1) + ethsia_apodosh(kef2, tok2); println(”Συνολική απόδοση = ”+synolo); } double ethsia_apodosh(double kef, double tok) { return m(m(m(m(m(m(m(m(m(m(m(kef, tok), tok), tok), tok), tok), tok), tok), tok), tok), tok), tok), tok); double m(double kef, double tok) { return kef*(1+tok/100);

Παράδειγμα public void run() { import acm.program.*; public class test extends Program { public void run() { double synolo, kef1 = 10, kef2 = 3, tok1 = 5, tok2 = 18; synolo = ethsia_apodosh(kef1, tok1) + ethsia_apodosh(kef2, tok2); println(”Συνολική απόδοση = ”+synolo); } double ethsia_apodosh(double kef, double tok) { return m(m(m(m(m(m(m(m(m(m(m(kef, tok), tok), tok), tok), tok), tok), tok), tok), tok), tok), tok), tok); double m(double kef, double tok) { return kef*(1+tok/100);

Παράδειγμα public void run() { import acm.program.*; public class test extends Program { public void run() { double synolo, kef1 = 10, kef2 = 3, tok1 = 5, tok2 = 18; synolo = ethsia_apodosh(kef1, tok1) + ethsia_apodosh(kef2, tok2); println(”Συνολική απόδοση = ”+synolo); } double ethsia_apodosh(double kef, double tok) { return m(m(m(m(m(m(m(m(m(m(m(kef, tok), tok), tok), tok), tok), tok), tok), tok), tok), tok), tok), tok); double m(double kef, double tok) { return kef*(1+tok/100);

Παράδειγμα public void run() { import acm.program.*; public class test extends Program { public void run() { double synolo, kef1 = 10, kef2 = 3, tok1 = 5, tok2 = 18; synolo = ethsia_apodosh(kef1, tok1) + ethsia_apodosh(kef2, tok2); println(”Συνολική απόδοση = ”+synolo); } double ethsia_apodosh(double kef, double tok) { return m(m(m(m(m(m(m(m(m(m(m(kef, tok), tok), tok), tok), tok), tok), tok), tok), tok), tok), tok), tok); double m(double kef, double tok) { return kef*(1+tok/100);

Παράδειγμα public void run() { import acm.program.*; public class test extends Program { public void run() { double synolo, kef1 = 10, kef2 = 3, tok1 = 5, tok2 = 18; synolo = ethsia_apodosh(kef1, tok1) + ethsia_apodosh(kef2, tok2); println(”Συνολική απόδοση = ”+synolo); } double ethsia_apodosh(double kef, double tok) { double f = 1+tok/100; return kef*f*f*f*f*f*f*f*f*f*f*f*f;

Παράδειγμα public void run() { import acm.program.*; public class test extends Program { public void run() { double synolo, kef1 = 10, kef2 = 3, tok1 = 5, tok2 = 18; synolo = ethsia_apodosh(kef1, tok1) + ethsia_apodosh(kef2, tok2); println(”Συνολική απόδοση = ”+synolo); } double ethsia_apodosh(double kef, double tok) { double f = 1+tok/100, f2, f4, f8; f2 = f*f; f4 = f2*f2; f8 = f4*f4; return kef*f8*f4;

Συναρτήσεις ως εργαλείο αφαίρεσης Με τη χρήση συναρτήσεων επιτυγχάνουμε: Αποφυγή επανάληψης κώδικα Ανάλυση προβλήματος σε ευκολότερα Περισσότερο κατανοητά προγράμματα (χρήση ονομάτων συναρτήσεων αντί κώδικα υπολογισμού) Έμφαση στο «τι» υπολογίζουμε, όχι στο «πώς» Π.χ., στη run αρκεί να ξέρουμε τι υπολογίζει η ethsia_apodosh, όχι πως το υπολογίζει

Είσοδος int Εύρεση ηλικίας από ημ/νία γέννησης int x; x = readInt(); /* Πρόγραμμα αναμένει χρήστη να πληκτρολογήσει ημ/νία γέννησης*/ int age = 2016-x; println(age);

Είσοδος int Είσοδος με μήνυμα προτροπής x = readInt(”Δώσε ημ/νία γέννησης:”);

Είσοδος double τιμών Υπολογισμός τετραγώνου της υποτείνουσας double a, b; a = readDouble(”Μήκος πλευράς α: ”); b = readDouble(”Μήκος πλευράς β: ”); print(”Τετράγωνο πλευράς γ = ”); println(a*a+b*b); Πώς θα κατασκευάζαμε μια συνάρτηση για τον υπολογισμό του τετραγώνου της υποτείνουσας;