You are on page 1of 18

AYRIK YAPILAR

UYGULAMALARI

Hafta - 5
İÇERİK

 MATLAB’DA PROGRAMLAMA
 M DOSYASI (M-FILE) OLUŞTURMA

Ayrık Yapılar - Hafta 5 2


MATLAB’da Programlama - 1
 MATLAB’da M-dosyaları (M-file) ile
programlama yapılabilir.

 M-dosyaları iki çeşittir :


 Düzyazı (Script) M-dosyaları
 Fonksiyon (Function) M-dosyaları

Ayrık Yapılar - Hafta 5 3


MATLAB’da Programlama - 2
 M-dosyaları herhangi bir metin
editörüyle yazılabilir.
 MATLAB’ın Built-in M-File editörüyle
yazılması tavsiye olunur.
 M-file editörü iki şekilde açılabilir :
 File / New / M-File
 >> edit

Ayrık Yapılar - Hafta 5 4


Script M-Dosyaları - 1
 MATLAB komutlarının dosya içinde
düzenlenmiş biçimleridir.
 MATLAB yazım kuralları script içinde de
geçerlidir.
 Örneğin ; (no echo)
 Program satırları arasında istenildiği
kadar boşluk bırakılabilir.

Ayrık Yapılar - Hafta 5 5


Script M-Dosyaları - 2
 Programı yazdıktan sonra File / Save ile
(veya M-file editöründeki disket resmine
tıklayarak) programı kaydederiz.

 Ekrana “Save file as” penceresi gelir.

Ayrık Yapılar - Hafta 5 6


Script M-Dosyaları - 3
 Yer belirtilmezse M-dosyaları
Matlab6p5 \ work klasöründe saklanır.

 Farklı bir klasörde saklayıp çalıştırmak


için path tanımı yapmak gerekir.
 File / Set Path menüsünden path tanımı
yapılabilir.

Ayrık Yapılar - Hafta 5 7


Script M-Dosyaları - 4
 Aynı isimde tanımlı değişken adları
olmamalıdır. Yoksa script onları etkisiz
kılar (Override eder).

 Script m-dosyalarında tanımlı


değişkenler global değişkenlerdir. Yani
programdan çıkıldıktan sonra da
kullanımda kalırlar.

Ayrık Yapılar - Hafta 5 8


Script M-Dosyaları - 5
 % Açıklama satırı

 Programın başında girilen açıklama


satırları, program hakkında yardım
almak isteyen kullanıcılara gösterilecek
olan satırlardır.
>> help M-dosya_adı

Ayrık Yapılar - Hafta 5 9


Input Komutu
 Input fonksiyonu kullanıcıdan veri girişi
almaya yarar.
 değişken = input(‘Prompt’)

Ayrık Yapılar - Hafta 5 10


Script M-File Örneği - 1
% == Harmonik Ortalama Alan Program ==
clear all % Değişkenleri siler
clc % Ekranı temizler, başa gider
a = input('1. sayıyı giriniz:');
b = input('2. sayıyı giriniz:');
hortalama = 2 / (1/a + 1/b); % Hesapla
hortalama % Yazdır

Ayrık Yapılar - Hafta 5 11


Script M-File Örneği - 2
 “Hort.m” gibi bir adla dosya saklanır.
 Matlab’da komut satırına “>>hort”
yazarak script çalıştırılır.

 >> help hort


 ==Harmonik ortalama alan program==

Ayrık Yapılar - Hafta 5 12


Fonksiyon M-Dosyaları - 1
 MATLAB fonksiyonlarına (sqrt, sin,
mean, … vs) benzer şekilde çalışan
kullanıcı tanımlı fonksiyonlardır.

 Script dosyalarından farklı olarak :


 Bir değer veya değer kümesi döndürürler.
 Yerel değişkenler kullanırlar. (Matlab
değişken penceresinde gösterilmezler.)
Ayrık Yapılar - Hafta 5 13
Fonksiyon M-Dosyaları - 2
 M-dosyasının ilk satırına :
 function çıkış_değişkeni = fonksiyon_adı (giriş
değişkeni)
 function [out1, out2, … outN] =
fonksiyon_adı (in1, in2, … inM)
 out - çıkış argümanları, in - giriş argümanları

 Fonksiyon mutlaka fonksiyon_adı ile çağrılır


ve “fonksiyon_adı.m” ismindeki dosyada
saklanır.
Ayrık Yapılar - Hafta 5 14
Fonksiyon M-Dosyaları - 3
 Giriş ve çıkış değerleri skaler, vektör, matris
veya sözcük olabilirler. Dolayısıyla bir
fonksiyonu vektör veya matrislerle çağırmak
için ek bir kod yazmak gerekmez.

 Örnek :
function sonuc = carpma(a,b)
% Girilen iki matrisi çarpar
sonuc = a * b;
Ayrık Yapılar - Hafta 5 15
Fonksiyon M-Dosyaları - 4
 Örnekler :

function a = diagonal(a)
a=diag(b);

function [a,b] = diagonal(c)


a=diag(c);
b=diag(fliplr(c));
Ayrık Yapılar - Hafta 5 16
Fonksiyon M-Dosyaları - 5
 Alınan girdiyi 1 arttıran fonksiyon :

function a = arttir(b)
% arttir (x) : x’in değerini bir arttırır.
a = b + 1;

Ayrık Yapılar - Hafta 5 17


Fonksiyon M-Dosyaları - 6
 Harmonik Ortalama Örneği :

function h = horta(a,b)
% Harmonik ortalama hesaplar
h=2/(1/a+1/b);

 horta.m olarak saklanır.


 >> horta(3,7) yazarak çalıştırılır.
 Örnekteki h değişkeni MATLAB çalışma
ortamında görüntülenmez.
Ayrık Yapılar - Hafta 5 18

You might also like