Professional Documents
Culture Documents
BTPG2018
BTPG2018
VE
PROGRAMLAMAYA GİRİŞ
DERS 1
Doç.Dr. HAKAN ALP
• Kaynaklar: Prof.Dr. Davut AYDOĞAN, «Bilgisayar Temelleri ve Programlamaya Giriş Ders Notları»
• Yard. Doç.Dr. Ertan PEKŞAN «Programlama Ders Notları» Kocaeli Üniversitesi Jeofizik Müh. Bölümü
• Brain R. Hunt, Ronal L. Lipsman ve Jonathan M. Rosenberg «A Guide to MATLAB» Cambridge
University Press, 1995
• Doğan, U., (2009), Temel Bilgisayar Bilimleri Ders Notları, YTÜ, Lisans Ders Notları, İstanbul
MATLAB (Matematik LABORATUVARI)
• Matlab, MATrix ve LABoratory kelimelerinden
türetilmiş olup, Cleve Moler tarafından 1985
yılında geliştirilmiş bir bilgisayar programlama
dilidir.
• İsminden de anlaşılacağı üzere, matris temeline
dayalı matematiksel hesaplama, çözümleme,
görsellik ve algoritma geliştirme olanağına sahip,
bilimsel ve uygulamalarına yönelik güçlü ve
etkileşimli komut temelli bir paket programlama
dilidir.
•MATLAB ı bilgisayarınıza kurduktan sonra,
matlab ile çalısmak için matlab logosunu
tıklayarak çalısmaya baslayabiliriz. Bu
islemden sonra, matlab ın sürüm
numarasına göre ufak tefek değisiklikler
olmasına rağmen, temel islemler hep
aynıdır, matlab işlecinin olduğu pencere
matlab için komut penceresidir;
MATLAB (MATrix LABoratuary)
http://www.mathworks.com/matlabcentral/
İlk olarak Fortran dili ile yazılan MATLAB, daha sonra C ile
yazılmıştır.
4
Araç çubuğu ve çalışma klasörü
Komut Satırı
Komut Satır geçmişi
MATLAB/Command window (komut
penceresi)
Current directory
(çalışma klasörü)
Atanan
değişken Workspace penceresini
açmanın “komut” yolu
7
MATLAB/Array Editor (Dizi editörü)
Matris, vektör ve sayılar için excel özelliğindeki editördür.
>>open('a')
workspace penceresinde ilgili
değişken iki kez tıklanır.
Daha önce atanan bir değişkenin
boyutları istenildiği gibi değiştirilebilir!
8
Matlab’ da bulunan fonksiyon kütüphanesi sayesinde diğer programlama
dillerine nazaran daha az sayıdaki satırla çözüm üretilebilmektedir.
10
Avantajları:
Kullanım kolaylığı,
11
Avantajları:
Teknik hesaplamalara uygun yüksek seviyeli bir dil oluşu,
( >> ) işareti, matlab’ da program yazma satırı olup komut promt’u olarak
isimlendirilir. Komut penceresinden komut girilmesinde ya da program isimlerini
yazarak koşturulmasında kullanılır. Komut penceresinden programlama dilinin basit bir hesap
makinası gibi kullanılmasına olanak sağlar.
Komutlar (enter) tuşuna basılarak koşturulur.
MATLAB/Temel dosya türleri
• *.m MATLAB program dosyaları
14
MATLAB DİLİNDE İFADELER (Expressions)
1. SAYILAR (Numbers)
1.2341e+03=1.2341x10^3= 1234.1
>> format long
>> a=0.0001*256
>> a
a=
a=
0.0256
0.02560000000000
ans = ans =
3 8 5 -1 -4 -1
>>>>[1
[1 2 2]*[2;6;3]
2 2]*[2 6 3] >> [1 2 2].*[2 6 3]
>> [1 2 2]^[2;6;3] 1 64 8
??? Error using ==> mpower
At least one operand must be scalar.
OPERATÖRLERİN ÖNCELİK SIRASI
BİLGİSAYAR TEMELLERİ
VE
PROGRAMLAMAYA GİRİŞ
DERS 2
Doç.Dr. HAKAN ALP
• Kaynaklar: Prof.Dr. Davut AYDOĞAN, «Bilgisayar Temelleri ve Programlamaya Giriş Ders Notları»
• Yard. Doç.Dr. Ertan PEKŞAN «Programlama Ders Notları» Kocaeli Üniversitesi Jeofizik Müh. Bölümü
• Brain R. Hunt, Ronal L. Lipsman ve Jonathan M. Rosenberg «A Guide to MATLAB» Cambridge
University Press, 1995
• Doğan, U., (2009), Temel Bilgisayar Bilimleri Ders Notları, YTÜ, Lisans Ders Notları, İstanbul
3. DEĞİŞKENLER (Variables)
• Bir değişken oluşturmak için değişkene bir isim verilir,
• >> deg = 3.14
• >> string = ‘selam’
• Değişken isimleri
• Birinci karakter mutlaka HARF olmalıdır! İlk karakter sayı olamaz!
• İlk karakterden sonra sayı, harf, _ ve bunların kombinasyonları
• Büyük küçük harfe duyarlı: deg ile Deg birbirinden farklı
• Değişken isimleri en fazla 63 karakterli olabilir
• Gömülü değişkenler var. Bunları kullanmak tavsiye edilmez!!
• pi değişkeni 3.1415926…
• ans en son atanan değişkeni gösterir (hesap makinesi gibi) (answer)
• Inf ve –Inf pozitif ve negatif sonsuz sayılarıdır
• NaN ‘Not a Number’
• TÜRKÇE karakterler yok!
• ç, ğ, ı, ö, ş, ü, Ç, Ğ, Ġ, Ö, Ş, Ü kullanılmaz
Ekrana yazmaz hafızasında
tutar
Save ve load komutları, matris vb. yapıların kaydedilmesi için çok önemlidir.
7
4. FONKSİYONLAR (Functions)
ans = ans =
0.5000 0.5000
>> fix(3.47856) >> fix(3.51856) >> ceil(3.51856) >> ceil(3.47856) >> ceil(1.9999)
3 3 4 4 2
>> floor(3.01856) >> floor(3.47856) >> floor(3.51856) >> round(3.51586) >> round(3.47586)
3 3 3 4 3
ÖRNEKLER
>> abs(4-5) >> abs(-5) >> abs(3+5i) >> sqrt(25)
ans = ans = ans =
ans =
1 5 5.8310
5
1 5 6 7 9 1 3 24 7 24 1 9
1 9 63 1 1 3 5 6 7 7 9 24
BİLGİSAYAR TEMELLERİ
VE
PROGRAMLAMAYA GİRİŞ
DERS 3
Doç.Dr. HAKAN ALP
• Kaynaklar: Prof.Dr. Davut AYDOĞAN, «Bilgisayar Temelleri ve Programlamaya Giriş Ders Notları»
• Yard. Doç.Dr. Ertan PEKŞAN «Programlama Ders Notları» Kocaeli Üniversitesi Jeofizik Müh. Bölümü
• Brain R. Hunt, Ronal L. Lipsman ve Jonathan M. Rosenberg «A Guide to MATLAB» Cambridge
University Press, 1995
• Doğan, U., (2009), Temel Bilgisayar Bilimleri Ders Notları, YTÜ, Lisans Ders Notları, İstanbul
DİZİLER (ARRAYS)
Dizi, sayısal ve metinsel değerler topluluğu olarak tarif edilebilir. Bir dizi, skaler, vektör, matris ya da sözcük olabilir.
Sayısal diziler (numeric array) : Çift duyarlıklı ve karmaşık sayıları ifade ederler.
ÖRNEK:
a=4, a=-25, a=23.65, a=2e3, a=3-2i, vb.
SKALER İŞLEMLER
2- VEKTÖRLER
n eleman sayısına sahip 1xn uzunluğunda diziye satır
vektörü, m eleman sayısına sahip mx1 uzunluğundaki diziye
ise sütun vektörü denir
• Kaynaklar: Prof.Dr. Davut AYDOĞAN, «Bilgisayar Temelleri ve Programlamaya Giriş Ders Notları»
• Yard. Doç.Dr. Ertan PEKŞAN «Programlama Ders Notları» Kocaeli Üniversitesi Jeofizik Müh. Bölümü
• Brain R. Hunt, Ronal L. Lipsman ve Jonathan M. Rosenberg «A Guide to MATLAB» Cambridge
University Press, 1995
• Doğan, U., (2009), Temel Bilgisayar Bilimleri Ders Notları, YTÜ, Lisans Ders Notları, İstanbul
B- Eşit Aralıklı Elemanlar Kullanılarak Vektör Oluşturmak
v= v1 = v2 = v3 =
1 2 3 4 5 1 2 3 4 7 6 5 4 3 2 1
1
2 >> sort(v3)
>> u=1:4
3
4 ans =
u=
1 2 3 4 5 6 7
1 2 3 4
>> uv=8:-1 >> uv=8:1
uv = uv =
uv = uv =
>> uv=8:15
1 4 7 10 13
uv = Empty matrix: 1-by-0
8 9 10 11 12 13 14 15
Matlab’ da lineer aralıklı vektör oluşturma işlemlerinde linspace ve logspace
fonksiyonlarından da yararlanılabilmektedir.
x1 ilk değer, x2 son değer ve n ise, ilk değer ile son değer arasındaki
nokta sayısını belirtir. Bu yazım formatında n parametresi belirtilmez
ise, ilk değer ile son değer arası 100 eşit parçaya bölünerek X vektörü
üretilir.
>> x=linspace(1,50,10)
10 adet
x= 1.0000 6.4444 11.8889 17.3333 22.7778 28.2222 33.6667 39.1111 44.5556 50.0000
>> x=linspace(1,50)
1.0000 1.4949 1.9899 2.4848 2.9798 3.4747 3.9697 4.4646 4.9596 ………. 100 adet
x=
47.5253 48.0202 48.5152 49.0101 49.5051 50.0000
logaritmik aralığa sahip bir vektörü üretmek için kullanılır.
>> logspace(1,2,8)
ans =
10.0000 13.8950 19.3070 26.8270 37.2759 51.7947 71.9686 100.0000
>> logspace(3,5,3)
ans =
zeros
size
Matlab programlama dilinde vektörlerle işlemler yapılırken size ve length fonksiyonlarından yararlanarak
vektör bilgilerine ulaşılabilmektedir.
x=rand(3,8) ;
>> x=rand(3,8) ;
>> length(x)
>> size(x)
ans =
ans =
8
3 8
BİLGİSAYAR TEMELLERİ
VE
PROGRAMLAMAYA GİRİŞ
DERS 5
Doç.Dr. HAKAN ALP
• Kaynaklar: Prof.Dr. Davut AYDOĞAN, «Bilgisayar Temelleri ve Programlamaya Giriş Ders Notları»
• Yard. Doç.Dr. Ertan PEKŞAN «Programlama Ders Notları» Kocaeli Üniversitesi Jeofizik Müh. Bölümü
• Brain R. Hunt, Ronal L. Lipsman ve Jonathan M. Rosenberg «A Guide to MATLAB» Cambridge
University Press, 1995
• Doğan, U., (2009), Temel Bilgisayar Bilimleri Ders Notları, YTÜ, Lisans Ders Notları, İstanbul
MATRİSLER
A matrisinin eleman sayısı mxn ile belirlenir. A(m,n) genel yazım biçimi;
A11 A22 A33 ...Amn vektörüne (dizisine) matrisin ana köşegeni adı verilir.
Matlab dilinde bir matrisin oluşturulması üç farklı yoldan birisi ile
yapılabilmektedir. Bunlar;
A- Köşeli Parantez Kullanarak Matris Oluşturma >> x=[2, 3, 3]
>> x=[2 3 3]
x=
x=
2 3 3
2 3 3
4
2
1
Matlab’ta matris 3 farklı formatta yazılabilir.
3
B- Utility Fonksiyonları ile Matris Oluşturma
>> g=-5+8*rand(3,4)
g=
eye fonksiyonu ile ana köşegen değerleri 1, diğerleri
2.6010 -1.1121 -1.3483 -1.4424 0 olan bir birim matris üretilir. Birim matris, genelde,
-3.1509 2.1304 -4.8520 -0.0765 I simgesi ile gösterilir
-0.1453 1.0968 1.5713 1.3355
ans = ans =
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
• Kaynaklar: Prof.Dr. Davut AYDOĞAN, «Bilgisayar Temelleri ve Programlamaya Giriş Ders Notları»
• Yard. Doç.Dr. Ertan PEKŞAN «Programlama Ders Notları» Kocaeli Üniversitesi Jeofizik Müh. Bölümü
• Brain R. Hunt, Ronal L. Lipsman ve Jonathan M. Rosenberg «A Guide to MATLAB» Cambridge
University Press, 1995
• Doğan, U., (2009), Temel Bilgisayar Bilimleri Ders Notları, YTÜ, Lisans Ders Notları, İstanbul
Matris Bilgi Alma Fonksiyonları
Bir matrisin determinantı, rankı, tersi, boyutu, köşegen elemanları vb. Bir A matrisi hakkında
bilgi alabilmek için gerekli olan fonksiyonların yazım formatları aşağıda verilmiştir.
A= ans =
>> det(A)
ans =
5
X= Y= Z= T= BB =
>> n=3;
>> m=4; 1 1 1 1 0 0 0 1 0 0 1 2 3 1
>> X=ones(n,m); 1 1 1 1 0 0 0 0 1 0 4 5 6 5
>> Y=zeros(m,n); 1 1 1 1 0 0 0 0 0 1 7 8 9 9
>> Z=eye(n); 0 0 0
>> T=[1 2 3;4 5 6 ;7 8 9];
>> BB=diag(T); H= >> eye(n,m) >> rank(T) >> eig(T)
>> v=[1 2 3 4];
>> H=diag(v); 1 0 0 0 ans = ans = ans =
0 2 0 0
0 0 3 0 1 0 0 0 2 16.1168
0 0 0 4 0 1 0 0 -1.1168
0 0 1 0 -0.0000
Matris İndeksleme İşlemleri
Matlab’ da iki nokta üst üste (:, kolon operatörü) işareti, matris indeksleme işlemlerinde önemli bir yer tutar.
A= ans = ans =
4 5 6 9 6
7 8 9
2 3 1 >> A(3)
ans =
A( 1)4 A(4)5 A(7)6
2 27 58 8 9
3 6 9
2 3 1
A= >> A(2,3) >> A(3,1)
>> A(:,3) >> A(:,1) >> A(:,4)
ans = ans = ??? Index exceeds matrix dimensions
4 5 6 ans = ans =
6 4
7 8 9
9 9 7
2 3 1 2
1 2
>> A(4,5)
??? Index exceeds matrix dimensions. .
>> A(1,:) >> A(3,:) >> A(6,:)
>> A(2,4) ans = ans = ??? Index exceeds matrix dimensions.
??? Index exceeds matrix dimensions. 4 5 6 2 3 1
ans = ans =
6 5 4 2 3 1
9 8 7 7 8 9
1 3 2 4 5 6
A=
4 5 6
7 8 9
>> max(A) >> min(A)
2 3 1
>> sort(A)
ans = ans =
ans =
2 3 1
7 8 9 2 3 1
4 5 6
7 8 9
>> sqrt(A)
ans =
>> 5*a
>> inv(a)
ans =
ans =
5 10 30
14.0000 18.0000 -17.0000 20 30 5
-9.5000 -12.0000 11.5000 25 40 30
1.0000 1.0000 -1.0000
BİLGİSAYAR TEMELLERİ
VE
PROGRAMLAMAYA GİRİŞ
DERS 7
Doç.Dr. HAKAN ALP
• Kaynaklar: Prof.Dr. Davut AYDOĞAN, «Bilgisayar Temelleri ve Programlamaya Giriş Ders Notları»
• Yard. Doç.Dr. Ertan PEKŞAN «Programlama Ders Notları» Kocaeli Üniversitesi Jeofizik Müh. Bölümü
• Brain R. Hunt, Ronal L. Lipsman ve Jonathan M. Rosenberg «A Guide to MATLAB» Cambridge
University Press, 1995
• Doğan, U., (2009), Temel Bilgisayar Bilimleri Ders Notları, YTÜ, Lisans Ders Notları, İstanbul
Matlab’ da program yazma işlemi iki yolla yapılabilmektedir.
close all
clear all
n=100;
dx=1/n;
x=0:dx:1;
y=sin(5*pi*x);
plot(x,y)
%title(');y=sin(5pix)
in grafigi');
%xlabel('x-ekseni');
%ylabel('y-ekseni');
%legend('sin');
%grid;
close all
clear all
n=100;
dx=1/n;
x=0:dx:1;
y=sin(5*pi*x);
plot(x,y);
title('y=sin(5pix) in grafigi');
xlabel('x-ekseni');
ylabel('y-ekseni');
%legend('sin');
%grid;
close all
clear all
n=100;
dx=1/n;
x=0:dx:1;
y1=sin(5*pi*x);
y2=cos(5*pi*x);
plot(x,y1,'--');
title('y=sin(5pix) ve y=cos(5pix) in
grafigi');
xlabel('x-ekseni');
ylabel('y-ekseni');
hold on;
plot(x,y2,‘r.‘);
legend('sin','cos');
grid;
close all
clear all
n=100;
dx=1/n;
x=0:dx:1;
y1=sin(5*pi*x);
y2=cos(5*pi*x);
subplot(2 1 1)
plot(x,y1,'--');
title('y=sin(5pix) in grafigi');
xlabel('x-ekseni');
ylabel('y-ekseni');
legend('sin');
grid;
subplot(2 1 2)
plot(x,y2,'.');
title(' y=cos(5pix) in grafigi');
xlabel('x-ekseni');
ylabel('y-ekseni');
legend('cos');
grid;
close all
clear all
clc
n=100;
dx=1/n;
x=0:dx:1;
y1=sin(5*pi*x);
y2=cos(5*pi*x);
%subplot(2,1,1)
subplot(1,2,1)
plot(x,y1,'--');
title('y=sin(5pix) in grafigi');
xlabel('x-ekseni');
ylabel('y-ekseni');
legend('sin');
grid;
%subplot(2,1,2)
subplot(1,2,2)
plot(x,y2,'.');
title(' y=cos(5pix) in grafigi');
xlabel('x-ekseni');
ylabel('y-ekseni');
legend('cos');
grid;
Input komutu
Bu fonksiyon, kullanıcıdan veri girişi
istendiği durumlarda kullanılır.
Örneğin:
boy=input(‘Boy’) seklinde kullanılır. Bizim
klavyeden girdiğimiz sayı boy değiskenine
atanacaktır.
Burada s takısı, giriş olarak bir karakter dizge girişini belirtir. 1. söz diziminde, kullanıcının
klavyeden yapacağı bir giriş için bekler ve girilen değeri X’ e döndürür. 2. söz diziminde ise,
girilen dizgeyi bir metin değişkeni olarak döndürür.
Şayet, girilen değerin bir alt satırda yazılması isteniyorsa, ikinci tırnak işaretinden önce \n denetim
karakteri kullanılmalıdır.
clc
clear all a satır sayısını giriniz4
close all a=
a=input(' a satır sayısını giriniz','s') 4
b=input('b sütün sayısını giriniz','s')
%a=input(' a satır sayısını giriniz\n') b sütün sayısını giriniz 2
%b=input(' b satır sayısını giriniz') b=
c=a+b 2
c=
102
clc
a satır sayısını giriniz alt satırda yazılması
clear all isteniyorsa
close all 4
%a=input(' a satır sayısını giriniz','s') a=
%b=input('b sütün sayısını giriniz','s') 4 \n denetim karakteri
a=input(' a satır sayısını giriniz\n') kullanılmalıdır
b=input(' b satır sayısını giriniz') b satır sayısını giriniz 2
c=a+b b=
2
c=
6
disp komutu
Bu kullanımı ile x değişkeninin değerinin (sayısal ya da metinsel) ekranda
görüntülenmesi için kullanılır.
a değerini giriniz 6
a=
h değerini giriniz 8
h=
Alan değeri
24
%üçgenin alanını hesaplayın %üçgenin alanını hesaplayın
clear all clear all
clc clc
a=input('a değerini giriniz') a=input('a değerini giriniz')
h=input('h değerini giriniz') h=input('h değerini giriniz')
Alan= (a*h)/2; Alan= (a*h)/2;
disp('Alan değeri') %disp('Alan değeri')
%disp(Alan) disp(Alan)
a= a=
6 6
h= h=
8 8
Alan değeri 24
>>
MATLAB/Sonuçların Görüntülenmesi
• Hesaplanan sonuçları görüntülemenin diğer bir yolu fprintf fonksiyonudur.
• fprintf(format, değer) şeklinde kullanılır.
• format – sunulacak bilginin şeklini, bu bilgiye ilişkin açıklamaları ve bu
açıklamaların nasıl bir şekilde sunulacağını belirleyen ifadelerden oluşur.
• değer – sunulacak bilgiyi içerir.
>> x=123.2;
>> fprintf('Islem sonucu %f bulunmustur. \n', x)
Islem sonucu 123.200000 bulunmustur.
>> x=123.2;
>> fprintf('Islem sonucu = %f \n', x)
Islem sonucu = 123.200000
21
MATLAB/Sonuçların Görüntülenmesi
>> x=123.2;
>> fprintf('Islem sonucu = %5.1f \n', x)
Islem sonucu = 123.2
Bir sonuç fprintf fonksiyonu ile yazıldıktan sonra bir diğeri yazılacaksa bunun komut
satırının neresine yazılacağı da bu fonksiyonda belirtilebilir. Bunun için kullanılan
karakterler:
Karakter Tanımı
\b backspace
\n Yeni satıra gönderir
\r Satır başına döndürür
\t Yatay Tab
24
>> a=100.25;
>> b=255.23;
>> fprintf('a değeri = %5.2f\r ve b değeri = %5.3f \n', a,b) Karakter Tanımı
a değeri = 100.25 \b backspace
ve b değeri = 255.230
\n Yeni satıra gönderir
\r Satır başına döndürür
>> a=100.25;
\t Yatay Tab
>> b=255.23;
>> fprintf('a değeri = %5.2f\b ve b değeri = %5.3f \n', a,b)
a değeri = 100.2 ve b değeri = 255.230
>> a=100.25;
>> b=255.23;
>> fprintf('a değeri = %5.2f\t ve b değeri = %5.3f \n', a,b)
a değeri = 100.25 ve b değeri = 255.230
• Kaynaklar: Prof.Dr. Davut AYDOĞAN, «Bilgisayar Temelleri ve Programlamaya Giriş Ders Notları»
• Yard. Doç.Dr. Ertan PEKŞAN «Programlama Ders Notları» Kocaeli Üniversitesi Jeofizik Müh. Bölümü
• Brain R. Hunt, Ronal L. Lipsman ve Jonathan M. Rosenberg «A Guide to MATLAB» Cambridge
University Press, 1995
• Doğan, U., (2009), Temel Bilgisayar Bilimleri Ders Notları, YTÜ, Lisans Ders Notları, İstanbul
KOŞUL DEYİMLERİ (Conditional statements)
Tüm bilgisayar dillerinde olduğu gibi Matlab programlama dilinde de karar verme aşamalarının
denetiminin büyük önemi vardır.
Koşul ifadeleri bir programda bir ya da daha fazla if, if else ve elseif deyimlerinden oluşabilir.
Unutulmamalıdır ki, bu deyimlerin her birinin son satırı end deyimi ile sonlandırılır. Koşul deyimlerinin
bulunduğu satırların sonunda çıkış yazdırmayan (;) işaretini kullanmaya gerek yoktur.
MATLAB/if,end yapısı
if (eğer) yapısı bir koşulun gerçekleşmesi durumunda bir işlemi yaptırmak için sıklıkla kullanılır. Bu ifade,
if koşul if koşul
if koşul
işlem işlem
işlem
else elseif
end
işlem işlem
end else
işlem
end
biçimlerindedir.
NOT: Bu şekilde kullanılan if/end yapısı ile sadece bir sınama yapılabileceği unutulmamalıdır.
Ancak, dikkat edilmesi gereken, her if, bir end deyimi ile sonlandırılmalıdır.
• Kaynaklar: Prof.Dr. Davut AYDOĞAN, «Bilgisayar Temelleri ve Programlamaya Giriş Ders Notları»
• Yard. Doç.Dr. Ertan PEKŞAN «Programlama Ders Notları» Kocaeli Üniversitesi Jeofizik Müh. Bölümü
• Brain R. Hunt, Ronal L. Lipsman ve Jonathan M. Rosenberg «A Guide to MATLAB» Cambridge
University Press, 1995
• Doğan, U., (2009), Temel Bilgisayar Bilimleri Ders Notları, YTÜ, Lisans Ders Notları, İstanbul
Örnek: Girilen bir sayının negatif olması durumunda, sayıyı doğal logaritmasıyla değiştiren bir kod düşünelim:
a= a=
>> >>
%üçgen alanını hesaplayan program %üçgen alanını hesaplayan program
clear all clear all
clc clc
a=input('a değerini giriniz'); a=input('a değerini giriniz');
if a>0 if a>0
else a=input('a değerini giriniz'); h=input('h değerini giriniz');
end if h<=0
h=input('h değerini giriniz'); h=input('h değerini giriniz');
if h>0 end
else Alan=(a*h)/2;
h=input('h değerini giriniz'); disp('Alan Değeri');
end disp(Alan)
Alan=(a*h)/2; end
disp('Alan Değeri');
disp(Alan)
sayi =
25
karekok =
5
Karekök değerimiz = 5.0000
>>
Eğer mantıksal ifade_1 doğru ise, Deyim_1’ de belirtilen
işlemler yürütülür.
• Kaynaklar: Prof.Dr. Davut AYDOĞAN, «Bilgisayar Temelleri ve Programlamaya Giriş Ders Notları»
• Yard. Doç.Dr. Ertan PEKŞAN «Programlama Ders Notları» Kocaeli Üniversitesi Jeofizik Müh. Bölümü
• Brain R. Hunt, Ronal L. Lipsman ve Jonathan M. Rosenberg «A Guide to MATLAB» Cambridge
University Press, 1995
• Doğan, U., (2009), Temel Bilgisayar Bilimleri Ders Notları, YTÜ, Lisans Ders Notları, İstanbul
DÖNGÜ (Loop) YAPILARI
Matlab programlama dilinde döngüler için for ve while deyimleri kullanılmaktadır.
for-end Döngüsü
• En genel kullanımları;
İşlem Bloğu
end
İşlem Bloğu
end
Döngü Nedir
• Program içeresinde bazı ifadelerin tekrarlanarak
yapılmasına döngü denilir.
For i=1:1:10
İşlem Bloğu 1
END
ÖRNEK:
for i= 1:5
i;x=i^3;
disp([i x]) %sayıların küplerini hesaplar
end clc;clear all;
for i= 1:5
x(i)=i^3;
end
sayı küpü
1 1 x=
2 8
3 27 1 8 27 64 125
4 64
5 125 >>
>>
Örnek
BAŞLA
Top=0
say=1 :1:100
DÖNGÜ
Top=Top+say
Top
SON
clc;
clear all;
Top=0;
for say=1:1:10;
Top=Top+say;
fprintf ('0-10 arasındaki sayıların toplamı %d dir.\n',Top)
end
Top
Top =
55
Klavyeden girilen sayıların ortalamasını alan Matlab kodunu yazınız
clear all;
clear all;
clc;
clc;
y=input('degerleri vektorel olarak gir');
y=input('degerleri vektorel olarak gir');
top=0;
top=0;
for i=1:length(y)
for i=1:length(y);
top=top+y(i)
top=top+y(i);
end
end
orta=top/length(y);
orta=top/length(y);
disp('ortalama=')
disp('ortalama=')
disp(orta)
disp(orta)
degerleri vektorel olarak gir[1 5 9]
top =
degerleri vektorel olarak gir[1 3 5 8 9 6 2]
1
ortalama=
top =
4.8571
6
top =
15
ortalama=
5
>>
%içiçefor yapısı %içiçefor yapısı
clear all; clc; clear all; clc;
disp('i değeri j değeri') disp('i değeri j değeri')
disp(' ---- ----') disp(' ---- ----')
for i=1:2 for i=1:3
for j=1:3 for j=1:2
disp([i j]) disp([i j])
end end
end end
1 2 1 2
1 3 2 1
2 1 2 2
2 2 3 1
2 3 3 2
Klavyeden girilen sayıların en küçüğünü bulan Matlab
kodunu yazınız clear all; clc
x=input('degerleri vektorel olarak gir\n');
clear all; clc
ek=x(1);
x=input('degerleri vektorel olarak gir\n’);
for i=2:length(x);
ek=x(1);
if x(i)<ek ;
for i=2:length(x);
ek=x(i);
if x(i)<ek ;
sira=i;
ek=x(i);
end
end
end
end
disp(['en küçük =' num2str(ek)] )
disp(['en küçük =' num2str(ek)] )
disp(['sira numarasi=' num2str(sira)])
• Kaynaklar: Prof.Dr. Davut AYDOĞAN, «Bilgisayar Temelleri ve Programlamaya Giriş Ders Notları»
• Yard. Doç.Dr. Ertan PEKŞAN «Programlama Ders Notları» Kocaeli Üniversitesi Jeofizik Müh. Bölümü
• Brain R. Hunt, Ronal L. Lipsman ve Jonathan M. Rosenberg «A Guide to MATLAB» Cambridge
University Press, 1995
• Doğan, U., (2009), Temel Bilgisayar Bilimleri Ders Notları, YTÜ, Lisans Ders Notları, İstanbul
while – end Döngüsü
END
while-end Döngüsü
• Bir şart sağlandığı sürece program içersindeki bir
grup işlemin tekrarlanması istendiğinde kullanılır.
• While deyiminden sonra yazılan mantıksal
sınamanın cevabı doğru (1) olduğu sürece while-
end arasındaki işlemler tekrarlanır. end
deyiminden while deyimine geri dönülür ve
mantıksal sınama tekrar kontrol edilir.
while-end Döngüsü
• for-end deyiminden farklı olarak istenen sayıda değil,
belirli bir durum doğru olduğu sürece işlemlerin
tekrarlanması sağlanmış olur.
• While deyiminin yanındaki mantıksal sınama cevabı
yanlış (0) olduğunda ise işlemler yapılmadan end
deyiminden sonraki işleme geçilir.
• While-end döngüsünden çıkmanın diğer bir yolu ise
break komutudur. Bu komut çalışmakta olan döngüyü
sonlandırarak, end deyiminden sonraki işleme gider.
'0-10 arasındaki sayıların '0-10 arasındaki sayıların
toplamı for döngüsü toplamı While döngüsü
clc 1
clc; clear all
clear all; a=1; 3
Top=0; b=10;
for say=1:1:10; Top=0; 6
Top=Top+say; while a<=b;
end Top=Top+a; 10
Top a=a+1;
disp(Top) 15
end
Top = 21
55 28
36
45
55
>>
Burada, giriş
ifadesi her bir
case ile
karşılaştırılmak
tadır. Dikkat
edilmesi
gereken nokta,
her bir case
değerinin, ayrı
ayrı satırlarda
olmasıdır.
clc; clear all
case 2
'silindir gravitesi'
otherwise
'dikkat 1 veya 2 giriniz'
end
anahtar kelimeyi gir (1-2) giriniz anahtar kelimeyi gir (1-2) giriniz anahtar kelimeyi gir (1-2) giriniz
1 2 3
x değerini giriniz
6
x değerini giriniz
5
ortalama değer
5.5000
Kullanıcının girdiği sayının faktöriyelini hesaplayan fonksiyonu While-end
kullanarak yazınız
clc; clear all; function fakto=faktoriyel (n)
fakto=1;
x=input('faktoriyeli alınacak rakam giriniz ') sayac=0;
while sayac<n;
faktoriyel=faktoriyel2(x); sayac=sayac+1;
fakto=fakto*sayac;
disp('faktöriyel değeri') end
disp(faktoriyel)
faktoriyel.m
dosyası kaydedidi.
Fonksiyon m-dosyalarının hazırlanmasında göz önünde bulundurulması gereken önemli noktalar:
• Fonksiyon m-dosyalarının ilk satırı fonksiyonun tanıtım satırıdır. Daha sonra tanıtım satırları (% işareti
ile) ve fonksiyonun gövdesi gelir.
• Fonksiyon m-dosyalarında ilk satır kesinlikle function komutu ile başlamalıdır. Şayet, function komutu ile
başlayan bir satır yok ise, düz yazı m-dosyası olarak algılanır.
• Fonksiyon m-dosyaları fonksiyon_adı ile saklanır ve istendiğinde aynı adla çağrılarak işleme konur. Yanı,
fonksiyonun adı ile m-dosyasının adı aynı olmalıdır.
• Fonksiyon m-dosyaları ana program içerisinden istendiği durumlarda pek çok kez çağrılabilir ve istenen
aynı işlemler yaptırılabilir.
• Fonksiyon m-dosyası girişleri ve çıkışları, çağrıldığı andaki veri girişleri ile aynı türden olmalı (sayısal,
string, karmaşık), fakat aynı karakterler ile ifade edilmesi zorunluluğu yoktur.
• Örneğin; fonksiyon m-dosyasının çağrıldığı andaki bir değişken ismi a ise, bu değişken fonksiyon m-
dosyası ilk satırında c karakteri ile tanımlanabilir.
• Bundan sonra fonksiyon m dosyası içerisinde a değişkeni c değişkenine dönüşmüş şekli ile işlem görür.