Υπολογιστική Επιστήμη & Τεχνολογία

Σχετικά έγγραφα
Υπολογιστική Επιστήμη & Τεχνολογία

Κατάστρωση µοντέλων συστηµάτων και διεξαγωγή υπολογιστικών πειραµάτων µε τα µοντέλα αυτά για:

Ντετερµινιστική προσοµοίωση

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 10: Προσομοίωση

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 6: Πίνακες [2/2] (Δισδιάστατοι)

ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟΔΟΙ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

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

A A A B A ΦΥΛΛΑ ΙΟ ΘΕΜΑΤΩΝ 1/2. Μέϱος A. Πολλαπλές επιλογές (20%) Σειριακός αριθµός : 100 Πληροφορική Ι Εξέταση Φεβρουαρίου 2019

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

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

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

1. Κατασκευάστε ένα διάνυσμα με στοιχεία τους ζυγούς αριθμούς μεταξύ του 31 και 75

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 5

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

ΠΛΗ21 Κεφάλαιο 2. ΠΛΗ21 Ψηφιακά Συστήματα: Τόμος Α Κεφάλαιο: Παράσταση Προσημασμένων Αριθμών Συμπληρώματα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΦΥΣ 145 Μαθηµατικές Μέθοδοι στη Φυσική. 21 Μαίου Γράψτε το ονοµατεπώνυµο και αριθµό ταυτότητάς σας στο πάνω µέρος της αυτής της σελίδας.

QR είναι ˆx τότε x ˆx. 10 ρ. Ποιά είναι η τιµή του ρ και γιατί (σύντοµη εξήγηση). P = [X. 0, X,..., X. (n 1), X. n] a(n + 1 : 1 : 1)

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Κεφάλαιο 2. Οργάνωση και διαχείριση της Πληροφορίας στον. Υπολογιστή

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 4 ο Εργαστήριο. Διανύσματα-Πίνακες 1 ο Μέρος

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3

Δομές Δεδομένων & Αλγόριθμοι

ΜΑΣ 371: Αριθμητική Ανάλυση ΙI ΑΣΚΗΣΕΙΣ. 1. Να βρεθεί το πολυώνυμο Lagrange για τα σημεία (0, 1), (1, 2) και (4, 2).

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Αριθµητική υπολογιστών

ημιουργία και διαχείριση πινάκων

ΠΛΗ111. Ανοιξη Μάθηµα 2 ο. Αλγόριθµοι και Αφηρηµένοι Τύποι εδοµένων. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Σύστημα Πλεονάσματος και Αναπαράσταση Αριθμών Κινητής Υποδιαστολής

Αριθμητική Ανάλυση & Εφαρμογές

Λογική Σχεδίαση Ψηφιακών Συστημάτων

Σύστημα Πλεονάσματος. Αναπαράσταση Πραγματικών Αριθμών. Αριθμητικές Πράξεις σε Αριθμούς Κινητής Υποδιαστολής

Ελίνα Μακρή

1.4 Αριθμητική υπολογιστών και σφάλματα

ΦΥΣ 145 Μαθηµατικές Μέθοδοι στη Φυσική. 5 Μαίου 2012

όπου Η μήτρα ή πίνακας του συστήματος

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία

5. Σε ορθογώνιο σύστημα αξόνων να σχεδιαστούν οι ευθείες που έχουν εξισώσεις τις: β. y = 4 δ. x = y

Συστήματα αρίθμησης. = α n-1 *b n-1 + a n-2 *b n-2 + +a 1 b 1 + a 0 όπου τα 0 a i b-1

Αναπαράσταση Δεδομένων (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

ΦΥΣ 145 Μαθηµατικές Μέθοδοι στη Φυσική. 15 Μαίου 2013

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07

Εισαγωγή στην επιστήμη των υπολογιστών

Βασικές Γνώσεις Μαθηματικών Α - Β Λυκείου

1.1. Με τι ασχολείται η Αριθμητική Ανάλυση

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

ΘΕΩΡΙΑ ΠΛΗΡΟΦΟΡΙΑΣ. Κεφάλαιο 3 : Πηγές Πληροφορίας Χρήστος Ξενάκης. Πανεπιστήμιο Πειραιώς, Τμήμα Ψηφιακών Συστημάτων

Αναλογικά & Ψηφιακά Κυκλώματα ιαφάνειες Μαθήματος ρ. Μηχ. Μαραβελάκης Εμ.

Α. Έστω δύο σύνολα Α και Β. Ποιά διαδικασία ονομάζεται συνάρτηση με πεδίο ορισμού το Α και πεδίο τιμών το Β;

MEM 253. Αριθμητική Λύση ΜΔΕ * * *

ΜΑΘΗΜΑΤΙΚΑ ΘΕΤΙΚΟΥ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 4ο Πράξεις με μπιτ

Εισαγωγή στο Προγραμματισμό με τη PASCAL & τη Matlab Εξαμηνιαία Εργασία 2014 Μετατρέποντας AC σε DC Τάση Μέρος Β : Πορεία Εργασίας

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

Δύο είναι οι κύριες αιτίες που μπορούμε να πάρουμε από τον υπολογιστή λανθασμένα αποτελέσματα εξαιτίας των σφαλμάτων στρογγυλοποίησης:

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Συστήματα αρίθμησης

ΠΛΗΡΟΦΟΡΙΚΗ I Ενότητα 6

ΕΙΣΑΓΩΓΗ ΣΤΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΩΝ

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

Μαρία Λουκά. Εργαστήριο Matlab Πολυώνυμα - Παρεμβολή. Τμήμα Πληροφορικής και Τηλεπικοινωνιών.

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

A1. Να αποδείξετε ότι η συνάρτηση f(x)=συνx είναι παραγωγίσιμη στο και για κάθε x ισχύει. = ημx Μονάδες 10

Εφαρμοσμένα Μαθηματικά

ΥΠΟΨΗΦΙΑ ΘΕΜΑΤΑ ΠΑΝΕΛΛΑΔΙΚΩΝ 2013

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 8 Επεξεργασία Σήματος με την Ανάλυση Fourier. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

Επεξεργασία εικόνας. Μιχάλης ρακόπουλος. Υπολογιστική Επιστήµη & Τεχνολογία, #08

Νέο υλικό. Matlab2.pdf - Παρουσίαση μαθήματος 2. Matlab-reference.pdf Σημειώσεις matlab στα ελληνικά (13 σελίδες).

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ.

Διαφορικός Λογισμός. Κεφάλαιο Συναρτήσεις. Κατανόηση εννοιών - Θεωρία. 1. Τι ονομάζουμε συνάρτηση;

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

Εισαγωγή στην επιστήµη των υπολογιστών. Πράξεις µε µπιτ

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 6)

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

ΤΕΣΤ ❶ ΣΤΑ ΜΑΘΗΜΑΤΙΚΑ ΚΑΤΕΥΘΥΝΣΗΣ Β ΛΥΚΕΙΟΥ

Υλοποίηση Λιστών. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

MATLAB. Εισαγωγή στο SIMULINK. Μονάδα Αυτόματης Ρύθμισης και Πληροφορικής

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

ΑΣΚΗΣΕΙΣ ΘΕΜΑ Β. 0και 4 x 3 0.

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

Στοιχεία Συναρτήσεων. 1. Να βρεθεί το πεδίο ορισμού των παρακάτω συναρτήσεων: στ. x 1

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ

Δομές Δεδομένων. Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα. Καθηγήτρια Μαρία Σατρατζέμη

Πραγµατικοί αριθµοί κινητής υποδιαστολής Floating Point Numbers. Σ. Τσιτµηδέλης ΤΕΙ ΧΑΛΚΙΔΑΣ

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Εισαγωγή στην Αριθμητική Ανάλυση

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 3

Περιεχόμενο: Δομή υπολογιστή Συστήματα αρίθμησης

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 1

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ 2015

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

2 Ο ΚΕΦΑΛΑΙΟ Ενότητα 5.

Transcript:

Υπολογιστική Επιστήμη & Τεχνολογία Εξέταση Ιουνίου 2015 Διάρκεια 2.5 ώρες 1. Ιεραρχίες μνήμης (1μ) Να υλοποιήσετε σε MATLAB την επίλυση του γραμμικού συστήματος T X = B, όπου ο T είναι άνω τριγωνικός πίνακας n n και ο B πίνακας n m, χρησιμοποιώντας αντίστοιχα πράξεις BLAS1, BLAS2 και BLAS3. [n, m] = size(b); % BLAS 1 for j = 1:m for i = n:-1:1 X1(i,j) = (B(i,j) - T(i,i+1:)*X1(i+1:,j))/T(i,i); % BLAS 2 for j = 1:m X2(:,j) = T\B(:,j); % BLAS 3 X3 = T\B; 2. Monte Carlo (1.5μ) Γράψτε μια συνάρτηση Matlab p = Int(L,R) που να υπολογίζει στο p το ολοκλήρωμα p = R L 1 2π e x2 /2 dx Θεωρήστε ότι L < 0 < R. ΥΠΟΔΕΙΞΗ: Βρείτε και χρησιμοποιήστε κατάλληλα το ακρότατο της συνάρτησης στο διάστημα ολοκλήρωσης. Η συνάρτηση έχει μέγιστη τιμή 1/ 2π στο x = 0. function p = Int(L, R) n = 10000; 1

% Ρίχνουμε n βέλη στο ορθογώνιο με βάση R-L και ύψος ymax ymax = 1/sqrt(2*pi); x = L + rand(n,1)*(r-l); % x στο [L, R] y = ymax*rand(n,1); % y στο [0, ymax] hits = 0; % Υπολογισμός βελών κάτω από τη συνάρτηση (Α τρόπος) for k = 1:n if y(k) <= ymax*exp(-x(k)^2/2) hits = hits + 1; % Υπολογισμός βελών κάτω από τη συνάρτηση (Β τρόπος) % hits = sum(y <= exp(-x.^2/2)/sqrt(2*pi)); p = ymax*(r-l)*hits/n; 3. Αριθμητική υπολογιστών (1μ) (αʹ) Ποια είναι η δυαδική αναπαράσταση των αριθμών z = 112 + x και z (x τα 3 τελευταία ψηφία του Α.Μ. σας), σε υπολογιστή με 10 bits και στα συστήματα αναπαράστασης (i) συμπλήρωμα ως προς 2, και (ii) πλεόνασμα κατά 512. (βʹ) Έστω ένα σύστημα- παιχνίδι κινητής υποδιαστολής με m = 4 και e = 2. Ποιος είναι (i) ο μεγαλύτερος, (ii) ο μικρότερος κανονικοποιημένος και (iii) ο μικρότερος μηκανονικοποιημένος αριθμός που μπορεί να παρασταθεί στο σύστημα αυτό; (αʹ) Έστω x = 123. Μετατρέπουμε με κάποιον από τους γνωστούς τρόπους (διαφάνεια 5 στις σημειώσεις) τον z = 112 + 123 = 235 σε δυαδικό και κρατάμε μόνο τα τελευταία 10 bits: z = 235 10 = 0011101011 2. (i) συμπλήρωμα ως προς 2: z = 0011101011 2, z = 1100010101 2 (διαφάνεια 10). (ii) Το πλεόνασμα κατά 512 είναι το συμπλήρωμα ως προς το 2 με το πρόσημο αντετραμμένο: z = 1011101011 2, z = 0100010101 2 (διαφάνεια 11). (βʹ) (i) 9.999 10 99, (ii) 1.000 10 99 = 10 99, (iii) 0.001 10 99 = 10 102. 4. Αραιοί πίνακες (1.5μ) (αʹ) Έστω ο πίνακας Να επιλέξετε έναν τυχαίο και αραιό πίνακα 5 5 με ακριβώς 12 μη-μηδενικά στοιχεία και να τον αποθηκεύσετε με το σύστημα CRS. (βʹ) Να γράψετε αλγόριθμο πολλαπλασιασμού συμμετρικού αραιού πίνακα με διάνυσμα, όταν είναι αποθηκευμένο μόνο το άνω τριγωνικό μέρος του πίνακα με το σύστημα συντεταγμένων. 2

(αʹ) Έστω τότε 4.6 0 4.7 0 0 3.5 1.2 8.8 0 5.2 A = 0 0 2.7 0 3.3 0.5 1.6 0 0 0 0 7.3 3.9 0 0 val = [4.6 4.7 3.5 1.2 8.8 5.2 2.7 3.3 0.5 1.6 7.3 3.9] col = [1 3 1 2 3 5 3 5 1 2 2 3] start = [1 3 7 9 11 13] (βʹ) Κώδικας για y = Ax, A αραιός συμμετρικός πίνακας αποθηκευμένος με το σύστημα συντεταγμένων: m = length(val); n = length(x); y = zeros(n,1); for k = 1:m i = row(k); j = col(k); y(i) = y(i) + val(k)*x(j); if i ~= j y(j) = y(j) + val(k)*x(i); 5. Αλυσίδες Markov (1μ) Έστω ότι 5 χώρες, A, B, C, D και E μοιράζονται την παγκόσμια παραγωγή καφέ με ποσοστά στην παρούσα χρονική στιγμή 0.15, 0.18, 0.35, 0.25 και 0.07 αντίστοιχα. Έστω ότι καθεμιά από αυτές διατηρεί το 96% της αγοράς της κάθε χρόνο και χάνει 1% από καθεμιά από τις ανταγωνίστριες της. Να γράψετε συνάρτηση MATLAB που να υπολογίζει τα ποσοστά κάθε χώρας σε μια περίοδο T ετών να τα παριστάνει γραφικά σε μία γραφική παράσταση. function p = markovcoffee(t) p = [0.15; 0.18; 0.35; 0.25; 0.07]; % Aρχική κατάσταση M = toeplitz([0.96 0.01 0.01 0.01 0.01]); % Πίνακας μετάβασης % Αρχικοποίηση πίνακα ποσοστών. Η στήλη J του πίνακα % αντιστοιχεί στα ποσοστά των εταιριών στην περίοδο J. Y = zeros(5, T); Y(:,1) = p; for i = 2:T p = M*p; Y(:,i) = p; % Η γραμμή I είναι τα ποσοστά της εταιρίας I σε κάθε περίοδο % Πλοτάρει τις ΓΡΑΜΜΕΣ του πίνακα. plot(y ); 3

6. Τυχαίοι περίπατοι (1μ) Έστω τυχαίος περίπατος σε μια διάσταση (ένα ευθύγραμμο τμήμα) με N ενδιάμεσους σταθμούς. Ο περίπατος ξεκινάει στο ένα άκρο με σκοπό να καταλήξει στο άλλο άκρο. Ευρισκόμενος σε έναν ενδιάμεσο κόμβο, ο περίπατος μεταβαίνει ισοπίθανα σε έναν από τους 2 γειτονικούς του κόμβους. Γράψτε μια συνάρτηση visits = rand1d(n), που προσομοιώνει τον τυχαίο αυτό περίπατο και καταγράφει την επισκεψιμότητα κάθε κόμβου (πόσες φορές ο περίπατος βρέθηκε σε έναν δεδομένο κόμβο). Η συνάρτησή σας πρέπει επίσης να πλοτάρει ένα ραβδόγραμμα με την επισκεψιμότητα κάθε κόμβου. function visits = rand1d(n) NN = N + 2; visits = zeros(nn, 1); x = 1; visits(x) = 1; while x ~= NN if x == 1, x = x + 1; else p = rand(1); if p < 0.5 x = x - 1; else x = x + 1; visits(x) = visits(x) + 1; bar(visits); 7. Προσομοίωση (1μ) Στο πρόβλημα καταδίωξης ταύρου-οδοιπόρου, θεωρούμε ότι ο ταύρος κουράζεται εύκολα και η ταχύτητά του είναι V b (t) = 10e 0.01t. Θεωρούμε επίσης ότι ο οδοιπόρος, ζεσταίνεται σιγάσιγά, αλλά τελικά κουράζεται και επομένως η ταχύτητά του είναι V h (t) = 8+2 sin(πt/40). Πως τροποποιείται ο αλγόριθμος καταδίωξης με τα νέα δεδομένα? Να γράψετε τον τροποποιημένο αλγόριθμο σαν συνάρτηση MATLAB, με κατάλληλες παραμέτρους εισόδου/εξόδου. function saved = pursuit(xb, yb, xh, xf, dt) t = 0; s = sqrt((xb-xh)^2+yb^2); while xh<xf && s>1 t = t + dt; vb = 10*exp(-0.01*t); vh = 8 + 2*sin(pi*t/40); xb = xb + (xh-xb)*vb*dt/s; yb = yb - yb*vb*dt/s; xh = xh + vh*dt; s = sqrt((xb-xh)^2+yb^2); if xh >= xf, saved = true; 4

else saved = false; 8. MATLAB structs (1μ) Συμπληρώστε την παρακάτω συνάρτηση έτσι ώστε να λειτουργεί σύμφωνα με τις προδιαγραφές της: function d = PolyLength(P) % Το P ένας πίνακας δομών από n σημεία. % Το d είναι το μήκος της κλειστής πολυγωνικής γραμμής % που ορίζεται από τα P(1), P(2),...,P(n). Θεωρήστε ότι τα πεδία της δομής ενός σημείου είναι τα x και y. Χρησιμοποιούμε τη βοηθητική συνάρτηση GetDist από το βιβλίο για τον υπολογισμό της απόστασης δύο σημείων function d = GetDist(P1,P2) d = sqrt((p1.x - P2.x)^2 + (P1.y - P2.y)^2); Η ζητούμενη συνάρτηση: function d = PolyLength(P) n = length(p); d = 0; for i = 1:n-1 d = d + GetDist(P(i), P(i+1)); d = d + GetDist(P(n), P(1)); 9. Επεξεργασία εικόνας (1μ) Γράψτε μια συνάρτηση PhotoFrame(filename, width, colour) που να δέχεται ένα ασπρόμαυρο jpeg αρχείο filename και να το εμφανίζει μέσα σε εξωτερικό πλαίσιο πλάτους width και απόχρωσης γκρίζου colour. function PhotoFrame(filename, width, colour) photo = imread(filename); [nr, nc] = size(photo); % Δημιουργία μεγαλύτερου πίνακα που περιλαμβάνει τα περιθώρια. % Ο πίνακας πρέπει να είναι τύπου uint8 και αρχικοποιείται στην % απόχρωση colour. framedphoto = colour*ones(nr+2*width, nc+2*width, uint8 ); % H αρχική φωτογραφία εντάσεται στο πλαίσιο. framedphoto(width+1:width+nr, width+1:width+nc) = photo; imshow(framedphoto); 5

10. Επεξεργασία ήχου (1μ) Γράψτε συνάρτηση error = SoundInsert(infile1, Tstart, T, infile2, outfile) που να αντικαθιστά, στο wav αρχείο infile1, το ηχητικό στιγμιότυπο ανάμεσα στις χρονικές στιγμές Tstart και T με την ηχογράφηση στο wav αρχείο infile2 και να το αποθηκεύει στο αρχείο outfile. Η συνάρτησή σας να ελέγχει αν οι δεδομένες χρονικές στιγμές Tstart, T είναι μέσα στα όρια της ηχογράφησης (error = 0) ή όχι (error = 1). Θεωρήστε χωρίς έλεγχο ότι Tstart < T. Θεωρούμε ότι και οι δυο ηχογραφήσεις έχουν τον ίδιο ρυθμό δειγματοληψίας. error = SoundInsert(infile1, Tstart, T, infile2, outfile) [sound1, rate] = wavread(infile1); error = 0; n = length(sound1); % Διάρκεια ηχογράφησης σε sec T = (n-1)/rate; % Έλεγχος ορίων if Tstart < 0 T > T error = -1; return % Θέσεις στο διάνυσμα που αντιστοιχούν στα Tstart, T. istart = Tstart*rate + 1; i = T*rate + 1; [sound2, rate] = wavread(infile2); % Νέο διάνυσμα δειγμάτων. newsound = [sound1(1:istart-1) sound2 sound1(i+1:n)]; wavwrite(newsound, rate, 8, outfile); 6