Első zárthelyi

Contents

Első feladat

Adott egy olyan mérés, ahol az eredményeknek a [0, 10] intervallumba kell esniük; ami nem ide esik, az hibás. Írjunk olyan helyesAtlag(v) nevű függvényt, amelynek bemenete egy mérési eredményeket, azaz valós számokat tartalmazó vektor, kimenetei pedig a helyes mérési eredmények átlaga és darabszáma.

function [atlag, darab]=helyesAtlag(v)

vhelyes=v(v>=0 & v<=10);
darab=length(vhelyes);
atlag=mean(vhelyes);

Második feladat

Írjunk egy olyan frobN(A) nevű függvényt, amely kiszámítja a bemenetként kapott A mátrix összes elemének négyzetének összegét, a függvényünk kimenete pedig legyen ezen szám.

function ki=frobN(A)

% Gyors megoldás : ki=trace(A'*A);
ki=0;
for i=1:size(A,1)
    for j=1:size(A,2)
        ki=ki+A(i,j)^2;
    end
end

Harmadik feladat

Írjunk egy olyan rekurSor(n) nevű függvényt, melynek a bemenete egy n pozitív egész, és a kimenete az $a_{n+1}=7-\frac{10}{a_n}$, $a_1=4$ képlettel adott sorozat n-dik tagja (a sorozat első néhány eleme: 4, 4.5, 4.77, ...)

function ki=rekurSor(n)

ki=4;

for i=2:n
    ki=7-10/ki;
end

Negyedik feladat

Írjunk egy olyan penzFeldobas nevű függvényt, amely meghívásakor elkezd dobálni egy szabályos pénzérmét (1/2, 1/2 esélye van a két különböző kimenetnek). Addig dobáljon, amíg 3 egyforma nem jön ki közvetlenül egymás után. A kimenet legyen az ehhez szükséges összes dobások száma.

function dobasokszama=penzFeldobas

fejekszama=0;
irasokszama=0;
dobasokszama=0;

while fejekszama<3 && irasokszama<3
   
   dobas=rand;
   dobasokszama=dobasokszama+1;
   
   if dobas<0.5 
       fejekszama=fejekszama+1;
       irasokszama=0;
   else
       irasokszama=irasokszama+1;
       fejekszama=0;
   end
    
end

Ötödik feladat

Írjunk egy olyan abraFv(a,b) nevű függvényt, amelynek bemenete a<b valós számok. A függvény egy ábrára egymás mellé kirajzolja a exp(x) és a sin(2*x), függvényeket az [a,b] intervallumon. Az ábráról derüljön ki, hogy melyik vonal melyik függvényhez tartozik. A függvénynek ne legyen kimenete.

function abraFv(a,b)

t=linspace(a,b);
subplot(1,2,1)
plot(t, exp(t));
title('Exponenciális függvény')
subplot(1,2,2)
plot(t, sin(2*t))
title('Szinusz függvény')

Szorgalmi feladat

Írjuk egy olyan kettedesTort(a) nevű függvényt, amelynek bemenete egy 0 és 1 közötti valós szám, kimenete pedig a bináris tört (azaz kettes számrendszerbeli tört alakjában) a kilencedik számjegye. (Például a=0.5 bináris tört alakja 0.1, ennek első számjegye 0, a második 1, a harmadik 0.)

function ki=kettedesTort(a)

for i=1:7
    if a>=2^(-i)
        a=a-2^(-i);
    end
end

if a>2^(-8)
    ki=1;
else
    ki=0;
end