PROGRAM example Η αρχή και το όνοµα του προγράµµατος IMPLICIT NONE REAL:: moires, aktinia moires = 180. aktinia = moires * / 180.

Σχετικά έγγραφα
Δομή του προγράμματος

(i) PROGRAM example. IMPLICIT NONE REAL:: moires, aktinia moires = 180 aktinia = moires * / aktinia STOP END

ιαφάνειες παρουσίασης #2

ιαφάνειες παρουσίασης #3

ιαφάνειες παρουσίασης #1

Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις. (Διάλεξη 8)

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

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

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

ΕΙ ΑΓΩΓΉ ΣΗΝ FORTRAN

Εισαγωγή στη Fortran. Μάθημα 1 ο. Ελευθερία Λιούκα

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

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

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

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

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

Βασικά στοιχεία της Java

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων

ΦΥΛΛΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ 1

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

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

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

οµές Επιλογής Εντολές if και switch

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Προγραμματισμός Ι (ΗΥ120)

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

Ενότητα 1 Διάλεξη 3. Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού. Σιέττος Κωνσταντίνος

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

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

Κεφάλαιο 4ο: Εντολές επιλογής

ιαφάνειες παρουσίασης #3

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

a = 10; a = k; int a,b,c; a = b = c = 10;

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

Εισαγωγή στην γλώσσα προγραμματισμού C

8. Συνθήκες ελέγχου, λογικοί τελεστές

Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python

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

2.1. Εντολές Σχόλια Τύποι Δεδομένων

Pascal, απλοί τύποι, τελεστές και εκφράσεις

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

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

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

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

επιµέλεια Θοδωρής Πιερράτος

ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PASCAL

Προγραμματισμός Ι (ΗΥ120)

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

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

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

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

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

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-2

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

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

Λογικό "και" (AND) μας επιστρέφει 1 αν και οι δύο operands είναι όχι μηδέν, διαφορετικά 0)

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

ΕΡΓΑΣΤΗΡΙΟ 2 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Εργαστήριο 2. Τµήµα Πληροφορικής και Τηλεπικοινωνιών

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

Δομές ελέγχου. ομαδοποίηση εντολών εκτέλεση εντολών υπό συνθήκη επανάληψη εντολών

ικτυακά Πολυμέσα Ι (Β Έτος, 3ο εξ) ιάλεξη #8η: Javascript: Τεχνικές εντοπισμού/διόρθωσης λαθών, τελεστές, δομές ελέγχου, βρόχοι επανάληψης

Προγραμματισμός με FORTRAN Συνοπτικός Οδηγός Α. Σπυρόπουλος Α. Μπουντουβής

EΒ ΟΜΑ Α 3 Η. Άλλοι τελεστές καταχώρησης: += -= *= /= %= x += 5; σηµαίνει x = x + 5; k *= 7; σηµαίνει k = k * 7; sum %= 15; σηµαίνει sum = sum % 15;

Υπολογισμός - Εντολές Ελέγχου

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα.

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

- Αναπαράσταση ακέραιας τιµής : - Εύρος ακεραίων : - Ακέραιοι τύποι: - Πράξεις µε ακεραίους (DIV - MOD)

C Programming EPL032 Maria Stavrinou Ioannou Εισαγωγή στη Γλώσσα C

ιορθώσεις επί της 2 ης έκδοσης εκτύπωσης 2002

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

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

Προγραμματισμός Ι (HY120)

Σύντοµος Οδηγός της Qbasic. Πέρδος Αθανάσιος Καθηγητής Πληροφορικής

Δομή προγράμματος στη Fortran

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο

Εντολές επιλογής Επαναλήψεις (if, switch, while)

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

Δομή προγράμματος στη Fortran

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

Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής

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

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

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

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

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

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

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

Transcript:

οµή του προγράµµατος (i) PROGRAM example Η αρχή και το όνοµα του προγράµµατος IMPLICIT NONE REAL:: moires, aktinia moires = 180 χαρακτηριστική δήλωση δηλώσεις µεταβλητών aktinia = moires * 3.14159 / 180.0 WRITE(*,*) Η γωνία σε ακτίνια & είναι:, aktinia εκτελέσιµες εντολές STOP END τέλος εκτέλεσης 1

οµή του προγράµµατος (C) (i) #include <stdio.h> int i, j; void main() { i=15; j=23; printf("sum of i and j is: "); i=i+j; printf("%d", i); } 2

οµή του προγράµµατος (ii) Επικεφαλίδα PROGRAM <όνοµα προγράµµατος> Κυρίως σώµα Specification Part (δηλωτικές εντολές) Execution Part (εκτελέσιµες εντολές) Subprogram Part (υπο-προγράµµατα) ENDή END PROGRAM <όνοµα προγράµµατος> Εντολή STOPτερµατίζει την εκτέλεση του προγράµµατος. Μπορεί να χρησιµοποιηθεί µία ή περισσότερες φορές. Συχνά εµφανίζεταιµόνο πριν το END και γι αυτό παραλείπεται. 3

οµή του προγράµµατος (iii) ηλώσεις µεταβλητών µεταβλητή: ένα «κουτί» της µνήµης του υπολογιστή όπου µπορεί να αποθηκευτεί µια πληροφορία (ένα δεδοµένο) στο τµήµα δηλώσεων (που βρίσκεται πάντα στην αρχή του προγράµµατος) ορίζουµε όλες τις µεταβλητές που χρησιµοποιεί το πρόγραµµα για κάθε µεταβλητή ορίζουµε το όνοµάτης και τον τύποτης, δηλαδή το πεδίο των δυνατών τιµών που µπορεί η µεταβλητή να πάρει π.χ. INTEGER:: i,j,k, 4

οµή του προγράµµατος (iv) Απλοί τύποι µεταβλητών INTEGER ακέραιοι αριθµοί 0, 1, 3 REAL πραγµατικοί αριθµοί 3.14 (τελεία, όχι κόµµα),, 2.35E-8 (=2.35 10-8 ) CHARACTERχαρακτήρες CHARACTER (LEN=*) string LOGICAL λογικές τιµές.false. 'a', 'C' 'and', "Cool".TRUE. ή COMPLEX µιγαδικοί αριθµοί (-10.0, 8.0) 5

οµή του προγράµµατος (v) ήλωση µεταβλητών INTEGER:: i, j=12, k, REAL:: a, b, x, CHARACTER (LEN=4):: mera, minas, etos, LOGICAL:: m=.true., n COMPLEX:: c, e ήλωση σταθερών INTEGER, PARAMETER:: I=10, day=3 REAL, PARAMETER:: PI=3.14159 6

οµή του προγράµµατος (vi) Σχόλια INTEGER:: x,y!οι συντεταγµένες του κέντρου REAL:: r!η ακτίνα Κεφαλαίοι ή πεζοί χαρακτήρες; Η γλώσσα δεν είναι case sensitive Στοίχιση Απαραίτητη για να είναι ευανάγνωστο Κάθε εντολή σε µία γραµµή. Αν δεν αρκεί µία γραµµή τη συνεχίζω σε περισσότερες προσθέτοντας τονχαρακτήρα & στο τέλος κάθε γραµµής. Αν θέλω περισσότερες από µία εντολές σε µία γραµµή τις χωρίζω µε ελληνικό ερωτηµατικό ; 7

οµή του προγράµµατος Υποπρογράµµατα (vi) PROGRAM example επικεφαλίδα IMPLICIT NONE INTEGER:: i, j, athroisma i=15 j=23 CALL Prosthesi(i,j,athroisma)!κλήση υπορουτίνας WRITE (*,*) To athroisma einai:, athroisma END SUBROUTINE Prosthesi(a,b,athr) IMPLICIT NONE INTEGER:: a, b, athr athr = a+b END κυρίως σώµα υπορουτίνα 8

οµή του προγράµµατος (C) (vi) Υποπρογράµµατα #include <stdio.h> int i, j; void add(); { i=i+j; } void main() { i=15; j=23; printf("sum of i and j is: "); add(); printf("%d", i); } 9

Τί σηµαίνει ορθό πρόγραµµα (i) Συντακτική ορθότητα το πρόγραµµα πρέπει να υπακούει στους συντακτικούς κανόνες της γλώσσας προγραµµατισµού Συντακτικά σφάλµατα στην Fortran εµφανίζονται όταν δεν ικανοποιείται η καθορισµένη σύνταξη παράδειγµα: (PROGRAM) example 10

Τί σηµαίνει ορθό πρόγραµµα (ii) Νοηµατική ορθότητα το πρόγραµµα πρέπει να υπακούει τους νοηµατικούς κανόνες της γλώσσας προγραµµατισµού Νοηµατικά σφάλµατα στην Fortran εσφαλµένη χρήση τελεστών n = 'a' + 1 χρήση µεταβλητών χωρίς δήλωση IMPLICIT NONE INTEGER:: n,i n = i + j 11

Τί σηµαίνει ορθό πρόγραµµα (iii) Σηµασιολογική ορθότητα όταν το πρόγραµµα εκτελείται, πρέπει να κάνει ακριβώς αυτό που θέλουµε να κάνει Σηµασιολογικά σφάλµατα στην Fortran προέρχονται από την κακή σχεδίαση ή την κακή υλοποίηση του προγράµµατος αυτά τα σφάλµατα ονοµάζονται συνήθως bugs και η διαδικασία εξάλειψής τους debugging x = (-b + sqr(b*b-4*a*c))/(2*a) 12

Τί σηµαίνει ορθό πρόγραµµα (iii) Σηµασιολογική ορθότητα όταν το πρόγραµµα εκτελείται, πρέπει να κάνει ακριβώς αυτό που θέλουµε να κάνει Σηµασιολογικά σφάλµατα στην Fortran προέρχονται από την κακή σχεδίαση ή την κακή υλοποίηση του προγράµµατος αυτά τα σφάλµατα ονοµάζονται συνήθως bugs και η διαδικασία εξάλειψής τους debugging x = (-b + sqr(b*b-4*a*c))/(2*a) sqrt διαίρεση µε το µηδέν 13

Τί σηµαίνει ορθό πρόγραµµα (iv) Ο µεταγλωττιστής µπορεί να εντοπίσει σε ένα πρόγραµµα την ύπαρξη συντακτικών σφαλµάτων νοηµατικών σφαλµάτων Τυπώνει κατάλληλα µηνύµατα σφάλµατος Ο προγραµµατιστής είναι υπεύθυνος για τη διόρθωση των παραπάνω τον εντοπισµό και τη διόρθωση σηµασιολογικών σφαλµάτων 14

Ανάθεση τιµής σε µεταβλητή Παραδείγµατα αναθέσεων n = 2 pi = 3.14159 done =.true. ch = 'b' counter = counter + 1 x1 = (-b + sqrt(b*b-4*a*c))/(2*a) 15

Επικοινωνία µε το χρήστη (i-a) Έξοδος στην οθόνη WRITE(*,*)'Hello world' WRITE(*,*) x WRITE(*,*) n+1 WRITE(*,*) x, y WRITE(*,*) 'Η τιµή του x είναι ', x 16

Επικοινωνία µε το χρήστη (i-b) Έξοδος µε αλλαγή γραµµής WRITE(*,*) 'hello world'!αλλαγή γραµµής µετά το µήνυµα WRITE(*,'(A)',advance='no') 'hello world'!χωρίς αλλαγή γραµµής WRITE(*,'(A/A)') 'hello', 'world ή, ισοδύναµα WRITE(*,10) 'hello', 'world' 10 FORMAT(A/A)!αλλαγή γραµµής µεταξύ των δύο string 17

Επικοινωνία µε το χρήστη (ii) Παράδειγµα PROGRAM example IMPLICIT NONE INTEGER n,m,athroisma WRITE(*,*) 'Προσθέτω δυο ακέραιους' WRITE(*,*)' ώσε το n: ' READ(*,*) n WRITE (*,*) ' ώσε το m: ' READ(*,*) m athroisma = n + m WRITE(*,*)'Το άθροισµα ', n, ' + ', & m, ' είναι: ', athroisma STOP END 18

Επικοινωνία µε το χρήστη (C) (ii) Παράδειγµα #include <stdio.h> void main() { int n, m, sum; printf("προσθέτω δύο ακεραίους\n"); printf(" ώσε το n: "); scanf("%d\n",&n); printf(" ώσε το m: "); scanf("%d\n",&m); sum = n + m; printf("το άθροισµα %d + %d είναι: ",n,m); printf("%d\n",sum); } 19

Αριθµητικές παραστάσεις (i) Απλές παραστάσεις σταθερές και µεταβλητές Απλές πράξεις πρόσθεση, αφαίρεση +, - πολλαπλασιασµός * διαίρεση / Ύψωση σε δύναµη ** πρόσηµα +, - 20

Αριθµητικές παραστάσεις (ii) Προτεραιότητα τελεστών: α) ** β) *,/ γ) +,- π.χ. 5+3*x-y 5+(3*x)-y Προσεταιριστικότητα τελεστών *,/, +,- από αριστερά προς τα δεξιά π.χ. x-y+1 (x-y)+1 Προσεταιριστικότητα τελεστή ** από δεξιά προς αριστερά π.χ. x**y**z x**(y**z) 21

Αριθµητικές παραστάσεις (ii) Σειρά εκτέλεσης των πράξεων καθορίζεται εν µέρειαπό την προτεραιότητα και την προσεταιριστικότητα των τελεστών γενικά όµως εξαρτάται και από την υλοποίηση χρησιµοποιείτε παρενθέσεις: (x+1)/(y*z) 22

Λογικές παραστάσεις (i) Συγκρίσεις ισότητα, ανισότητα ==, /= µεγαλύτερο, µικρότερο >, < µεγαλύτερο ή ίσο, µικρότερο ή ίσο >=, <= Λογικές πράξεις σύζευξη (και) διάζευξη (ή) άρνηση (όχι).and..or..not. Ισοδυναµία.EQV. Οχι ισοδυναµία (αποκλειστική διάζευξη XOR).ΝEQV. 23

Λογικές παραστάσεις (ii) Πίνακες αλήθειας λογικών πράξεων p FALSE TRUE.NOT. p TRUE FALSE p q P.AND. q p.or. q FALSE FALSE FALSE FALSE FALSE TRUE FALSE TRUE TRUE FALSE FALSE TRUE TRUE TRUE TRUE TRUE 24

Λογικές παραστάσεις (iii) Πίνακες αλήθειας λογικών πράξεων p q P.EQV. q P.NEQV. q FALSE FALSE TRUE FALSE FALSE TRUE FALSE TRUE TRUE FALSE FALSE TRUE TRUE TRUE TRUE FALSE 25

Λογικές παραστάσεις (iv) Προτεραιότητα λογικών τελεστών.not. : µεγαλύτερη προτεραιότητα από όλους.and. : όπως ο πολλαπλασιασµός.or. : όπως η πρόσθεση.eqv. ή.neqv. π.χ..not. p.and. q.or. r ((.NOT. p).and. q).or. r Προσεταιριστικότητα.NOT. : από δεξιά προς αριστερά.and.,.or. : από αριστερά προς δεξιά 26

Προτεραιότητα τελεστών συνολικά Αριθµητικοί Σύγκρισης Λογικοί π.χ. x>3+4.and..not. y==5 (x>(3+4)).and. (.NOT. (y==5)) Χρησιµοποιείτε παρενθέσεις! 27

οµές ελέγχου Τροποποιούν τη σειρά εκτέλεσηςτων εντολών του προγράµµατος Οι εντολές φυσιολογικά εκτελούνται κατά σειρά από την αρχή µέχρι το τέλος Με τις δοµές ελέγχου επιτυγχάνεται: οµαδοποίηση εντολών εκτέλεση εντολών υπό συνθήκη επανάληψη εντολών 28

Εντολή IF Εκτέλεση εντολών υπό συνθήκη Συντακτικό διάγραµµα END IF (i) boolean IF THEN statement expression ELSE statement if_statement Προσοχή! Μετά το END IF το πρόγραµµα συνεχίζεται είτε ισχύει η λογική έκφραση είτε όχι 29

Εντολή IF (ii) IF (x>10) THEN x=x+1 END IF IF (age<10) THEN WRITE(*,*) 'παιδί' END IF IF (λογική έκφραση) THEN σύνολο εντολών END IF Η λογική έκφραση αποτιµάται σε.true.ή.false. Και µπαίνει σε παρενθέσεις IF ((year>1900).and.(year<=2000))then WRITE (*,*) '20ός αιώνας' END IF IF ((MOD(year,4)==0).AND. (MOD(year,100)/=0).OR. & (MOD(year,400)==0).AND. (MOD(year,4000)/=0)) THEN WRITE(*,*)'disekto etos' END IF 30

Εντολή if (C) (ii) Παραδείγµατα if (x>10) x = x+1; if (age<10) printf("παιδί"); if ((year>1900) && (year<=2000) printf("20ός αιώνας"); if ((year%4==0) && (year%100!=0) (year%400==0) && (year%4000!=0)) printf("δίσεκτο έτος"); 31

Εντολή IF (iii) Παραδείγµατα (συνέχεια) IF (changed) THEN WRITE(*,*) 'Το αρχείο & άλλαξε' changed =.FALSE. END IF IF (MOD(x,2)==0) THEN WRITE(*,*)'άρτιος' ELSE WRITE(*,*)'περιττός' END IF IF (mine) THEN me = 1; you = 0 ELSE me=0; you=1 END IF IF (x > y) THEN WRITE(*,*) 'µεγαλύτερο' ELSE IF (x < y) THEN WRITE(*,*)'µικρότερο' ELSE WRITE(*,*) 'ίσο' END IF END IF IF (x > y) THEN WRITE(*,*) 'µεγαλύτερο' ELSEIF (x < y) THEN WRITE(*,*)'µικρότερο' ELSE WRITE(*,*) 'ίσο END IF 32

Εντολή if (C) (iii) Παραδείγµατα (συνέχεια) if (changed) { printf("το αρχείο άλλαξε\n"); changed = 0; } if (x%2==0) printf("άρτιος"); else printf("περιττός"); if (mine) { me=1; you=0; } else { me=0; you=1; } if (x>y) printf("µεγαλύτερο"); else if (x<y) printf("µικρότερο"); else printf("ίσο"); 33

Εντολή IF (iv) IF else IF construct : IF (συνθήκη1) THEN σύνολο εντολών 1 ELSE IF (συνθήκη 2) ΤΗΕΝ σύνολο εντολών 2 ELSE IF (συνθήκη 3) ΤΗΕΝ σύνολο εντολών 3... ELSE σύνολο εντολών n END IF 34

Εντολή IF (iv) Ένα ELSE αντιστοιχεί στο πλησιέστερο προηγούµενο IF που δεν έχει ήδη αντιστοιχιστεί σε άλλο ELSE Παράδειγµα IF (x>0) THEN IF (y>0) THEN WRITE(*,*) ' 1o τεταρτηµόριο ' ELSEIF (y<0) THEN WRITE(*,*) '4o τεταρτηµόριο ' ELSE!y=0 WRITE(*,*) 'άξονας των x END IF ELSE WRITE(*,*) ' αριστερό ηµιεπίπεδο ' END IF 35

Εντολή if (C) (iv) Ένα else αντιστοιχεί στο πλησιέστερο προηγούµενο if που δεν έχει ήδη αντιστοιχιστεί σε άλλο else Παράδειγµα if (x>0) else if (y>0) printf("πρώτο τεταρτηµόριο"); else if (y<0) printf("τέταρτο τεταρτηµόριο"); else printf("άξονας των x"); printf(" αριστερό ηµιεπίπεδο"); 36

Λάθη Στρογγυλοποίησης PROGRAM errors IMPLICIT NONE REAL :: x,y WRITE (*,*) " ώσε πραγµατικό διάφορο του 0 " READ (*,*) x y=x*(1.0/x) WRITE (*,*) " x= ", x, " y=x*(1/x)= ", y! έλεγχος αν το αποτέλεσµα είναι 1 IF (y==1.0) THEN WRITE(*,*) " y ισούται µε 1 " ELSE WRITE(*,*) " y δεν ισούται µε 1 " END IF END PROGRAM errors Για x=0.1 y ισούται µε 1 Για x=3,1415 y δεν ισούται µε 1 37

Εντολή SELECT CASE (i) Εκτέλεση υπό συνθήκη για πολλές διαφορετικές περιπτώσεις Προσφέρεται π.χ. αντί του: IF (month==1) THEN WRITE(*,*) 'Ιανουάριος' ELSEIF (month==2) THEN WRITE(*,*) 'Φεβρουάριος ELSEIF...... ELSEIF (month==12) THEN WRITE(*,*) ' εκέµβριος ' ELSE WRITE(*,*) 'Λάθος εδοµένα' END IF 38

Εντολή SELECT CASE (ii) Παραδείγµατα SELECT CASE (month) CASE (1) WRITE(*,*) 'Ιανουάριος ' CASE (2) WRITE(*,*) 'Φεβρουάριος' CASE (3) WRITE(*,*) 'Μάρτιος... CASE (12) WRITE(*,*) ' εκέµβριος ' CASE DEFAULT WRITE(*,*) 'Λάθος εδοµένα' END SELECT 39

Εντολή case (C) (ii-a) Παραδείγµατα switch (month) { case 1: printf("ιανουάριος"); break; case 2: printf("φεβρουάριος"); break; case 3: printf("μάρτιος"); break;... case 12: printf(" εκέµβριος"); break; } 40

Εντολή case (C) (ii-b) Παραδείγµατα switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: printf("31 µέρες"); break; case 4: case 6: case 9: case 11: printf("30 µέρες"); break; case 2: printf("28 ή 29"); break; } 41

Εντολή SELECT CASE (iii) SELECT CASE (selector)!selector: integer, character, logical expression CASE (value_list1)!value_list: εύρος τιµών, τιµή ή τιµές σύνολο εντολών 1 CASE (value_list2) σύνολο εντολών 2 CASE (value_list3)... σύνολο εντολών 3 CASE DEFAULT END SELECT σύνολο εντολών n To case default µπορεί να µπεί οπουδήποτε αλλά συνήθως µπαίνει στο τέλος Παραδείγµατα value list case (5), case (5:7), case ( :7), case (5: ) 42

Εντολή SELECT CASE (iv) SELECT CASE (class_code) CASE (1) WRITE (*,*) "junior" CASE (2) WRITE (*,*) "senior" CASE (3) WRITE (*,*) "graduate"... CASE DEFAULT WRITE (*,*) "Λάθος " END SELECT 43

Εντολή SELECT CASE (v) SELECT CASE (class_name) CASE ("junior") WRITE (*,*) 1 CASE ("senior" ) WRITE (*,*) 2 CASE ("graduate" ) WRITE (*,*) 3... CASE DEFAULT WRITE (*,*) "Λάθος " END SELECT 44

Εντολή SELECT CASE (vi) SELECT CASE (index) CASE (high : ) WRITE (*,*) "poor" CASE (low : high-1 ) WRITE (*,*) " fair" CASE (: low-1 ) WRITE (*,*) " good" END SELECT 45

Εντολή SELECT CASE SELECT CASE (ΙΝΤ(average)) CASE (90:) WRITE (*,*) "grade A" CASE (80:89 ) WRITE (*,*) "grade B" CASE (:59) WRITE (*,*) "grade C"... END SELECT 46