You are on page 1of 38

MATLAB ILE PROGRAM YAZMAK

Su ana kadar Matlab ile gereklestirdigimiz uygulamalarda ,belirli bir islemi gereklestirmek
zere gerekli olan Matlab komut ya da fonksiyonlarini Matlab komut satirindan,>>
sembollerinden sonra tek tek girerek icra ediyorduk.
Oysa,Matlab komut ya da fonksiyonlarindan gereklestirmek istediginiz bir isle iliskili zel
bir grubu,bir dosyaya kaydederek,bu dosya isminin agrilmasi ile icra edebilirsiniz.Sonuta
ok pratik ve etkin bir yol ortaya ikar;sz konusu islemin gerektigi her anda hazirlanan dosya
icra edilerek,komutlarin tek tek girilmesine gore, nemli bir zaman tasarrufu saglanir.
Bir Matlab deyimleri ya da komutlari grubunu ieren bu tip bir dosyaya Matlabde Mdosyasi(M-file) adi verilir.Bu tip dosyalariin uzantisi daima .m seklinde olmalidir.Bir Matlab
M dosyasi,bir komut grubu ierdigi iin tanim itibari ile bir program dosyasidir.Dolayisi ile
,Matlabde,M-dosyalari olusturularak programlama yapilabilir.
M dosyasi iine tm Matlab komut ve fonksiyonlari yerlestirilebilir;bunlar arasinda asagida
inceleyecegimiz kontrol komutlari da bulunabilir.M-dosyalari aslinda bilinen metin(text)
dosyasi tipinde dosyalardir.Ancak zel bir komut yorumlayicisi iinden geirilirler.
Matlabde birok matematik ya da mhendislik problemini zmek iin yazilacak programlar
C/C++,FORTRAN ya da PASCALdaki karsiliklarina gre ok daha basit ve kisadir.Bu
aslinda beklenen bir sonutur nk Matlabde gerekte bu amala kullanilacak pek ok hazir
fonksiyon mevcuttur.

MATLABTE BIR m-DOSYAYI(PROGRAMI) ALISTIRMAK


Matlabde bir program alistirmak iin asagidaki adimlar izlenmelidir:
1)Program Matlab editr iinde yazilir ve saklanir.
2)Programin saklandigi dosya daima .m uzantili olmalidir.
3)Programi alistirmak iin ya komut satirindan ismi girilerek entera basilir veya asagidaki
gibi Debug/Run mens kullanilir:

4)Programi icra edebilmek iin,komut satirinda, sadece programin adi yazilir;uzantisi


yazilmamalidir.

SEME(SELECTION) TIPINDEKI KONTROL DEYIMLERI


IF DEYIMI
if deyimi,Matlab dilinde sartli dallanma(conditional branching) adi verilen
islemi gereklestiren bir deyimdir.
Sartli dallanma, herhangi bir programlama dili iin temel kontrol yapisidir.
Sartli dallanma islemi sayesinde,bir program, kararlar alma imkanina kavusur; bir ifadenin
sonucuna gre, bir komutlar dizisinin icra edilip edilmeyecegine karar verebilir.
Ifadenin degeri, bir icradan digerine degisebilecegi iin, bu zellik bir programa farkli
verilere karsi farkli sekillerde davranma imkani saglar. Matlab dilinde sartli dallanma if ve
else anahtar szckleri ile gereklestirilir. if deyiminin en basit sekli iin yazilis biimi
asagidaki gibidir:
if ifade
deyim1;
end
deyim2;
Burada ifadenin degeri dogru(true) ise deyim1 icra edilir sonra icra deyim2ye
geer.Ifadenin degeri yanlis(false) ise bu durumda da dogrudan deyim2ye
geilir.Ifadenin degeri yanlis ise deyim1 icra edilmeyecektir.Asagida if yapisini aiklayan bir
akis diyagrami verilmistir.

if deyimi iin akis diyagrami(flow chart)


If deyimi else szcg ile birlikte kullanilirsa asagidaki yazilis biimi kullanilir:

if ifade
deyim1 ;
else

deyim2;
end
deyim3;
...
Bu durumda,ifadenin degeri dogru ise deyim1 icra edilir ve sonra deyim3e geilir.Ifadenin
degeri yanlis ise,bu durumda da deyim1 atlanarak dogrudan elsei izleyen deyim2ye
geilecek ve bu icra edildikten sonra da deyim3 ile devam edilecektir.Asagida bu yapi ile
iliskili bir akis diyagrami verilmistir.

if deyiminde,ifadenin degeri dogru oldugu zaman sadece deyim1 gibi tek bir deyim degil de
bir deyimler grubunun icra edilmesi isteniyorsa bu durumda bu deyimler grubu if-end
szckleri arasina yerlestirilir:
if ifade
deyim1;
deyim2;
..
deyim_n;
end
deyim_x;
..
Bu durumda ifade dogru ise deyim1,deyim2,..deyim_n ile belirtilen deyimler
grubunun tm icra edilerek deyim_xe geilecektir;ifade yanlis ise de bu durumda ife
ait deyimler blogu atlanarak dogrudan deyim_xe geilecektir.
Ayni sey if else yapisi iin de sz konusudur:
If ifade
Deyim1;
Deyim2;
..

deyim_n;
else
deyim_n+1;
deyim_n+2;
..
deyim_m;
end
deyim_k;
...
Yukardaki yapida,ifade dogru ise,deyim1,deyim2,..,deyim_n icra edilerek
deyim_kya geilecek,ifade yanlis ise bu durumda da,if iindeki deyimler atlanarak
sadece deyim_n+1,deyim_n+2,..,deyim_m icra edilerek programin icrasi daha sonra
deyim_kya erisecektir.
RNEK 1:
I.File/New/m-file yolu ile bir m- file ainiz:

II.Asagidaki komutlari
giriniz:

III.Debug/Save and Run menu adimlarini izleyiniz:

IV.Karsiniza asagidaki pencere gelecektir:

m-dosyaya
IF1.m adini vererek Save butonunu tiklayiniz.
V.Program Debug/Run ile alistirilinca BIR TAM SAYI GIRINIZ mesaji
gelir;mesela 12 girilip entera basilinca GIRDIGINIZ SAYI 10 DAN
BUYUKTUR mesaji gelecektir:

Bu ok basit ve kisitli programda kullanici


klavyeden 10dan daha byk bir sayi girdigi
zaman,program yukardaki iktida grlen mesaji
verecek fakat 10 ya da daha kk bir sayi girilirse
bu durumda herhangi bir mesaj grntlenmeyecektir.

RNEK PROGRAM 2:
I.Asagidaki m-dosyayi olusturunuz:

II.Programi alistirdiginizda,bu programda ,klavyeden,10dan byk bir sayi


girilirse,asagidaki
BIR TAM SAYI GIRINIZ..14
GIRDIGINIZ SAYI 10 DAN BUYUKTUR

iktisi elde edilecek,10 ya da daha kk bir sayi girilirse de asagida grldg gibi,
>> if1
BIR TAM SAYI GIRINIZ..7
GIRDIGINIZ SAYI 10 YA DA DAHA KUCUK BIR SAYIDIR
>>

Bir mesaj elde edilecektir.Bylece if-else yapisi ile daha kapsamli bir kontrol
isleminin gereklestirilebilecegi sylenebilir.

PROBLEM:

f(x) ve g(x) fonksiyonlari,

x>0 ise f(x)=1/(1+ln(x))

ve g(x)=1/(x+ln(x))

x0 ise f(x)=1/(1+x2) ve g(x)=1/(1+x+ x2 )

seklinde tanimlanmaktadir.x degeri klavyeden girildigine gre,f(x) ve g(x)i


hesaplatan ve yazdiran bir Matlab programi yaziniz.

PROBLEMIN ZM OLAN MATLAB M-DOSYASI

PROGRAMIN IKTISI:
xin degeri yaklasik olarak e sayisi olarak girilirse(e sayisinin degeri e=2.718..)

iktisi elde edilir.x negatif bir deger olarak girilince de,

iktisi elde edilecektir.


PROBLEM:

Bir satis elemaninin ,sattigi rn miktarina gre alacagi gnlk cret asagidaki gibi
belirlenmektedir:
Gnlk satis miktari 50den az ise,4,000,000TL lik sabit crete satilan rn basina
50,000TLlik prim eklenerek gnlk cret belirlenecektir.
Gnlk satis miktari 50 ya da daha fazla ise bu durumda gnlk sabit cret 5,000,000TL
alinarak satilan rn basina da ilk 50 rn iin 50,000TL,50yi asan kisim iin de
60,000TL prim verilerek gnlk cret belirlenecektir.
Bir saticinin gnlk satis miktari bilgisayara
girildiginde saticinin alacagi gnlk creti
hesaplayan bir C programi yaziniz.

SATIS PROBLEMI IIN MATLAB PROGRAMI:

Gerekli tm araliklarin kontrol iin,program 40,50


ve 60 satis miktarlari iin test edilrek asagidaki
sonular elde edilmistir:

PROBLEM:Bilgisayara negatif olmayan bir sayi girildiginde bu sayinin karekkn


hesaplayan ,negatif bir sayi girildiginde ise kullaniciyi uyaran bir MATLAB programi
yaziniz.

KAREKK PROGRAMININ LISTESI:

KAREKK PROGRAMININ IKTISI:

Programda,verilen bir sayinin karekkn hesaplayan sqrt fonksiyonu kullanilmistir..

KARSILASTIRMA IFADELERI
Dogal olarak, sartli bir ifadede iki deger arasinda karsilastirma islemi gereklidir. Bazen
iliskisel operatrler olarak ta anilan (relational operators ) 6 karsilastirma operatr
vardir.Bunlar asagidaki tabloda belirtilmistir:

Iliskisel operatrler de ikili operatrlerdir. (binary operators ) Yani bu operatrlerin her biri
iki farkli deger(operand) zerinde islem grr.
Iliskisel bir ifadenin sonucu dogru ise Matlab derleyicileri bunu 1,iliskisel bir ifadenin
sonucu yanlis ise de Matlab derleyicileri bunu 0 olarak kabul ederler.Buna gre asagidaki
ifadelerin sonularini inceleyiniz:

Asagidaki Matlab m-dosyasi ise,esitli karsilastirma islemlerinin sonularini ekrana


aktarmaktadir:

DIKKAT EDILECEK NOKTA: Karsilastirma islemlerinde esitlik kontrolnn == sembol


yerine yanlislikla = sembol ile yapilmasi durumu.

I IE IF DEYIMLERI(NESTED IF STATEMENTS)
Tek bir if deyimi programin iki seenekten birini semesine olanak saglar. Fakat bir ok
pratik uygulamada tek bir if deyimi yetersiz kalir. Birinci karari aldiktan sonra ikinci karar,
ikinciden sonra nc kararin alinmasi gerekebilir. Bu tipte bir program akisi,i ie if
deyimlerini gerektirir. Farz edelim ki tamsayiyi kabul eden ve bunlarin en kgn bulan
ve yazdiran bir program yazmak istiyorsunuz, I ie if deyimleri ile programi asagidaki gibi
yazabilirdiniz.

TAMSAYININ EN KGN BULAN MATLAB


PROGRAMI:

PROGRAMIN IKTISI:

I ie if deyimleri, her else in dogru if ile uyusmasi konusunda problem yaratir. Bu genellikle
yakindaki else problemi adi ile anilir. Mesela yukardaki programda, ilk else, ikinci if ile
iliskilidir. Genel kural sudur:
Bir else, kendisinden nce gelen en yakin if ile iliskilidir seklindedir.
Bununla birlikte her bir if deyimi sadece bir else cmlecigine sahip olabilir.
if-else-if BASAMAK YAPISI
Birbirini izleyen ok sayida kosul kontroln gereklestirmeye yarayan bir yapi ifelse- if basamagi adini alir ve yazilis biimi asagidaki gibidir:

If ifade1
Deyim1;
elseif ifade2
Deyim2;
elseif ifade3
Deyim3;

...
else
Deyim_n;
End
Deyim_n+1;

Bu yapi su sekilde alismaktadir:


nce ifade1 kontrol edilir;bu ifade dogru ise,Deyim1 icra edilir ve sonra
Deyim_n+1e geilir.
Ifade1 yanlis ise,o takdirde,ifade2 kontrol edilir.Bu ifade dogru ise,bu durumda
sadece Deyim2 icra edilir ve sonra Deyim_n+1e geilir.
Ifade2 yanlis ise,o takdirde,ifade3 kontrol edilir.Bu ifade dogru ise,bu durumda
sadece Deyim3 icra edilir ve sonra Deyim_n+1e geilir.
Bu islemler daha fazla sayida else if bulundugu takdirde ayni sekilde devam eder.
ifler ile kontrol edilen ifadelerin tm de yanlis ise,bu durumda programin kontrol
elsei izleyen Deyim_ne geer ve bu deyim icra edilir.Daha sonra kontrol
Deyim_n+1e geecektir.
Yukardaki yapi iinde,Deyim1,Deyim2,..Deyim_n ile belirtilen birimler tek bir
deyimden ibaret olabilecegi gibi, deyimler grubundan da olusabilir.

RNEK PROBLEM:

Bu rnekte basit bir vergi hesabi programi gelistirmek istiyoruz.Gelir vergisinin


asagidaki kurallara gre belirlendigini var sayalim:
Gelir150,000,000 ise vergi orani %25
Gelir300,000,000 ise vergi orani %30
Gelir600,000,000 ise vergi orani %35
Gelir1,200,000,000 ise vergi orani %40
Gelir>1,200,000,000 ise vergi orani %50

Bu problemi Matlab dilinde programlayabilmek amaci ile,asagidaki basit algoritmayi


uygulayacagiz:
a)Gelir bilgisi klavyeden girilecektir.
b)Gelir bilgisi,yukardaki vergi hesaplama kurallarina gre kontrol edilerek vergi
hesaplanacaktir.
c)Hesaplana n vergi ekrana yazdirilacaktir.

VERGI HESABINI GEREKLESTIREN MATLAB PROGRAMININ


LISTESI:
v1=150000000*0.25;
v2=150000000*0.30;
v3=300000000*0.35;
v4=600000000*0.40;

gelir=input('\nVERGI MUKELLEFININ GELIRI

');

if gelir<=150000000
vergi=gelir*0.25;

elseif gelir<=300000000
vergi=v1+(gelir-150000000)*0.3;

elseif gelir<=600000000
vergi=v1+v2+(gelir-300000000)*0.35;

elseif gelir<=1200000000
vergi=v1+v2+v3+(gelir-600000000)*0.4;

else
vergi=v1+v2+v3+v4+(gelir-1200000000)*0.5;
end
fprintf('\nHESAPLANAN GELIR VERGISI=%12.2f\n\n',vergi);
end

PROGRAMIN IKTILARI:

Yukardaki programda uygulanan vergilendirme mantigi su sekildedir:


rnegin,bir kisinin geliri 200,000,000 TL olsun.Bunun ilk 150,000,000 TLsi
%25ten,kalan
200,000,000-150,000,000=50,000,000 TLsi ise %30dan vergilendirilecektir.
O nedenle programin basinda her araliga ait sabit vergiler hesaplanarak v1,v2,v3 ve
v4 degiskenlerine atanmaktadir.

RNEK PROBLEM:IKINCI DERECE DENKLEMININ KKLERININ


BULUNMASI:

Lise yillarinda grendiginiz ikinci derece denklemi,

ax2 + bx + c = 0

seklinde ifade edilir ve denklemin kklerinin varligi hakkinda bilgi sahibi olabilmek
iin,denklemin diskriminanti adi verilen,

=b2-4ac

ifadenin hesaplanmasi gerekir.Diskriminantin degerlerine gre,sayet,


<0 ise denklemin gerel sayilarla ifade edilebilecek bir kk yoktur.

=0 ise denklemin ,degerleri birbirine esit olan iki kk vardir ve bunlar,


x1=x2= -b/(2a)
seklinde hesaplanirlar.Bunlara iki kat kk ya da akisik kk adi verilir.
>0 ise de denklemin birbirinden farkli iki gerel kk vardir ve bunlar,
x1=(-b+)/(2a)
ve
x1=(-b-)/(2a)
seklinde hesaplanirlar.

RNEK:IKINCI DERECE DENKLEMININ KKLERINI BULAN


PROGRAM
Bu uygulamayi gereklestirebilmek iin asagidaki adimlari izleyiniz:
1)Matlabin File/New /M-file men adimlarini izleyerek matlab editrn ainiz:

2)Gelen editre asagidaki programi giriniz:

3) Programi File/Save mens yardimi ile ikider.m adi ile saklayiniz.


4)Matlab komut satirina asagidaki ismi giriniz:
ikider
a katsayisi..1
a=
1
b katsayisi..1
b=
1
c katsayisi..1
c=
1
d=
-3
gerek kk yok

Program alisinca a b ve c katsayilarini istemis ve kullanici a=1 b=1 c=1 degerlerini


girmistir.Bylece x2+x+1 =0 denkleminin kkleri aranmaktadir.Bu denklemin gerek kk
yoktur ve program bu mesaji vermektedir.
Ayni programi bir kez daha alistirarak x2-2x+1=0 denkleminin kklerini arastiralim:
ikider
a katsayisi..1
a =
1
b katsayisi..-2
b =
-2
c katsayisi..1
c =
1
d =
0
x1 =
1
x1=x2
Bu durumda denklemin akisik iki kk vardir ve x1=x2=1dir ve program bu sonucu
bulmustur.
2

Son olarak ayni programi x -5x+6=0 denklemi iin test edelim:


ikider
a katsayisi..1
a=
1

b katsayisi..-5
b=
-5
c katsayisi..6
c=
6
d=
1
x1 =
3
x2 =
2
Kkler x1=3 ve x2=2 olarak bulunmustur ki bu da dogru sonutur.
Hem if hem de while komutlari kosul ifadeleri kullanmaktadir.Kosul ifadeleri ya
iki ifadenin karsilastirilmasindan olusan mukayeseler seklinde ya da sonucu sayisal
degerler olabilen ifadeler seklindedir.mukayese ifadesinde karsilastirmanin sonucu
dogru ise kosul dogru kabul edilecektir;sayisal ifadelerde ise yukarda belirtildigi
gibi,C diline benzer sekilde ,ifadenin sonucu 0 dan farkli ise kosul dogru aksi takdirde
ise kosul yanlis olarak kabul edilecektir.
Mukayese sembollerini yukarda vermistik,Tablo 2de ise birden fazla mukayese
ifadesini birlestirmek iin kullanilan mantiksal islem operatrleri grlmektedir:
Tablo 2-Mantiksal islem operatrleri

Asagida ise ve ,veya,degil ve exclusive or ile iliskili tablolar verilmektedir :

Asagida
xor fonksiyonunun en basit kullanim sekli ile iliskili rnekler sunulmustur :
xor(1,1)
ans =
0
xor(1,0)
ans =
1
xor(0,1)
ans =
1

xor(0,0)
ans =
0

RNEK : & OPERATR


a=input('a..'),b=input('b...'),if a>0 & b>
0,disp('her iki sayi da pozitiftir'),end
a..4
a=
4
b...3
b =
3
her iki sayi da pozitiftir

RNEK:xor FONKSIYONU
a=input('a..'),b=input('b...'),if ~xor(a>0,b>
0),disp('her iki sayi da ayni isarettedir'),end
a..4
a =
4
b...8
b =
8

her iki sayi da ayni isarettedir


a=input('a..'),b=input('b...'),if ~xor(a>0,b>
0),disp('her iki sayi da ayni isarettedir'),end
a..-3
a =
-3

b...-6
b =
-6
her iki sayi da ayni isarettedir
a=input('a..'),b=input('b...'),if ~xor(a>0,b>
0),disp('her iki sayi da ayni isarettedir'),end
a..7
a =
7
b...-4
b =
-4

MANTIKSAL OPERATRLERIN MATRISLER IIN


KULLANILMASI
Mantiksal operatrler matrisler iin de kullanilabilir.Asagidaki rnekleri
inceleyiniz:
A=eye(3,3)
A =
1

B=~A
B =

C=xor(A,B)
C =
1

D=ones(3,3)
D =
1

E=~D
E =

F=D|E
F =
1

RNEK:BIR LINEER DENKLEM SISTEMININ ZMN BULAN


PROGRAM
ZM:
1)Asagidaki M- filei olusturunuz ve denksis.m adi ile saklayiniz:

2)Matlab komut satirinda


adini giriniz.Asagidaki ikti elde edilecektir:

denksis

A KATSAYILAR MATRISINI VE b SAG TARAF VEKTRN GIRINIZ


DAHA SONRA return

KOMUTUNU GIRINIZ

K A=[1 1 1;2 -2 1;4 2 1]

A =
1

-2

K b=[3 1 7]

b =
3

K return
x =
1.0000
1.0000
1.0000

MATLAB IINDE EVRIM(DNG,Ing.LOOP) OLUSTURMAKONTROL KOMUTLARI


Matlab ortaminda,gerek komut satirinda gerekse m-dosyalari iinde kullanabileceginiz
kontrol komutlari mevcuttur.bu komutlar yardimi ile Matlabde olusturmak istediginiz bir
programin mantiksal akisini kontrol edebilirsiniz.
Matlabde kullanabileceginiz kontrol komutlari,
1)Tekrarli islemler anlamindaki evrim yapilarini olusturan
komutlar(For,While)
2)Bir kosulu kontrol ederek kosulun sonucuna gre bir islem yapan kontrol
komutlari(if,switch/case)
olmak zere iki gruba ayrilir.If komutunu yukarda incelemistik;digerleri ise asagida
incelenecektir:

EVRIM OLUSTURMA
for KOMUTU
for komutu, asagidaki biimde kullanilabilir:
for Parametre=Baslangi:Artim:SonDeger
,Deyim1,Deyim2,..Deyim_n,End
Bir m-file iinde ise ayni ifade okunabilirligi arttirmak amaci ile de,
for

Parametre=Baslangi:Artim:SonDeger

Deyim1
Deyim2
..
Deyim_n
End
Seklinde kullanilir.
Burada Parametre degeri baslangi degerinden baslayarak ve her seferinde artim
degeri kadar arttirilarak Sondegere erisene kadar degistirilir.Parametrenin her degeri
iin,Deyim1,Deyim2,Deyim_n seklinde belirtilen ve for-end szckleri arasinda yer
alan deyimler grubu icra edilir.Parametrenin degeri,SonDegeri asinca,programin
kontrol,endi izleyen deyime yani evrimin disina ikacaktir.Artim degeri negatif te
olabilir.Bu durumda Baslangi degerinin SonDegerden daha byk olmasi gerekir.
RNEK 1:
for t=0.5:0.1:1 ,disp(t) ,end
0.5000
0.6000
0.7000
0.8000
0.9000
1
RNEK 2:
for t=2.5:-0.1:2 ,disp(t) ,end
2.5000
2.4000
2.3000
2.2000
2.1000
2

RNEK:FAKTRYEL HESABI
for evrimini kullanacagimiz diger bir rnek program ise faktryel hesabi programi
olacaktir.Matematikte faktryel,bilindigi gibi,
n!=1.2.3...n
seklinde tanimlanir;yani n sayisinin faktryeli 1den ne kadar tam sayilarin
arpimina esittir.Asagida,faktryel hesabi ile iliskili Matlab programi ve bu
program iindeki degiskenlerin programin icrasi esnasindaki degisimlerini
gsteren tablo verilmistir:

FAKTRYEL HESABI YAPAN MATLAB PROGRAMI:

PROGR
AMIN IKTISI:

FAKTRYEL PROGRAMINDAKI DEGISKENLERIN PROGRAMIN


ICRASI ESNASINDAKI DEGISIMLERINI GSTEREN TABLO

RNEK:
1.2/(3.4)-5.6/(7.8)+9.10/(11.12)-13.14/(15.16)

seklindeki alterne seri toplaminin hesaplanmasi.


Yukardaki ifadede, . sembol arpma islemi anlamindadir.
ALTERNE SERI PROGRAMININ LISTESI:

ALTERNE SERI PROGRAMININ IKTISI

ALTERNE SERI PROGRAMINDAKI DEGISKENLERIN PROGRAMIN


ICRASI ESNASINDAKI DEGISIMLERINI GSTEREN TABLO

AIKLAMA:

Sadece 4 terim oldugu iin for evrimi 1den 4e kadar alistirilmistir.ilk terim
1.2/(3.4) ve ikinci terim 5.6/(7.8) oldugu iin, x degiskeni ilk terimdeki ilk
sayiyi temsil etmek zere terimi,x.(x+1)/((x+2).(x+3)) seklinde ifade
edebiliriz.x yerine 1 konulursa bu durum kolayca kanitlanabilir.Ikinci terimde
ilk sayi 5 ,3.terimde ilk sayi 9 olduguna gre x,her seferinde 4
arttirilmalidir.Bu da programda x=x+4 ; deyimi ile gereklestiriliyor.
Seri alterne seri olduguna gre,yani terimlerin isaretleri +,-,+,- seklinde
degistigine gre,p degiskeni yardimi ile terimlerin isaretleri ayarlanabilir.p
nce 1 olarak atanmistir.Sonra evrim iine konulan p=-p;ifadesi ise bir
sonraki isareti -,bir sonrakini + ve onu izleyeni yapacaktir.(Programi kagit
zerinde adim adim izleyiniz).
FOR EVRIMI ILE ILISKILI RNEK PROBLEMLER:

RNEK PROBLEM:

ifadesini Matlabte hesaplatiniz.


ZM:
I.Asagidaki m-dosyayi olusturunuz:

II.yukardaki m-dosyayi m=1000, m=10000 ve m=100000 degerleri iin alistirdiginizda


gittike piye yaklasan degerler elde edeceksiniz:

RNEK PROBLEM:

Ifadesini Matlabte hesaplatiniz.


Bu ifadeyi Matlabte hesaplatabilmek iin esitli yollar mevcuttur.Biz burada bir m-dosya ile
bu hesaplatmayi gereklestirecegiz:
ZM
Asagidaki m-dosyayi olusturunuz:

m-dosyayi alistirdiginizda asagidaki sonucu elde edeceksiniz:


:
Tam dogru deger
RNEK PROBLEM:

dir ve yukardaki sonu bu degere ok yakindir.

Asagidaki ifadeyi Matlabte hesaplatiniz:

ZM:
Asagidaki m-dosyayi olusturunuz ve alistiriniz:

Asagidaki zm elde edeceksiniz:

I IE EVRIMLER
Bir evrim yapisinin iine baska bir evrim yapisinin yerlestirilmesi ile elde edilen yapiya i
ie evrim(nested loop) adi verilir.
Matlab dilinde, if deyimlerini her hangi bir derinlige kadar i ie kullanmak nasil
mmknse, evrim deyimlerini de i ie kullanmak mmkn olacaktir. I ie evrimlerde
hatirlanacak anahtar bilgi, nce iteki evrimlerin tamamlanmasi gerektigidir.Bu konuda
asagidaki kural i ie evrimler iin daima geerlidir:
I ie evrimlerde en iteki evrim en nce tamamlanir.
RNEK:
Asagidaki
programda,dis
evrim
olan
i
parametreli
alisacaktir.(i=1,2,3,4,5).inin
her
degeri
iin
ise
iteki
alisacaktir.(j=1,2,3).Bylece asagidaki ikti elde edilecektir:

evrim
evrim

5
3

kez
kez

PROGRAMIN IKTISI:

RNEK:ARPIM TABLOSU PROGRAMI


1den 10a kadar sayilar iin bir arpim tablosu hazirlamak istiyoruz.Bunun iin i ie 2
evrim yeterlidir ve her iki evrimin de parametresi 1den 10a kadar degisecektir.Programin
listesi asagidadir:

ARPIM TABLOSU PROGRAMININ IKTISI

Her x degeri iin, program nce x i yazdirir; sonra y nin 10 degeri iin evrim yaparak her
iterasyon iin x*y yi yazdirir ve yeni bir satira geer.
printf (% 5d ,x*y);
komutu en iteki evrime aittir. % 5 d dnsm, fprintf( )nin ikista her sayi iin 5 karakter
basmasini saglar. Sayi daha az karakter gerektiriyorsa, n tarafina bosluklar konur.
RNEK:

Asagidaki seri toplamini hesaplayacak bir Matlab programi yaziniz:

1/ 2! + 1/3! + 1/4! +......+ 1/10!

Bu seri toplamini hesaplamak istedigimizde,i ie iki evrim kullanmak


gerektigini hemen anlariz:
1)Her adimda,bir toplama islemi gerektiren,terimlerin toplanmasinin
gerekli oldugu bir evrim(Yukardaki tek evrim rneklerindeki 1+2+3+..+n
toplami rnegini hatirlayiniz)
2)Yukarda belirtilen evrimin her parametre degeri iin,o adimdaki
faktryeli hesaplatmak zorunda oldugumuz ve o nedenle yukardaki evrimin
iinde yer almasi gereken bir evrim.
Bu dsncelerle,problemin zmn teskil edecek olan bir Matlab programini
asagidaki gibi yazabiliriz:

FAKTRYELLI TERIMLERDEN OLUSAN SERI TOPLAMI


PROGRAMI:

SERI TOPLAMI PROGRAMININ IKTISI

break

DEYIMI

break deyiminin Matlab programlari iinde iki farkli kullanim alani mevcuttur:
1)switch yapisindaki case seeneklerinden birinde switch yapisini terketmek ve
switchi izleyen deyime gemek.Bu tip kullanim ile iliskili rnekler switch deyimi
anlatilirken verilmistir.
2)break deyiminin ikinci kullanilis yeri,bir evrim(loop) yapisi iinden
,evrimi kontrol eden kosul ifadesini beklemeksizin hemen evrim disina
ikmak amaci iledir.
Break deyimi bir evrim iinde yer almissa bu durumda break deyimi ile
karsilasilir karsilasilmaz evrim disina ikilir ve evrimi izleyen deyime
geilir.
RNEK:

RNEK PROGRAMIN IKTISI

continue

DEYIMI

continue deyimi,evrim iinde,belirli bir kosulun kontrol ile,bir sonraki


evrim adimina gidilmesini gereklestirir.
RNEK:
Asagidaki programda,for evriminin parametresi olan i degiskeni 3 ile tam
blnemeyen bir deger alinca bu deger ile islem yapilmayip bir sonraki adima
geilmesi continue deyimi ile saglanmaktadir.Bylece program,kullanici
tarafindan girilen bir st limite kadar,3 ile blnebilen sayilarin toplamini ve
bu tip sayilarin adedini bulacaktir.

ILE BLNEBILEN SAYILAR-M-DOSYA LISTESI

PROGRAMIN IKTISI:

while KOMUTU
Yazilis biimi,
While Kosul ,Deyim1,Deyim2,..,Deyim_n,end
Seklindedir.
Kosul dogru oldugu srece,Deyim1,deyim2,..,deyim_n seklinde belirtilen deyimler
grubunu icra eder.Kosul yanlis oldugu anda,endi izleyen deyime yani evrim disina
ikilacaktir.
RNEK:
say=2,while say>0 ,say=input('BIR SAYI GIRINIZ,DURDURMAK
IIN NEGATIF SAYI GIRMELISINIZ'),end

say =
2
BIR SAYI GIRINIZ,DURDURMAK IIN NEGATIF SAYI GIRMELISINIZ

say =
9
BIR SAYI GIRINIZ,DURDURMAK IIN NEGATIF SAYI GIRMELISINIZ
say =
-1

-1

You might also like