Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 5 : Υποπρογράμματα II. Αλέξανδρος Τζάλλας

Σχετικά έγγραφα
Προγραμματισμός Ι Ενότητα 6 :

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 8 : Πίνακες IΙ. Αλέξανδρος Τζάλλας

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 4 : Υποπρογράμματα I. Αλέξανδρος Τζάλλας

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

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

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

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

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

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 12 : Ασκήσεις Επανάληψης Β. Αλέξανδρος Τζάλλας

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 7 : Πίνακες I. Αλέξανδρος Τζάλλας

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 9 : Εγγραφές, Σύνολα. Αλέξανδρος Τζάλλας

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 13 : Ασκήσεις Επανάληψης Γ. Αλέξανδρος Τζάλλας

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 10 : Κατασκευή ΝΠΑ. Αλέξανδρος Τζάλλας

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

Δομές Δεδομένων Ενότητα 1

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

Πληροφορική II. Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι. τύποι δεδομένων. Δρ. Γκόγκος Χρήστος

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

Εφαρμογή Υπολογιστικών Τεχνικών στην Γεωργία

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

Λειτουργικά Συστήματα

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 3 : Εντολές Επανάληψης. Αλέξανδρος Τζάλλας

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 9 : Κανονικές Εκφράσεις. Αλέξανδρος Τζάλλας

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 8 : Αυτόματα NFA - DFA. Αλέξανδρος Τζάλλας

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

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

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Αρχιτεκτονική υπολογιστών

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Εισαγωγή στους Αλγορίθμους

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 2 : Σύνολα & Σχέσεις (2/2) Αλέξανδρος Τζάλλας

Θεωρία Υπολογισμού. Ενότητα 5 : Λογικά Επιχειρήματα, Αλφάβητα & Γλώσσες (2/2) Αλέξανδρος Τζάλλας

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 11 : Γραμματικές χωρίς συμφραζόμενα. Αλέξανδρος Τζάλλας

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Θεωρία Υπολογισμού Αλφάβητα, Γλώσσες, Κανονικές Εκφράσεις

Φωνολογική Ανάπτυξη και Διαταραχές

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 1 : Σύνολα & Σχέσεις (1/2) Αλέξανδρος Τζάλλας

Εφαρμογή Υπολογιστικών Τεχνικών στην Γεωργία

Εισαγωγή στους Αλγορίθμους

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

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

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

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Αρχιτεκτονική υπολογιστών

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

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Μάρκετινγκ Αγροτικών Προϊόντων

Λειτουργικά Συστήματα

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 10 : Αρχεία. Αλέξανδρος Τζάλλας

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 3 : Γραφήματα & Αποδείξεις. Αλέξανδρος Τζάλλας

Διοικητική των επιχειρήσεων

Λειτουργικά Συστήματα

Στατιστική. 6 ο Μάθημα: Διαστήματα Εμπιστοσύνης και Έλεγχοι Υποθέσεων. Γεώργιος Μενεξές Τμήμα Γεωπονίας ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Εισαγωγή στους Αλγορίθμους

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Ιστορία της μετάφρασης

Προγραμματισμός H/Y Ενότητα 6: Δομές (structures) Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Αρχιτεκτονική υπολογιστών

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

Στατιστική. 5 ο Μάθημα: Βασικές Έννοιες Εκτιμητικής. Γεώργιος Μενεξές Τμήμα Γεωπονίας ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Υποπρογράµµατα Συναρτήσεις. Στόχοι Μαθήµατος. Οι µαθητές να µπορούν:

Προγραμματισμός Η/Υ. 6 η ενότητα: Συναρτήσεις. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Λοιμώδη Νοσήματα Υγιεινή Αγροτικών Ζώων

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Μικροοικονομική. Ενότητα 9:Παραγωγική διαδικασία Καραμάνης Κωνσταντίνος

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Διδακτική της Πληροφορικής

Νοσηλευτική Σεμινάρια

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

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

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

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Διοικητική Λογιστική

Transcript:

1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Προγραμματισμός Ι Ενότητα 5 : Υποπρογράμματα II Αλέξανδρος Τζάλλας

2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Μηχανικών Πληροφορικής Τ.Ε Προγραμματισμός Ι Αλέξανδρος Τζάλλας Λέκτορας Άρτα, 2015 Ενότητα 5 : Υποπρογράμματα II

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 3 3

4 Χρηματοδότηση Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο TEI Ηπείρου» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα.

Σκοποί ενότητας Να περιγραφούν οι συντακτικοί κανόνες των συναρτήσεων. Να γίνει κατανοητή η αναγκαιότητα χρήσης των συναρτήσεων. 5 5

Περιεχόμενα ενότητας Συναρτήσεις Σύνταξη των συναρτήσεων Κλήση συνάρτησης Αναγκαιότητα χρήσης των συναρτήσεων 6 6

Συναρτήσεις - Functions 1/3 Οι συναρτήσεις (functions) είναι ο δεύτερος τύπος υποπρογραμμάτων που υποστηρίζει η Pascal Είναι υποπρογράμματα που παράγουν σαν αποτέλεσμα μία μόνο τιμή Η Pascal διαθέτει μια σειρά ενσωματωμένων (standard) συναρτήσεων όπως η sqr, η round κλπ που μπορούν να χρησιμοποιηθούν χωρίς να δηλωθούν 7 7

Συναρτήσεις - Functions 2/3 Εκτός από τις παραπάνω η Pascal παρέχει την δυνατότητα ορισμού νέων συναρτήσεων Οι συναρτήσεις δηλώνονται στο τμήμα δηλώσεων του προγράμματος Η σειρά με την οποία δηλώνονται έχει σημασία μόνο όταν μία συνάρτηση καλεί μία άλλη Σε αυτή τη περίπτωση η καλούμενη πρέπει να προηγείται 8 8

Συναρτήσεις - Functions 3/3 Μια συνάρτηση (function) μπορεί να θεωρηθεί σαν μια ειδική μορφή διαδικασίας (procedure) που παίρνει έναν αριθμό δεδομένων εισόδου εκτελεί μια λειτουργία ή ακολουθία λειτουργιών παράγει ένα αποτέλεσμα Οι συναρτήσεις συντάσσονται όπως και οι διαδικασίες: στην επικεφαλίδα αντί για procedure ξεκινάμε με την λέξη function επειδή η συνάρτηση δίνει ένα αποτέλεσμα, στον ορισμό της, εκτός από το όνομα και τις παραμέτρους δίνεται και ό τύπος δεδομένων του αποτελέσματος (integer, real, char, boolean) το τμήμα δηλώσεων και το τμήμα προτάσεων ορίζονται όπως αυτά των προγραμμάτων της Pascal 9 9

Σύνταξη 1/2 Η λίστα παραμέτρων είναι προαιρετική όπως και στις διαδικασίες. Περιλαμβάνει δύο τύπους παραμέτρων: τις παραμέτρους τιμής τις παραμέτρους μεταβλητής Ο τύπος δεδομένων του αποτελέσματος μπορεί να είναι οποιοσδήποτε απλός τύπος function Όνομα Συνάρτησης(Παράμετροι) : Τύπος Δεδομένων; var Mεταβλητές : τύποι μεταβλητών εντολές συνάρτησης end. Παράδειγμα function exam(x : integer ; y : real) : boolean; function test(x : real ; var k : char ; m : integer) : char; 10 1

Σύνταξη 2/2 Η συνάρτηση πρέπει να περιλαμβάνει τουλάχιστον μία πρόταση που να αναθέτει μία τιμή στο όνομα της συνάρτησης, διαφορετικά η κλήση της προκαλεί λάθος Σε κάθε κλήση και εκτέλεση της συνάρτησης, η τελευταία τιμή που ανατίθεται στο όνομα της συνάρτησης είναι και το αποτέλεσμα της Τυπικές παράμετροι τιμής Τύπος δεδομένων του αποτελέσματος function megas(x, y : real):real; if x > y then megas := x else megas := y; end; Ανάθεση τιμής στην συνάρτηση Ανάθεση τιμής στην συνάρτηση 11 1

Κλήση Συνάρτησης Η κλήση μιας συνάρτησης διαφέρει από την κλήση μιας διαδικασίας Μία διαδικασία (procedure) καλείται από μια πρόταση στην οποία περιέχεται το όνομα της Μια συνάρτηση (function) καλείται μέσα από μία έκφραση στην οποία την τιμή συνεισφέρει και το αποτέλεσμα της συνάρτησης program evresi_megaliterou_apo_duo; var a, b, c : real; {----------------------------------} function max(x,y:real):real; If x > y then max := x else max := y; end; {----------------------------------} writeln('dwse duo arithmous'); readln(a,b); c := max(a,b); Κλήση Συνάρτησης writeln('o megaliteros einai: ',c:5:2); end. 12 1

Παρατηρήσεις Αν ένα υποπρόγραμμα υπολογίζει περισσότερα από ένα αποτελέσματα τότε είναι προτιμότερο να υλοποιηθεί με διαδικασία, αλλιώς (αν υπολογίζει μόνο ένα αποτέλεσμα) είναι προτιμότερο να υλοποιηθεί με συνάρτηση Δεν συνηθίζεται η χρήση τυπικών παραμέτρων μεταβλητής (με τη χρήση var) σε ορισμούς συναρτήσεων Αφού η συνάρτηση επιστρέφει μία τιμή στο σημείο όπου καλείται, μπορεί να χρησιμοποιηθεί & σαν πραγματική παράμετρος σε μιας κλήση υποπρογράμματος (διαδικασίας ή συνάρτησης) 13 1

Πότε χρησιμοποιούμε συναρτήσεις 1/2 Αν το τμήμα του προγράμματος επιστρέφει περισσότερες από μία τιμές ή αλλάζει τιμές πραγματικών παραμέτρων τότε δεν χρησιμοποιούμε συνάρτηση Αν το τμήμα προγράμματος εκτελεί είσοδο δεδομένων ή έξοδο αποτελεσμάτων τότε δε χρησιμοποιούμε συνάρτηση Αν το τμήμα προγράμματος επιστρέφει μια τιμή και η τιμή αυτή είναι λογική (boolean) τότε χρησιμοποιούμε τη συνάρτηση 14 1

Πότε χρησιμοποιούμε συναρτήσεις 2/2 Αν υπάρχει αμφιβολία είναι προτιμότερο να χρησιμοποιήσουμε μια διαδικασία (στη διαδικασία το ρόλο του ονόματος της συνάρτησης παίζει η μία παράμετρος μεταβλητής) Αν είναι δυνατόν να χρησιμοποιήσουμε και τις δύο δηλαδή διαδικασία ή συνάρτηση χρησιμοποιούμε αυτή με την οποία αισθανόμαστε πιο άνετα στην υλοποίηση 15 1

Παράδειγμα 1 Πρόγραμμα που ελέγχει αν το άθροισμα των γωνιών ενός τριγώνου είναι 180 ο και αν είναι επιστρέφει την τιμή true. Πότε τρεις γωνίες είναι γωνίες του ίδιου τριγώνου; Όταν αθροίζουν σε 180 ο μοίρες. program athroisma_gwniwn_trigwnou; var g1, g2, g3 : real; function trigwno(gwnia1, gwnia2, gwnia3 : real):boolean; trigwno := (gwnia1 + gwnia2 + gwnia3-180.0) = 0; end; {-------------------------------------------------------} writeln( Δώσε τις τρεις γωνίες σε μοίρες'); readln(g1, g2, g3); if trigwno(g1, g2, g3) then Κλήση Συνάρτησης writeln( Οι τρεις γωνίες σχηματίζουν τρίγωνο') else τρίγωνο'); end. writeln( Οι τρεις γωνίες δεν σχηματίζουν 16 1

Πρόγραμμα που υπολογίζει την ακέραια δύναμη ενός πραγματικού αριθμού με την χρήση συνάρτησης Παράδειγμα 2 program ipologismos_dynamis; var b, apotelesma : real; e : integer; function dynami(basi:real ; ekthetis:integer):real; var i: integer; d:real; d:=1; for i:=1 to ekthetis do d:=d*basi; dynami := d; end; write( Δώσε τη βάση'); read(b); write( Δώσε τον εκθέτη'); read(e); apotelesma := dynami(b, e); Κλήση Συνάρτησης write( Η δύναμη είναι: ',apotelesma:5:2); end. 17 1

Nα γραφεί πρόγραμμα που να χρησιμοποιεί μια συνάρτηση η οποία να δίνει το τετράγωνο ενός αριθμού Παράδειγμα 3 program tetragwno_arith; var n: integer; function square(x: integer):integer; square:=x*x; end; n:=square(4); writeln( 4 squared is, n); end. program tetragwno_arith; var n,d: integer; function square(x: integer):integer; square:=x*x; end; writeln('dose arithmo '); readln(n); d:=0; d:=square(n); writeln('o ', n, ' arithmos squared is: ', d); end. 18 1

Παράδειγμα 4 Πρόγραμμα που βρίσκει τον μεγαλύτερο μεταξύ τριών αριθμών program megaliteros; var ar1, ar2, ar3, z : integer; function max(a, b, c : integer):integer; if a > b then if c > a then max := c else max := a else if c > b then max := c else max := b; end; writeln( Δώσε τρεις αριθμούς ); readln(ar1, ar2, ar3); z := max(ar1, ar2, ar3); writeln( Μεγαλύτερος είναι ο,z) end. Κλήση Συνάρτησης 19 1

H Pascal δεν έχει ενσωματωμένη συνάρτηση για τον υπολογισμό της δύναμης. x n : Αυτό μπορεί να γίνει με τη χρήση της πιο κάτω ιδιότητας των λογαρίθμων. Αν x=α ν τότε x=e (ln(ν ln(α))) Παράδειγμα 5 program synartisi1; var x,n:real; function power(x,n:real):real; power:=exp(n*ln(x)); end; write('dose dyo arithmous x, n: '); readln(x,n); writeln('x=',x:2:1,'n=',n:2:1); writeln(x:2:1,'^',n:2:1,' = ',power(x,n):2:1); end. Κλήση Συνάρτησης 20 2

Παράδειγμα 6 1/2 Να γραφεί πρόγραμμα το οποίο να διαβάζει τις τιμές των συντελεστών α,β και γ, μιας δευτεροβάθμιας εξίσωσης. Το πρόγραμμα να υπολογίζει και να ελέγχει την διακρίνουσα αν είναι θετική ή όχι. Αν είναι θετική, Δ>=0 να υπολογίζει τις πραγματικές τιμές x1 και x2. Διαφορετικά, να τυπώνει το μήνυμα, Μιγαδικές ρίζες. program diadikasia_synartisi; var a,b,c,x1,x2:real; d:real; function determinant(a,b,c:real):real; determinant:=b*b-4*a*c; end; procedure roots(a,b,c,d:real; var x1,x2:real); x1:=(-b+sqrt(d))/(2*a); x2:=(-b-sqrt(d))/(2*a); end; 21 2

Παράδειγμα 6 2/2 Να γραφεί πρόγραμμα το οποίο να διαβάζει τις τιμές των συντελεστών α,β και γ, μιας δευτεροβάθμιας εξίσωσης. Το πρόγραμμα να υπολογίζει και να ελέγχει την διακρίνουσα αν είναι θετική ή όχι. Αν είναι θετική, Δ>=0 να υπολογίζει τις πραγματικές τιμές x1 και x2. Διαφορετικά, να τυπώνει το μήνυμα, Μιγαδικές ρίζες. writeln(' Rizes tis deuterovathmias eksisosis'); write('dose tous treis syntelestes tis eksisosis, a,b kai c: '); readln(a,b,c); If determinant(a,b,c)>=0 then roots(a,b,c,determinant(a,b,c),x1,x2); writeln(' Oi Rizes einai '); writeln('x1= ',x1:2:2); writeln('x2= ',x2:2:2); end else writeln(' Oi Rizes einai Migadiges '); end. 22 2

Ένας καθηγητής υπολογίζει τους βαθμούς του τριμήνου βάσει τριών διαγωνισμάτων. Η βαρύτητα του πρώτου διαγωνίσματος είναι 60% και των υπολοίπων δυο 20%. Το κάθε διαγώνισμα βαθμολογείται με μέγιστο βαθμό το 20. Να γράψετε πρόγραμμα που να διαβάζει τα αποτελέσματα των τριών διαγωνισμάτων και να υπολογίζει τον τελικό βαθμό του τριμήνου. Παράδειγμα 7 program synartiseis2; const w1=0.6;w2=0.2;w3=0.2; var test1,test2,test3:real; function finalgrade(test1,test2,test3:real):real; finalgrade:=w1*test1+w2*test2+w3*test3; end; writeln('dose tous vathmous twn triwn diagonismatwn'); Writeln; write('vathmos 1ou diagonismatos ');readln(test1); write('vathmos 2ou diagonismatos ');readln(test2); write('vathmos 3ou diagonismatos ');readln(test3); write('o telikos vathmos tou triminou einai ',finalgrade(test1,test2,test3):1:1); end. 23 2

2 Βιβλιογραφία Βλαχάβας Ι. (1994). Η γλώσσα προγραμματισμού Pascal. Εκδόσεις Γαρταγάνης Διονύσιος. Κάβουρας Ι.Κ. (1999). Δομημένος Προγραμματισμός με Pascal. Εκδόσεις Κλειδάριθμος. Αλεβίζου Θ., & Καμπουρέλης Α. (1995). Μαθήματα Προγραμματισμού: Εισαγωγη με τη Γλώσσα Pascal. Εκδόσεις Παπασωτηρίου. Cooper D. (1993). Oh! Pascal!, An Introduction to Computing, του. Εκδόσεις Norton. Larry R.N. (1998). Advanced Programming in Pascal with Data Structures. Εκδόσεις Macmillan USA. Τσελίκης Γ.Σ., Τσελίκας Ν.Δ. (2012). C: από τη Θεωρία στην Εφαρμογή (B' Έκδοση). Εκδόσεις Παπασωτηρίου. Aho A.V., Hopcroft J.E., & Ullman J.D. (1974). The design and analysis of computer algorithms. Εκδόσεις Addison Wesley. Abelson Η., Sussman G.J., Sussman J. (1985). Structure and Interpretation of Computer Programs, MIT Press, McGraw Hill Book Company.

2 25 Σημείωμα Αναφοράς Copyright Τεχνολογικό Ίδρυμα Ηπείρου. Αλέξανδρος Τζάλλας. Προγραμματισμός Ι. Έκδοση: 1.0 Άρτα, 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: http://eclass.teiep.gr/openclass/courses/comp111/

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 4.0 Διεθνές [1] ή μεταγενέστερη. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, Διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. [1] http://creativecommons.org/licenses/by-nc-nd/4.0/deed.el 2

2 Τέλος Ενότητας Επεξεργασία: Ευάγγελος Καρβούνης Άρτα, 2015

2 Τέλος Ενότητας Υποπρογράμματα II