ΗΥ- 150 Προγραμματισμός
of 23
/23
Embed Size (px)
description
ΗΥ- 150 Προγραμματισμός. Εντολές Ελέγχου Ροής. Σειριακή εκτέλεση εντολών. Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές ( sequential – built in C) Εντολές απόφασης ( if, if/else, switch) Εντολές επανάληψης ( for, while, do/while). - PowerPoint PPT Presentation
Transcript of ΗΥ- 150 Προγραμματισμός
ΗΥ-255 Εργαστριο Λογισμικο Σειριακς εντολς (sequential – built in
C)
Εντολς απφασης (if, if/else, switch)
Εντολς επανληψης ( for, while, do/while)
ΗΥ150 – Προγραμματισμς
Ξενοφν Ζαμπολης
if βασικ εντολ διακλδωσης κθε γλσσας προγραμματισμο
Ελγχει τη ρο του κδικα ανλογα με τη (λογικ) τιμ μιας συνθκης, δηλαδ μιας ποστητας κφρασης λογικο τπου. Στη C++ συντσσεται ως εξς:
if (condition)
}
Εν η συνθκη (condition) εναι αληθς μπορε να μετατραπε σε αληθ, εκτελεται το block των εντολν που περικλεεται μεταξ των πρτων {} (block A). Αν η συνθκη εναι ψευδς, ττε εκτελεται το block των εντολν μετ το else (block B).
ΗΥ150 – Προγραμματισμς
Ξενοφν Ζαμπολης
if
Το κθε block μπορε να αποτελεται απ καμμα, μα, περισστερες εντολς. Στην περπτωση που περιλαμβνει μα μνο εντολ μπορον να παραληφθον τα γκιστρα ({}) που την περικλεουν.
if (val > max)
if
Στην περπτωση που το else block εναι κεν μπορε να παραληφθε ολκληρο:
if (condition)
if
Kθε block μπορε να περιλαμβνει οποιεσδποτε λλες εντολς και ββαια λλο if. H if (condition) {...} else {...} εναι μα εντολ. Στην περπτωση ενς εσωκλειμενου if , θλει ιδιατερη προσοχ το επμενο else του κδικα. Το κθε else ταιριζει με το αμσως προηγoμεν του if στο διο block.
if (i == 0)
if (val > max)
max = 10;
Η εντολ max = 10; εκτελεται ταν to i εναι 0 και δεν ισχει το ( val > max ) και χι ταν δεν ισχει το ( i == 0 ). Η χρση των αγκστρων επιβλει την πρθεση του προγραμματιστ:
if (i == 0)
εντολ2
else
εντολ3
//Αν η κφραση χει τιμ διφορη του 0 (!0), //εκτελεται η εντολ 1 αλλις η εντολ2
//Αν η κφραση χει τιμ διφορη του 0 (!0),
//εκτελεται η εντολ 1
//εκτελεται η εντολ 1
//εκτελεται η εντολ 2
ΗΥ150 – Προγραμματισμς
Ξενοφν Ζαμπολης
{
if (p == ‘+’)
return 0;
Παραστσεις υπ Συνθκη - ?
Ο τελεστς ( ?: ) εναι νας ιδιατερα διαδεδομνος ιδιωματισμς της C++. Η εντολ
if (condition)
val = value1;
Γενικτερα, η κφραση
(condition ? κφρασηΑ : κφρασηΒ)
χει την τιμ “κφρασηΑ” ταν η συνθκη condition εναι αληθς, εν χει την τιμ “κφρασηΒ” ταν η συνθκη εναι ψευδς.
ΗΥ150 – Προγραμματισμς
Ξενοφν Ζαμπολης
Παραστσεις υπ Συνθκη - ?
Οι παρενθσεις που περιβλουν τον τελεστ ( ?: ) με τα ορσματ του στο συγκεκριμνο παρδειγμα δεν εναι απαρατητες, βοηθον μως στην κατανηση του κδικα.
Καθς για το συγκεκριμνο τελεστ δεν μπορε να καθοριστε μονοσμαντα η προτεραιτητ του σε σχση με τον ( = ) πρπει να τις χρησιμοποιομε για να εκτελεται η επιδιωκμενη πρξη.
Εναλλακτικ, μπορομε να εφαρμζουμε τον εξς καννα: Οι τελεστς ( ?: ) και ( = ) χουν δια προτεραιτητα, δεχμενοι τι οι πρξεις εκτελονται απ τα δεξι προς τα αριστερ. Επομνως, η κφραση
a = b ? c : d ισοδυναμε με a = (b ? c : d),
εν η κφραση a ? b : c = d εκτελεται ως a ? b : (c = d)
ΗΥ150 – Προγραμματισμς
Ξενοφν Ζαμπολης
ΗΥ150 – Προγραμματισμς
Ξενοφν Ζαμπολης
ΗΥ150 – Προγραμματισμς
Ξενοφν Ζαμπολης
}
Το default εναι προαιρετικ και εκτελεται αν καμα παρσταση δεν βρεθε ση με την κφραση
Αν να break λεπει ττε συνεχζεται η εκτλεση των εντολν
ΗΥ150 – Προγραμματισμς
Ξενοφν Ζαμπολης
Εντολς υπ Συνθκη - switch
Η τιμ ελγχου i πρπει να εναι ακραιου τπου (char , int , short int, long int) με τις signed και unsigned παραλλαγς τους. Η τιμ μπορε να προρχεται απ μεταβλητ να εναι η τιμ συνρτησης που επιστρφει ττοιο τπο κποια μεταβλητ. Οι τιμς value1, value2,..., valueN εναι σταθερς ακραιου τπου και διακριτς μεταξ τους.
Κατ την εκτλεση, η τιμ ελγχου i συγκρνεται με κθε μα απ τις value1, value2,...,valueN. Αν η τιμ της περιλαμβνεται σε αυτς, ττε εκτελονται οι εντολς που ακολουθον το αντστοιχο case . Η εκτλεση συνεχζει με τις εντολς των επμενων case /και του default αν πεται, ως του διακοπε με break ( τυχν π.χ. goto, return).
Μετ το break η εκτλεση συνεχζει με την πρτη εντολ μετ το καταληκτικ γκιστρο της δομς switch.
Αν δεν βρεθε η τιμ της στις value1, value2,...,valueN εκτελεται το block των εντολν του default , αν υπρχει. Αλλις, η εκτλεση συνεχζει μετ το } του switch .
Οι σχετικς θσεις των case και του default μπορον να εναι οποιεσδποτε.
ΗΥ150 – Προγραμματισμς
Ξενοφν Ζαμπολης
switch (p)
}
return 0;
Ξεχσατε {, }
ΗΥ150 – Προγραμματισμς
Ξενοφν Ζαμπολης
Κατλληλη χρση tabs, παρενθσεων και αγκυλν
Κατλληλη ονοματολογα συναρτσεων - μεταβλητν
{
{
{
#define FALSE 0
#define TRUE !FALSE
#define N 1000 /*ΠΡΟΣΟΧΗ!! – ΔΕΝ ΜΠΟΡΩ ΝΑ ΧΡΗΣΙΜΟΠΟΙΗΣΩ ΤΟ Ν ΩΣ ΜΕΤΑΒΛΗΤΗ*/
#define Pi 3.14159
Ορζεται στην αρχ κθε προγρμματος και μπορε να χρησιμοποιηθε σε λο το πργραμμα.
To Pi θα αντικατασταθε απ τον 3.14159 στο πρτο βμα του compilation (preprocessing)
int const a = 1;
#include <file>
#include <stdio.h>
#include “file”
ΗΥ150 – Προγραμματισμς
Ξενοφν Ζαμπολης
#include <stdio.h>
#include <math.h>
int main()
scanf(“%f %f %f”,&a,&b,&c);
printf("Dw8hke to poluwnumo: %f x^2 + (%f) x + (%f) \n",a,b,c);
if (a == 0)
else
{
return D;
{
float x1,x2;
return 0;
return 1;
return 2;
main()
}
main()
|| ( c >= 'a' ) && ( c <= 'z' ) )
}
Εντολς απφασης (if, if/else, switch)
Εντολς επανληψης ( for, while, do/while)
ΗΥ150 – Προγραμματισμς
Ξενοφν Ζαμπολης
if βασικ εντολ διακλδωσης κθε γλσσας προγραμματισμο
Ελγχει τη ρο του κδικα ανλογα με τη (λογικ) τιμ μιας συνθκης, δηλαδ μιας ποστητας κφρασης λογικο τπου. Στη C++ συντσσεται ως εξς:
if (condition)
}
Εν η συνθκη (condition) εναι αληθς μπορε να μετατραπε σε αληθ, εκτελεται το block των εντολν που περικλεεται μεταξ των πρτων {} (block A). Αν η συνθκη εναι ψευδς, ττε εκτελεται το block των εντολν μετ το else (block B).
ΗΥ150 – Προγραμματισμς
Ξενοφν Ζαμπολης
if
Το κθε block μπορε να αποτελεται απ καμμα, μα, περισστερες εντολς. Στην περπτωση που περιλαμβνει μα μνο εντολ μπορον να παραληφθον τα γκιστρα ({}) που την περικλεουν.
if (val > max)
if
Στην περπτωση που το else block εναι κεν μπορε να παραληφθε ολκληρο:
if (condition)
if
Kθε block μπορε να περιλαμβνει οποιεσδποτε λλες εντολς και ββαια λλο if. H if (condition) {...} else {...} εναι μα εντολ. Στην περπτωση ενς εσωκλειμενου if , θλει ιδιατερη προσοχ το επμενο else του κδικα. Το κθε else ταιριζει με το αμσως προηγoμεν του if στο διο block.
if (i == 0)
if (val > max)
max = 10;
Η εντολ max = 10; εκτελεται ταν to i εναι 0 και δεν ισχει το ( val > max ) και χι ταν δεν ισχει το ( i == 0 ). Η χρση των αγκστρων επιβλει την πρθεση του προγραμματιστ:
if (i == 0)
εντολ2
else
εντολ3
//Αν η κφραση χει τιμ διφορη του 0 (!0), //εκτελεται η εντολ 1 αλλις η εντολ2
//Αν η κφραση χει τιμ διφορη του 0 (!0),
//εκτελεται η εντολ 1
//εκτελεται η εντολ 1
//εκτελεται η εντολ 2
ΗΥ150 – Προγραμματισμς
Ξενοφν Ζαμπολης
{
if (p == ‘+’)
return 0;
Παραστσεις υπ Συνθκη - ?
Ο τελεστς ( ?: ) εναι νας ιδιατερα διαδεδομνος ιδιωματισμς της C++. Η εντολ
if (condition)
val = value1;
Γενικτερα, η κφραση
(condition ? κφρασηΑ : κφρασηΒ)
χει την τιμ “κφρασηΑ” ταν η συνθκη condition εναι αληθς, εν χει την τιμ “κφρασηΒ” ταν η συνθκη εναι ψευδς.
ΗΥ150 – Προγραμματισμς
Ξενοφν Ζαμπολης
Παραστσεις υπ Συνθκη - ?
Οι παρενθσεις που περιβλουν τον τελεστ ( ?: ) με τα ορσματ του στο συγκεκριμνο παρδειγμα δεν εναι απαρατητες, βοηθον μως στην κατανηση του κδικα.
Καθς για το συγκεκριμνο τελεστ δεν μπορε να καθοριστε μονοσμαντα η προτεραιτητ του σε σχση με τον ( = ) πρπει να τις χρησιμοποιομε για να εκτελεται η επιδιωκμενη πρξη.
Εναλλακτικ, μπορομε να εφαρμζουμε τον εξς καννα: Οι τελεστς ( ?: ) και ( = ) χουν δια προτεραιτητα, δεχμενοι τι οι πρξεις εκτελονται απ τα δεξι προς τα αριστερ. Επομνως, η κφραση
a = b ? c : d ισοδυναμε με a = (b ? c : d),
εν η κφραση a ? b : c = d εκτελεται ως a ? b : (c = d)
ΗΥ150 – Προγραμματισμς
Ξενοφν Ζαμπολης
ΗΥ150 – Προγραμματισμς
Ξενοφν Ζαμπολης
ΗΥ150 – Προγραμματισμς
Ξενοφν Ζαμπολης
}
Το default εναι προαιρετικ και εκτελεται αν καμα παρσταση δεν βρεθε ση με την κφραση
Αν να break λεπει ττε συνεχζεται η εκτλεση των εντολν
ΗΥ150 – Προγραμματισμς
Ξενοφν Ζαμπολης
Εντολς υπ Συνθκη - switch
Η τιμ ελγχου i πρπει να εναι ακραιου τπου (char , int , short int, long int) με τις signed και unsigned παραλλαγς τους. Η τιμ μπορε να προρχεται απ μεταβλητ να εναι η τιμ συνρτησης που επιστρφει ττοιο τπο κποια μεταβλητ. Οι τιμς value1, value2,..., valueN εναι σταθερς ακραιου τπου και διακριτς μεταξ τους.
Κατ την εκτλεση, η τιμ ελγχου i συγκρνεται με κθε μα απ τις value1, value2,...,valueN. Αν η τιμ της περιλαμβνεται σε αυτς, ττε εκτελονται οι εντολς που ακολουθον το αντστοιχο case . Η εκτλεση συνεχζει με τις εντολς των επμενων case /και του default αν πεται, ως του διακοπε με break ( τυχν π.χ. goto, return).
Μετ το break η εκτλεση συνεχζει με την πρτη εντολ μετ το καταληκτικ γκιστρο της δομς switch.
Αν δεν βρεθε η τιμ της στις value1, value2,...,valueN εκτελεται το block των εντολν του default , αν υπρχει. Αλλις, η εκτλεση συνεχζει μετ το } του switch .
Οι σχετικς θσεις των case και του default μπορον να εναι οποιεσδποτε.
ΗΥ150 – Προγραμματισμς
Ξενοφν Ζαμπολης
switch (p)
}
return 0;
Ξεχσατε {, }
ΗΥ150 – Προγραμματισμς
Ξενοφν Ζαμπολης
Κατλληλη χρση tabs, παρενθσεων και αγκυλν
Κατλληλη ονοματολογα συναρτσεων - μεταβλητν
{
{
{
#define FALSE 0
#define TRUE !FALSE
#define N 1000 /*ΠΡΟΣΟΧΗ!! – ΔΕΝ ΜΠΟΡΩ ΝΑ ΧΡΗΣΙΜΟΠΟΙΗΣΩ ΤΟ Ν ΩΣ ΜΕΤΑΒΛΗΤΗ*/
#define Pi 3.14159
Ορζεται στην αρχ κθε προγρμματος και μπορε να χρησιμοποιηθε σε λο το πργραμμα.
To Pi θα αντικατασταθε απ τον 3.14159 στο πρτο βμα του compilation (preprocessing)
int const a = 1;
#include <file>
#include <stdio.h>
#include “file”
ΗΥ150 – Προγραμματισμς
Ξενοφν Ζαμπολης
#include <stdio.h>
#include <math.h>
int main()
scanf(“%f %f %f”,&a,&b,&c);
printf("Dw8hke to poluwnumo: %f x^2 + (%f) x + (%f) \n",a,b,c);
if (a == 0)
else
{
return D;
{
float x1,x2;
return 0;
return 1;
return 2;
main()
}
main()
|| ( c >= 'a' ) && ( c <= 'z' ) )
}