1 / 34

Εισαγωγή στους Η/Υ

Εισαγωγή στους Η/Υ. Δηλώσεις και Εκφράσεις. ΑΝΑΚΕΦΑΛΑΙΩΣΗ. Δομή πηγαίου κώδικα. program name integer(…) variable(s) read ( *,*) variable(s) write (*,*) variable(s) end program. ΑΡΧΗ. ΔΗΛΩΣΕΙΣ ΜΕΤΑΒΛΗΤΩΝ. ΔΕΔΟΜΕΝΑ ΕΙΣΟΔΟΥ. ΕΚΦΡΑΣΕΙΣ - ΚΟΡΜΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ

vilmos
Download Presentation

Εισαγωγή στους Η/Υ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Εισαγωγή στους Η/Υ Δηλώσεις και Εκφράσεις

  2. ΑΝΑΚΕΦΑΛΑΙΩΣΗ Δομή πηγαίου κώδικα programname integer(…)variable(s) read(*,*) variable(s) write(*,*) variable(s) end program ΑΡΧΗ ΔΗΛΩΣΕΙΣ ΜΕΤΑΒΛΗΤΩΝ ΔΕΔΟΜΕΝΑ ΕΙΣΟΔΟΥ ΕΚΦΡΑΣΕΙΣ - ΚΟΡΜΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ (ΥΠΟΛΟΓΙΣΜΟΙ, ΔΙΑΔΙΚΑΣΙΕΣ,...) ΔΕΔΟΜΕΝΑ ΕΞΟΔΟΥ ΤΕΛΟΣ Ο κώδικας εκτελείται γραμμή-γραμμή από πάνω προς τα κάτω

  3. Τελεστές

  4. Γενικά περί σύνταξης εκφράσεων Όνομα μεταβλητής ή σταθεράς = δεδομένα ή Όνομα μεταβλητής ή σταθεράς = συνδυασμός δεδομένων και τελεστών Αριστερό σκέλος:περιλαμβάνει ΜΟΝΟ το όνομα μιας μεταβλητής Δεξί σκέλος:περιλαμβάνει μεταβλητές, σταθερές, συνδυασμό τους με τελεστές Η AΡΙΘΜΗΤΙΚΗ ΤΙΜΗ του αποτελέσματος του δεξιού σκέλους ανατίθεται στην μεταβλητή του αριστερού σκέλους

  5. Βασικοί τύποι Τύποι Δεδομένων αριθμητικά μη αριθμητικά ακέραια πραγματικά μιγαδικά λογικά αλφαριθμητικά • Κάθε τύπος δεδομένων έχει τέσσερα χαρακτηριστικά • Όνομα (προκαθορισμένοαπό τον compiler) • Πεδίο επιτρεπτών τιμών • Τρόπο αναπαράστασης των σταθερών • Σύνολο τελεστών που μπορεί να συνδυαστεί • Η δήλωση του τύπου των δεδομένων γίνεται με προκαθορισμένους και συγκεκριμένους κανόνες σύνταξης

  6. τύπος[ ( [KIND=] είδος) ] [ [ ,ιδιότητες] : : ]λίστα τύπος :integer, real (double precision), complex, character, logical είδος : 1, 2, 4, 8 (ο αριθμός bytes που δεσμεύεται στη μνήμη) ιδιότητες :parameter,public,private,intent,... (πιν.3-7 σελ.92) λίστα : ονόματα δεδομένων χωρισμένα με κόμμα Δηλώσεις Μεταβλητών (Γενική μορφή) • Τα ‘::’ χρησιμοποιούνται υποχρεωτικά όταν: • Δηλώσουμε μια ή περισσότερες ιδιότητες • Ταυτόχρονα με τη δήλωση δώσουμε αρχικές τιμές στα δεδομένα

  7. Δηλώσεις Μεταβλητών

  8. Δήλωση IMPLICIT

  9. ΙδιότητεςΜεταβλητών (πιν. 3-7, σελ. 92)

  10. τύπος , PARAMETER: : όνομα σταθεράς = τιμή PARAMETER και DATA DATA , λίστα ονομάτων/ λίστα τιμών /

  11. Αρχικοποίηση μεταβλητών • Κατά τη δήλωση μπορούμε να δώσουμε αρχικές τιμές στις μεταβλητές • Η αρχικοποίηση γίνεται με παρόμοιο τρόπο με την εντολή parameter • Η αρχικοποίηση γίνεται μια φορά όταν ο υπολογιστής φορτώνει το πρόγραμμα στη μνήμη • Για να δώσουμε αρχικές τιμές με τη δήλωση πρέπει υποχρεωτικά να χρησιμοποιήσουμε τη σύνταξη τύπος:: μεταβλητή = τιμή

  12. Εκφράσεις αριθμητικές Τελεστές: + - / * ** λογικές Τελεστές: .OR. .AND. … Εκφράσεις αλφαριθμητικές Τελεστής: // μιγαδικών Τελεστές: + - / * ** Κάθε τύπος δεδομένων συνοδεύεται από συγκεκριμένες εγγενείς συναρτήσεις

  13. Προτεραιότητα εκτέλεσης πράξεων

  14. Παράδειγμα Υπολογίστε την παρακάτω έκφραση για α = 5.2, b=4.57, x=5.6, y=6.43, m=5, k=4 Με ποια σειρά εκτελούνται οι πράξεις;

  15. Σημεία που πρέπει να προσέχουμε στις αριθμητικές εκφράσεις ! ! • Στις ισότητες εκτιμάται πρώτα το δεξί μέλος και η τιμή του ανατίθεται στην μεταβλητή του ΑΡΙΣΤΕΡΟΥ μέλους • Κάθε μεταβλητή στην οποία δεν δίνουμε κάποια αρχική τιμή, έχει την τιμή μηδέν • Δεν υπονοείται τίποτα, όλες οι πράξεις ορίζονται ρητώς. • Δεν επιτρέπεται η χρήση δύο συνεχόμενων τελεστών • Ορίζουμε κάθε μεταβλητή με ονόματα με σημασία και βάσει του τύπου τους • Όσες παρενθέσεις ανοίγουμε άλλες τόσες κλείνουμε • ΠΡΟΣΟΧΗ στις διαιρέσεις και στην ύψωση σε δύναμη • ΠΡΟΣΟΧΗ στις πράξεις με μικτούς τύπους αριθμών

  16. ΔΙΑΙΡΕΣΕΙΣ • Απαγορεύεται η διαίρεση με το μηδέν • Εμφανίζεται αποτέλεσμα Infinityστη μονάδα εξόδου • Προσοχή στις διαιρέσεις μεταξύ ακέραιων • Αποκόπτεται το δεκαδικό μέρος του αποτελέσματος • Η διαίρεσηγράφεται ωςα/(b*c) ή a/b/c

  17. ΕΚΘΕΤΕΣ • Απαγορεύεται η ύψωση ενός τελεστέου με τιμή μηδέν σε αρνητική ή μηδενική δύναμη • Εμφάνιση μηνύματος στη μονάδα εξόδου • forrtl: severe (696): Real zero raised to negative power • Απαγορεύεται η ύψωση ενός αρνητικού τελεστέου σε μη ακέραια δύναμη • Εμφάνιση μηνύματος NaNστη μονάδα εξόδου (Not a Number)

  18. ΔΙΑΙΡΕΣΕΙΣ και ΕΚΘΕΤΕΣ

  19. Εγγενείς Συναρτήσεις Οι εγγενείς συναρτήσεις έχουν μεγαλύτερη προτεραιότητα από όλους τους τελεστές ! • ΠΡΟΣΟΧΗ • Τύπος ορισμάτων - Τύπος αποτελέσματος

  20. Τυχαίοι Αριθμοί Αρχικοποίηση γεννήτριας τυχαίων αριθμών Παραγωγή τυχαίου αριθμού Τι συμβαίνει αν παραλείψουμε την αρχικοποίηση της γεννήτριας των τυχαίων αριθμών ? Οι τυχαίοι αριθμοί έχουν ένα πολύ σημαντικό ρόλο στην επίλυση επιστημονικών προβλημάτων (π.χ. διαδικασίες λήψης αποφάσεων, τυχαία δειγματοληψία, προσομοίωση τυχαίων φαινομένων, κ.α.) Η παραγωγή τυχαίων αριθμών στον Η/Υ γίνεται από γεννήτριες τυχαίων αριθμών που απαιτούν συγκεκριμένη σύνταξη κατά την κλήση τους Στη FORTRAN:

  21. Λογικές εκφράσεις • Είναι οι εκφράσεις που χρησιμοποιούν λογικά δεδομένα και λογικούς τελεστές • Η κύρια χρήση τους είναι σε δομές ελέγχου ροής • Τιμές λογικών μεταβλητών: • .true. : αληθής • .false. : ψευδής • Τελεστές λογικών εκφράσεων: • .NOT. : άρνηση • .AND. : σύζευξη • .OR. : διάζευξη • .EQV.: ισοδυναμία • .NEQV.: ανισοδυναμία • Λογικά αποτελέσματα παράγονται και με εκφράσεις σύγκρισης • Οι λογικές μεταβλητές πρέπει να δηλώνονται υποχρεωτικά

  22. Αποτελέσματα πράξεων με λογικούς τελεστές

  23. Εκφράσεις σύγκρισης • Είναι οι εκφράσεις που χρησιμοποιούν αριθμητικά ή αλφαριθμητικά δεδομένα και τελεστές σύγκρισης • Η κύρια χρήση τους είναι σε δομές ελέγχου ροής • Τελεστές εκφράσεων σύγκρισης: • .LT. ή < : Μικρότερο • .LE. ή <= : Μικρότερο ή ίσο • .EQ. ή == : Ίσο • .NE. ή /=: Άνισο (διάφορο) • .GE. ή >=: Μεγαλύτερο ή ίσο • .GT. ή > : Μεγαλύτερο • Το αποτέλεσμα μιας έκφρασης σύγκρισης έιναι λογικού τύπου (.true. .false.) • Και οι δύο τελεστέοι πρέπει να είναι ίδου τύπου

  24. Αλφαριθμητικές εκφράσεις • Είναι οι εκφράσεις που χρησιμοποιούν αλφαριθμητικά δεδομένα (βλ. πίνακα ASCII) • Η κύρια χρήση τους είναι για τον προσδιορισμό της τοποθεσίας αρχείων στον σκληρό δίσκο • Τιμές αλφαριθμητικών μεταβλητών: • αριθμοί και γράμματα περικλειόμενα μέσα στους διαχωριστές “ ” ή ‘ ‘ • Τελεστής αλφαριθμητικών εκφράσεων: • //: συνένωση αλφαριθμητικών δεδομένων εκατέρωθεν του τελεστή • Οι αλφαριθμητικές μεταβλητές πρέπει να δηλώνονται υποχρεωτικά ως προς τον τύπο αλλά και ως προς το μέγεθος τους • κάθε χαρακτήρας καταλαμβάνει και ένα πεδίο του μήκους της μεταβλητής • το κενό προσμετράται ως χαρακτήρας • τα κεφαλαία δεν είναι ίδια με τα πεζά

  25. Αλφαριθμητικές εκφράσεις Μπορούμε να χρησιμοποιήσουμε μέρος της αλφαριθμητικής τιμής π.χ. e(4:8) από τον 4ο μέχρι τον 8ο χαρακτήρα (μήκος 5) π.χ. d(:6) από τον 1ο μέχρι τον 6ο χαρακτήρα (μήκος 6)

  26. Συνηθισμένα λάθη κατά τον προγραμματισμό • Συντακτικά λάθη: • Ανοικτές παρενθέσεις • Αδήλωτα ονόματα • Λάθος γραμμένες εντολές • Σύνταξη προτάσεων • Σειρά προτάσεων • Λογικά λάθη • Χρήση μεταβλητών που δεν έχουν πάρει τιμή • Λάθος μονάδες στους υπολογισμούς • Χρήση λάθους τύπου δεδομένων • Αριθμητικά λάθη • Διαιρέσεις • Εκθέτες

  27. Τρεις συνηθισμένες παγίδες To Α**Β**C δεν είναι ίσο με το (Α**Β)**C Η διαίρεση ενός ακεραίου με ακέραιο πάντα επιστρέφει ακέραιο αποτέλεσμα Αν το μέγεθος μιας αλφαριθμητικής μεταβλητής δεν επαρκεί, η τιμή της μεταβλητής αποκόπτεται (truncated) στο δηλωμένο μήκος (parameter, read, εκχώρηση)

  28. Εργασία για το σπίτι • Ιστοσελίδα του μαθήματος  Εκπαιδευτικό Υλικό Οι εργασίες παραδίδονται αποκλειστικά σε ηλεκτρονική μορφή μέσω e-mail gkonstan@mie.uth.gr

More Related