Ayrık Yapılar Matlab Notları

Slides:



Advertisements
Benzer bir sunumlar
MATLAB MATrix LABoratory Hazırlayan: S. Murat BAĞDATLI.
Advertisements

Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
BPR151 ALGORİTMA VE PROGRAMLAMA - I
EKRAN ÇIKTISI.
Bilgisayar Programlama Güz 2011
ORAN VE ORANTI ÖZGE ALTUNTAŞ.
Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
NOKTA, DOĞRU, DOĞRU PARÇASI, IŞIN, DÜZLEMDEKİ DOĞRULAR
Bilgisayar Programlama (Yrd. Doç. Dr. İbrahim ASRİ)
ENF1012 MATLAB’a Giriş.
Bilgisayar Programlama Güz 2011
Makine Müh. & Jeoloji Müh.
Algoritma ve Akış Diyagramları
switch - case Yapısı Döngü Yapıları
2) Sayısal Hesaplamalarda Gerek Duyulabilecek Matlab İşlemleri
MATLAB’de Diziler; Vektörler ve MAtrisler
MATLAB’İN SAYI YUVARLAMA FONKSİYONLARI
MATLAB’ de Programlama
FONKSİYONLAR ve GRAFİKLER
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Algoritma ve Akış Diyagramları
MATLAB’ de Programlama XII Hafta 12 Matlab Ders Notları.
ARALARINDA ASAL SAYILAR
Yapısal Program Geliştirme – if, if-else
Program Kontrol İfadeleri
MATRİSLER ve DETERMİNANTLAR
Makine Müh. & Jeoloji Müh.
Bilgisayar Programlama (Yrd. Doç. Dr. İbrahim ASRİ)
5. HAFTA
Görsel C# ile Windows Programlama
4. HAFTA Mart 2010.
Bilgisayar Programlama
Operatörler ve Denetim Yapıları
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Tam sayılarda bölme ve çarpma işlemi
DERS 2 MATRİSLERDE İŞLEMLER VE TERS MATRİS YÖNTEMİ
Bilgisayar Programlama Güz 2011
BPR151 ALGORİTMA VE PROGRAMLAMA - I
HABTEKUS' HABTEKUS'08 3.
MATLAB’ de Programlama
Akış Kontrol Mekanizmaları
Chapter 6: Using Arrays.
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
BM-103 Programlamaya Giriş Güz 2014 (7. Sunu)
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
BM-103 Programlamaya Giriş Güz 2014 (8. Sunu)
MATLAB’te Döngüler.
RASYONEL SAYILARLA TOPLAMA ve ÇIKARMA İŞLEMLERİ
DOĞRUSAL DENKLEM SİSTEMLERİ ve MATRİSLER
BM-103 Programlamaya Giriş Güz 2014 (4. Sunu)
CEBİRSEL İFADELERİ ÇARPANLARINA AYIRMA
Yard. Doç. Dr. Mustafa Akkol
PROGRAM DENETİM DEYİMLERİ
4. KONTROL VE DÖNGÜ KOMUTLARI
BM-103 Programlamaya Giriş Güz 2014 (9. Sunu)
MATLAB’ de Programlama
MATLAB’ de Programlama
Bilgisayar Programlama Güz 2011
2. HAFTA 2. Hafta.
BM-103 Programlamaya Giriş Güz 2012 (3. Sunu)
SAYISAL ANALİZ Doç.Dr. Cüneyt BAYILMIŞ.
Sayısal Analiz / Uygulama
5. HAFTA Mart Discussion: comp.soft-sys.matlab An unmoderated newsgroup that focuses on the.
BİLGİSAYAR PROGRAMLAMA DERSİ 4. DERS NOTU Konu: M-dosya yapısı ve Kontrol Yapıları 1.
BİLGİSAYAR PROGRAMLAMA DERSİ 6. DERS NOTU Konu: Matlab’ de Diziler ve Matrisler.
Algoritma ve Akış Şemaları
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler
BM-103 Programlamaya Giriş Güz 2016 (5. Sunu)
Discussion: comp.soft-sys.matlab
Sunum transkripti:

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

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 → 1 5<=6 → 1 5==6 → 0 5>6 6<=6 2 Ayrık Yapılar Matlab Notları

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ü 1.2246e-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ı

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ı

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ı

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ı

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

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

İ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ı

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ı

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ı

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=[0.3 2 -1 4 -5 0.1 8 -3.4 7 -2.3]; 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ı

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ı

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ı

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ı

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ı