Wrocław, 2.05.2012 Przykładowe pytania na kolokwium z
Transkrypt
Wrocław, 2.05.2012 Przykładowe pytania na kolokwium z
Wrocław, 2.05.2012 Przykładowe pytania na kolokwium z Informatyki dla Inżynierii Biomedycznej 14.05.2012 1. Krótko zdefiniuj następujące pojęcia i techniki. Krótko wyjaśnij do czego i dlaczego są stosowane: (Uwaga! Na kolokwium może się pojawić 1-3 pojęć) • Język interpretowany • Dynamiczny system typów • Kompilacja Just-In-Time • Programowanie zorientowane obiektowo • Enkapsulacja (hermetyzacja) • Dziedziczenia • Programowanie sterowane zdarzeniami • Funkcje zwrotne (callback) 2. Wyjaśnij czym są, porównaj (/) i/lub podaj przykład kodu źródłowego zawierającego (*): (Uwaga! Na kolokwium może się pojawić 1-3 pojęć) • M-skrypt / M-funkcja • Funkcja główna / Subfunkcja • Warunki początkowe* • Macierz rzadka • Operatory logiczne* • Prealokacja tablic* • Indeksowanie liniowe / wiersz-kolumna / logiczne* • Replikacja wektora* • Wektoryzacja • Wektoryzacja sterowania • Tablica komórkowa / Struktura (w Matlabie)* • Własności i metody klasy* • Konstruktor* • Klasa zwykła (przekazywana przez wartość) / Klasa uchwytowa (przekazywana przez referencję)* • Grafika uchwytów* • Układ oznaczony / układ niedookreślony / układ nadokreślony • Dzielenie macierzowe* • Aproksymacja / interpolacja / ekstrapolacja • Uchwyt funkcji* • Funkcja anonimowa* • Całkowanie numeryczne* • Różniczkowanie numeryczne* 3. Utwórz obiekt klasy (typu): a) zmienna całkowitoliczbowa ze znakiem 32-bitowa: b) tablica komórkowa 2x2 zawierająca: liczbę całkowitą, wektor liczb rzeczywistych, łańcuch znaków oraz macierz liczb rzeczywistych 2x3 c) struktura przechowująca imię, nazwisko i datę urodzenia osoby. 4. Dane są macierze X=[1 6 3; 4 5 1] i Y=[2 3 6; 2 1 2]. Uzupełnij brakujące miejsca o operatory arytmetyczne lub porównania, tak, aby przedstawione poniżej wyniki działań na macierzach były poprawne: a) X…….Y = [3 9 9; 6 6 3] b) X…….Y = [0 1 0; 1 1 0] c) X…….Y = [0.5 2 0.5; 2 5 0.5] 5. Wygeneruj macierz, której pierwszy wiersz będzie stanowiło 25 liczb równomiernie rozłożonych pomiędzy 2 a 8, a drugi wiersz - 25 liczb wygenerowanych na podstawie rozkładu normalnego: a) podnieś do czwartej potęgi elementy o wartości >2 b) oblicz iloczyn elementów z pierwszych pięciu kolumn c) znajdź element najmniejszy w całej macierzy d) wybierz elementy podzielne przez 3 lub 5. 6. Napisz funkcję, która - przyjmuje za argumenty współrzędne punktów na płaszczyźnie zadane w wektorach x,y - sprawdza czy każda współrzędna x-owa ma odpowiednik y-owy i odwrotnie; jeśli nie – generuje komunikat o błędzie (polecenie: error('Blad!')) - liczy środek geometryczny układu punktów - zwraca położenie środka .../1 .../1 .../1 .../1 7. Zwektoryzuj poniższy kod i napisz wynik uzyskany po jego wykonaniu: x = 1:5; y = [2 4 6]; for j = 1:length(x) for i = 1:length(y) if x(j)<=2 f(i,j) = x(j); else f(i,j) = x(j)*y(i); end end end 8. Przypisz numery błędów do ich opisów. Popraw błędy: A __ B __ C __ Należy zastosować działanie tablicowe. Próba użycia zmiennej, która nie istnieje. Pomylono operatory porównania i przypisania. 1. a=1:10, a^2 ??? Error using ==> mpower Matrix must be square. ….................................................................................. 2. c=round(rand(1)*10), if c = 3, c = -3, end ??? c=round(rand(1)*10), if c = 3, c = -3, end | Error: The expression to the left of the equals sign is not a valid target for an assignment. ….................................................................................. 3. a = 1:10, plot(a,b) ??? Undefined function or variable 'b'. ….................................................................................. 9. Uzupełnij luki w kodzie klasy PomiarElastyczności classdef PomiarElastycznosci %POMIARELASTYCZNOSCI przechowuje pomiary elastycznosci i liczy modul …................... Material NumerProbki Odksztalcenie Naprezenie end properties (Dependent = true, SetAccess = private) Modul end methods function pe = PomiarElastycznosci(material,numprob,naprez,odkszt) if nargin~=4 % Sprawdzamy poprawn? liczb? danych ….............................................. end pe.Material = material; ….............................. ….............................. pe.Odksztalcenie = odkszt; end function obj = set.Material(........................) if ~(strcmpi(material,'aluminum') || strcmpi(material,'stal')) error('Akceptowany material to aluminium lub stal') end obj.Material = material; end function ….......... = get.Modul(obj) ind = find(obj.Odksztalcenie > 0); % Tylko niezerowe wartosci modul = mean(obj.Naprezenie(ind)./obj.Odksztalcenie(ind)); end function …............(obj) %DISP wyswietla obiekt typu PomiarElastycznosci fprintf(1,'Material: %s\nNumerProbki: %g\nModul:%1.5g\n',... obj.Material,obj.NumerProbki,obj.Modul); end end end 10. pac jest obiektem uchwytowej klasy Pacjent classdef pacjent < handle properties PESEL = '' Oddzial = '' end methods function p = pacjent(pesel,oddz) p.PESEL = pesel; p.Oddzial = oddz; end function przeniesienie(obj,nowy_oddz) obj.Oddzial = nowy_oddz; end end end Wykonano następujące operacje: >> pac = pacjent('54093001218','Intensywna Terapia'); >> pac2 = pac; >> przeniesienie(pac2,'Kardiologia'); Co wyświetli następujące odwołanie do własności Oddział? >> pac.Oddzial ….......................................... 11. Poniższa sekwencja poleceń tworzy 1) wykres liniowy (linia kropkowana, kolor linii niebieski), 2) nowy rysunek i 3) nowe osie współrzędnych, 4) kopiuje wykres do nowych osi, 5) zmienia kolor wykresu (linii) na czerwony. Uzupełnij kod: 1>> hl = plot(x,y,'b:'); 2>> f2 = ….................. 3>> a2 = axes; 4>> set(hl,.................,.......); 5>> …............................... 12. Następujący układ równań liniowych zapisz w postaci macierzowej i przedstaw dowolną prawidłową metodę rozwiązywania: -x + 3y + 2z = 0 x - z = 1 2x – 3y - z = 3 ….............................................................................. ….............................................................................. ….............................................................................. ….............................................................................. ….............................................................................. ….............................................................................. 13. Załóżmy, że mamy do czynienia z danymi (x,y) zgrupowanymi w macierzy D. Stosując następujący skrypt >> x = D(:,1); >> y = D(:,2); >> plot(x,y,’k*’) otrzymujemy wykres: Zadaniem jest dopasowanie danych z powyższego wykresu funkcją y=a0+a1*x^3+a2*cos(2π5x) Do tego zadania napisano funkcję zamieszczoną a tabeli poniżej. function [y_hat] = fitmyfunction(D,N) 1 % Funkcja wpisuje funkcje wg wzoru y=a0+a1*x^3+a2*cos(2pi5x) 2 x=D(:,1); y=D(2,:); 3 H=[ones(L,1) x.^3 cos(2*pi*f*x)]; 4 P=(H'*H).^(-1)*H'*y; 5 y_hat=H.*P; 6 RMS=sqrt(min((y-y_hat).^2)); 7 Wykaż błędy w tym kodzie. 14. a) Utwórz funkcję anonimową, liczącą wartość funkcji Gaussa przy parametrach µ=0 i s=1. Zaprezentuj wywołania funkcji. ….............................................................................. ….............................................................................. ….............................................................................. ….............................................................................. b) Policz pochodną utworzonej funkcji na przedziale [-10:0.01:10] c) Policz całkę oznaczoną utworzonej funkcji na przedziale [-100, 100] Uwagi • • • Przewiduję od 6 do 8 zadań na kolokwium Obowiązuje zasada „zero tolerancji” dla ściągania (bez ostrzeżeń i bez możliwości odwołania) Na kolokwium proszę odpowiadać tylko na pytania, na które rzeczywiście znają Państwo odpowiedź: Dziękuję prof. Robertowi Iskanderowi i mgr Joannie Basałydze za opracowanie propozycji zadań Witold Dyrka