ALGORİTMA VE PROGRAMLAMA Ek Ders Notu



Benzer belgeler
MATLAB/Değişkene Değer Atamak

MATLAB/Diziler (Karakter Dizileri)

MATLAB İLE PROGRAMLAMAYA GİRİŞ. Nedim TUTKUN Elektrik Elektronik Mühendisliği Bölümü

BİLGİSAYAR UYGULAMALARI Şırnak Üniversitesi Mühendislik Fakültesi Güz Dönemi Arş.Gör. Eren DEMİR ve Arş.Gör. Veysel KIŞ (

MATLAB Temelleri. EE-346 Hafta 2 Dr. Ayşe DEMİRHAN

MATLAB de Programlama & Dosya Yönetimi. EE-346 Hafta 6 Dr. Ayşe DEMİRHAN

ALGORİTMALAR VE PROGRAMLAMA

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

Fen ve Mühendislik Uygulamalarında MATLAB

Matlab da Dizi ve Matrisler. Mustafa Coşar

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

BİLGİSAYAR PROGRAMLAMA DERSİ

C Programlama Dilininin Basit Yapıları

BİLGİSAYAR PROGRAMLAMA DERSİ


MatLab. Mustafa Coşar

BİLGİSAYAR PROGRAMLAMA DERSİ

ALGORİTMALAR VE PROGRAMLAMA

Değişken atama Kullanıcıdan veri girişi istendiğinde kullanılır. 1. Bir değişkene değer atama (örn: a=4 gibi) 2. Klavyeden veri girme

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

PROGRAMLAMAYA GİRİŞ DERS 2

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

pfrintf fonksiyonu: Çıkışın formatlı olması ve bunun bir dosyaya yazdırılması durumlarında kullanılır. fprintf fonksiyonunun genel yazım biçimi,

C Konsol Giriş Çıkış Fonksiyonları

Bilgisayar Programlama

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

MATLAB/Programı Dallandıran İfadeler

MATLAB İLE PROGRAMLAMAYA GİRİŞ. Nedim TUTKUN Elektrik Elektronik Mühendisliği Bölümü

KONTROL SİSTEMLERİ-1 LABORATUVARI DENEY -1. Öğr. Gör. Güzin ÖZMEN Arş. Gör. Fehmi SEVİLMİŞ

Programlama Dilleri 1. Ders 4: Diziler

BİLGİSAYAR PROGRAMLAMA MATLAB

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

Özyineleme (Recursion)

HSancak Nesne Tabanlı Programlama I Ders Notları

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

Bilgisayar Programlama MATLAB

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

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

BİL1001 Bilgisayar Bilimlerine Giriş 1

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

fprintf ( Ekranda Görüntülenen Mesaj )

Fen ve Mühendislik Uygulamaları ile MATLAB

Temel Bilgisayar Programlama

C PROGRAMLAMA DİLİNE GİRİŞ

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

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

disp VEYA fprintf KOMUTLARIYLA EKRANA MESAJ YAZDIRMA

MATLAB Temelleri. EEM104 - Bilgisayar Programlama. Matlab ın Açılış Ekranı. Dr. Mehmet Siraç Özerdem EEM Dicle Üniversitesi. Launch Pad.

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

Algoritmalar ve Programlama. Algoritma

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

1. LabVIEW ile Programlama

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

ALFASAYISAL BİLGİLER KARAKTER DİZİLERİ (STRING)

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-8 Dosya İşlemleri-1. Yrd. Doç. Dr. Ümit ATİLA

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

ALGORİTMA VE PROGRAMLAMA II

MAK 1005 Bilgisayar Programlamaya Giriş. Fonksiyonlar. Prof. Dr. Necmettin Kaya

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II

Veritabanı. SQL (Structured Query Language)

PASCAL PROGRAMLAMA DİLİ YAPISI

BMB1002 Bilgisayar Programlamaya Giriş. Dosyalar. Prof. Dr. Necmettin Kaya

Temel Giriş/Çıkış Fonksiyonları

ALGORİTMA VE PROGRAMLAMA I

-A Grubu- MKT103 Görsel Programlama 2015/2016 Güz Dönemi Final Sınavı

SPSS (Statistical Package for Social Sciences)

Fonksiyonlar (Altprogram)

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

Yrd. Doç. Dr. A. Burak İNNER

Eln 1001 Bilgisayar Programlama I

Matematiksel Operatörler

MATLAB Semineri. EM 314 Kontrol Sistemleri 1 GÜMMF Elektrik-Elektronik Müh. Bölümü. 30 Nisan / 1 Mayıs 2007

İŞLETMELERDE BECERİ EĞİTİMİ DERSİ MİCROSOFT WORD 2007 ÇALIŞMALARI

MATLAB İLE PROGRAMLAMAYA GİRİŞ. Nedim TUTKUN Elektrik Elektronik Mühendisliği Bölümü

İçindekiler. Kaynakça

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Pascalda oluşturulacak dosyalar değişkenler gibi programın başında tanımlanır.

Yrd. Doç. Dr. Caner ÖZCAN

MATLAB (MATRİX LABORATORY) SAYISAL HESAPLAMA DİLİDİR. MATHWORKS FİRMASI TARAFINDAN GELİŞTİRİLMİŞ OLUP, MATRİS İŞLENMESİNE, FONKSİYONLAR VE VERİ

Bilgisayar Programlama MATLAB

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA I

AKT 305 Aktüeryal Yazılımlar Ödev 1 Yanıtları Soru 1. Create a vector x with the elements...

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

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

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

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

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

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Microsoft Office Excel 2007

Algoritma ve Programlamaya Giriş

Eln 1002 Bilgisayar Programlama II

MatLab. Mustafa Coşar

Dr. Fatih AY Tel: fatihay@fatihay.net

MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ. Prof. Dr. Necmettin Kaya

ALGORİTMALAR VE PROGRAMLAMA

Transkript:

ALGORİTMA VE PROGRAMLAMA Ek Ders Notu

MATLAB de Programlama Matlab de programlama en genel olarak iki yolla yapılır: 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ı Algoritma ve Programlama 2

Düzyazı (script) m-dosyaları daha önceki derslerde anlatılmıştır. Aşağıda bir m-dosyası örneği verilmiştir. Ö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); >>uzaklik KOMUT PENCERESİ Algoritma ve Programlama 3

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) Algoritma ve Programlama 4

Fonksiyon m-dosyaları Output Arguments Function Name Input Arguments Online Help Function Code 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 end m = n; y = sum(x)/m; Algoritma ve Programlama 5

Ö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 Algoritma ve Programlama 6

Ö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.) 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 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 Algoritma ve Programlama 7

Ö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 Algoritma ve Programlama 8

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. Algoritma ve Programlama 9

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 Algoritma ve Programlama 10

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. Veri Mantıksal Karakter Sayısal Hücresel Yapısal int8, uint8 int16, uint16 int32, uint32 int64, uint64 single double Algoritma ve Programlama 11

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. Algoritma ve Programlama 12

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 Algoritma ve Programlama 13

Ç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. Algoritma ve Programlama 14

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. Algoritma ve Programlama 15

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 Algoritma ve Programlama 16

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 Algoritma ve Programlama 17

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) Algoritma ve Programlama 18

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. Algoritma ve Programlama 19

MATLAB/Diziler (Hücre Dizileri) C=cell(n) n n 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} [] [] [] Algoritma ve Programlama 20

MATLAB/Diziler (Hücre Dizileri) C=cell(3,2) hücresi C{1,2} hücresi C{1,1} C{1,2} C{1,2}{1,1} C{1,2}{1,2} C{2,1} C{2,2} C{1,2}{2,1} C{1,2}{2,2} C{3,1} C{3,2} Yeni alt hücre(ler) C{1,2}{2,2} hücresi Algoritma ve Programlama 21

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 A yapı dizisi çağrıldığında, A.univ='YTU'; A = A.city='Istanbul'; name: Bahattin' A.email= berdogan@yildiz.edu.tr'; sname: Erdogan' A.year=2012; univ: 'YTU' city: 'Istanbul' email: ile A, bir structure array olur. berdogan@yildiz.edu.tr' year: 2012 Hücre ve yapı dizileri, mat uzantılı dosyalar olarak, daha önce açıklanan save komutuyla kaydedilip, load komutuyla geri çağrılabilir. Algoritma ve Programlama 22

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 Algoritma ve Programlama 23

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) Algoritma ve Programlama 24

Dönüşüm (Biçim) Kodları 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 Algoritma ve Programlama 25

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. Algoritma ve Programlama 26

Ö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 Algoritma ve Programlama 27

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') Algoritma ve Programlama 28

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ı r rt w wt a a+ Açıklama Sadece okuma için varolan bir dosyayı açar. Okuma ve yazma için varolan bir dosyayı açar. Yazma modunda dosya açar; dosya yoksa oluşturulur ve daha önce böyle bir dosya varsa ondaki bilgiler yitirilir. Varolan bir dosyanın içindekilerini siler ve okuma ve yazma işlemi için açar Varolan bir dosyayı yalnızca yazma işlemi için açar ve yeni yazılanları dosyanın sonuna ekler. 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) Algoritma ve Programlama 29

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); Algoritma ve Programlama 30

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 Algoritma ve Programlama 31

Excel den veri okutmak amacıyla xlsread fonksiyonu kullanılır. num = xlsread( filename, sheet, 'range') A = xlsread('deneme.xlsx', 1, 'C4:D7') A = 1 6 2 7 3 8 4 9 Algoritma ve Programlama 32

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. Algoritma ve Programlama 33

MATLAB/ Derleyici (Compiler) Klavyeden girilen iki sayının toplamını hesaplayan programın derlenerek.exe file haline getirilmesi %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) >>mcc m toplama (komut satırına yazılarak exe dosyası oluşturulur) Algoritma ve Programlama 34 34

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. Algoritma ve Programlama 35

MATLAB/ Derleyici (deploytool) build -.exe file oluşturulmasını sağlar. Algoritma ve Programlama 36

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. Algoritma ve Programlama 37