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

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

Προγραμματισμός Ι. Θεματική ενότητα 3: Tελεστές. εκφράσεις

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

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

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

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

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

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

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

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές. Δρ. Γιώργος Λαμπρινίδης 23/10/2015 Η - Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1

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

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

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

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

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

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

Προγραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

Εισαγωγή στον δομημένο προγραμματισμό

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

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

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

Στοιχειώδης προγραμματισμός σε C++

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2

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

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

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

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

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

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

ΕΠΛ 034: Εισαγωγή στον Προγραμματισμό για ΗΜΥ

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

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

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

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

Διαδικασία Ανάπτυξης Λογισμικού

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

5 &6. Τύποι δεδομένων, τελεστές και

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

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

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

Προγραμματισμός Η/Υ. Ενότητα 2α: Εισαγωγή στη C (Μέρος Πρώτο)

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

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

Απλά Προγράμματα. Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων

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

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

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις

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

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

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

Εισαγωγή στην Πληροφορική

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

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

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

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

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13)

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

Δεδομένα, τελεστές, είσοδος/έξοδος

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

ΣΥΝΟΠΤΙΚΟΣ ΟΔΗΓΟΣ ΓΛΩΣΣΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C

Στόχοι και αντικείμενο ενότητας. Συντακτικό Γλώσσας. Αλφάβητο. #2.. Εισαγωγή στη C (Μέρος Πρώτο)

Δομές Δεδομένων. Ενότητα 2: Στοίβες Εισαγωγή-Υλοποίηση ΑΤΔ Στοίβα με Πίνακα-Εφαρμογή Στοίβας: Αντίστροφη Πολωνική Γραφή. Καθηγήτρια Μαρία Σατρατζέμη

Προγραμματισμό για ΗΜΥ

Εντολές εισόδου - εξόδου. Εισαγωγή στη C++

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

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

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

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

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

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

Περιεχόμενα. Πρόλογος... 21

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

3. Εκφράσεις και έλεγχος ροής

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

Προγραμματισμός Ι. Θεματική ενότητα 4: Έλεγχος ροής Προτάσεις υπό συνθήκη διακλάδωσης

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

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

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

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

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

Ο αλγόριθμος πρέπει να τηρεί κάποια κριτήρια

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

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

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

Πληροφορική 2. Γλώσσες Προγραμματισμού

ΑΣΚΗΣΗ 2: ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΣΤΗ C

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

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

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

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

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

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

Κεφάλαιο 2.5: Τύποι εδοµένων, Τελεστές και Αριθµητικές Εκφράσεις. ( ιαλέξεις 5-6) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

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

Transcript:

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

Τελεστές - Κατηγορίες Εκφράσεις - Κατηγορίες Υπολογισμός εκφράσεων Προτάσεις - Κατηγορίες 2

Τελεστές (Operators) Τελεστής = σύμβολο που αναπαριστά μία συγκεκριμένη στοιχειώδη διεργασία η οποία ενεργεί πάνω σε κάποια δεδομένα και παράγει κάποιο αποτέλεσμα Τελεστέοι = τα δεδομένα (σταθερές, μεταβλητές, κλήσεις συναρτήσεων) 3

Κατηγορίες Τελεστών Αριθμητικοί (+, -, *, /, %) Λογικοί (&&,,!) Σύγκρισης ή Συσχετιστικοί (>, >=, ==,!=, <, <=) Διαχείρισης ψηφίων (>>,<<, &,,, ~) Διαχείρισης μνήμης (&, [],., ->) Ειδικοί CEID Εισαγωγή στο Διαδικαστικό Προγραμματισμό 4

Τελεστές διαχείρισης ψηφίων & ΑND για bit OR για bit ^ αποκλειστικό OR για bit << ολίσθηση αριστερά >> ολίσθηση δεξιά ~ συμπλήρωμα ως προς 1 Ο τελεστής AND για bit χρησιμοποιείται για εφαρμογή μάσκας σε ένα σύνολο από bits. Για παράδειγμα η εντολή n=n & 0177 μηδενίζει όλα τα bit του n εκτός από τα επτά κατώτερης τάξης. 5

Ειδικοί Τελεστές (1) Μοναδιαίοι αυξησης/μείωσης (++, --) ++x, x++ ή x=x+1; Σύνθετοι ανάθεσης (+=, -=, *=, /=) x+=10; ή x=x+10; x *=y+1; ή x=x*(y+1); Υπό συνθήκη (? : ) <εκφρ1>? <εκφρ2> : <εκφρ3> συνθήκη ελέγχου x>y? x: y sizeof (π.χ. sizeof(int), sizeof(x+y)) 6

Τελεστής υπό συνθήκη If (a<b) z=a; else z=b; H παραπάνω παράσταση υπολογίζει τον μεγαλύτερο από τους a,b και τον τοποθετεί στην z. H ίδια παράσταση υπό συνθήκη μπορεί να γραφεί με τον τριαδικό τελεστή?: ως εξής: z=(a>b)?a:b; /* z=max(a,b) */ 7

Παράδειγμα int x=10; int y=20; x y ++x; 11 20 y=--x; 10 10 y+=x--; 9 20 y-=x++ 10 11 8

Εκφράσεις (1) Έκφραση = συνδυασμός ενός ή περισσότερων τελεστέων και ενός ή περισσότερων τελεστών Σημειογραφία Εκφράσεων -Ενδοθεματική (infix notation) π.χ. x+y -Προθεματική (prefix notation) π.χ. +x y -Μεταθεματική (postfix notation) π.χ. x y + 9

Κατηγορίες εκφράσεων Εκφράσεις (2) Αριθμητικές (τελεστές -> αριθμητικοί, τελεστέοι -> αριθμ. τιμές/μεταβλητές/εκφράσεις, αποτέλεσμα -> αριθμητικού τύπου) π.χ. (5*x+y/4)*8 Σύγκρισης (τελεστές -> σύγκρισης, τελεστέοι -> αριθ. τιμές/μεταβλητές/εκφράσεις, αποτέλεσμα ->λογικού τύπου: 0, 1 ) π.χ. x >5, a!=b, x==3, (x+y)>=4, (x-y) > (x+z) Λογικές (τελεστές -> λογικοί, τελεστέοι -> παραστάσεις με τιμές λογικές, αποτέλεσμα -> λογικού τύπου: 0, 1) π.χ. (x<5) && (x>=1), (x==0) (y==0) 10

Υπολογισμός Εκφράσεων (1) Προτεραιότητα (χωρισμός τελεστών σε ομάδες διαφορετικού επιπέδου προτεραιότητας) Προσεταιριστικότητα (καθορισμός κατεύθυνσης εφαρμογής τελεστών ίδιας προτεραιότητας) 11

Υπολογισμός Εκφράσεων (2) ΤΕΛΕΣΤΕΣ () [ ] ->! ~ ++ -- - * & (τύπος) sizeof / % + - << >> < <= > >= ==!= & ^ &&?: = += -= *= %= &= ^= = <<= >>=, (κόμμα) ΠΡΟΣΕΤΑΙΡΙΣΤΙΚΟΤΗΤΑ Από αριστερά προς τα δεξιά Από δεξιά προς τα αριστερά Από αριστερά προς τα δεξιά Από αριστερά προς τα δεξιά Από αριστερά προς τα δεξιά Από αριστερά προς τα δεξιά Από αριστερά προς τα δεξιά Από αριστερά προς τα δεξιά Από αριστερά προς τα δεξιά Από αριστερά προς τα δεξιά Από αριστερά προς τα δεξιά Από αριστερά προς τα δεξιά Από δεξιά προ τα αριστερά Από δεξιά προς τα αριστερά Aπό αριστερά προς δεξιά 12

Υπολογισμός Εκφράσεων (3) Εφαρμοστική σειρά (applicative order) Υπολογισμός των τελεστέων και εφαρμογή του τελεστή, π.χ. x+y Υπολογισμός περιορισμένης έκτασης (short circuit evaluation) Υπολογισμός όσων τελεστέων απαιτούνται, π.χ. x &&y, x y 13

Προτάσεις Πρόταση = εντολή + προσδιορισμοί +; Κατηγορίες - Δήλωσης (π.χ. int num;) - Ανάθεσης/καταχώρησης (π.χ. num = 20;) - Ροής ελέγχου (π.χ. if (a>b) a; else b;) - Κλήσης συνάρτησης (π.χ. printf( hello );) Σύνθετη πρόταση= { <προτ1>; <προτ2>;... <προτν>;} π.χ. { int num; num=10; printf( num=%d\n, num);} Σημαντικό: όχι ερωτηματικό μετά το άγκιστρο. 14

Προτάσεις Προεπεξεργαστή Ειδικές προτάσεις (δεν τελειώνουν σε;) Εκτελούν κάποια επεξεργασία του πηγαίου κώδικα πριν τη μεταγλώττιση Πρόταση συμπερίληψης - #include <όνομα αρχείου> ή #include <όνομα αρχείου> π.χ. #include <stdio.h>, #include <string.h> Πρόταση μακρο-αντικατάστασης - #define <όνομα> <κείμενο> π.χ. #define PI 3.1415, #define sq(x) x*x (πρβλ. sq(x+1)) 15

Δήλωση Σταθερών #define <όνομα> <τιμή> #define TRUE 1 #define FALSE 0 #define JANUARY 1 const int TRUE=1; const double e=2.17; 16

enum boolean {NO, YES}; enum months {JAN=1, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC}; Οι απαριθμήσεις παρέχουν ένα βολικό τρόπο για τη σύνδεση σταθερών τιμών με ονόματα. Οι μεταβλητές απαρίθμησης παρέχουν τη δυνατότητα ελέγχου και συχνά είναι καλύτερες από την #define. 17

Αριθμητικές Μετατροπές (1) Έμμεσες Αν ένας από τους τελεστέους είναι long double μετατρέπεται και ο άλλος σε long double Αλλιώς, αν ένας από τους τελεστέους είναι double μετατρέπεται και ο άλλος σε double Αλλιώς αν ένας από τους τελεστέους είναι float μετατρέπεται και ο άλλος σε float Αλλιώς ο char ή ο short μετατρέπεται σε int. Τέλος αν ένας από τους 2 τελεστέους είναι long μετατρέπεται και ο άλλος σε long 18

Αριθμητικές Μετατροπές (2) Σε οποιαδήποτε παράσταση μπορούν να επιβληθούν ρητές μετατροπές τύπου με έναν μοναδικό τελεστή που λέγεται προσαρμογή (cast). Στην κατασκευή (όνομα τύπου) παράσταση η παράσταση μετατρέπεται στον κατανομαζόμενο τύπο με βάση τους κανόνες μετατροπής που προαναφέραμε. Π.χ sqrt((double) n); 19

#include <stdio.h> main() { float test; test=6/5; printf( %f, test); } 20

Άσκηση 1 Να γραφεί πρόγραμμα σε C το οποίο διαβάζει δύο ακεραίους αριθμούς από το πληκτρολόγιο και στην συνέχεια τυπώνει το άθροισμα, την διαφορά, το γινόμενο, το ακέραιο πηλίκο και το υπόλοιπο της διαίρεσης των δύο αριθμών αυτών. Παράδειγμα εκτέλεσης: Για x = 15 και y = 4 η έξοδος είναι: 15 + 4 = 19 15-4 = 11 15 * 4 = 60 15 / 4 = 3 15 mod 4 = 3 21

Άσκηση 2 Να γραφεί πρόγραμμα C το οποίο: (i) διαβάζει από το πληκτρολόγιο έναν double d (ii) αποθηκεύει τον d σε έναν float f με χρήση typecasting (float) (iii) τυπώνει τους d και f με ακρίβεια 12 δεκαδικών ψηφίων. 22

Άσκησεις (1) i. Γράψτε πρόγραμμα σε C το οποίο ζητάει από τον χρήστη να δώσει τις συντεταγμένες δύο σημείων στο επίπεδο. Στην συνέχεια, υπολογίζει την ευκλείδεια απόσταση των σημείων αυτών και την εκτυπώνει. (Υποδ: πρέπει να χρησιμοποιηθεί η συνάρτηση υπολογισμού της τετραγωνικής ρίζας sqrt() της math.h) ii. iii. iv. Να γραφεί πρόγραμμα σε C το οποίο διαβάζει από το πληκτρολόγιο έναν πραγματικό αριθμό. Στην συνέχεια, θεωρώντας ότι ο αριθμός αυτός αναπαριστά θερμοκρασία σε βαθμούς Φαρενάιτ, να γίνει μετατροπή σε κλίμακα Κελσίου και το αποτέλεσμα να τυπωθεί. Υπόδ: ο τύπος μετατροπής από Φαρενάιτ σε Κελσίου είναι C = (5/9) * (F - 32) Να γραφεί πρόγραμμα σε C το οποίο διαβάζει από το πληκτρολόγιο δύο αριθμούς και τους εναλλάσσει. Να γραφεί πρόγραμμα το οποίο διαβάζει ένα αριθμό από το πληκτρολόγιο, υπολογίζει την τρίτη δύναμή του και τον εκτυπώνει. v. Να γραφεί πρόγραμμα το οποίο διαβάζει ένα ακέραιο αριθμός x, και απομονώνει τα n bits του που αρχίζουν από τη θέση p. 23