MATLAB ILE PROGRAM YAZMAK

Benzer belgeler
BİLGİSAYAR PROGRAMLAMA DERSİ

BİLGİSAYAR PROGRAMLAMA DERSİ

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

GÖRÜNTÜ İŞLEME DERS-3

Bilgisayar Programlama

Fen ve Mühendislik Uygulamaları ile MATLAB

disp VEYA fprintf KOMUTLARIYLA EKRANA MESAJ YAZDIRMA

GÖRÜNTÜ İŞLEME DERS-3

BMT 101 Algoritma ve Programlama I 7. Hafta. Yük. Müh. Köksal Gündoğdu 1

MATLAB de. Programlama. Kontrol Yapıları. Döngü Yapıları. Doç. Dr. İrfan KAYMAZ Matlab Ders Notları

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK

DÖNGÜLER BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA DENEY-4 FÖYÜ GİRİŞ LABORATUARI.

BM202 SAYISAL ÇÖZÜMLEME

Erzurum Teknik Üniversitesi Mühendislik Mimarlık Fakültesi Bilgisayar Programlama Dersi Ödevi Soru

BİLGİSAYAR PROGRAMLAMA DERSİ

GÖRÜNTÜ İŞLEME MATLAB DERS-3

Algoritma ve Akış Diyagramları

Fen ve Mühendislik Uygulamalarında MATLAB

BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI

k ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir.

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK

BİL-142 Bilgisayar Programlama II

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 5. Bölüm Karar ve Çevrim Kontrol Yapıları

EŞİTLİK KISITLI TÜREVLİ YÖNTEMLER

Ders 6: Karşılaştırma Deyimleri

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

HSancak Nesne Tabanlı Programlama I Ders Notları

ALGORİTMA VE PROGRAMLAMA I

Java da İşleçler, Ders #3 (4 Kasım 2009)

Nesne Yönelimli Programlama

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

Ders 7: Döngüler. Giriş. 7.1 while Döngüsü

BİLGİSAYAR PROGRAMLAMA MATLAB

ÖDEV (Vize Dönemi) CEVAPLAR. 1. Ekrana Merhaba Dünya! yazdıran algoritmanın akış diyagramını çiziniz ve sözde kod olarak yazınız.

PROGRAMLAMA DİLLERİ I


BÖLÜM 2: ALGORİTMALAR

Bilgisayar Programlama MATLAB

ALGORİTMA VE PROGRAMLAMA I

3. KOŞUL YAPILARI 3.1. IF YAPISI 2

C PROGRAMLAMA YRD.DOÇ.DR. BUKET DOĞAN PROGRAM - ALGORİTMA AKIŞ ŞEMASI

Örnek bir Algoritma. Örneğimiz bir insanın evden çıkıp işe giderken izleyeceği yolu ve işyerine girişinde ilk yapacaklarını tanımlamaktadır.

MATLAB/Programı Dallandıran İfadeler

Döngüler - Loops 4/9/2010. ENF-102 Jeoloji Giriş. Sayaç kontrollü bir döngüdeki temel öğeler. Sayaç (counter) Kontrollü Döngüler.

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK

AKIŞ ŞEMASI AKIŞ ŞEMASI AKIŞ ŞEMASI ŞEKİLLERİ GİRİŞ

Algoritmalar ve Programlama. Algoritma

Her Select Case bloğu, mutlaka End Select ile bitmek zorundadır.

Program akıģı sırasında belirtilen satır numaralı yere gitmek için kullanılır. Genel formu: [<satır numarası>] GOTO <satır numarası 1> GOTO n

Fonksiyonlar (Altprogram)

Bilgisayar Programlama MATLAB

BLG 1306 Temel Bilgisayar Programlama

ALGORİTMALAR. Turbo C Bilgisayarda Problem Çözme Adımları. Bilgisayarda Problem Çözme Adımları.

4- ALGORİTMA (ALGORITHM)

BİLGİSAYAR PROGRAMLAMA DERSİ

4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları

FBEB-512 C++ ile Nesne Tabanlı Programlama Güz 2009 (1. Hafta) (Yrd. Doç. Dr. Deniz Dal)

MATLAB a GİRİŞ. Doç. Dr. Mehmet İTİK. Karadeniz Teknik Üniversitesi Makine Mühendisliği Bölümü

BMT 101 Algoritma ve Programlama I 3. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1

İnternet Programcılığı Dersi 2.Dönem Ders Notu

Döngü Komutları. Komutu. while Komutu Diğer Operatörler Bileşik Komut for Komutu. İçiçe Döngüler break ve continue Komutları

PROGRAMLAMAYA GİRİŞ VE ALGORİTMA «YTÜROK» EĞİTMEN:REHA ÖZGÜR ŞİMŞEK

Programlamaya Giriş. Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi.

Microsoft Office Excel 2007

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

MatLab. Mustafa Coşar

Algoritma ve Programlama: Karar Yapıları ve Döngüler

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

I=[1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1] % 4x4 lük birim matris

YUVARLAMA FONKSİYONLARI

MatLab. Mustafa Coşar

PROGRAMLAMA ve YAZILIM. Sayısal Analiz Yrd.Doç.Dr. Zekeriya PARLAK

Döngüler - Loops 4/13/2011. ENF-102 Jeoloji Sayaç kontrollü bir döngüdeki temel öğeler. Sayaç (counter) Kontrollü Döngüler.

8. Bölüm DİZİLER. tip dizi_ismi[eleman_sayısı]; Bütün diziler 0 ile baţlar.

Algoritma ve Akış Diyagramları

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

GÜMÜŞHANE ÜNĐVERSĐTESĐ MÜHENDĐSLĐK VE DOĞA BĐLĐMLERĐ FAKÜLTESĐ ELEKTRĐK-ELEKTRONĐK MÜHENDĐSLĐĞĐ EEM 114 ALGORĐTMA TASARIMI VE PROGRAMLAMA DĐLLERĐ

Program AkıĢ Kontrol Yapıları

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

Pythonda değişkenlerin türlerini tanımlamaya gerek yoktur

İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA

Şekil 6.2 Çizgisel interpolasyon

Pascal Programlama Dili

Akış Kontrol Mekanizmaları

>> 5*3-4+6/2^0 ans = 17 ( Matlab da sayılar arası işlemler [ +, -, /, *, ^ ] bu şekilde ifade edilmektedir.)

4- ALGORİTMA (ALGORITHM) M.İLKUÇAR - 1

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

Dr. Musa KILIÇ Öğretim Görevlisi

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Algoritma Geliştirmek, Satır Kod)

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf

Genel Kullanılış 1: [değişken ismi] = [değişken ismi] [işlem] [sayı veya string ifade veya değişken]

KBÜ. TBP101 Programlama Temelleri. Öğr. Gör. Dr. Abdullah ELEN KARABÜK ÜNİVERSİTESİ.

C Programlama Dilininin Basit Yapıları

GÖRÜNTÜ İŞLEME MATLAB DERS-4

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Transkript:

MATLAB ILE PROGRAM YAZMAK Su ana kadar Matlab ile gerçeklestirdigimiz uygulamalarda,belirli bir islemi gerçeklestirmek üzere gerekli olan Matlab komut ya da fonksiyonlarini Matlab komut satirindan,>> sembollerinden sonra tek tek girerek icra ediyorduk. Oysa,Matlab komut ya da fonksiyonlarindan gerçeklestirmek istediginiz bir isle iliskili özel bir grubu,bir dosyaya kaydederek,bu dosya isminin çagrilmasi ile icra edebilirsiniz.sonuçta çok pratik ve etkin bir yol ortaya çikar;söz 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 içeren bu tip bir dosyaya Matlab de M- dosyasi(m-file) adi verilir.bu tip dosyalariin uzantisi daima.m seklinde olmalidir.bir Matlab M dosyasi,bir komut grubu içerdigi için tanim itibari ile bir program dosyasidir.dolayisi ile,matlab de,m-dosyalari olusturularak programlama yapilabilir. M dosyasi içine tüm 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 içinden geçirilirler. Matlab de birçok matematik ya da mühendislik problemini çözmek için yazilacak programlar C/C++,FORTRAN ya da PASCAL daki karsiliklarina göre çok daha basit ve kisadir.bu aslinda beklenen bir sonuçtur çünkü Matlab de gerçekte bu amaçla kullanilacak pek çok hazir fonksiyon mevcuttur. MATLAB TE BIR m-dosyayi(programi) ÇALISTIRMAK Matlab de bir program çalistirmak için asagidaki adimlar izlenmelidir: 1)Program Matlab editörü içinde yazilir ve saklanir. 2)Programin saklandigi dosya daima.m uzantili olmalidir. 3)Programi çalistirmak için ya komut satirindan ismi girilerek enter a basilir veya asagidaki gibi Debug/Run menüsü kullanilir: 4)Programi icra edebilmek için,komut satirinda, sadece programin adi yazilir;uzantisi yazilmamalidir.

SEÇME(SELECTION) TIPINDEKI KONTROL DEYIMLERI IF DEYIMI if deyimi,matlab dilinde sartli dallanma(conditional branching) adi verilen islemi gerçeklestiren bir deyimdir. Sartli dallanma, herhangi bir programlama dili için temel kontrol yapisidir. Sartli dallanma islemi sayesinde,bir program, kararlar alma imkanina kavusur; bir ifadenin sonucuna göre, bir komutlar dizisinin icra edilip edilmeyecegine karar verebilir. Ifadenin degeri, bir icradan digerine degisebilecegi için, bu özellik bir programa farkli verilere karsi farkli sekillerde davranma imkani saglar. Matlab dilinde sartli dallanma if ve else anahtar sözcükleri ile gerçeklestirilir. if deyiminin en basit sekli için yazilis biçimi asagidaki gibidir: if ifade deyim1; end deyim2; Burada ifadenin degeri dogru(true) ise deyim1 icra edilir sonra icra deyim2 ye geçer.ifadenin degeri yanlis(false) ise bu durumda da dogrudan deyim2 ye geçilir.ifadenin degeri yanlis ise deyim1 icra edilmeyecektir.asagida if yapisini açiklayan bir akis diyagrami verilmistir. if deyimi için akis diyagrami(flow chart) If deyimi else sözcügü ile birlikte kullanilirsa asagidaki yazilis biçimi kullanilir: if ifade deyim1 ; else

deyim2; end deyim3;... Bu durumda,ifadenin degeri dogru ise deyim1 icra edilir ve sonra deyim3 e geçilir.ifadenin degeri yanlis ise,bu durumda da deyim1 atlanarak dogrudan else i izleyen deyim2 ye geçilecek 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 sözcükleri arasina yerlestirilir: if ifade deyim1; deyim2;.. deyim_n; end deyim_x;.. Bu durumda ifade dogru ise deyim1,deyim2,..deyim_n ile belirtilen deyimler grubunun tümü icra edilerek deyim_x e geçilecektir;ifade yanlis ise de bu durumda if e ait deyimler blogu atlanarak dogrudan deyim_x e geçilecektir. Ayni sey if else yapisi için de söz 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_k ya geçilecek,ifade yanlis ise bu durumda da,if içindeki deyimler atlanarak sadece deyim_n+1,deyim_n+2,..,deyim_m icra edilerek programin icrasi daha sonra deyim_k ya erisecektir. ÖRNEK 1: I.File/New/m-file yolu ile bir m-file açiniz: giriniz: II.Asagidaki komutlari III.Debug/Save and Run menu adimlarini izleyiniz:

IV.Karsiniza asagidaki pencere gelecektir: IF1.m adini vererek Save butonunu tiklayiniz. m-dosyaya V.Program Debug/Run ile çalistirilinca BIR TAM SAYI GIRINIZ mesaji gelir;mesela 12 girilip enter a basilinca GIRDIGINIZ SAYI 10 DAN BUYUKTUR mesaji gelecektir: Bu çok basit ve kisitli programda kullanici klavyeden 10 dan daha büyük bir sayi girdigi zaman,program yukardaki çiktida görülen mesaji verecek fakat 10 ya da daha küçük bir sayi girilirse bu durumda herhangi bir mesaj görüntülenmeyecektir. ÖRNEK PROGRAM 2: I.Asagidaki m-dosyayi olusturunuz:

II.Programi çalistirdiginizda,bu programda,klavyeden,10 dan büyük bir sayi girilirse,asagidaki BIR TAM SAYI GIRINIZ..14 GIRDIGINIZ SAYI 10 DAN BUYUKTUR Çiktisi elde edilecek,10 ya da daha küçük bir sayi girilirse de asagida görüldügü gibi, >> if1 BIR TAM SAYI GIRINIZ..7 GIRDIGINIZ SAYI 10 YA DA DAHA KUCUK BIR SAYIDIR >> Bir mesaj elde edilecektir.böylece if-else yapisi ile daha kapsamli bir kontrol isleminin gerçeklestirilebilecegi söylenebilir. PROBLEM: f(x) ve g(x) fonksiyonlari, x>0 ise f(x)=1/(1+ln(x)) ve g(x)=1/(x+ln(x)) x 0 ise f(x)=1/(1+x 2 ) ve g(x)=1/(1+x+ x 2 )

seklinde tanimlanmaktadir.x degeri klavyeden girildigine göre,f(x) ve g(x) i hesaplatan ve yazdiran bir Matlab programi yaziniz. PROBLEMIN ÇÖZÜMÜ OLAN MATLAB M-DOSYASI PROGRAMIN ÇIKTISI: x in 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 ürün miktarina göre alacagi günlük ücret asagidaki gibi belirlenmektedir: Günlük satis miktari 50 den az ise,4,000,000tl lik sabit ücrete satilan ürün basina 50,000TL lik prim eklenerek günlük ücret belirlenecektir. Günlük satis miktari 50 ya da daha fazla ise bu durumda günlük sabit ücret 5,000,000TL alinarak satilan ürün basina da ilk 50 ürün için 50,000TL,50 yi asan kisim için de 60,000TL prim verilerek günlük ücret belirlenecektir. Bir saticinin günlük satis miktari bilgisayara girildiginde saticinin alacagi günlük ücreti hesaplayan bir C programi yaziniz. SATIS PROBLEMI IÇIN MATLAB PROGRAMI: Gerekli tüm araliklarin kontrolü için,program 40,50 ve 60 satis miktarlari için test edilrek asagidaki sonuçlar elde edilmistir:

PROBLEM:Bilgisayara negatif olmayan bir sayi girildiginde bu sayinin karekökünü hesaplayan,negatif bir sayi girildiginde ise kullaniciyi uyaran bir MATLAB programi yaziniz. KAREKÖK PROGRAMININ LISTESI: KAREKÖK PROGRAMININ ÇIKTISI: Programda,verilen bir sayinin karekökünü hesaplayan sqrt fonksiyonu kullanilmistir..

KARSILASTIRMA IFADELERI Dogal olarak, sartli bir ifadede iki deger arasinda karsilastirma islemi gereklidir. Bazen iliskisel operatörler olarak ta anilan (relational operators) 6 karsilastirma operatörü vardir.bunlar asagidaki tabloda belirtilmistir: Iliskisel operatörler de ikili operatörlerdir. (binary operators) Yani bu operatörlerin her biri iki farkli deger(operand) üzerinde islem görür. 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 göre asagidaki ifadelerin sonuçlarini inceleyiniz: Asagidaki Matlab m-dosyasi ise,çesitli karsilastirma islemlerinin sonuçlarini ekrana aktarmaktadir:

DIKKAT EDILECEK NOKTA: Karsilastirma islemlerinde esitlik kontrolünün == sembolü yerine yanlislikla = sembolü ile yapilmasi durumu. IÇ IÇE IF DEYIMLERI(NESTED IF STATEMENTS) Tek bir if deyimi programin iki seçenekten birini seçmesine 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ç içe if deyimlerini gerektirir. Farz edelim ki üç tamsayiyi kabul eden ve bunlarin en küçügünü bulan ve yazdiran bir program yazmak istiyorsunuz, Iç içe if deyimleri ile programi asagidaki gibi yazabilirdiniz. ÜÇ TAMSAYININ EN KÜÇÜGÜNÜ BULAN MATLAB PROGRAMI:

PROGRAMIN ÇIKTISI: Iç içe 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 cümlecigine sahip olabilir. if-else-if BASAMAK YAPISI Birbirini izleyen çok sayida kosul kontrolünü gerçeklestirmeye yarayan bir yapi ifelse-if basamagi adini alir ve yazilis biçimi 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+1 e geçilir. Ifade1 yanlis ise,o takdirde,ifade2 kontrol edilir.bu ifade dogru ise,bu durumda sadece Deyim2 icra edilir ve sonra Deyim_n+1 e geçilir. Ifade2 yanlis ise,o takdirde,ifade3 kontrol edilir.bu ifade dogru ise,bu durumda sadece Deyim3 icra edilir ve sonra Deyim_n+1 e geçilir. Bu islemler daha fazla sayida else if bulundugu takdirde ayni sekilde devam eder. if ler ile kontrol edilen ifadelerin tümü de yanlis ise,bu durumda programin kontrolü else i izleyen Deyim_n e geçer ve bu deyim icra edilir.daha sonra kontrol Deyim_n+1 e geçecektir. Yukardaki yapi içinde,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 göre belirlendigini var sayalim: Gelir 150,000,000 ise vergi orani %25 Gelir 300,000,000 ise vergi orani %30 Gelir 600,000,000 ise vergi orani %35 Gelir 1,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 göre kontrol edilerek vergi hesaplanacaktir. c)hesaplanan vergi ekrana yazdirilacaktir. VERGI HESABINI GERÇEKLESTIREN 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 TL si %25 ten,kalan 200,000,000-150,000,000=50,000,000 TL si ise %30 dan vergilendirilecektir. O nedenle programin basinda her araliga ait sabit vergiler hesaplanarak v1,v2,v3 ve v4 degiskenlerine atanmaktadir. ÖRNEK PROBLEM:IKINCI DERECE DENKLEMININ KÖKLERININ BULUNMASI: Lise yillarinda ögrendiginiz ikinci derece denklemi, ax 2 + bx + c = 0 seklinde ifade edilir ve denklemin köklerinin varligi hakkinda bilgi sahibi olabilmek için,denklemin diskriminanti adi verilen, =b 2-4ac ifadenin hesaplanmasi gerekir.diskriminantin degerlerine göre,sayet, <0 ise denklemin gerçel sayilarla ifade edilebilecek bir kökü yoktur.

=0 ise denklemin,degerleri birbirine esit olan iki kökü vardir ve bunlar, x1=x2= -b/(2a) seklinde hesaplanirlar.bunlara iki kat kök ya da çakisik kök adi verilir. >0 ise de denklemin birbirinden farkli iki gerçel kökü vardir ve bunlar, x1=(-b+ )/(2a) ve x1=(-b- )/(2a) seklinde hesaplanirlar. ÖRNEK:IKINCI DERECE DENKLEMININ KÖKLERINI BULAN PROGRAM Bu uygulamayi gerçeklestirebilmek için asagidaki adimlari izleyiniz: 1)Matlab in File/New /M-file menü adimlarini izleyerek matlab editörünü açiniz: 2)Gelen editöre asagidaki programi giriniz:

3) Programi File/Save menüsü 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 gerçek kök yok

Program çalisinca a b ve c katsayilarini istemis ve kullanici a=1 b=1 c=1 degerlerini girmistir.böylece x 2 +x+1 =0 denkleminin kökleri aranmaktadir.bu denklemin gerçek kökü yoktur ve program bu mesaji vermektedir. Ayni programi bir kez daha çalistirarak x 2-2x+1=0 denkleminin köklerini arastiralim:» ikider a katsayisi..1 a = 1 b katsayisi..-2 b = -2 c katsayisi..1 c = d = x1 = x1=x2 1 0 1 Bu durumda denklemin çakisik iki kökü vardir ve x1=x2=1 dir ve program bu sonucu bulmustur. Son olarak ayni programi x 2-5x+6=0 denklemi için test edelim:» ikider a katsayisi..1 a = 1

b katsayisi..-5 b = -5 c katsayisi..6 c = d = 6 1 x1 = 3 x2 = 2 Kökler x1=3 ve x2=2 olarak bulunmustur ki bu da dogru sonuçtur. 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 2 de ise birden fazla mukayese ifadesini birlestirmek için kullanilan mantiksal islem operatörleri görülmektedir: Tablo 2-Mantiksal islem operatörleri 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 : & OPERATÖRÜ» a=input('a..'),b=input('b...'),if a>0 & b> 0,disp('her iki sayi da pozitiftir'),end a..4 a = b...3 b = 4 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 = b...8 b = 4 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 OPERATÖRLERIN MATRISLER IÇIN KULLANILMASI Mantiksal operatörler matrisler için de kullanilabilir.asagidaki örnekleri inceleyiniz:» A=eye(3,3) A = 1 0 0 0 1 0

0 0 1» B=~A B = 0 1 1 1 0 1 1 1 0» C=xor(A,B) C = 1 1 1 1 1 1 1 1 1» D=ones(3,3) D = 1 1 1 1 1 1 1 1 1» E=~D E = 0 0 0 0 0 0 0 0 0» F=D E F = 1 1 1

1 1 1 1 1 1 ÖRNEK:BIR LINEER DENKLEM SISTEMININ ÇÖZÜMÜNÜ BULAN PROGRAM ÇÖZÜM: 1)Asagidaki M-file i olusturunuz ve denksis.m adi ile saklayiniz: 2)Matlab komut satirinda» denksis adini giriniz.asagidaki çikti elde edilecektir: A KATSAYILAR MATRISINI VE b SAG TARAF VEKTÖRÜNÜ GIRINIZ DAHA SONRA return KOMUTUNU GIRINIZ K» A=[1 1 1;2-2 1;4 2 1] A = 1 1 1 2-2 1 4 2 1 K» b=[3 1 7]

b = K» return x =» 3 1 7 1.0000 1.0000 1.0000 MATLAB IÇINDE ÇEVRIM(DÖNGÜ,Ing.LOOP) OLUSTURMA- KONTROL KOMUTLARI Matlab ortaminda,gerek komut satirinda gerekse m-dosyalari içinde kullanabileceginiz kontrol komutlari mevcuttur.bu komutlar yardimi ile Matlab de olusturmak istediginiz bir programin mantiksal akisini kontrol edebilirsiniz. Matlab de kullanabileceginiz kontrol komutlari, 1)Tekrarli islemler anlamindaki çevrim yapilarini olusturan komutlar(for,while) 2)Bir kosulu kontrol ederek kosulun sonucuna göre 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 biçimde kullanilabilir: for Parametre=Baslangiç:Artim:SonDeger,Deyim1,Deyim2,..Deyim_n,End Bir m-file içinde 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 için,deyim1,deyim2,deyim_n seklinde belirtilen ve for-end sözcükleri arasinda yer alan deyimler grubu icra edilir.parametrenin degeri,sondeger i asinca,programin kontrolü,end i izleyen deyime yani çevrimin disina çikacaktir.artim degeri negatif te olabilir.bu durumda Baslangiç degerinin SonDeger den daha büyük 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:FAKTÖRYEL HESABI for çevrimini kullanacagimiz diger bir örnek program ise faktöryel hesabi programi olacaktir.matematikte faktöryel,bilindigi gibi, n!=1.2.3...n seklinde tanimlanir;yani n sayisinin faktöryeli 1 den n e kadar tam sayilarin çarpimina esittir.asagida,faktöryel hesabi ile iliskili Matlab programi ve bu program içindeki degiskenlerin programin icrasi esnasindaki degisimlerini gösteren tablo verilmistir: FAKTÖRYEL HESABI YAPAN MATLAB PROGRAMI: AMIN ÇIKTISI: PROGR FAKTÖRYEL PROGRAMINDAKI DEGISKENLERIN PROGRAMIN ICRASI ESNASINDAKI DEGISIMLERINI GÖSTEREN 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 GÖSTEREN TABLO

AÇIKLAMA: Sadece 4 terim oldugu için for çevrimi 1 den 4 e kadar çalistirilmistir.ilk terim 1.2/(3.4) ve ikinci terim 5.6/(7.8) oldugu için, 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 göre x,her seferinde 4 arttirilmalidir.bu da programda x=x+4 ; deyimi ile gerçeklestiriliyor. Seri alterne seri olduguna göre,yani terimlerin isaretleri +,-,+,- seklinde degistigine göre,p degiskeni yardimi ile terimlerin isaretleri ayarlanabilir.p önce 1 olarak atanmistir.sonra çevrim içine 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: ÇÖZÜM: I.Asagidaki m-dosyayi olusturunuz: ifadesini Matlab te hesaplatiniz. II.yukardaki m-dosyayi m=1000, m=10000 ve m=100000 degerleri için çalistirdiginizda gittikçe pi ye yaklasan degerler elde edeceksiniz:

ÖRNEK PROBLEM: Ifadesini Matlab te hesaplatiniz. Bu ifadeyi Matlab te hesaplatabilmek için çesitli yollar mevcuttur.biz burada bir m-dosya ile bu hesaplatmayi gerçeklestirecegiz: ÇÖZÜM Asagidaki m-dosyayi olusturunuz: m-dosyayi çalistirdiginizda asagidaki sonucu elde edeceksiniz: : Tam dogru deger dir ve yukardaki sonuç bu degere çok yakindir. ÖRNEK PROBLEM:

Asagidaki ifadeyi Matlab te hesaplatiniz: ÇÖZÜM: Asagidaki m-dosyayi olusturunuz ve çalistiriniz: Asagidaki çözümü elde edeceksiniz: IÇ IÇE ÇEVRIMLER Bir çevrim yapisinin içine baska bir çevrim yapisinin yerlestirilmesi ile elde edilen yapiya iç içe çevrim(nested loop) adi verilir. Matlab dilinde, if deyimlerini her hangi bir derinlige kadar iç içe kullanmak nasil mümkünse, çevrim deyimlerini de iç içe kullanmak mümkün olacaktir. Iç içe çevrimlerde hatirlanacak anahtar bilgi, önce içteki çevrimlerin tamamlanmasi gerektigidir.bu konuda asagidaki kural iç içe çevrimler için daima geçerlidir: Iç içe çevrimlerde en içteki çevrim en önce tamamlanir. ÖRNEK: Asagidaki programda,dis çevrim olan i parametreli çevrim 5 kez çalisacaktir.(i=1,2,3,4,5).i nin her degeri için ise içteki çevrim 3 kez çalisacaktir.(j=1,2,3).böylece asagidaki çikti elde edilecektir:

PROGRAMIN ÇIKTISI: ÖRNEK:ÇARPIM TABLOSU PROGRAMI 1 den 10 a kadar sayilar için bir çarpim tablosu hazirlamak istiyoruz.bunun için iç içe 2 çevrim yeterlidir ve her iki çevrimin de parametresi 1 den 10 a kadar degisecektir.programin listesi asagidadir:

ÇARPIM TABLOSU PROGRAMININ ÇIKTISI Her x degeri için, program önce x i yazdirir; sonra y nin 10 degeri için çevrim yaparak her iterasyon için x*y yi yazdirir ve yeni bir satira geçer. printf ( % 5d,x*y); komutu en içteki çevrime aittir. % 5 d dönüsümü, fprintf( )nin çikista her sayi için 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ç içe 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 için,o adimdaki faktöryeli hesaplatmak zorunda oldugumuz ve o nedenle yukardaki çevrimin içinde yer almasi gereken bir çevrim. Bu düsüncelerle,problemin çözümünü teskil edecek olan bir Matlab programini asagidaki gibi yazabiliriz:

FAKTÖRYELLI TERIMLERDEN OLUSAN SERI TOPLAMI PROGRAMI: SERI TOPLAMI PROGRAMININ ÇIKTISI break DEYIMI break deyiminin Matlab programlari içinde iki farkli kullanim alani mevcuttur: 1)switch yapisindaki case seçeneklerinden birinde switch yapisini terketmek ve switch i izleyen deyime geçmek.bu tip kullanim ile iliskili örnekler switch deyimi anlatilirken verilmistir. 2)break deyiminin ikinci kullanilis yeri,bir çevrim(loop) yapisi içinden,çevrimi kontrol eden kosul ifadesini beklemeksizin hemen çevrim disina çikmak amaci iledir. Break deyimi bir çevrim içinde yer almissa bu durumda break deyimi ile karsilasilir karsilasilmaz çevrim disina çikilir ve çevrimi izleyen deyime geçilir. ÖRNEK:

ÖRNEK PROGRAMIN ÇIKTISI continue DEYIMI continue deyimi,çevrim içinde,belirli bir kosulun kontrolü ile,bir sonraki çevrim adimina gidilmesini gerçeklestirir. ÖRNEK: Asagidaki programda,for çevriminin parametresi olan i degiskeni 3 ile tam bölünemeyen bir deger alinca bu deger ile islem yapilmayip bir sonraki adima geçilmesi continue deyimi ile saglanmaktadir.böylece program,kullanici tarafindan girilen bir üst limite kadar,3 ile bölünebilen sayilarin toplamini ve bu tip sayilarin adedini bulacaktir.

ÜÇ ILE BÖLÜNEBILEN SAYILAR-M-DOSYA LISTESI PROGRAMIN ÇIKTISI: while KOMUTU Yazilis biçimi, While Kosul,Deyim1,Deyim2,..,Deyim_n,end Seklindedir. Kosul dogru oldugu sürece,deyim1,deyim2,..,deyim_n seklinde belirtilen deyimler grubunu icra eder.kosul yanlis oldugu anda,end i izleyen deyime yani çevrim disina çikilacaktir. ÖRNEK:» say=2,while say>0,say=input('bir SAYI GIRINIZ,DURDURMAK IÇIN NEGATIF SAYI GIRMELISINIZ'),end

say = 2 BIR SAYI GIRINIZ,DURDURMAK IÇIN NEGATIF SAYI GIRMELISINIZ 9 say = 9 BIR SAYI GIRINIZ,DURDURMAK IÇIN NEGATIF SAYI GIRMELISINIZ -1 say = -1