Órai feladatok megoldása
1. feladat: Írjunk egy olyan szundi() nevű függvényt, amelyet meghívva kiírja az eddigi meghívások számát. Ha viszont több mint 5-ször hívtuk meg, akkor csak annyit írjon ki a képernyőre, hogy 'ébresztő'. A függvénynek ne legyen kimenete.
function szundi() persistent hivasokszama if isempty(hivasokszama) hivasokszama=1; fprintf('Ez az első hívás \n'); elseif hivasokszama<5 hivasokszama=hivasokszama+1; fprintf('Ez a %d. hívás \n',hivasokszama); else fprintf('Ébresztő\n'); end
2. feladat: Írjunk olyan függvényt, amely visszaadja az összes eddigi meghívásakor bementeként kapott számok átlagát.
function at=atlag(x) persistent szamok persistent darab if isempty(szamok) szamok=x; darab=1; else szamok=szamok+x; darab=darab+1; end at=szamok/darab;
3.feladat: Írjunk olyan függvényt, amelynek bemenete egy sztring. A függvény nyissa meg az ilyen nevű fáljt, majd olvassa ki a benne tárolt összes számot. Tudjuk, hogy a fájlban szereplő számok mind egészek, egy sorban egy szám van, a fájlban a számokon kívűl nincs más látható karakter. A fájlról feltehetjük, hogy megtalálható a munkakönyvtárban. A függvény visszatérési értéke legyen a számok átlaga és szórása.
function [atl, szor]=statok(fajlnev)
szamok=dlmread(fajlnev);
atl=mean(szamok);
szor=std(szamok);
4. feladat: Írjunk olyan filed(s) nevű függvényt, melynek bemenete egy txt fájl teljes neve sztring- ként. Ebben a fájlban csak egész számok vannak, soronként azonos, de ismeretlen darabszámú. Olvassuk be egy megfelelő méretű mátrixba a számokat, majd konvertáljuk a legkisebb helyet foglaló olyan egész típussá a mátrixot, melybe még adatvesztés nélkül elférnek. A kimenet legyen ezen mátrix.
function kimx=filed(s) azon=fopen(s,'r'); sor=fgets(azon); mx=[]; while ischar(sor) mxsor=str2num(sor); mx=[mx; mxsor]; sor=fgets(azon); end le=max(max(abs(mx))); if le<=127 kimx=int8(mx); elseif le <=32767 kimx=int16(mx); elseif le<= 2147483647 kimx=int32(mx); else kimx=int64(mx); end