Büyüktür >= Büyük veya eşittir < Küçüktür <= Küçük veya eşittir 5<6 → <=6 → ==6 → >6 6<=6 2 Ayrık Yapılar Matlab Notları"> Büyüktür >= Büyük veya eşittir < Küçüktür <= Küçük veya eşittir 5<6 → <=6 → ==6 → >6 6<=6 2 Ayrık Yapılar Matlab Notları">

Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Ayrık Yapılar Matlab Notları

Benzer bir sunumlar


... konulu sunumlar: "Ayrık Yapılar Matlab Notları"— Sunum transkripti:

1 Ayrık Yapılar Matlab Notları
MATLAB’ de Programlama Hafta: 6 1 Ayrık Yapılar Matlab Notları

2 Ayrık Yapılar Matlab Notları
MATEMATİKSEL VE MANTIKSAL OPERATÖRLER Program dallandıran bir çok yapıda, işlemler, sonucun "doğru" (1) veya "yanlış" (0) olması durumları ile kontrol edilir. MATLAB' da 'doğru' veya 'yanlış' ifadeleri ile sonuçlar üreten iki çeşit operatör vardır. Bunlar matematiksel ve mantıksal operatörlerdir. Matematiksel Karşılaştırma Operatörleri Bu operatörler iki değişkenin değer bakımından karşılaştırmasını yaparlar ve üretilen sonucun doğru (1) veya yanlış (0) durumuna göre sonuçlar üretirler. Genel kullanımları a1 işlem a2 şeklindedir. Burada a1 ve a2, aritmetik değerler, değişkenler veya karakter dizileri olabilir, "işlem" ise, söz ettiğimiz matematiksel kıyaslama operatörlerinden biri olabilir. Eğer a1 ve a2 arasındaki ilişki operatörün belirttiği şekilde ise işlem, 1 değerini alır. Eğer operatörün belirttiği durumdan farklı bir durum söz konusu ise işlem 0, değerini alır. == Eşittir ~= Eşit değildir > Büyüktür >= Büyük veya eşittir < Küçüktür <= Küçük veya eşittir 5<6 5<=6 5==6 5>6 6<=6 2 Ayrık Yapılar Matlab Notları

3 Ayrık Yapılar Matlab Notları
Eşitlik durumlarında verilen işaret iki adet eşittir "==" işaretinden oluşur. Oysa değişken atamalarında kullandığımız eşittir "=", bir tanedir. Bu ikisi birbirlerinden farklı operatörlerdir. "==" operatörü, kıyaslama durumlarında kullanılır ve mantıksal bir sonuç üretir. "Eşit ise", "eşit midir?" şeklindeki durumlarda kullanılır. "=" işareti ise, bir değişkene bir değer atamada kullanılır, örneğin MATLAB komut penceresinde; 3=5 yazdığımızda; program hata üretir. Oysa 3==5 yazdığımızda bu “ 3, 5'e eşit midir? " anlamına gelir, kıyaslama yanlıştır ve MATLAB bu durum için “0” cevabını üretir. Yeni başlayanlar için bir karşılaştırma durumunda tek eşittir "=" işareti kullanmak, sık yapılan bir hatadır. >> 3 = 5 ??? 3=5 ! Error: Missing operator, comma, or semicolon. >> 3==5 ans = >> x=0; >> y=sin(pi); şeklinde yapılan iki değişken atamasını takiben yapılan x==y karşılaştırmasının sonucu olarak 1 cevabı beklenirken, 0 cevabı alınır. MATLAB, bu iki değeri farklı olarak algılamıştır. Çünkü MATLAB'da sin (pi) değeri 0'a eşit değildir, sin(pi), yuvarlamadaki farklılıktan ötürü e-016 değerine sahiptir ve 0'a eşit değildir. Yani teorik olarak birbirine eşit iki değer, aslında farklı sayılara tekabül etmektedir. 3 Ayrık Yapılar Matlab Notları

4 Ayrık Yapılar Matlab Notları
>>x=0; >>y=sin(pi); >>x==y ans = 0 Sık yapılabilecek diğer bir hata da karşılaştırma operatörlerinin aritmetik operatörlerden daha sonra değerlendirildikleri durumunu ihmal etmektir. Yani parantezlerden yararlanılmadığı durumlarda bile aritmetik işlemler, öncelikle yapılır. 2+8 > 5+9 Bu iki durumda da MATLAB'ın üreteceği cevap 0'dır. (2+8) > (5+9) Mantıksal Operatörler Bu operatörler, bir veya iki mantıksal anlamı olan ve mantıksal bir sonuç üreten operatörlerdir. Üç çift mantık operatörü vardır. Bunlar; "AND", "OR" ve "XOR" dur. Bu operatörler çiftlidir. Diğer bir mantık operatörü tekli yapıya sahip olan "NOT" operatörüdür. Çiftli yapıdaki operatörlerin genel kullanımı a işlem b şeklinde iken tekli bir operatör olan "NOT" genel kullanımı işlem a şeklindedir. Burada a ve b değişkenler iken işlem, aşağıdaki mantık operatörlerinden biridir, a ile b'nin arasındaki ilişki, operatörün belirttiği şekilde ise sonuç 1, eğer değilse sonuç 0 olur. 4 Ayrık Yapılar Matlab Notları

5 Ayrık Yapılar Matlab Notları
Operatörler Komut karşılığı İşlevleri & AND VE | OR VEYA xor XOR Özel Veya ~ NOT Değil Örnek: >> k=4; m=5; >> (k>6) and (m<8) HATALI YAZIM ??? (k>6) and (m<8) | Error: Missing operator, comma, or semicolon. >> (k>6) & (m<8) ans = 5 Ayrık Yapılar Matlab Notları

6 Mantıksal Fonksiyonlar
Fonksiyonun özelliği Any(x) X vektörü içinde herhangi bir eleman sıfırdan farklı ise bu fonksiyon 1 değerini almakta, aksi halde 0 değerini almaktadır. Eğer x bir matris ise x’in her bir sütunu ayrı ayrı incelenir. All(x) X vektörü içindeki tüm elemanlar sıfırdan farklı ise bu fonksiyon 1 değerini almakta, aksi halde 0 değerini almaktadır. Eğer x bir matris ise x’in her bir sütunu ayrı ayrı incelenir. Find(x) X bir vektör ise bu komut ile x’in sıfır olmayan elemanlarının sırası oluşturulan vektöre yazılır. X matrisi sütun sütun taranarak sıfır olmayan elemanların sırasını sütun vektör olarak yazar. İsempty(x) Eğer x matrisi boş ise 1 aksi halde 0 üretir. isequal(x,y) X ve Y matrislerinin birbirlerine eşit olup olmadığını kontrol eder. Eğer eşit ise 1 aksi halde 0 üretir. 6 Ayrık Yapılar Matlab Notları

7 Ayrık Yapılar Matlab Notları
Kontrol yapıları IF Switch For Loop While Loops 7 Ayrık Yapılar Matlab Notları

8 Ayrık Yapılar Matlab Notları
if Şartlı deyimi Bir mantıksal ifadeyi kontrol ederek bunun sonucuna göre mümkün seçeneklerden birini icra edebilen bir komuttur. IF Şartının Üç şekli vardır IF Şart 1. işlem 2. işlem 3. işlem : END IF Şart ELSEIF … ELSE END IF Şart 1.işlem; ELSE 2. işlem END 8 Ayrık Yapılar Matlab Notları

9 Ayrık Yapılar Matlab Notları
Örnek: Girilen (okutulan) x ve y değerlerine göre aşağıdaki sonuc değerini bulan programı yazınız. (if4.m) x>y ise sonuc= (x-y) x=y ise sonuc=(x-y)7 Değilse sonuc=x+y x=input('x değeri='); y=input('y değeri='); if x>y sonuc=sqrt(x-y) elseif x==y sonuc=(x-y)^7 else sonuc=x+y end ÇÖZÜM: 9 Ayrık Yapılar Matlab Notları

10 Ayrık Yapılar Matlab Notları
Disp: Ekrana mesaj yazdırmak için kullanılan komuttur. Disp(‘yazdırılacak mesaj’); Örnek: Girilen iki sayının oranını bulan ve payda sıfır girildiğinde ekrana “üzgünüm sıfıra bölüm hatası var” mesajı yazdıran program. (if5.m) clear N = input(‘payı giriniz: '); D = input(‘paydayı giriniz: '); if D==0 Disp(‘üzgünüm, sıfıra bölüm hatası var‘) else oran = N/D end 10 Ayrık Yapılar Matlab Notları

11 Ayrık Yapılar Matlab Notları
Örnek: AX2+Bx+C=0 ikinci derece denklemin köklerini hesaplayan aşağıdaki algoritmayı MATLAB komutları programlayınız. (if6.m) A1: Basla A2: A,B,C değerlerini gir A3: delta=B^2+4ac değerini hesapla A4: delta<0 ise A6’ya git, değilse A5’e git A5: delta>0 ise A7’e git, değilse A8’e git A6: ‘kökler kompleks’ yaz A7:’kökler reel’ yaz A8: ‘katlı kök hali’ yaz A9: A10: A11:X1 değerini yaz A12: X2 değerini yaz A13: Son 11 Ayrık Yapılar Matlab Notları

12 Ayrık Yapılar Matlab Notları
Çözüm: a=input(‘x^2 li terimin katsayılarını giriniz=‘); b=input(‘x li terimin katsayılarını giriniz=‘); c=input(‘Sabit terimi giriniz=‘); delta=b^2-4*a*c; if delta<0 s=‘kökler kompleks’; disp(s); elseif delta>0 disp(‘kökler Reel’) elseif delta ==0 disp(‘katli kök hali’) end x1=(-b+sqrt(delta))/(2*a); x2=(-b-sqrt(delta))/(2*a); x1=num2str(x1); x2=num2str(x2); fprintf(‘1.kök:%s\n’,x1); fprintf(‘2.kök:%s\n’,x2); 12 Ayrık Yapılar Matlab Notları

13 Ayrık Yapılar Matlab Notları
Örnek: Girilen ay’a göre gün sayısını hesaplayan program. (if7.m) clear ay = input(‘Kaçınçı ayın gün sayısını öğrenmek istiyorsunuz (1-12)= ' ); if ay==1 | ay==3 | ay ==5 | ay==7 | ay==10 | ay==12 disp(‘Bu Ay 31 günden oluşur‘) else if ay==2 disp(' Bu Ay 28 günden oluşur‘) else disp(' Bu Ay 30 günden oluşur‘) end 13 Ayrık Yapılar Matlab Notları

14 Ayrık Yapılar Matlab Notları
Else if ve elseif if A x=a else if B x=b if C x=c x=d end if A x=a elseif B x=b elseif C x=c else x=d end 14 Ayrık Yapılar Matlab Notları

15 Ayrık Yapılar Matlab Notları
Else if ve elseif Else if yapısında else if’ lerin her biri end ile sonlandırılması gereken yeni bir iç içe if’i gösterir. Elseif yapısı ise yalnızca bir tane end ile sonlandırılan lineer sıralı koşul ifadesini gösterir 15 Ayrık Yapılar Matlab Notları

16 Ayrık Yapılar Matlab Notları
Switch Şartlı Deyimi Switch (durum) case (durum1) işlemler case (durum2) . otherwise ►isteğe bağlı end 16 Ayrık Yapılar Matlab Notları

17 Ayrık Yapılar Matlab Notları
Örnek: 1 ile 10 arasında girilen sayıların tek ya da çift olduğunu ekrana yazdıran programı yazınız. (switch1.m) sayi=input(‘1 ile 10 arasında bir sayı giriniz:’); switch (sayi) case {1,3,5,7,9} disp(‘Bu sayı Tektir’) case {2,4,6,8,10} disp(‘Bu sayı Çifttir’) otherwise disp(‘Sayı 1 ile 10 arasının dışında’) end 17 Ayrık Yapılar Matlab Notları

18 Ayrık Yapılar Matlab Notları
FOR DÖNGÜSÜ Bir çok uygulamada belirli işlemlerin tekrar tekrar gerçekleştirilmesi gerekir. Programlamada bu işlemler grubunu çok sayıda tekrar etmek imkanı sağlayan yapılara ÇEVRİM, DÖNGÜ veya LOOP denir. ►Çevrim, bir tekrarlı işlem yapısıdır. Çevrimdeki işlem sayısını önceden belirleyerek ve bu sayıya ulaşıp ulaşmadığını bir sayaç ile denetleyerek gerçekleştirilen çevrim yapıları Çevrimin sona ermesini bir koşula bağlı olarak kontrol eden çevrim yapıları 18 Ayrık Yapılar Matlab Notları

19 Ayrık Yapılar Matlab Notları
for döngüsünün genel yapısı for döngü değişkeni = başlangıç : bitiş komutlar end Örnek: 1’den 20’ye kadar sayıların toplamını bulan program. (for1.m) clear Toplam = 0 for x = 1:20 toplam = toplam + x end toplam 19 Ayrık Yapılar Matlab Notları

20 Ayrık Yapılar Matlab Notları
Örnek: Dışardan girilen sayıya kadar olan sayıların toplamını ve çarpımını bulan program. (for2.m) clear sayi=input(‘lütfen bir sayı giriniz=‘) toplam=0 carpim=1 for i=1:sayi toplam=toplam+i carpim=carpim*i end toplam carpim 20 Ayrık Yapılar Matlab Notları

21 Ayrık Yapılar Matlab Notları
fprintf Fonksiyonu Genel kullanımı: fprintf(‘ekrana basılacak açıklama %f \n’, deger) Burada %f : Değerin reel sayı olduğunu gösterir \n : Bir satır atlatır deger : Ekrana yazılması istenen sayısal değişkenin adı Diğer yazım biçimleri: %g : Tamsayı değeri basar %e : Üstel değer basar 21 Ayrık Yapılar Matlab Notları

22 Tek boyutlu bir dizinin değerlerinin girilmesi (okutulması)
Aşağıda 1x5 boyutunda (1 satır ve 5 sütun) bir dizinin elemanlarını giren MATLAB programı aşağıda verilmiştir. (for3.m) for i=1:5 fprintf('A(%d)=',i) A(i)=input(‘ '); end A 22 Ayrık Yapılar Matlab Notları

23 Ayrık Yapılar Matlab Notları
Örnek: N elemanlı bir dizinin N değeri ve elemanları okutulacak (dışardan girilecek) ve bu vektörün normunun karesi (elemanlarının karelerinin toplamı) bulunacaktır. (for4.m) N=input('N deðerini giriniz='); toplam=0; for i=1:N fprintf('A(%d)=',i); A(i)=input(''); end toplam=toplam+A(i)*A(i); fprintf('A matrisinin normunun karesi=%f', toplam) 23 Ayrık Yapılar Matlab Notları

24 İKİ BOYUTLU BİR DİZİNİN DEĞERLERİNİN GİRİLMESİ (OKUTULMASI)
Aşağıda 2x3 boyutunda (2 satır ve 3 sütun) bir dizinin elemanlarını giren MATLAB programı aşağıda verilmiştir. (for5.m) for i=1:2 for j=1:3 fprintf('B(%d,%d)=',i,j) B(i,j)=input(''); end B 24 Ayrık Yapılar Matlab Notları

25 Ayrık Yapılar Matlab Notları
İçiçe FOR döngüleri (for6.m) clear Toplam=0 for i = 1:5 Toplma = 0 for j = 1:5 toplam = toplam + j end Carpım = toplam * i 25 Ayrık Yapılar Matlab Notları

26 Ayrık Yapılar Matlab Notları
Örnek: Çarpım tablosunu veren bir program yazınız. (for7.m) for a=1:10 for b=1:10 carpim=a*b; fprintf(‘%d * %d = %d\n’, a, b, carpim) end 26 Ayrık Yapılar Matlab Notları

27 Ayrık Yapılar Matlab Notları
Örnek: Bir vektörün negatif elemanlarını sayıp sonucu b adlı değişkene, sıfır ve pozitif elemanlarını sayıp c adlı değişkene atayan program.(for8.m) clc a=[ ]; b=0; c=0; for k=1:10 if a(k)<0 b=b+1; else c=c+1; end b c 27 Ayrık Yapılar Matlab Notları

28 Ayrık Yapılar Matlab Notları
While Döngüsü Önceden belirlenmiş belli bir durum gerçekleşinceye kadar gereken sayıda tekrar edilen ifadeleri içerir. Genel Kullanımı: While durum ifade_1 ifade_2 ifade_n end 28 Ayrık Yapılar Matlab Notları

29 Ayrık Yapılar Matlab Notları
Örnek: (while1.m) a=5 while a<10 a=a+1 end Örnek: Ekrana bir ifadeyi 10 kez yazan bir programı WHILE döngüsü kullanarak yazınız. (while2.m) a=0 while a<10 a=a+1; disp(‘Bilgisayar Mühendisliği Bölümü') end 29 Ayrık Yapılar Matlab Notları

30 Ayrık Yapılar Matlab Notları
Break ifadesi FOR ve WHILE döngülerine ilaveten bir program akışını kontrol edebilmenin diğer bir yolu break ifadesini kullanmaktır. Break ifadesini döngü gövdesi içerisinde kullanmak, döngünün durmasını ve döngüden sonra gelen ilk ifade veya komutun işletilmesini sağlar. (while3.m) Örnek: clc x=input('x değerini giriniz='); for j=2:1000 j if j==x break end fprintf('j= %g \n', j) disp('döngü sonlandırıldı') 30 Ayrık Yapılar Matlab Notları

31 Ayrık Yapılar Matlab Notları
İçiçe while döngüsü (while4.m) while 1 x=input(‘x değerini giriniz=‘); if x<=0 break end while x>1 if mod(x,2)==0 x=x/2 else x=3*x+1 31 Ayrık Yapılar Matlab Notları


"Ayrık Yapılar Matlab Notları" indir ppt

Benzer bir sunumlar


Google Reklamları