37
ALGORİTMA VE PROGRAMLAMA Ek Ders Notu

PROGRAMLAMA Ek Ders Notu

Embed Size (px)

Citation preview

Page 1: PROGRAMLAMA Ek Ders Notu

ALGORİTMA VE

PROGRAMLAMA

Ek Ders Notu

Page 2: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 2 04.01.2013

MATLAB’de Programlama

1. Komut satırında (in-line) programlama

2. m-dosyaları’yla (m-files) programlama

m-dosyalarının da iki türü vardır:

1. Düzyazı (script) m-dosyaları

2. Fonksiyon (function) m-dosyaları

Matlab’de programlama en genel olarak iki yolla yapılır:

Page 3: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 3 04.01.2013

Örnek: İki nokta arasındaki uzaklığı bulan programın m-dosyası ile çözümü

uzaklik.m

clc;clear;

x1=input(' x1 koordinatini gir ');

y1=input(' y1 koordinatini gir ');

x2=input(' x2 koordinatini gir ');

y2=input(' y2 koordinatini gir ');

mesafe=sqrt((x2-x1)^2+(y2-y1)^2);

fprintf(' Girilen 2 nokta arasi mesafe : %f \n ',mesafe);

KOMUT PENCERESİ

>>uzaklik

Düzyazı (script) m-dosyaları daha önceki derslerde anlatılmıştır. Aşağıda

bir m-dosyası örneği verilmiştir.

Page 4: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 4 04.01.2013

Fonksiyon m-dosyaları

Fonksiyon, belirli sayıda verileri kullanarak bunları işleyen ve bir sonuç üreten

yapıdır. Fonksiyon m-dosyaları düzyazı m-dosyalarına benzerler. Ancak iki temel

farkı vardır.

1. Fonksiyonlar bir değeri ve değerler kümesini döndürür.

2. Fonksiyonların içinde atanmış değişkenler, fonksiyona ait yerel değişkenlerdir

(local variables) ve MATLAB komut penceresinde gösterilmezler. Bu

değişkenler komut satırından da geri çağırılamazlar. Oysa script’lerde

değişkenler genel (global variables) olup MATLAB komut penceresinde

gösterilir ve komut satırından çağırılabilirler.

Fonksiyonların genel yazım biçimi;

function degisken_adi=fonksiyon_adi (giris degiskeni) Veya

function [out1,out2,... ,outN] = fonksiyon_adı (in1,in2,...,inM)

Page 5: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 5 04.01.2013

Fonksiyon m-dosyaları

function y = ortalama (x)

% Ortalama Average or mean value.

% For vectors, ortalama(x) returns the mean

value.

% For matrices, ortalama(x) is a row vector

% containing the mean value of each column.

[m,n] = size(x);

if m == 1

m = n;

end

y = sum(x)/m;

Output Arguments Input Arguments Function Name

Online Help

Function Code

Page 6: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 6 04.01.2013

Örnek: İki nokta arasındaki uzaklığı bulan programı m-fonksiyon

kullanarak yazınız.

x1 = 1.noktanın x koordinati; x2 = 2.noktanın x koordinati

y1 = 1.noktanın y koordinati; y2 = 2.noktanın y koordinati

function mesafe = uzaklik(x1,y1,x2,y2) %imza

mesafe=sqrt((x2-x1)^2+(y2-y1)^2); %tanım

Bu M fonksiyonu

uzaklik.m olarak kaydedilir.

KOMUT PENCERESİ

>> sonuc = uzaklik(3,4,1,2) % ya da

>> uzaklik(3,4,1,2) % sonuc ans adli degiskene atanir

Page 7: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 7 04.01.2013

Örnek: Girilen iki sayının harmonik ortalamasını bulan fonksiyon m-dosyasını

yazınız.

function h=horta(a,b)

%horta:Harmonik Ortalama

% horta(a,b) verilen iki sayının harmonik ortalamasını hesaplar

h=2/(1/a+1/b)

Örnek: Aşağıdaki gibi bir ekran çıktısı verecek ekranaRakamBas.m adında bir

fonksiyon M dosyası yazınız. (Fonksiyonunuz kendisine hiçbir argüman almayacak ve

geriye yine hiçbir değer çevirmeyecektir.)

ekranaRakamBas.m

function ekranaRakamBas()

clc;

for i=1:9 %satir sayisi

for j=1:(10-i) %sutun sayisi

fprintf('%d ',j);

end

fprintf('\n');

end

EKRAN ÇIKTISI

>>ekranaRakamBas()

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7

1 2 3 4 5 6

1 2 3 4 5

1 2 3 4

1 2 3

1 2

1

Page 8: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 8 04.01.2013

Örnek: Girilen bir sayı vektörünün ortalama değerini ve standart sapmasını

bulan bir fonksiyon yazalım.

function [ort, stds] = ort_stdsapma (x)

% ort_stdsapma fonksiyonu girilen matristeki her bir sütunun ortalama değerini %ve

standart sapmasını bulur.

[m,n] = size(x);

if m == 1

m = n;

end

ort = sum(x)/m;

stds=sqrt(sum(x.^2)/m-ort.^2);

MATLAB komut satırında aşağıdaki satırlar sırasıyla yazılırsa; >> a=[1 2 3 4 5];

>> [x,y]=ort_stdsapma(a)

x =

3

y =

1.4142

Page 9: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 9 04.01.2013

Fonksiyon m-dosyasında önemli noktalar:

1. Fonksiyon m-dosyalarında ilk satır kesinlikle function ile başlamalıdır. Bu ilk

satır fonksiyon tanımının yapıldığı satır olup fonksiyon adı ve giriş çıkış

değişkenleri bu satırda belirtilir.

2. Fonksiyon hakkında yardım istenildiğinde, yani help fonksiyon_adi

yazıldığında görüntülenecek % ile başlayan açıklama satırları ilk satırdan

hemen sonra yazılmalıdır.

3. Fonksiyon adı ile dosya adı aynı olmalıdır.

4. Değişken çıkışları ekrana yazdırılmamalıdır.

5. Bir fonksiyon içerisinde kullanılan bütün değişkenler bu fonksiyon için

geçerlidir.

6. Eğer değişkenleri fonksiyon dışında da geçerli kılmak isteniyorsa “global”

komutu kullanılabilir.

Page 10: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 10 04.01.2013

Uygulama: Daha önceki derslerde gösterilen bir polinomun türevini alan

polyder(P) fonksiyonunun polinomturev adı ile fonksiyon m-dosyası olarak

yazılması.

>>P=[-7 -3 1 14]

>>polyder(P)

ans

-21 -6 1

Page 11: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 11 04.01.2013

Veri

Mantıksal Karakter Sayısal Hücresel Yapısal

int8, uint8

int16, uint16

int32, uint32

int64, uint64

single double

MATLAB’de Veri Türleri

MATLAB’de 15 temel veri türü vardır. Bunların herbiri dizi formatındadır. MATLAB

ile yapılan işlem ve hesaplamalarda genellikle çift duyarlıklı (double) ve karakter

(char) veri türleri kullanılır. MATLAB’de yerleşik fonksiyonların hemen hemen

tamamı double ve char veri türleriyle işleme konur.

Page 12: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 12 04.01.2013

MATLAB’de Veri Türleri

Mantıksal: 1 ve 0 sayılarını kullanarak doğru ve yanlış değerleri gösterir. MATLAB,

mantıksal işlemler ve fonksiyonlardan ilgili mantıksal değeri döndürür.

char: Karakterleri tutar. Dizideki her katar aynı uzunlukta olduğu sürece mxn

boyunda katar dizisini temsil etmek için char kullanılır. Eşit uzunlukta olmayan katarı

temsil etmek için cell array (hücre dizi) kullanılır.

Sayısal (numeric): işaretli (int) veya işaretsiz (uint) tamsayılar, tek (single) ve çift

(double) duyarlıklı kayan noktalı sayılardan oluşur.

•MATLAB’de tüm hesap işlemleri double veri türü ile yapılır.

•Tamsayı veya single diziler üzerinde matematiksel işlemleri yapmak için, bunlar

fonksiyon kullanılarak double veri türüne dönüştürülmelidir.

•Tamsayı veya single türü diziler, double dizilerden daha fazla bellek yeri

kullanırlar.

Hücre dizi (cell array): Farklı tür ve boydaki diziler, bir hücre dizi içindeki hücrelerde

saklanabilir.

Yapı (structure): Benzer olmayan veri türlerini saklayan hücre diziye benzer. Ancak

bu durumda veriler, hücrelerde değil de adlandırılmış alanlarda (named field)

saklanır.

Page 13: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 13 04.01.2013

Karakter Katarı (String) İşlemleri

Karakterler katarı veya yalnızca katar/sözcük (string), iki tek tırnak arasındaki

ifade edilen, gerçekte ASCII kod tablosunda sayısal kodlarla belirtilen ilk 127

karakterden oluşan karakter dizileridir (char array). Katar uzunluğu, katardaki

karakter sayısıdır. Her bir karakter bellekte 1 byte (8 bit) yer kaplar.

>> ders='algoritmalar'

ders =

algoritmalar

Burada verilen ders değişkeninde her bir harf ASCII kod tablosundaki sayısal bir

koda sahiptir.

>> kod=double(ders)

kod =

97 108 103 111 114 105 116 109 97 108 97 114

Tam tersi olarak ASCII karşılığı verilen bir katarın karakter karşılığını bulmak için

char fonksiyonu kullanılır.

>> char(kod)

ans =

algoritmalar

Page 14: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 14 04.01.2013

Çok Boyutlu Katar Gösterimleri

>> x='10014';

>> a=[ders,' ders kodu:', x]

a =

algoritmalar ders kodu:10014

Katarların Karşılaştırılması

strcmp: İki katarın aynı olup olmadığını belirler.

strcmpi: iki katarın harf durumu dikkate alınmadan aynı olup olmadığını belirler.

strncmp: iki katarın ilk n karakterinin aynı olup olmadığını belirler.

strncmpi: ilk katarın harf durumu dikkate alınmadan ilk n karakterinin aynı olup

olmadığını belirler.

Page 15: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 15 04.01.2013

Katarların Tek Tek Karşılaştırılması

Katar dizileri aynı boyutlu veya en az biri skaler olmak koşuluyla karakter eşitlik

karşılaştırılması için ilişkisel operatörler (>, >=,<, <=, ==, ~=) kullanılabilir.

>> x='matlab';

>> y='matema';

>> x==y

ans =

1 1 1 0 0 0

Büyük-Küçük Harf Dönüşümleri

upper: Katardaki tüm harfleri büyük harfe dönüştürür.

lower: Katardaki tüm harfleri küçük harfe dönüştürür.

Page 16: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 16 04.01.2013

Sayı-Katar Dönüşümü

num2str: Kayan noktalı sayıyı (tamsayı yada ondalıklı) katara dönüştürür.

int2str: Yalnızca bir tamsayıyı katara dönüştürür.

>> a=236;

>> akatar=num2str(a)

akatar =

236

>> double(akatar)

ans =

50 51 54

Page 17: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 17 04.01.2013

Katar-Sayı Dönüşümleri

str2num: ASCII katarı sayıya dönüştürür.

eval: Sayısal biçimden sayı içeren katara dönüştürür.

>> z='123';

>> x=str2num(z)

x =

123

>> 123*2

ans =

246

>> d='234';

>> eval(d)

ans =

234

>> katar='k=1:5'

katar =

k=1:5

>> eval(katar)

k =

1 2 3 4 5

Page 18: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 18 04.01.2013

Katarlar ile ilgili örnek:

Bir metin içinde kaç tane “a” harfi olduğunu bulan programın yazılması.

clear all; a='There is no function or block with this name.You may want to Check that you have spelled the name correctly.';

s=0;

for i=1:1:length(a)

if a(i)=='a'

s=s+1;

end

end

s

Çalışma Sorusu: Rakamlarla yazılan bir sayının söylenildiği gibi ekrana

basılmasını sağlayan programın yazılması. (1234 Bin iki yüz otuz dört)

Page 19: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 19 04.01.2013

MATLAB/Diziler (Hücre Dizileri) Hücre Dizileri (Cell arrays) { } ile tanımlanır. Böylesi bir dizi, farklı matrisleri

aynı isim altında tutmak ve işlemek için kullanılmaktadır.

Örneğin,

C{1}=[1 2;3 5],C{2}=[4 4 4 4];C{3}=[('yildiz teknik'),(' elektronik')];

girildiğinde, C bir hücre dizisi olur. Bu hücre geri çağrıldığında,

C =

[2x2 double] [1x4 double] [1x20 char]

C{1} hücresi C{2} hücresi C{3} hücresi

Her bir hücre ayrı ayrı işlenir.

Page 20: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 20 04.01.2013

MATLAB/Diziler (Hücre Dizileri) C=cell(n) nn hücreden oluşan boş bir hücreyi C’ye atar. Örneğin n=2 için

>> C=cell(2)

C =

[] []

[] []

hücresi oluşturulur.

Bir hücrenin içine istenilen sayıda yeni hücreler eklemek mümkündür; Örneğin,

C{1}{1}=[2 3] ile C aşağıdaki biçimde değişir;

C =

{1x1 cell} []

[] []

Page 21: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 21 04.01.2013

MATLAB/Diziler (Hücre Dizileri)

C{1,1}

C{2,1}

C{3,1}

C{1,2}

C{2,2}

C{3,2}

C=cell(3,2) hücresi

C{1,2}{1,1} C{1,2}{1,2}

C{1,2}{2,1} C{1,2}{2,2}

C{1,2} hücresi

C{1,2}{2,2} hücresi

Yeni alt

hücre(ler)

Page 22: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 22 04.01.2013

MATLAB/Diziler (Yapı Dizileri) Yapı dizileri (Structure arrays), veri tabanları için oldukça kullanılışlı bir dizi türüdür.

A.name=‘Bahattin';

A.sname=‘Erdogan';

A.univ='YTU';

A.city='Istanbul';

A.email=‘[email protected]';

A.year=2012;

ile A, bir structure array olur.

>>A

A =

name: ‘Bahattin'

sname: ‘Erdogan'

univ: 'YTU'

city: 'Istanbul'

email:

[email protected]'

year: 2012

A yapı dizisi çağrıldığında,

Hücre ve yapı dizileri, mat uzantılı dosyalar olarak, daha önce açıklanan save

komutuyla kaydedilip, load komutuyla geri çağrılabilir.

Page 23: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 23 04.01.2013

Program Çıkışı ve Sonuç Gösterme İşlemleri

disp fonksiyonu: disp(x) şeklindedir. Bir dizi veya metni görüntüler. Dizinin

değişken adı ekrana yazılmaz. X bir karakter katarı ise metin olarak görüntülenir.

disp(' ')

disp(' A-Deg B-Deg C-Deg')

disp(' ===== ===== =====')

disp(rand(4,3))

Ekranda görülen;

A-Deg B-Deg C-Deg

===== ===== =====

0.1389 0.2722 0.4451

0.2028 0.1988 0.9318

0.1987 0.0153 0.4660

0.6038 0.7468 0.4186

Page 24: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 24 04.01.2013

fprintf fonksiyonu: Çıkışın formatlı yaptırılmak ve bunun bir disk dosyasına

yazdırılması istendiğinde kullanılır. Genel yazım biçimi;

kont=fprintf(fid, format, A, …)

Bu fonksiyon A matrisinin reel kısmındaki verileri, format parametresiyle belirtilen

kurala göre düzenler ve fid ile belirtilen dosyaya yazar ve kapsadığı byte sayısını

kont değişkenine atar. Ancak burada şimdilik ekrana yazdırma işlemi ile

ilgileneceğimiz için;

fprintf(‘format’, A, …)

Daha basit bir gösterimle;

fprintf(format_katarı, dönüşüm_karakterleri)

Page 25: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 25 04.01.2013

Belirteç Tanımı

%e Küçük harf ile bilimsel notasyon

%E Büyük harf ile bilimsel notasyon

%f Sabit nokta (ondalık) notasyon

%g En kısa olmasına göre %e veya %f

%G %g ile aynı ancak E kullanılır

%s Karakter katarı tanımlar

%c Tekil karakter

%d İşaretli ondalık notasyon

%u İşaretsiz ondalık notasyon

Dönüşüm (Biçim) Kodları

Page 26: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 26 04.01.2013

Tamsayı verisi, %d format dönüşüm belirleyicisi ile gösterilir.

>> x=123;

>> fprintf('Islem sonucu %d bulunmustur. \n', x)

Islem sonucu 123 bulunmustur.

Kayan noktalı, yani ondalık sayı verisi, %f veya %e veya %g format

dönüşüm belirleyicisi ile gösterilir.

>> x=1.23;

>> fprintf('Islem sonucu %6f bulunmustur. \n', x)

Islem sonucu 1.230000 bulunmustur.

>> fprintf('Islem sonucu %6.2f bulunmustur. \n', x)

Islem sonucu 1.23 bulunmustur.

>> fprintf('Islem sonucu %4.2f bulunmustur. \n', x)

Islem sonucu 1.23 bulunmustur.

>> fprintf('Islem sonucu %4.2e bulunmustur. \n', x)

Islem sonucu 1.23e+000 bulunmustur.

Page 27: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 27 04.01.2013

Örnek:

clear all;

for i=1:2

for j=1:2

fprintf('A matrisinin %d,%d.ci elemanini giriniz:',i,j)

A(i,j)=input('');

end

end

A

MATLAB ekran çıktısı aşağıda verilmiştir.

A matrisinin 1,1.ci elemanini giriniz:1

A matrisinin 1,2.ci elemanini giriniz:2

A matrisinin 2,1.ci elemanini giriniz:3

A matrisinin 2,2.ci elemanini giriniz:4

A =

1 2

3 4

Page 28: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 28 04.01.2013

Giriş/Çıkış Fonksiyonları textread: Bu fonksiyon ASCII dosyaları okumak için kullanılır. Genel yazım biçimi;

[a, b, c, …]=textread(‘dosyaadi’, ‘format’, N)

“dosyaadi” açılmak istenen dosyanın ismidir. “format”, herbir sütundaki verinin

açıklamasını içeren bir katardır. N ise okunacak satır sayısıdır. N belirtilmemişse

dosya sonuna kadar okunur. Aşağıda verilen isciverileri.txt dosyasından veri

okunmak istenirse;

>> [Adi, Soyadi, Yasi, Maasi, Vergiorani]=textread('isciverileri.txt', '%s %s %f %f %f')

Page 29: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 29 04.01.2013

fopen: Bu fonksiyon daha önce oluşturulmuş dosyaları açmak için kullanılır.

Genel yazım biçimi;

ifade=fopen(‘dosyaadi’, ‘izin’)

“dosyaadi” açılmak istenen dosyanın ismidir. “izin” ise erişim modunu belirten bir

katardır.

İzin Formatı Açıklama

‘r’ Sadece okuma için varolan bir dosyayı açar.

‘rt’ Okuma ve yazma için varolan bir dosyayı açar.

‘w’ Yazma modunda dosya açar; dosya yoksa oluşturulur ve daha

önce böyle bir dosya varsa ondaki bilgiler yitirilir.

‘wt’ Varolan bir dosyanın içindekilerini siler ve okuma ve yazma işlemi

için açar

‘a’ Varolan bir dosyayı yalnızca yazma işlemi için açar ve yeni

yazılanları dosyanın sonuna ekler.

‘a+’ Varolan bir dosyayı, okuma ve yazma işlemi için açar ve yeni

verileri dosyanın sonuna ekler.

fclose: Bu fonksiyon daha önce oluşturulmuş dosyaları kapamak için kullanılır.

Genel yazım biçimi;

fclose(ifade)

Page 30: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 30 04.01.2013

Veri Dosyası Oluşturma ve Çağırma

Örnek:

Tbasla=input('Ilk sıcaklık degerinin yaziniz:');

Tson=input('Son sıcaklık degerinin yaziniz:');

nTemp=input('Kac deger istediginizi giriniz:');

santigrat=linspace(Tbasla,Tson,nTemp);

fahrenhayt=1.8*santigrat+32;

fid=fopen('temp.txt','wt');

fprintf(fid,'sicaklik donusum tablosu\n');

fprintf(fid,'--------------------------\n');

fprintf(fid,' santigrat fahrenhayt\n');

for k=1:nTemp

fprintf(fid, '%f %f \n', santigrat(k), fahrenhayt(k) );

end

fclose(fid);

Page 31: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 31 04.01.2013

MATLAB-EXCEL Veri Transferi

Dış Ortam Veri İşlemi

Bir Excel (.xls) veri dosyası veya .txt ya da .dat dosyası Matlab

ortamından okunabilir ve üzerinde Matlab işlemleri uygulanabilir. Benzer

olarak bir Matlab program çıkışı da .xls olarak kaydedilebilir.

- Excel: degisken =xlsread(‘xxx.xls’)

- x=degisken(:,1); %1. sütun

- y=degisken(:,2); %2. sütun

- .txt veya .dat : load xxx.txt

- x=xxx(:,1); %1. sütun

- y=xxx(:,2); %2. sütun

Page 32: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 32 04.01.2013

num = xlsread(‘filename’, sheet,

'range')

Excel’ den veri okutmak amacıyla xlsread fonksiyonu kullanılır.

A = xlsread('deneme.xlsx', 1,

'C4:D7')

A =

1 6

2 7

3 8

4 9

Page 33: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 33 04.01.2013

MATLAB/ Derleyici (Compiler)

C, Pascal, Basic gibi yüksek veya orta düzey dillerde yazılan bir programın çalışabilmesi için önce makine diline çevrilmesi gerekir; bu işleme derleme (compilation) denir. Derleme işini yapan programlar da derleyici (compiler) olarak adlandırılır.

MATLAB’de sadece m-fonksiyon veya grafik kullanıcı arayüzü (GUI) şeklindeki programlar derlenebilmektedir.

MATLAB derleyicisi (mcc) ile MATLAB’de oluşturulan m-fonksiyon dosyaları C/C++ dosyalarına, .c dosyalar da MATLAB formatına dönüştürülebilir.

>> mcc –m dosya_adi

yazımı ile dosya_adi.m adlı dosya kendi başına çalışabilen dosya_adi.exe haline

ve C koduna dönüştürülür.

>> mcc –p dosya_adi

yazımı ile dosya_adi.m adlı dosya kendi başına çalışabilen dosya_adi.exe haline

ve C++ koduna dönüştürülür.

Page 34: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 34 04.01.2013

MATLAB/ Derleyici (Compiler)

34

Klavyeden girilen iki sayının toplamını hesaplayan programın derlenerek .exe file haline getirilmesi

>>mcc –m toplama (komut satırına yazılarak exe dosyası oluşturulur)

%iki sayinin toplamini hesaplayan program

a=input('birinci sayiyi giriniz= ');

b=input('ikinci sayiyi giriniz= ');

c=a+b;

fprintf('%f ve %f in toplami %f dir',a,b,c)

Page 35: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 35 04.01.2013

MATLAB/ Derleyici (deploytool)

Oluşturulan .exe dosyasının MATLAB kurulu olmayan bir bilgisayarda çalışabilmesi için MATLAB Compiler Runtime (MCR) programının kurulması gerekir. MCR farklı MATLAB versiyonları için değişiklik gösterir. exe dosyası hangi MATLAB versiyonunda derlendiyse ilgili MCR bilgisayarda kurulmalıdır. Kullanıcıya .exe uzantılı dosyanın çalışabilmesi için gerekli tüm dosyaların verilmesi gerekir. Bu amaçla deploytool fonksiyonu kullanılabilir.

Page 36: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 36 04.01.2013

MATLAB/ Derleyici (deploytool)

build - .exe file oluşturulmasını

sağlar.

Page 37: PROGRAMLAMA Ek Ders Notu

Algoritma ve Programlama 37 04.01.2013

MATLAB/ Derleyici (deploytool)

Package – Matlab kurulu olmayan

bilgisayarda, exe uzantılı

dosyanın çalıştırılabilmesi için bir

paket program hazırlar.

Sonuç olarak ….pkg.exe uzantılı bir dosya oluşturulur. Bu dosya

çalıştırıldığında bilgisayarda MATLAB’ de derlenen .exe uzantılı programın

çalıştırılabilmesi için gerekli programı kurar.