Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης...

34
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης ([email protected]) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2016-17 Πρώτη (1 η ) τρίωρη διάλεξη.

Transcript of Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης...

Page 1: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης

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

Δρ. Μηχ. Νικόλαος Πετράκης

([email protected])

Ιστοσελίδα Μαθήματος:

https://eclass.chania.teicrete.gr/

Εξάμηνο: Εαρινό 2016-17

Πρώτη (1η) τρίωρη διάλεξη.

Page 2: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

ΑΝΤΙΚΕΙΜΕΝΟ ΤΟΥ ΜΑΘΗΜΑΤΟΣ • Βασικές έννοιες και δομή του Η/Υ

• Εισαγωγή στον Προγραμματισμό – Η γλώσσα C

– Έννοιες της σχεδίασης και της ανάπτυξης λογισμικού

• Τι θα σας προσφέρει το μάθημα – Βασικές γνώσεις Η/Υ και πληροφορικής

– Βασικές γνώσεις για την λειτουργία, την δομή, και την μεταγλώττιση των προγραμμάτων

– Την δυνατότητα να βρίσκετε την αλγοριθμική λύση ενός προβλήματος με έως μέτρια δυσκολία

– Την δυνατότητα να σχεδιάζετε λογισμικό και να γράφετε κώδικα σε γλώσσα C.

2

Page 3: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

Τρόπος Εξέτασης & Βαθμολογία

• Ενοποίηση Θεωρίας και Εργαστηρίου (ΕΝΑΣ ΒΑΘΜΟΣ)

• Δίνονται γραπτές εξετάσεις προόδου στο εργαστήριο

• Δίνονται τελικές γραπτές εξετάσεις στην θεωρία στις οποίες πρέπει να λάβετε προβιβάσιμο βαθμό ( ≥ 5,00)

• Αν, και μόνο αν, ο τελικός βαθμός είναι προβιβάσιμος μπορεί να βελτιωθεί κατόπιν επιβράβευσης (bonus) :

α) με την προσκόμιση 40 ασκήσεων από όλη την ύλη

(σύμφωνα με τις οδηγίες που έχουν αναρτηθεί στο e-class)

β) παρακολουθώντας την θεωρία συστηματικά.

3

Page 4: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

Εργαστήρια • Στο εργαστηριακό μέρος του μαθήματος θα

γίνονται ασκήσεις άμεσα σχετιζόμενες με την θεωρία γι’ αυτό θα πρέπει να παρακολουθείτε και την θεωρία ανελλιπώς

Υπεύθυνοι Εργαστηρίων:

• Κωνσταντάρας Αντώνιος

• Μανιαδάκης Δημήτριος

• Γεωργιλάς Γεώργιος

4

Page 5: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

Βιβλία • «Η γλώσσα C σε βάθος», Νίκος

Χατζηγιαννάκης, Εκδόσεις Κλειδάριθμος

• «C: από την θεωρία στην Εφαρμογή», Γ.Σ. Τσελίκης και Ν.Δ. Τσελίκας, Β’ Έκδοση 2012

• «C για Μηχανικούς», H.Tan, D’Orazio, (μετάφραση Δ. Μανωλάκη, Χ. Πολάτογλου) Εκδόσεις Τζιόλα

• «C για Αρχάριους», Β. Σεφερίδης, Εκδόσεις Κλειδάριθμος

• Σημειώσεις διδάσκοντος στο e-class

5

Page 6: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

ΜΑΘΗΜΑ 10

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές

• Οργάνωση, δομή και λειτουργία Η/Υ.

• Τα προγράμματα του υπολογιστή

• Εισαγωγικές έννοιες για την επίλυση προβλημάτων και τον προγραμματισμό.

6

Page 7: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

ΤΙ ΕΙΝΑΙ Ο Η/Υ; Σημείωση: Ο όρος χρησιμοποιείται ως συντόμευση για την έννοια «Αυτόματος, Ηλεκτρονικός Ψηφιακός Υπολογιστής Γενικού Σκοπού»

• Ο Ηλεκτρονικός Υπολογιστής είναι μία περίπλοκη ηλεκτρονική συσκευή, που έχει τη δυνατότητα να επεξεργάζεται πολύ γρήγορα και με ακρίβεια τεράστιο όγκο πληροφοριών.

• Πληροφορική είναι η επιστήμη που έχει ως αντικείμενο τη συλλογή, επεξεργασία, φύλαξη και μετάδοση των πληροφοριών, με τη βοήθεια του υπολογιστή.

7

Page 8: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

Μονάδες μέτρησης πληροφορίας • Η ελάχιστη ποσότητα πληροφορίας στους

ηλεκτρονικούς υπολογιστές είναι το ένα δυαδικό ψηφίο

(bit = binary digit) που μπορεί να λάβει τιμή 0 ή 1. Μια οχτάδα τέτοιων ψηφίων αποτελούν μία ψηφιολέξη (byte) που είναι η μονάδα μέτρησης της χωρητικότητας των διαφόρων τμημάτων του Η/Υ.

• Στη πράξη χρησιμοποιούμε πολλαπλάσια αυτής:

• KiloByte 1KB = 210 Bytes = 1024 Bytes,

• MegaByte 1MB = 220 Bytes = 210 KB = 1.048.576 Bytes,

• GigaByte 1GB = 230 Bytes = 210 MB = 1024 MB,

• TeraByte 1TB = 240 Bytes = 210 GB.

• PetaByte 1PB = 250 Bytes

• … και έπεται συνέχεια όπως: ExaByte, ZettaByte, YottaByte. 8

Page 9: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

ΤΙ ΔΕΝ ΕΙΝΑΙ Ο ΥΠΟΛΟΓΙΣΤΗΣ

• Δεν είναι Ηλεκτρονικός Εγκέφαλος.

• Δεν είναι απλή αριθμομηχανή.

• Δεν είναι αυτόνομη λογικά σκεπτόμενη μονάδα.

• Δεν έχει ανεξάρτητη λειτουργία πέρα από το πρόγραμμα πού έχει ορισθεί να εκτελέσει πιστά.

• Δεν είναι σε θέση να εκτελέσει λειτουργίες οι οποίες δεν έχουν ορισθεί και μοντελοποιηθεί με ακρίβεια.

9

Page 10: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

ΟΙ Η/Υ ΜΠΟΡΟΥΝ

• Να επεξεργασθούν τεράστιους όγκους μοντελοποιημένων δεδομένων (data modelling and data representation).

• Να εκτελέσουν πιστά επαναληπτικές, πολύπλοκες, και μακρές διαδικασίες (algorithms and processes).

• Να επιλύσουν παραμετρικά, μοντελοποιημένα προβλήματα με υψηλή απόδοση, και αξιοπιστία (performance – time/space, reliability/robustness).

10

Page 11: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

ΙΣΤΟΡΙΚΗ ΑΝΑΔΡΟΜΗ

• Μηχανισμός Αντικυθήρων, 87 πΧ • Ράβδοι του Napier (Λογαριθμικός Κανόνας) – 1600 • Αριθμητική Μηχανή του Pascal – 1642 • Μηχανοποίηση του Πολ/σμού Leibnitz – 1694 • Υφαντουργική Μηχανή με κάρτες Jacquard - 1745 • Διαφορική Μηχανή Babbage – 1822 • Αναλυτική Μηχανή (Μνήμη, έλεγχος ροής, αριθμητική υπολογιστική μονάδα, μονάδες

εισόδου/εξόδου Parmalee, Webb, Babbage – 1868 • Ηλεκτρομηχανική μηχανή με διάτρητα δελτία Hollerith – 1891 • Πρώτη αυτόματη υπολογιστική μηχανή ΙΒΜ – 1929 • Υπολογιστής με Ηλεκτρονόμους από την Bell Telephone Labs - 1938 • Ψηφιακός Η/Υ ENIAC – 1946 • UNIVAC – 1951 • Υπολογιστές με Μαγνητικό Τύμπανο – 1953 • Υπολογιστές με δίσκους 1970’s – micro computers • Personal Computers 80’s • Super Computers 80’s – 90’s • Ubiquitous Computing and Devices (Πανταχού παρών υπολογισμός) από το 1990 και μετά.

11

Page 12: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

ΙΣΤΟΡΙΚΗ ΑΝΑΔΡΟΜΗ

• Διαφορική Μηχανή Babbage – 1822 – London Science Museum (Copy)

12

Page 13: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

ΙΣΤΟΡΙΚΗ ΑΝΑΔΡΟΜΗ

• Ψηφιακός Η/Υ ENIAC – 1946

13

Page 14: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

ΟΡΓΑΝΩΣΗ ΚΑΙ ΔΟΜΗ ΤΟΥ Η/Υ

• Ο Η/Υ είναι μια επαναπρογραμματιζόμενη συσκευή επεξεργασίας πληροφοριών.

• Ο τυπικός Η/Υ αποτελείται από τα εξής μέρη:

– Μονάδα Εισόδου (Input)

– Κεντρική Μνήμη (Memory)

– Αριθμητική/Λογική Μονάδα (Arithmetic and Logic Unit)

– Μονάδα Ελέγχου (Control Unit)

– Μονάδα Εξόδου (Output)

14

Page 15: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

Τα λειτουργικά υποσυστήματα ενός Ηλεκτρονικού Υπολογιστή

15

Page 16: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

ΜΟΝΑΔA ΕΙΣΟΔΟΥ

• Το υποσύστημα το οποίο κωδικοποιεί τις πληροφορίες που προέρχονται από το εξωτερικό περιβάλλον. – Πληκτρολόγιο (keyboard)

– Ποντίκι (mouse)

– Ευαίσθητες επιφάνειες (smart panels)

– Συσκευές ανάγνωσης μαγνητικών καρτών (magnetic card readers)

– Συσκευές ανάγνωσης ήχου και εικόνας (sound and image acquisition)

– Συσκευές μετρήσεων (sensors)

– κ.λ.π.

16

Page 17: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

ΜΟΝΑΔΑ ΕΞΟΔΟΥ

• Το υποσύστημα το οποίο απο-κωδικοποιεί τις πληροφορίες που προέρχονται από τον Η/Υ και τις διανέμει προς το εξωτερικό περιβάλλον. – Οθόνη (display)

– Εκτυπωτής (printer)

– Σχεδιογράφος (plotter)

– Συσκευές ήχου (audio)

– Ηλεκτρομηχανικές συσκευές (actuators)

– κ.λ.π.

17

Page 18: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

ΚΕΝΤΡΙΚΗ ΜΝΗΜΗ • Το υποσύστημα το οποίο είναι υπεύθυνο για την προσωρινή

αποθήκευση όλων των πληροφοριών (εντολές και δεδομένα) που είναι απαραίτητες για την λειτουργία του Η/Υ και την εκτέλεση ενός προγράμματος.

• Η Κεντρική Μνήμη επικοινωνεί με τις Μονάδες Εισόδου/Εξόδου, την Αριθμητική & Λογική Μονάδα, και την Μονάδα Ελέγχου.

• Τα τεχνικά χαρακτηριστικά της Κεντρικής Μνήμης είναι – Χωρητικότητα

– Ταχύτητα

• Η μνήμη μπορεί να θεωρηθεί σαν ένα σύνολο από ‘θήκες’. Κάθε θήκη έχει μία αριθμητική διεύθυνση και μπορεί να αποθηκεύσει μία μικρή και συγκεκριμένη πληροφορία.

• Αυτή η πληροφορία μπορεί να είναι είτε μία εντολή, η οποία υπαγορεύει στον Η/Υ τι να κάνει, είτε δεδομένα τα οποία χρειάζεται ο υπολογιστής για να εκτελέσει τις εντολές που ήδη υπάρχουν στη μνήμη του.

18

Page 19: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

ΑΡΙΘΜΗΤΙΚΗ και ΛΟΓΙΚΗ ΜΟΝΑΔΑ

• Η «καρδιά» του υπολογιστή.

• Το υποσύστημα το οποίο είναι υπεύθυνο για τον μετασχηματισμό των κωδικοποιημένων ψηφιακών πληροφοριών.

• Οι μετασχηματισμοί είναι

– Αριθμητικές πράξεις (Πρόσθεση, Αφαίρεση, Πολλαπλασιασμός, Διαίρεση κλπ), Λογικές πράξεις (AND, OR, NOT, XOR) ή πράξεις συγκρίσεων

19

Page 20: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

ΛΟΓΙΚΕΣ ΠΡΑΞΕΙΣ

• Δίτιμη Άλγεβρα Boole

• Λογικές πράξεις μεταξύ δυαδικών ψηφίων {0, 1}

• Παραδείγματα: AND, OR, XOR – Πίνακες αλήθειας (0 = False, 1 = True)

Είσοδοι Σύζευξη Διάζευξη Αποκλειστική Διάζευξη

A B A AND B A OR B A XOR B

0 0 0 0 0

0 1 0 1 1

1 0 0 1 1

1 1 1 1 0

20

Page 21: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

ΜΟΝΑΔΑ ΕΛΕΓΧΟΥ

• Το υποσύστημα το οποίο είναι υπεύθυνο για τον συντονισμό της διαδοχής των πράξεων στην Αριθμητική & Λογική Μονάδα, και των υπολοίπων μονάδων του Η/Υ.

• Κατά τη διάρκεια εκτέλεσης ενός προγράμματος, η Μονάδα Ελέγχου λαμβάνει/διαβάζει εντολές (ηλεκτρικά σήματα - instructions) και στοιχεία (data) από τη μνήμη και σε καθορισμένες χρονικές στιγμές (περιοδικά) στέλνει σήματα ελέγχου/οδηγιών προς την Αριθμητική & Λογική Μονάδα, κατόπιν στέλνοντας τα αποτελέσματα πίσω στη μνήμη ή τις Μονάδες Εισόδου/Εξόδου.

21

Page 22: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

CPU

• Η Μονάδα Ελέγχου μαζί με την Αριθμητική & Λογική Μονάδα αναφέρονται ως CPU (Central Processing Unit).

• Από τις αρχές της δεκαετίας του 1970, η CPU βρίσκεται σε ένα ολοκληρωμένο κύκλωμα το οποίο ονομάζεται μικροεπεξεργαστής (microprocessor).

22

Page 23: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

Τα προγράμματα του Η/Υ

Υπάρχουν δύο βασικές κατηγορίες προγραμμάτων:

• λογισμικό του συστήματος (system software)

– λειτουργικό σύστημα (operating system)

– μεταγλωττιστικά προγράμματα (compilers)

– βοηθητικά προγράμματα (utilities)

• λογισμικό των εφαρμογών (application software).

23

Page 24: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

Γενικά Περί Γλωσσών Προγραμματισμού

• Συντακτικό και Ερμηνεία Το συντακτικό ορίζει τους γραμματικούς κανόνες για μία σωστά δομημένη

πρόταση, ενώ η ερμηνεία ορίζει την σημασία της πρότασης

• Γλώσσα Μηχανής ή κώδικας μηχανής (machine code)

Είναι σε δυαδική μορφή, άμεσα κατανοητή από το υλικό

– Συμβολική Γλώσσα Είναι σε συμβολική μορφή και κάθε εντολή αντιστοιχεί με μια εντολή κώδικα μηχανής – πιο βολική για τον άνθρωπο

• Γλώσσες Υψηλού Επιπέδου Προγραμματισμού (source code)

Είναι σε συμβολική μορφή και κάθε εντολή μοιάζει με Αγγλικά (στις περισσότερες γλώσσες προγραμματισμού)

Σε κάθε περίπτωση χρειαζόμαστε κάποιους μεταφραστές από τη μία μορφή (γλώσσα) στην άλλη:

- Συμβολομεταφραστές (assemblers) και - Μεταγλωττιστές (compilers)

24

Page 25: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

Μετταγλώττιση στην πράξη

• Ο μετταγλωττιστής παίρνει το αρχείο πηγαίου κώδικα ως είσοδο και δημιουργεί ένα αρχείο δίσκου το οποίο περιέχει τις οδηγίες γλώσσας μηχανής οι οποίες αντιστοιχούν στις προτάσεις του πηγαίου κώδικα.

1. Μετάφραση και Συμβολομετάφραση: Tα βήματα αυτά παράγουν αντικείμενο κώδικα – object code (σχεδόν γλώσσα μηχανής)

2. Ενοποίηση (linking): Το βήμα αυτό ενοποιεί αντικείμενο κώδικα (πιθανόν από διαφορετικά αρχεία πηγαίου κώδικα) σε ένα εκτελέσιμο αρχείο (π.χ. .exe) σε καθαρή γλώσσα μηχανής.

25

Page 26: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

ΕΚΤΕΛΕΣΗ ΠΡΟΓΡΑΜΜΑΤΟΣ

Μόλις το πρόγραμμα μεταγλωττιστεί και δημιουργηθεί το εκτελέσιμο αρχείο μπορούμε να το εκτελέσουμε εισάγοντας το όνομά του.

1. Εάν εκτελείτε το πρόγραμμα και λαμβάνετε αποτελέσματα διαφορετικά από τα αναμενόμενα πρέπει να προσδιορίσετε τι προκάλεσε το πρόβλημα και να διορθώσετε τον πηγαίο κώδικα.

2. Αν κάνετε μία οποιαδήποτε αλλαγή στον πηγαίο κώδικα, χρειάζεται να τον μεταγλωττίσετε (compile) εκ νέου για να δημιουργήσετε την διορθωμένη έκδοση του εκτελέσιμου αρχείου.

3. Επαναλάβετε τα παραπάνω βήματα μέχρι την επίτευξη του επιθυμητού αποτελέσματος.

26

Page 27: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

Ανασκόπηση

• Γενικά Ιστορικά στοιχεία περί της εξέλιξης των Η/Υ.

• Οργάνωση δομή και λειτουργία των Η/Υ.

• Γενικές αρχές για τις Γλώσσες Προγραμματισμού.

• Εισαγωγικές έννοιες για τη μετάφραση και συμβολομετάφραση προγραμμάτων.

27

Page 28: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

Αριθμητικά συστήματα και μετατροπές από το ένα σύστημα στο άλλο.

28

Δυαδικό

βάση = 2 =21

Δεκαεξαδικό

βάση = 16 =24

Δεκαδικό

βάση = 10

Οκταδικό

βάση = 8 =23

Page 29: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

Πίνακας αντιστοίχησης Δεκαδικό Δυαδικό Οκταδικό Δεκαεξαδικό

0 0 0 0

1 1 1 1

2 10 2 2

3 11 3 3

4 100 4 4

5 101 5 5

6 110 6 6

7 111 7 7

8 1000 10 8

9 1001 11 9

10 1010 12 Α

11 1011 13 B

12 1100 14 C

13 1101 15 D

14 1110 16 E

15 1111 17 F

16 10000 20 10

17 10001 21 11 29

Page 30: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

• Η μετατροπή ενός αριθμού από το δυαδικό στο οκταδικό ή το δεκαεξαδικό σύστημα αρίθμησης (και αντίστροφα) γίνεται απευθείας, χωρίς να χρειαστεί ενδιάμεσα το πέρασμα από το δεκαδικό σύστημα.

• Για να μετατρέψουμε έναν αριθμό από το οκταδικό ή το δεκαεξαδικό σύστημα στο δυαδικό, αρκεί να αντικαταστήσουμε κάθε ψηφίο τού αριθμού τού πρώτου συστήματος με την ακολουθία δυαδικών ψηφίων που αντιστοιχούν στο ψηφίο αυτό. Πάντα αντικαθιστούμε ένα ψηφίο οκταδικού αριθμού με τρία δυαδικά ψηφία ενώ ένα ψηφίο δεκαεξαδικού αριθμού με τέσσερα δυαδικά ψηφία.

• Παραδείγματα: …

30

Page 31: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

• Για να μετατρέψουμε (υπολογίσουμε) έναν αριθμό από οποιοδήποτε αριθμητικό σύστημα στο δεκαδικό, υπολογίζουμε το άθροισμα των γινομένων της αξίας του κάθε ψηφίου του επί την αξία της θέσεως που αυτό κατέχει.

• Για να μετατρέψουμε έναν αριθμό από το δεκαδικό σύστημα αρίθμησης σε οποιοδήποτε άλλο αριθμητικό σύστημα, διενεργούμε διαδοχικές διαιρέσεις δια της βάσης του νέου αριθμητικού συστήματος μέχρι να λάβουμε πηλίκο μηδέν. Τα υπόλοιπα των διαιρέσεων με την αντίστροφη σειρά αποτελούν τα ζητούμενα ψηφία του αριθμού στο νέο αριθμητικό σύστημα.

31

Page 32: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

Δυαδικοί Αριθμοί

• Ένας δυαδικός αριθμός είναι μια ακολουθία από 0 και 1.

• Η μετατροπή ενός δυαδικού αριθμού με υποδιαστολή όπως π.χ.

b4 b3 b2 b1b0 . b-1 b-2 b-3 (2)

στο δεκαδικό προκύπτει από:

(b4 X 24 ) + (b3 X 23 ) + (b2 X 22) + (b1 X 21) + (b0 X 20) + (b-1 X 2-1) + (b-2 X 2-2) + (b-3 X 2 -3)

32

υποδιαστολή

Οπότε: 10111.101(2) = 23.625(10)

Page 33: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

Μετατροπή πραγματικού αριθμού (1)

• Α’ τρόπος: Πολλαπλασιάζουμε ολόκληρο τον πρώτο αριθμό (μαζί με το τμήμα δεξιά της υποδιαστολής) με τη βάση του δευτέρου συστήματος αρίθμησης τόσες φορές, όσα ψηφία επιθυμούμε να έχουμε μετά την υποδιαστολή. Κατόπιν, εκτελούμε τη μετατροπή κανονικά μόνον του ακέραιου τμήματος του γινομένου που βρήκαμε σαν αποτέλεσμα. Μετά την μετατροπή δεν πρέπει να ξεχάσουμε να βάλουμε την υποδιαστολή στη σωστή θέση, μετρώντας τα ψηφία ακρίβειας του τμήματος δεξιά της υποδιαστολής.

33

Page 34: Προγραμμαισμός Η/Υ (ΤΛ2007 ) · –Η γλώσσα c –Έννοιες ʐης σʗεδίασης και ʐης ανάπʐʑξης λογισμικού •Τι θα

Μετατροπή πραγματικού αριθμού (2) • Β’ τρόπος: Μετατρέπουμε χωριστά το ακέραιο

τμήμα όπως ήδη γνωρίζουμε και χωριστά το δεκαδικό τμήμα (το τμήμα δεξιά της υποδιαστολής) του αριθμού. Για τη μετατροπή του δεκαδικού τμήματος το πολλαπλασιάζομε με τη βάση του νέου συστήματος διαδοχικά, παίρνοντας κάθε φορά το ακέραιο τμήμα του κάθε γινομένου σχηματίζοντας έτσι τα ψηφία του αριθμού μετά την υποδιαστολή.

Π.χ. Να μετατραπεί ο αριθμός 330,525(10) του δεκαδικού συστήματος αρίθμησης στο δυαδικό σύστημα αρίθμησης με τρία ψηφία ακρίβεια μετά την υποδιαστολή.

• Κάντε αρκετά παραδείγματα, όπως αυτά που δείξαμε στον πίνακα. Ασφαλώς μπορείτε να τα συμπεριλάβετε και στο τετράδιο ασκήσεων.

34