| |
Θέματα εξαμηνιαίων τεστ
Τεστ 1
Εισαγωγή στην Επιστήμη των Ηλεκτρονικών
Υπολογιστών
Τμήμα (α)
Ενημερωτικό 1ο
Test
(ΑΝΑΚΕΦΑΛΑΙΩΤΙΚΟ ΟΚΤΩΒΡΙΟΥ 2003)
1.
Να γραφεί ο αριθμός 2009 στο α. Δυαδικό, β. Οκταδικό,
γ. Δεκαεξαδικό σύστημα αρίθμησης.
2.
Σ’
ένα
Η.Υ.
MAR (Memory Address
Register) έχει
μήκος
16 bits.
Πόσο είναι το μέγεθος της Μνήμης του Η.Υ.;
3.
Τον αριθμό -2003 να τον γράψετε στο σύστημα συμπλήρωμα του 2.
4.
Ο αριθμός του συστήματος συμπλήρωμα του 2: 11111111, ποιος
είναι;
5.
Γράψτε τους 15 πρώτους αριθμούς του δωδεκαδικού συστήματος.
6.
Δώστε τη "λογική" συνάρτηση του κρατούμενου του πλήρη
αθροιστή και το βέλτιστο κύκλωμα υλοποίησής της. Ποιοι είναι οι
χαρακτηριστικοί αριθμοί της συνάρτησης αυτής;
7.
Στο ακόλουθο πρόγραμμα:
0 |
INA A |
1 |
STA A50 |
2 |
INA A |
3 |
OUT A |
4 |
SUB A50 |
5 |
BPL A3 |
6 |
HLT |
Διαβάζονται οι αριθμοί: 5 και 337. Γράψτε
ποιοι αριθμοί εξάγονται από αυτό;
8.
Δείξτε ότι η πύλη
NAND
είναι οικουμενική (Δηλαδή οι τρεις βασικές πύλες
OR,
AND
και NOT
μπορούν να εκφραστούν με τη βοήθεια μόνο της
NAND)
9.
Ένα κύκλωμα με 4 εισόδους, πόσες γραμμές θα έχει ο πίνακας
αληθείας του; Ένας
multiplexter με 16 εισόδους πόσες
γραμμές ελέγχου θα έχει;
10.
Για την ασφαλή μετάδοση των αριθμών χρησιμοποιείται σε κάθε ένα
ψηφίο που μεταδίδεται ένα επιπλέον
bit,
που λέγεται parity
bit
(ψηφίο ισοτιμίας) και ο ρόλος του είναι να κάνει το πλήθος των
bits
που είναι 1, του κάθε ψηφίου, είτε περιττού, είτε άρτιου πλήθους
(odd
or
even
parity).
Για την "φυσική" κωδικοποίηση των 10 ψηφίων του δεκαδικού, στο δυαδικό,
κατασκευάσατε τον πίνακα αληθείας της περιττής ισοτιμίας και στη
συνέχεια δώσατε το βέλτιστο κύκλωμα που θα δημιουργεί αυτό το
bit
(της περιττής ισοτιμίας). Τέλος, δώσατε την έκφραση της λογικής συνάρτησης
του bit
της περιττής ισοτιμίας καθώς και τους
χαρακτηριστικούς αριθμούς της συνάρτησης αυτής.
11.
Δίδονται δυο φυσικοί αριθμοί Ι και
J.
Να περιγραφεί, με όποιο τρόπο θέλετε, ο αλγόριθμος που θα προσδιορίζει εάν
οι αριθμοί αυτοί είναι πρώτοι αριθμοί. (Δυο φυσικοί αριθμοί είναι
πρώτοι, εάν ο μόνος κοινός τους διαιρέτης είναι η μονάδα.)
|
Τεστ 2
Εισαγωγή στην Επιστήμη των Ηλεκτρονικών
Υπολογιστών
Τμήμα (α)
2ο
Test
Μηνός – 11.12.2003
1.
Έχουμε διαθέσιμο τον
MIRACLE
και θέλουμε να γράψουμε ένα πρόγραμμα
στη συμβολική του γλώσσα, που να διαβάζει τετράδες αριθμών (μεγάλου
πλήθους) και να βρίσκει τον μικρότερο και τον μεγαλύτερο της τετράδας,
που να τους δίδει στο μέσο εξόδου με την αυτή σειρά.
2.
Να γραφεί ένα πρόγραμμα σε γλώσσα υψηλού επιπέδου που να διαβάζει
1000 ακεραίους αριθμούς και α τους εκτυπώνει με φθίνουσα σειρά, αφού
προηγούμενα έχει εκτυπώσει επεξηγηματική επικεφαλίδα της δικής σας αρεσκείας.
3. Να περιγραφούν τα στάδια από τα οποία διέρχεται η διαδικασία της
μεταγλώττισης ενός προγράμματος γραμμένου σε γλώσσα υψηλού επιπέδου. Τέλος
να δοθεί ο τρόπος με τον οποίο συνδέεται το πρώτο με το δεύτερο στάδιο.
4.
Δίδεται η παρακάτω γραμματική μιας γλώσσας υψηλού επιπέδου
<var> :: = A | B | C
<exp> :: = <var> | - <var> | <exp>
+ <var> | <exp> * <var>
Εξετάσατε, εάν η παρακάτω ακολουθία συμβόλων
είναι μια αποδεκτή ή μη αποδεκτή <exp>
και γιατί;
– (Α + Β)(Α + (Α*Β) +
C)
+ A
|
Τεστ 3
Εισαγωγή στην Επιστήμη των Ηλεκτρονικών
Υπολογιστών
Τμήμα (α)
Test
Εξαμήνου – 22.1.2004
Θέμα 1.
(α)
Σ’ ένα καταχωρητή των 2 δύο
bytes
υπάρχει το περιεχόμενο: 1000100110000111. Προσδιορίσατε τι παριστά ο
καταχωρητής στους BCD:
(i)
στον Κώδικα Χ-3 και (ii)
στον κώδικα Gray.
Τέλος, να βρεθεί ο ακέραιος αριθμός που
παριστά ο καταχωρητής στην φυσική κωδικοποίηση πρόσημο με συμπλήρωμα του
2.
(β)
Δείξτε ότι η πύλη
NAND
είναι οικουμενική (universal)
και σχηματίσατε τον πίνακα αληθείας της συνδυαστικής διάταξης:
A |
B |
C |
D |
Λειτουργία |
0
0 |
0
0 |
0
1 |
…
… |
Σε τι μπορεί να χρησιμεύσει; |
|
|
Θέμα 2.
(α)
Να παρασταθεί σε χάρτη
Karnaugh η λογική συνάρτηση
και να δοθεί ο πίνακας αληθείας της, αφού
απλοποιηθεί.
(β)
Φανταστείτε ότι είσθε μέλος μιας Ομάδας Ερευνών που πρέπει να βρείτε άμεσα
όλες τις ρίζες της εξίσωσης:
.
Η ομάδα διαθέτει υπολογιστή σύγχρονο και ο
επικεφαλής αναθέτει σε σας την ευθύνη της δουλειάς, ενώ συγχρόνως ενημερώνει
ότι πρόσφατα έχει εγκατασταθεί στον Η.Υ. το Λογισμικό εφαρμογών
PRAXIS
που έχει την S/R:
S/R EQUAT(N,A,X,E,J)
με τις διευκρινίσεις:
Ν: Βαθμός εξίσωσης
Α: Διάνυσμα συντελεστών complex
X:
Διάνυσμα ριζών (complex)
Ε: Ζητούμενη ακρίβεια
J
: Το πλήθος των ριζών που βρέθηκαν (JN).
Θέμα 3.
(α)
Να γραφεί ένα πρόγραμμα σε συμβολική γλώσσα που να διαβάζει 20 αριθμούς και
να βρίσκει το άθροισμά τους που να το τυπώνει στο μέσο εξόδου.
(β)
Ο Υπουργός Οικονομικών της Χώρας έμαθε για την ποιότητα δουλειάς των
φοιτητών του Μαθηματικού Τμήματος, του Πανεπιστημίου Πατρών και τους ανέθεσε
την εκπόνηση ενός προγράμματος
FORTRAN
για τον καθορισμό του φόρου
εισοδήματος που θα πληρώσουν οι φορολογούμενοι βάσει των παρακάτω οδηγιών:
ΟΔΗΓΙΕΣ ΥΠΟΥΡΓΕΙΟΥ ΟΙΚΟΝΟΜΙΚΩΝ
ΜΕΡΟΣ ΤΡΙΤΟ
ΠΡΟΣΔΙΟΡΙΣΜΟΣ ΤΟΥ ΦΟΡΟΥ – ΠΑΡΑΡΤΗΜΑΤΑ
Για να
προσδιοριστεί ο φόρος που αναλογεί σε κάθε φορολογούμενο, βρίσκεται ο
φόρος που αναλογεί στο συνολικό εισόδημά του με βάση την κλίμακα. Στη
συνέχεια, με βάση την κλίμακα, βρίσκεται ο φόρος που αναλογεί στο
συνολικό αφορολόγητο ποσό (χωρίς και με δικαιολογητικά) ο οποίος
αφαιρείται από το φόρο εισοδήματος. Το υπόλοιπο της αφαίρεσης είναι ο
αναλογών φόρος.
Το ποσό
αυτό μειώνεται, επίσης, ανάλογα με τον αριθμό των τέκνων που βαρύνουν,
το φορολογούμενο ή τον άλλο σύζυγο, σύμφωνα με τις διατάξεις του άρθρου
8 του νδ. 3323/1955, ως εξής: α) με ποσοστό 30% του φόρου που αναλογεί
και για ποσό μείωσης μέχρι 100.000 δρχ., αν ο φορολογούμενος βαρύνεται
με τρία τέκνα, β) με ποσοστό 40% του φόρου που αναλογεί και για ποσό
μείωσης μέχρι 200.000 δρχ., αν ο φορολογούμενος βαρύνεται με τέσσερα
τέκνα, γ) με ποσοστό 50% του φόρου που αναλογεί και για ποσό μείωσης
μέχρι 400.000 δρχ., αν ο φορολογούμενος βαρύνεται με πέντε τέκνα και
πάνω.
ΚΛΙΜΑΚΑ ΦΟΡΟΛΟΓΙΑΣ
ΕΙΣΟΔΗΜΑΤΟΣ
ΦΥΣΙΚΩΝ ΠΡΟΣΩΠΩΝ
ΟΙΚΟΝ. ΕΤΟΥΣ 1992
Κλιμάκιο
Εισοδήματος |
Φορ/κός συντ/στής
(%) |
Φόρος
κλιμακίου |
Σύνολο
εισοδ/τος |
Σύνολο
Φόρου |
1.200.000 |
18 |
216.000 |
1.200.000 |
216.000 |
1.800.000 |
30 |
540.000 |
3.000.000 |
756.000 |
4.500.000 |
43 |
1.935.000 |
7.500.000 |
2.691.000 |
Υπερβάλλον |
50 |
|
|
|
|
Έχετε πλήρη ελευθερία για τον τρόπο
περιγραφής των δεδομένων, αλλά και την υποχρέωση για εύγλωττη παρουσίαση
των αποτελεσμάτων.
{Υπόδειξη: Θεωρήσατε ότι έχετε
N(input)
τον αριθμό φορολογουμένων και ότι για τον καθένα θα σας δίδεται
συνολικό εισόδημα (INC),
το συνολικό αφορολόγητο ποσό (AFOR),
όπως επίσης ο αριθμός των τέκνων (NCHIL),
που βαρύνουν το φορολογούμενο. Τέλος λάβατε τις παρακάτω περιπτώσεις
φορολογουμένων και εκτυπώσατε το φόρο τους (TAX)}.
INC |
AFOR |
NCHIL |
TAX |
900000 |
45000 |
1 |
… |
4425000 |
1020000 |
2 |
… |
3800000 |
722000 |
3 |
… |
6850000 |
2100000 |
5 |
… |
|
Τελικό Τεστ
Εισαγωγή στην Επιστήμη των Ηλεκτρονικών
Υπολογιστών
Τμήμα (α)
Τελική Εξέταση – 27.2.2004
Θέμα 1.
(α) Δίδεται ο αριθμός του δεκαεξαδικού
συστήματος: FDCB16,
και ζητείται να μετατραπεί στο οκταδικό σύστημα αρίθμησης. Όμοια για τον
αριθμό 1453.12910 να μετατραπεί στο οκταδικό. Τέλος δώσατε τους
πρώτους 20 ακέραιους αριθμούς του οκταδικού συστήματος αρίθμησης.
(β) Γράψατε ένα πρόγραμμα σε όποια γλώσσα
επιθυμείται που να διαβάζει και ένα πραγματικό αριθμό με 5 το πολύ ακέραια
και ισάριθμα το πολύ δεκαδικά ψηφία και να βρίσκει τον αντίστοιχο αριθμό του
δυαδικού συστήματος. Τέλος, επιβεβαιώσατε τον αλγόριθμο του προγράμματός σας
στον αριθμό 1453.12910.
Θέμα 2.
(α) Δώσατε τους ορισμούς των: Μικροεντολή,
Μκροκώδικας, Ελέγχουσα Μνήμη και Μικροπρογραμματισμός, καθώς επίσης και την
δομή της Μικροεντολής.
(β) Στην πρατιθέμενη μονάδα (ALU)
Αριθμητικής και Λογικής, πρόκειται να δημιουργηθεί ο μικροκώδικας της
εντολής:
"Δεκαπενταπλασιασμός του περιεχομένου του
καταγραφέα Α".
Δώσατε τις απαιτούμενες μεταφορές για την
υλοποίηση της παραπάνω εντολής (για την συγγραφή του μικροκώδικά της), καθώς
και τα σήματα ελέγχου:
E, S1, S2,
Cp1 και
Cp2
που πρέπει να εκδοθούν.
Θέμα 3.
(α) Πρόκειται να μεταδοθούν αριθμητικά
δεδομένα κωδικοποιήμενα σε
BCD
Κώδικα με τη φυσική κωδικοποίηση (8,4,2,1) και με άρτια ισοτιμία (even
parity).
Ζητείται να δοθεί ο πίνακας αληθείας του
bit
της άρτιας ισοτιμίας καθώς και το βέλτιστο κύκλωμα που το δημιουργεί. Τέλος,
ποια είναι η λογική συνάρτηση του
bit
άρτιας ισοτιμίας;
(β) Σε κάποια ομάδα ερευνών που εσείς
συμμετέχετε από κάποιο "ατύχημα", καταστρέφεται ένα κομμάτι του λογισμικού
με συνέπεια ο Compiler
της FORTRAN
να μην μπορεί να υπολογίσει την εκθετική συνάρτηση
EXP(X)
που ως γνωστόν δίδει την τιμή της
.
Έτσι, η ομάδα καταφεύγει σε σας, σαν
ειδικευμένο Μαθηματικό και σας ζητάει να δημιουργήσετε εσείς μια συνάρτηση
με όμοιο όνομα:
EXP(X,N)
και παραμέτρους την τιμή του Χ και το πλήθος
Ν των όρων της σειράς που πρέπει να ληφθούν υπόψη για τον υπολογισμό με την
ακρίβεια που απαιτείται.
Δώστε τον κώδικα σε
FORTRAN
της συνάρτησης EXP(X,N)
– Χ και Ν δεδομένα – που υπολογίζεται από την
|
Λύσεις Θεμάτων
Τεστ 1
Εισαγωγή στην Επιστήμη των Ηλεκτρονικών
Υπολογιστών
Τμήμα (α)
Ενημερωτικό 1ο
Test
(Ανακεφαλαιωτικό Οκτωβρίου)
Απαντήσεις
1.
α. Πίνακας μετατροπών (βλέπε σελίδα 81 του Βιβλίου Ε.Ε.Η.Υ.:
μετατροπή βάσεως)
0 |
1 |
3 |
7 |
15 |
31 |
62 |
125 |
251 |
502 |
1004 |
2009 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
<2> |
β. Για τη μετατροπή του δυαδικού στο οκταδικό
χωρίζω από δεξιά προς τα αριστερά σε τριψήφια τμήματα και αντικαθιστώ την
τιμή τους (ψηφίο οκταδικού), οπότε έχουμε:
3731
γ. Για τη μετατροπή του δυαδικού στο
δεκαεξαδικό χωρίζω από δεξιά προς τα αριστερά σε τετραψήφια τμήματα και
αντικαθιστώ την τιμή τους (ψηφίο δεκαεξαδικού), οπότε έχουμε:
7D9
0 |
1 |
3 |
7 |
15 |
31 |
62 |
125 |
251 |
502 |
1004 |
2009 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
<2> |
2.
Για να βρούμε το μέγεθος της μνήμης του αρκεί να βρούμε το μεγαλύτερο
αριθμό που μπορεί να παραστήσει ο
MAR
κι αυτός είναι όταν όλα τα
bits
του
MAR
είναι 1. Δηλαδή,
1111 1111 1111 1111 = 216 – 1
Άρα το μέγεθος της μνήμης θα είναι 216
– 1 = 65535
3.
Μετατρέπουμε την απόλυτη τιμή του δυαδικού αριθμού στο δυαδικό
σύστημα. Οπότε έχουμε:
0 |
0 |
1 |
3 |
7 |
15 |
31 |
62 |
125 |
250 |
500 |
1001 |
2003 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
<2> |
Του προσθέτουμε και το
bit
του πρόσημου στην αρχή: 0, και
μετατρέπουμε τα bits στο σύστημα 2 παίρνοντας τα
συμπληρώματά τους, οπότε έχουμε:
Και τέλος προσθέτουμε ένα, οπότε έχουμε
- 2003 = 100000101101
4.
Aπό
το πρώτο bit,
που είναι 1, συμπεραίνουμε ότι ο αριθμός είναι αρνητικός. Στη
συνέχεια αντιστρέφουμε τα
bits
και προσθέτουμε ένα, οπότε παίρνουμε τον αριθμό 00000001.
Άρα ο αριθμός είναι ο -1.
5.
Τα ψηφία του δωδεκαδικού συστήματος θα είναι: 0, 1, 2, 3, 4, 5, 6, 7,
8, 9, Α, Β. Άρα οι 15 πρώτοι αριθμοί θα είναι:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, Α, Β, 10,
11, 12
6.
Φτιάχνουμε πρώτα το πίνακα αληθείας του αθροίσματος
Υ1 + Υ2 + Κ
Υ1 |
Υ2 |
Κ |
Σ |
Κout |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
Στη συνέχεια παίρνουμε τις γραμμές του πίνακα
όπου το κρατούμενο out έχει τιμή 1 (έγχρωμες γραμμές).
Οπότε, δημιουργούμε τη συνάρτηση
Τέλος παριστάνουμε τους όρους του δευτέρου
μέλους (ελάχιστοι όροι) στον πίνακα
Karnaugh,
οπότε έχουμε
|
|
|
Υ2 |
|
|
|
11ος |
|
Υ1 |
|
12ος |
14ος |
13ος |
|
|
Κ |
|
Το βέλτιστο κύκλωμα δίνεται από το ακόλουθο
σχήμα
Τέλος, οι χαρακτηριστικοί αριθμοί της λογικής
συνάρτησης Κout
είναι οι:
και
7.
Εξάγονται οι αριθμοί 37, 32, 27, 22, 17, 12, 7, 2.
8.
Για να είναι οικουμενική η πύλη
NAND
θα πρέπει οι πύλες
NOT,
AND
και
OR
να κατασκευάζονται μόνο από την
NAND.
Η πύλη
NOT
προκύπτει από την πύλη
NAND
ως εξής:
A |
A |
AND |
NAND |
|
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
Δηλαδή: Α
NAND
Α =
Η πύλη
AND
προκύπτει από την πύλη
NAND
ως εξής:
A |
B |
NAND |
|
AND |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
Δηλαδή:
Η πύλη
OR
προκύπτει από την πύλη
NAND
ως εξής:
A |
B |
|
|
|
|
OR |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
Δηλαδή:
9.
α. Θα έχει 24 γραμμές από το 0000 έως το 1111.
β. Άρα θα έχουμε 4 γραμμές ελέγχου.
10.
Ο πίνακας αληθείας της φυσικής κωδικοποίησης είναι ο:
A |
B |
C |
D |
P' |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
Οπότε το
parity bit
(περιττής ισοτιμίας) θα είναι εκείνο
που θα κάνει των δυαδικών μονάδων του κάθε ψηφίου να είναι περιττό. Άρα, θα
έχουμε τον παραπάνω πίνακα για το
P'.
Βάση των γνωστών παίρνουμε τις γραμμές που έχουν για το
P'
τιμή 1 και δημιουργούμε την αντίστοιχη συνάρτηση
και η παράστασή της στον χάρτη
Karnaugh
θα είναι
|
|
|
C |
|
|
1ος |
|
2ος |
|
|
|
|
3ος |
|
4ος |
Β |
Α |
|
|
|
|
|
5ος |
|
|
|
|
|
D |
|
|
Δεν υπάρχουν διαδοχικές μονάδες,
άρα δεν μπορεί να γίνει απλοποίηση στη λογική συνάρτηση
P'.
Το λογικό κύκλωμα είναι:
11.
Τα βήματα του αλγορίθμου είναι τα ακόλουθα
1.
Διάβασε τους αριθμούς
I
και
J
2.
Αν το Ι =
J
τότε ο
ΜΚΔ = Ι =
J,
άλλως, βρες τον μεγαλύτερο από τους
I
και
J
και
θέσε
K
το
μεγαλύτερο και
L
το μικρότερο.
3.
Διαίρεσε το Κ με το
L
και θέσε το υπόλοιπο ίσο με
R
4.
Αν R
= 0 τότε ο ΜΚΔ=L,
αλλιώς θέσε Κ = L
και
L
= R
και πήγαινε στο βήμα 3.
|
Τεστ 2
Εισαγωγή στην Επιστήμη των Ηλεκτρονικών
Υπολογιστών
Τμήμα (α)
2ο
Test
Μηνός – 11.12.2003
Απαντήσεις
1.
1.
Ο παρακάτω κώδικας είναι για μία τετράδα, κι ο αλγόριθμος που μπορεί
να αξιοποιηθεί είναι συγκρίνω τους δύο πρώτους, το πιο μεγάλο τον βάζω σε
μία 5η θέση
BIG και τον μικρότερο σε μία 6η
θέση SMALL.
Στη συνέχεια συγκρίνω κάθε έναν από τους επόμενους αριθμούς με τη θέση
BIG
και τη θέση
SMALL και κάνω αντικαταστάσεις όπου
πρέπει.
Παρατήρηση: Το πλήθος των αριθμών μπορεί να
είναι οποιοδήποτε κι όχι μόνο τέσσερα.
0 |
INA
A |
Εισάγουμε στο συσσωρευτή(Σ) Α το πλήθος των
αριθμών (4) |
1 |
STA
Α49 |
Αποθηκεύουμε το περιεχόμενο του Σ Α στην θέση
μνήμης 49 |
2 |
BZE
A7 |
Αν το περιεχόμενο του Σ A
είναι 0, πήγαινε στο 7 |
3 |
INA
B |
Εισάγουμε στο Σ Β έναν αριθμό |
4 |
STA
B 49A |
Αποθηκεύουμε το περιεχόμενο του Σ Β στην θέση
μνήμης 49+Α, όπου Α το περιεχόμενο του Σ Α |
5 |
SUB
A#1 |
Αφαιρούμε από το Σ Α, 1 μονάδα |
6 |
JMP
2 |
Πήγαινε στο 2 |
7 |
LDA
A 49 |
Φόρτωσε το περιεχόμενο της θέσης μνήμης 49 στο Σ
Α |
8 |
LDA
B 49A |
Φόρτωσε το περιεχόμενο της θέσης μνήμης 49+Α στο
Σ Β |
9 |
STA
B 100 |
Αποθηκεύουμε το περιεχόμενο του Σ Β στην θέση
μνήμης 100 (BIG) |
10 |
SUB
A#1 |
Αφαιρούμε από το Σ Α, 1 μονάδα |
11 |
SUB
B 49A |
Αφαίρεσε από το Σ Β το περιεχόμενο της θέσης
μνήμης 49+Α |
12 |
BMI
B16 |
Αν το περιεχόμενο του Σ Β είναι αρνητικό τότε
πήγαινε στο 15 |
13 |
LDA
B 49A |
Φόρτωσε το περιεχόμενο της θέσης μνήμης 49+Α στο
Σ Β |
14 |
STA
B 200 |
Αποθηκεύουμε το περιεχόμενο του Σ Β στην θέση
μνήμης 200 (SMALL) |
15 |
JMP
20 |
Πήγαινε στο 20 |
16 |
LDA
B 100 |
Φόρτωσε το περιεχόμενο της θέσης μνήμης 100 στο Σ
Β |
17 |
STA
B 200 |
Αποθηκεύουμε το περιεχόμενο του Σ Β στην θέση
μνήμης 200 (SMALL) |
18 |
LDA
B 49A |
Φόρτωσε το περιεχόμενο της θέσης μνήμης 49+Α στο
Σ Β |
19 |
STA
B 100 |
Αποθηκεύουμε το περιεχόμενο του Σ Β στην θέση
μνήμης 200 (BIG) |
20 |
SUB
A#1 |
Αφαιρούμε από το Σ Α, 1 μονάδα |
21 |
BZE
A32 |
Αν το περιεχόμενο του Σ A
είναι 0, πήγαινε στο 7 |
22 |
LDA
B 49A |
Φόρτωσε το περιεχόμενο της θέσης μνήμης 49+Α στο
Σ Β |
23 |
SUB
B 100 |
Αφαίρεσε από το Σ Β το περιεχόμενο της θέσης
μνήμης 49+Α |
24 |
BMI
B27 |
Αν το περιεχόμενο του Σ Β είναι αρνητικό τότε
πήγαινε στο 27 |
25 |
LDA
B 49A |
Φόρτωσε το περιεχόμενο της θέσης μνήμης 49+Α στο
Σ Β |
26 |
STA
B 100 |
Αποθηκεύουμε το περιεχόμενο του Σ Β στην θέση
μνήμης 100 (BIG) |
27 |
LDA
B 49A |
Φόρτωσε το περιεχόμενο της θέσης μνήμης 49+Α στο
Σ Β |
27 |
SUB
B 200 |
Αφαίρεσε από το Σ Β το περιεχόμενο της θέσης
μνήμης 200 |
28 |
BPL
B31 |
Αν το περιεχόμενο του Σ Β είναι θετικό τότε
πήγαινε στο 31 |
29 |
LDA
B 49A |
Φόρτωσε το περιεχόμενο της θέσης μνήμης 49+Α στο
Σ Β |
30 |
STA
B 200 |
Αποθηκεύουμε το περιεχόμενο του Σ Β στην θέση
μνήμης 200 (SMALL) |
31 |
JMP
20 |
Πήγαινε στο 20 |
32 |
LDA
B 100 |
Φόρτωσε το περιεχόμενο της θέσης μνήμης 100 στο Σ
Β |
33 |
OUT
B |
Δώσε ως έξοδο το περιεχόμενο του Σ Β |
34 |
LDA
B 200 |
Φόρτωσε το περιεχόμενο της θέσης μνήμης 200 στο Σ
Β |
35 |
OUT
B |
Δώσε ως έξοδο το περιεχόμενο του Σ Β |
36 |
HLT |
|
2.
program
sorting
dimension
k(1000)
read
*, (k(i),i=1,1000)
do
i = 1, 999
do j = i+1, 1000
if ( k(i) < k(j) )
then
ihelp = k(i)
k(i)
= k(j)
k(j)
= ihelp
endif
enddo
enddo
print
*,"Τμήμα
Μαθηματικών-Sorting
of numbers"
print
10, (k(i),i=1,1000)
10
format (1000(I10,/))
end
program sorting |
3.Το
όλο έργο εκτελείται σε τρεις φάσεις, που είναι:
·
H
πρώτη φάση είναι η λεκτική ανάλυση (Lexical
analysis)
κατά την οποία το πρόγραμμα διασπάται σε μια σειρά λέξεων.
·
H
δεύτερη φάση είναι η συντακτική ανάλυση (Syntactical
analysis)
στην οποία ελέγχεται η γραμματική του προγράμματος.
·
Τέλος, η τρίτη φάση είναι η
δημιουργία του κώδικα της γλώσσας μηχανής (Code
generαtion)
ο οποίος θα εκτελεστεί, τελικά, από τον
H.
Y.
Η σύνδεση της συντακτικής ανάλυσης με την
λεκτική ανάλυση γίνεται με την μεταφορά των τριών πινάκων:
·
Του πίνακα των αριθμών (number
table),
·
Του πίνακα των διαφόρων
ακολουθιών χαρακτήρων (string
table),
·
Και του πίνακα λογικών μονάδων
(token
table).
4.
Δεν είναι αποδεκτή διότι ανάμεσα στις παρενθέσεις δεν υπάρχει
τελεστής
– (Α + Β)(Α
+ (Α*Β) + C)
+ A
|
Τεστ 3
Εισαγωγή στην Επιστήμη των Ηλεκτρονικών
Υπολογιστών
Τμήμα (α)
Test
Εξαμήνου – 22.1.2004
Απαντήσεις
Θέμα 1.
(α).
(i)
Κώδικας Χ-3
1000100110000111
Χωρίζουμε το δυαδικό αριθμό:
1000-1001-1000-0111
Μορφή Χ-3
|
Δυαδική μορφή
|
Δεκαδική μορφή
|
1000
|
0101
|
5
|
1001
|
0110
|
6
|
1000
|
0101
|
5
|
0111
|
0100
|
4
|
Άρα, παριστά τον αριθμό 5654
(i)
Κώδικας Gray
Ο κανόνας που διέπει την μετατροπή
ενός 4-ψήφιου δυαδικού αριθμού από κωδικοποίηση
Gray σε φυσική κωδικοποίηση
(8,4,2,1) και
αντίστροφα είναι ο ακόλουθος: Άφησε το πιο σημαντικό ψηφίο του
αριθμού το ίδιο. Για κάθε επόμενο ψηφίο, έλεγξε το πλήθος των δυαδικών
μονάδων στα αριστερά του που υπάρχουν στον κώδικα
Gray: εάν είναι άρτιο άφησε
το υπάρχον ψηφίο, άλλως πάρε το συμπλήρωμά του.
Παράδειγμα:
Από
Δυαδικό σε Gray |
Από
Gray σε δυαδικό |
Δ =>
|
G |
G => |
Δ |
1001 |
---- |
1001 |
---- |
|
1 |
|
1 |
|
11 |
|
11 |
|
110 |
|
111 |
|
1101 |
|
1110 |
1000100110000111
Χωρίζουμε το δυαδικό αριθμό:
1000-1001-1000-0111
Μορφή
Gray
|
Δυαδική μορφή
|
1000
|
Αφήνουμε το πρώτο ψηφίο ως έχει
|
1_ _ _
|
1111
|
Το επόμενο ψηφίο 1000
έχει περιττό πλήθος μονάδων αριστερά του. Άρα γίνεται 1.
|
11_ _
|
Το επόμενο ψηφίο 1000
έχει περιττό πλήθος μονάδων αριστερά του. Άρα γίνεται 1.
|
111_
|
Το επόμενο ψηφίο 1000
έχει περιττό πλήθος μονάδων αριστερά του. Άρα γίνεται 1.
|
1111
|
Μορφή
Gray
|
Δυαδική μορφή
|
1001
|
Αφήνουμε το πρώτο ψηφίο ως έχει
|
1_ _ _
|
1110
|
Το επόμενο ψηφίο 1001
έχει περιττό πλήθος μονάδων αριστερά του. Άρα γίνεται 1.
|
11_ _
|
Το επόμενο ψηφίο 1001
έχει περιττό πλήθος μονάδων αριστερά του. Άρα γίνεται 1.
|
111_
|
Το επόμενο ψηφίο 1001
έχει περιττό πλήθος μονάδων αριστερά του. Άρα γίνεται
0.
|
1110
|
Μορφή
Gray
|
Δυαδική μορφή
|
0111
|
Αφήνουμε το πρώτο ψηφίο ως έχει
|
0_
_ _
|
0101
|
Το επόμενο ψηφίο 0111
έχει άρτιο πλήθος μονάδων αριστερά του. Άρα μένει 1
|
01_ _
|
Το επόμενο ψηφίο 0111
έχει περιττό πλήθος μονάδων αριστερά του. Άρα γίνεται 0.
|
010 _
|
Το επόμενο ψηφίο 0111
έχει άρτιο πλήθος μονάδων αριστερά του. Άρα μένει 1.
|
0101
|
Μορφή
Gray
|
Δυαδική μορφή
|
Δεκαδική μορφή
|
1000
|
1111
|
15
|
1001
|
1110
|
14
|
1000
|
1111
|
15
|
0111
|
0101
|
5
|
Άρα, παριστά τον αριθμό 1514155
Ο αριθμός είναι αρνητικός λόγω της μονάδας
που βρίσκεται στην αρχή του αριθμού. Βρίσκουμε το συμπλήρωμα του αριθμού
1000100110000111 και προσθέτουμε μια δυαδική μονάδα:
που είναι ο αριθμός 30329.
(β). Για να είναι οικουμενική η πύλη
NAND
θα πρέπει οι πύλες
NOT,
AND
και
OR
να κατασκευάζονται μόνο από την
NAND.
Η πύλη
NOT
προκύπτει από την πύλη
NAND
ως εξής:
A
|
A
|
AND
|
NAND
|
|
0
|
0
|
0
|
1
|
1
|
1
|
1
|
1
|
0
|
0
|
Δηλαδή: Α
NAND
Α =
Η πύλη
AND
προκύπτει από την πύλη
NAND
ως εξής:
A
|
B
|
NAND
|
|
AND
|
0
|
0
|
1
|
0
|
0
|
0
|
1
|
1
|
0
|
0
|
1
|
0
|
1
|
0
|
0
|
1
|
1
|
0
|
1
|
1
|
Δηλαδή:
Η πύλη
OR
προκύπτει από την πύλη
NAND
ως εξής:
A
|
B
|
|
|
|
|
OR
|
0
|
0
|
1
|
1
|
1
|
0
|
0
|
0
|
1
|
1
|
0
|
0
|
1
|
1
|
1
|
0
|
0
|
1
|
0
|
1
|
1
|
1
|
1
|
0
|
0
|
0
|
1
|
1
|
Δηλαδή:
Για την ακόλουθη συνδυαστική διάταξη:
Προκύπτει ο παρακάτω πίνακας αληθείας:
A
|
B
|
C
|
D
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
1
|
0
|
1
|
0
|
1
|
0
|
1
|
1
|
0
|
1
|
0
|
0
|
1
|
1
|
0
|
1
|
0
|
1
|
1
|
0
|
0
|
1
|
1
|
1
|
1
|
Θέμα 2.
Ο χάρτης Karnaugh
της λογικής συνάρτησης
θα είναι ο ακόλουθος:
|
|
|
C
|
|
|
|
|
10ος
|
11ος
|
|
|
12ος
|
9ος
|
5ος
|
8ος
|
Β
|
Α
|
6ος
|
3ος
|
1ος
|
2ος
|
|
|
4ος
|
7ος
|
|
|
|
D
|
|
|
Η απλοποίηση των όρων 1, 2, 3, 5, 6, 8, 9,
και 12 μας δίνει Β και η απλοποίηση των όρων 1, 2, 4, 5, 7, 8, 10 και 11 μας
δίνει
C.
Συνεπώς:
Ο αντίστοιχος πίνακας αληθείας θα είναι ο:
Α
|
Β
|
F
|
0
|
0
|
0
|
0
|
1
|
1
|
1
|
0
|
1
|
1
|
1
|
1
|
(β)
program
application_of_praxis
complex ::
A(0:100), X(100)
read *, n,e
read *, (A(i),i=0,n)
call
equat(n,A,X,e,j)
print *, (X(i),i=1,j)
end program
application_of_praxis |
Θέμα 3.
(α). Το πρόγραμμα θα είναι το εξής:
0
ΙΝΑ
Α
1 STA A 200
2 STA 100#0
3 BZE
Α
9
4 INA B
5 ADD B 100
6 STA B 100
7 SUB A #1
8 JMP 3
9 OUT B
10 HLT |
Εισάγουμε στο
συσσωρευτή(Σ) Α το πλήθος των αριθμών
Αποθηκεύουμε το
περιεχόμενο του Σ Α στην θέση μνήμης 200
Αποθηκεύουμε το 0
στη θέση μνήμης 100
Αν το περιεχόμενο
του Σ Α είναι 0 πήγαινε στο 9
Εισάγουμε στο Σ Β
ένα αριθμό
Προσθέτουμε στο Σ το
περιεχόμενο της μνήμης 100
Αποθηκεύουμε το
περιεχόμενο του Σ Α στην θέση μνήμης 100
Αφαιρούμε από το Σ Α
μία μονάδα
Πήγαινε στο 3
Εκτύπωσε στο μέσο
εξόδου το περιεχόμενο του Σ Β
Τέλος |
(β)
program
forologia
integer :: klim(3)
real :: tax(2)
write(*,5);read
*, n
do j = 1, n
read *, inc,
afor, nchill
klim(1) = 216000;klim(2) = 540000;klim(3) = 1935000
do i = 1, 2
if (inc < 1200000)
then
tax(i) = inc*0.18
else if (inc < 3000000)
then
tax(i) = klim(1) + (inc - 1200000)*0.3
else if
(inc < 7500000) then
tax(i)=klim(1)+klim(2)+(inc-3000000)*0.43
else
tax(i)=klim(1)+klim(2)+klim(3)+(inc-7500000)*0.5
endif
inc = afor
enddo
finaltax = tax(1) - tax(2)
posomeiosis = 0
if (nchil == 3)
then
posomeiosis = finaltax*0.3
if (posomeiosis > 100000)
posomeiosis = 100000
else if
(nchil == 4) then
posomeiosis = finaltax*0.4
if (posomeiosis > 200000)
posomeiosis = 200000
else if
(nchil >= 5) then
posomeiosis = finaltax*0.5
if (posomeiosis > 400000)
posomeiosis = 400000
endif
finaltax = finaltax - posomeiosis
write(*,40), j, finaltax
enddo
40 format (2/,"O
sunolikos foros poy kaleitai na plirosei &
o",i2,"os forologoumenos einai:",2/,30x,F12.2," drx.",5/)
end
program forologia
|
|
Τελικό Τεστ
Εισαγωγή στην Επιστήμη των Ηλεκτρονικών
Υπολογιστών
Τμήμα (α)
Τελική Εξέταση – 27.2.2004
Θέμα 1.
(α).
Ο αριθμός από το δεκαεξαδικό μετατρέπεται
πρώτα στο δυαδικό και μετά στο οκταδικό
FDCB16
= 1111
1101 1100 10112
= 11111101110010112
= 1767138
Ο αριθμός από το δεκαδικό μετατρέπεται στο
οκταδικό:
Το ακέραιο μέρος το βρίσκουμε κάνοντας
διαδοχικές διαιρέσεις με το 8 και το δεκαδικό κάνοντας διαδοχικούς
πολλαπλασιασμούς με το 8.
0 |
2 |
22 |
181 |
1453 |
2 |
6 |
5 |
5 |
<8> |
0,129 |
0,0320 |
0,2560 |
0,0480 |
0,3840 |
0,0720 |
0,5760 |
0,6080 |
0,8640 |
0,9120 |
0,2959 |
0,3672 |
0,9375 |
0,5000 |
0,0000 |
<8> |
1 |
0 |
2 |
0 |
3 |
0 |
4 |
4 |
6 |
7 |
2 |
2 |
7 |
4 |
1453.12910
= 2265,10203044672274
Οι 20 πρώτοι αριθμοί του οκταδικού
συστήματος είναι:
0, 1, 2, 3, 4, 5, 6, 7, 10,
11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23
(β)
program
dectobin
dimension
:: ibinary(1000)
read
*, dec
if
(dec>99999 .or. dec<0) stop 'The
number has more than 5 digits .or. it is not an integer'
adec = int(dec)
k=0
do
while(adec/=0)
b=mod(adec,2.0)
k=k+1
adec=int(adec/2.0)
ibinary(k)=b
enddo
do
i = k, 1, -1
print 10, ibinary(i)
enddo
print
25
k=0
bdec = dec - int(dec)
do
while(bdec/=int(bdec))
b=bdec*2.0
k=k+1
bdec=b - int(b)
ibinary(k)=int(b)
enddo
do
i = 1, k
print 10, ibinary(i)
enddo
print
20
10 format (i1,\)
25 format (",",\)
20 format (5/)
end
program dectobi |
Θέμα 2.
(α) Για τους ορισμούς βλέπε φυλλάδιο 6ης
εβδομάδας (5.11.03) όπου υπάρχει αναλυτική παρουσίαση των ερωτημάτων του
θέματος
(β) Ο πίνακας των απαιτούμενων μεταφορών
για την υλοποίηση της εντολής "Δεκαπενταπλασιασμός του περιεχομένου του
καταγραφέα Α" είναι
|
|
Τα σχετικά σήματα ελέγχου που πρέπει
να εκδοθούν περιγράφονται στον παραπάνω πίνακα (βλέπε και φυλλάδιο 6ης
Εβδομάδας) |
Μεταφορά |
Ε |
S1 |
S2 |
Cp1 |
Cp2 |
|
– |
0 |
1 |
0 |
1 |
|
0 |
1 |
0 |
1 |
0 |
|
0 |
1 |
0 |
1 |
0 |
|
1 |
1 |
0 |
1 |
0 |
|
0 |
1 |
0 |
0 |
1 |
|
1 |
1 |
0 |
1 |
0 |
Θέμα 3.
(α) Ο πίνακας αληθείας της φυσικής
κωδικοποίησης είναι ο:
A |
B |
C |
D |
P |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
Οπότε το
parity bit
(περιττής ισοτιμίας) θα είναι εκείνο
που θα κάνει το πλήθος των δυαδικών μονάδων του κάθε ψηφίου να είναι
άρτιο. Άρα, θα έχουμε τον παραπάνω πίνακα για το
P.
Βάση των γνωστών παίρνουμε τις γραμμές που έχουν για το
P
τιμή 1 και δημιουργούμε την αντίστοιχη συνάρτηση
και η παράστασή της στον χάρτη
Karnaugh
θα είναι
|
|
|
C |
|
|
|
1ος |
|
2ος |
|
|
3ος |
|
4ος |
|
Β |
Α |
|
|
|
|
5ος |
|
|
|
|
|
|
D |
|
|
Δεν υπάρχουν διαδοχικές μονάδες,
άρα δεν μπορεί να γίνει απλοποίηση στη λογική συνάρτηση
P.
Το λογικό κύκλωμα είναι:
(β)
program
exponent
external
expn
print
*, exp(2.0),expn(2.0,25)
end
program exponent
function
expn(x,n)
external
par
expn = 0.0
do
k = 0, n
expn = expn + x**k/par(k)
enddo
end
function expn
function
par(k)
par = 1
if
(k==0) return
do i = 1, k
par = par*i
enddo
end
function par |
|
|