Órai feladatok
1. feladat: Írjunk olyan függvényt, amelynek bemenete egy A mátrix, és kimenetként listázza azon elemek pozícióját amely nagyobbak, mint a két indexük összege.
function ki=nagyElem(bematrix) ki=[]; for i=1:size(bematrix,1) for j=1:size(bematrix,2) if bematrix(i,j)>i+j ki=[ki; i j]; end end end
2.feladat: Írjunk olyan függvényt, amely egy bemenetként kapott v vektor első 6-nál nagyobb elemének pozicióját adja kimenetként. Ha nincs ilyen elem, akkor a kimenet értéke legyen -1.
function ki=nagye(v) ki=-1; i=1; while i<=length(v) if v(i)>6 ki=i; return end i=i+1; end
3. feladat: Írjunk egy olyan függvényt, melynek bemenete egy v vektor. A kimenet legyen egy olyan vektor, melyben v elemei helyett 0-k szerepelnek addig, amíg el nem érünk az első 100-nál nagyobb elemhez v-ben. Onnan pedig v elemei legyen benne változtatás nélkül.
function ki=nullaz(v) ki=v; k=1; while k<=length(v) if v(k)>100 break end ki(k)=0; k=k+1; end
4. feladat: Írjunk olyan reciprokOsszeg(n) nevű függvényt, amelynek kimenete a legkisebb olyan k pozitív egész, melyre az 1 + 1/2 + 1/3 + · · · + 1/k összeg nagyobb, mint a bemenetként kapott pozitív n szám. Ha 10^5 -nél is több tag kellene, akkor a kimenet legyen −1.
function ki=reciprokOsszeg(n) osszeg=0; for i=1:1e5 osszeg=osszeg+1/i; if osszeg>n ki=i; return end end ki=-1;
5. feladat: Készítsünk egy olyan függvényt, amely minél pontosabban oldja meg a másodfokú egyenletet (vizsgálja, hogy lehet-e kiegyszerűsödés a megoldóképletben). A függvény három bemenete legyen az ax^2+bx+c=0 egyenletből az a, b, és c együtthatók, a kimenet legyen a két gyök.
function [gyok1, gyok2]=masodfoku(a,b,c) % Thf nem hiányos, azaz a~=0 if a==0 error('A kapott másodfokú egyenlet hiányos') end D=sqrt(b^2-4*a*c); if b>0 gyok1=-2*c/(b+D); gyok2=(-b-D)/(2*a); elseif b<0 gyok1=(-b+D)/(2*a); gyok2=(-2*c)/(b-D); else gyok1=(+D)/(2*a); gyok2=(-D)/(2*a); end
6. feladat: Írjunk egy olyan függvényt, amelynek bemenete egy pozitív egész szám (mondjuk n). A függvény számítsa ki minél pontosabban az alábbi sorösszeg első n tagjának felhasználásával ln(1.5) értékét .
function kbln=sorLn(n) kbln=0; for i=n:-1:1 kbln=kbln-(-0.5)^i/i; end