ALGORİTMALAR VE PROGRAMLAMA

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

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

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

C Konsol Giriş Çıkış Fonksiyonları

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

Matlab da Dizi ve Matrisler. Mustafa Coşar

BİLGİSAYAR PROGRAMLAMA DERSİ

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,

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

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

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

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

MATLAB. Fen ve Mühendislik Uygulamaları ile. Doç. Dr. M. Akif CEVİZ. MATLAB de Dizi Kavramı

2.3. MATRİSLER Matris Tanımlama

HSancak Nesne Tabanlı Programlama I Ders Notları

C Programlama Dilininin Basit Yapıları

MATLAB. Temel işlemler, Vektörler, Matrisler DOÇ. DR. ERSAN KABALCI

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

Bilgisayar Programlama MATLAB

Nesne Tabanlı Programlama

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

Temel Giriş/Çıkış Fonksiyonları

Nesne Tabanlı Programlama

Eln 1001 Bilgisayar Programlama I

Diziler İndisli Değişkenler

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

İM 205-İnşaat Mühendisleri için MATLAB. Irfan Turk Fatih Üniversitesi,

ALGORİTMA VE PROGRAMLAMA Ek Ders Notu

Bilgisayar Programlama MATLAB

Nargin - Nargout. Bir fonksiyonda giriş parametrelerinin kontrolü Nargin = number of argument input

Internet Programming II

MATLAB MATLAB MAT LAB MAT LAB MATLAB

2.2- DEĞİŞKENLER VE SABİTLER ÇALIŞMA YAPRAĞI

MATLAB ile ANALİZ (MIA)

Internet Programming II

BİLGİSAYAR PROGRAMLAMA DERSİ

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

YZM 2105 Nesneye Yönelik Programlama

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

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

Veri Tipleri Aşağıdaki programdaki 5 hatayı bulunuz.

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ


PROGRAMLAMAYA GİRİŞ DERS 2

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

Bölüm: Matlab e Giriş.

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

1. GİRİŞ 1.1. GENEL BAKIŞ 1.2. KULLANICI ARAYÜZÜ

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

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

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler

Dr. Fatih AY Tel: fatihay@fatihay.net

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

BBS515 Nesneye Yönelik Programlama. Ders 2 Zümra Kavafoğlu

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

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

MATLAB Kullanımı. [ sqrt(-6)] a = [ ; ; 1 sqrt(-6)] a=[] clear a. a=[ 3, , 9, 10 ] a= [a ] a=[ 1 2 a ]

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

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

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

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

GİRİŞ/ÇIKIŞ VE TANIMLAMA DEYİMLERİ

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

FONKSİYONLAR. Giriş argümanlarına karşılık gelen çözümü çıkış argümanları olarak sonuçlandırır. Fonksiyondosyalarıkendiçalışmaalanındaki

Karabük Üniversitesi, Mühendislik Fakültesi... WEB TEKNOLOJİLERİ

Programlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1

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

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

BİLGİSAYAR 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

MatLab. Mustafa Coşar

MatLab. Mustafa Coşar

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler:

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

MATLABA GİRİŞ 1. MATLAB. Komut penceresi. MATLAB adı, MATrix LABoratory (Matrix Laboratuarı) kelimelerinden gelir.

/*int sayi1, sayi2,toplam=0;

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

Programlama Dillerinde Kullanılan Veri Tipleri

NĐĞDE ÜNĐVERSĐTESĐ Elektrik Elektronik Mühendisliği Bölümü. Devre Tasarımı Ders Notları MATLAB. Arş. Gör. Salim ÇINAR. salim çınar

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

MATLAB ile ANALİZ (MIA)

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ Published by Juan Soulié

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

ALGORİTMA VE PROGRAMLAMA I

Diziler (Arrays) Çok Boyutlu Diziler

Genel Programlama II

Bilgisayar Programlama MATLAB

disp VEYA fprintf KOMUTLARIYLA EKRANA MESAJ YAZDIRMA

ELN1001 BİLGİSAYAR PROGRAMLAMA I

DENEY 1: Matlab de Temel Uygulamalar

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Ş (

İnternet Programcılığı Öğr. Gör. Serkan AKSU PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Bölüm 6. Veri Türleri ISBN

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

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

Internet Programming II

Transkript:

ALGORİTMALAR VE PROGRAMLAMA DENEY-1: MATLAB da KULLANILAN SAYI GÖSTERİMLERİ, VERİ TİPLERİ, TEMEL FONKSİYONLAR VE DİZİ İŞLEMLERİ SAYI GÖSTERİMLERİ: MATLAB da sayılar sabit noktalı (fixed point) ve kayan noktalı (float point) olmak üzere iki şekilde gösterilir. Sabit Noktalı Sayılar: Artı veya eksi olabilen tamsayı veya ondalık sayı gösterimini içerir. Örneğin; 5, 0.075, -5.6 gibi. Kayan Noktalı Sayılar: Artı veya eksi olabilen ±mx10 e şeklinde gösterilir. Örneğin; 2.677x10 5 sayısı, MATLAB da 2.677e5 şeklinde gösterilir. Kayan nokta olmasının nedeni ise ondalık noktanın kaymasındandır. Örneğin; 2.677e5 gösterimi 267.7e3 veya 0.2677e6 şeklinde ifade edilebilir. Kayan noktalı sayı mantis ve üstel kısım olmak üzere iki kısımdan oluşur. Mantis (m) kısmı 0<m<10 arasında p basamaklı olabilir. P; duyarlılık veya hassasiyet olarak adlandırılır. Üstel kısımda ise üst kısmının değeri belirlenir. MATLAB da tüm sayılar IEEE kayan noktalı standardına uygun şekilde belirlenmiştir. Ayrıca karmaşık sayı gösterimleri için de i ve j ifadeleri kullanılır. Karmaşık sayılarında sayı biçimleri kayan noktalı olacak şekilde belirlenir. SAYI ÇIKIŞ FORMATLARI: MATLAB, işlemlerin ve hesaplamaların çeşitli sayı çıkış formatları vardır. Bu işlem format komutu ile gerçekleştirilir. MATLAB ta kullanılan formatlar aşağıda verilmiştir: KOMUT Açıklama format Varsayılan format (format short ile aynı) format short 5 Rakamlı sabit noktalı kısa skala formatı format long 15 rakamlı sabit noktalı format format short e 5 rakamlı kayan noktalı kısa format format long e 15 rakamlı kayan noktalı uzun format format hex Onaltılık tabanda format format rat En küçük tamsayı oranı yaklaşımıyla sayıyı kesirli olarak gösterir Aşağıdaki işlem için MATLAB da farklı sayı çıkış formatlarını çalıştırınız ve sonuçları inceleyiniz. >> a=355/113 >> format short e >> a >>format long >>format short e >>format long e >>format rat Aynı işlemleri pi sayısını için de gerçekleyiniz. Soru: MATLAB da kullanılabilecek en büyük ve en küçük sayıyı bulunuz? realmax ve realmin komutlarını çalıştırınız.

MATLAB da VERİ TÜRLERİ Veri türü, verinin bellekte tutulma şeklini belirler. Veriler değişkenler veya sabit sayılar olabilir. Genel olarak sayısal (nümerik) ve sayısal olmayan (alfa-nümerik) olmak üzere iki genel veri türünden bahsedilebilir. Veri tipine bağlı olarak kullanılan değişkenin veya sabitin bellekte saklanacağı boyut ve yapısı belirlenir. MATLAB da tüm değişkenler dizi şeklinde belirlenir. MATLAB taki veri türleri aşağıda verilmiştir. logical : true veya false değerlerinden oluşan mantıksal dizi. int8: 8-bit işaretli tamsayı dizisi uint8: 8-bit işaretsiz tamsayı dizisi int16: 16-bit işaretli tamsayı dizisi uint16: 16-bit işaretsiz tamsayı dizisi int32: 32-bit işaretli tamsayı dizisi uint32: 32-bit işaretsiz tamsayı dizisi int64: 64-bit işaretli tamsayı dizisi uint64: 64-bit işaretsiz tamsayı dizisi single: Tek duyarlıklı kayan nokta dizisi (32 bit uzunluğunda) double: Çift duyarlıklı kayan nokta dizisi (64 bit uzunluğunda) char: Karakterler dizisi cell: Hücre dizisi struct: Yapı dizisi class: nesne(object) sınıfı Aşağıdaki komutları MATLAB de çalıştırınız. >> a=pi*10000000 >> single(a) >> int8(a) >> int16(a) >> int32(a) Elde edilen sonuçları karşılaştırınız. Aynı işlemi >> a=-pi*10e7 için gerçekleyiniz. Burada ayrıca işaretsiz veri tiplerini de deneyiniz. char veri tipinin incelenmesi: Karakter veri tipinde her bir karakter 8 bit (1 byte) uzunluğundadır. Bir değişkeni char veri tipinde olduğunu belirlemek için girilen karakterler iki tırnak içine alınır. Buradaki karakterler ASCII sayısal kodlarına karşılık gelir. Aşağıdaki komutları MATLAB de çalıştırınız. >>x='a' Bu işlemi gerçekleştirdiğinizde x değişkeninin char veri tipinde tanımlandığını workspace penceresinden gözlemleyiniz. >> y='abc' Komutunu çalıştırdığınızda y değişkeninin char veri tipinde 1x3 boyutunda bir dizi olduğunu gözlemleyiniz. >> y(1) >> y(2) >> y(3) satırlarını çalıştırınız. Dizinin her bir elemanın a, b ve c olarak atandığını gözlemleyiniz. >> sayidegeri=double(y) Komutunu çalıştırınız ve y değişkeninin içindeki her bir karakterin ASCII kod karşılığını görünüz. Aynı işlemleri ad ve soyad larınızı arada bir boşluk olacak şekilde giriniz. Boşluk(space) karakterinin ASCII kodunu bulunuz.

Aşağıdaki işlemleri sırasıyla gerçekleyiniz ve sonuçları inceleyiniz. >> deneme='ad ve Soyad 1234' >>sort(deneme) >>fliplr(deneme) >>size(deneme) >>upper(deneme) >>lower(deneme) Ayrıca aşağıdaki satırları çalıştırınız. >> x='1' >> y='2' >>x+y Elde edilen sonucu yorumlayınız. Karakter dizilerine string adı verilir. String işlemleri için MATLAB da bir çok fonksiyon oluşturulmuştur. Bu fonksiyonlar kullanım gerekliliğine göre MATLAB da araştırılabilir. Karakter dizilerinin karşılaştırılması işlemleri için strcmp, strcmpi, strncmp ve strncmpi fonksiyonlarını inceleyiniz. Sayı-Karakter ve Karakter-Sayı Dönüşümleri: MATLAB da sayıları karaktere dönüştürmek için iki fonksiyon vardır. Bunlar; num2str: Kayan noktalı sayıyı karakter dizisine dönüştürür. int2str: Sayıyı yuvarlanmış tamsayı olarak karaktere dönüştürür. >> x=123.45 >> y=int2str(x) >> y=num2str(x) >> double(y) num2str fonksiyonu kullanıldığında elde edilen dizinin uzunluğu nedir? Karakter-sayı dönüşümlerinde ise üç temel fonksiyon vardır. Bunlar; str2num, str2double ve eval. Aşağıdaki satırları çalıştırınız ve elde edilen sonuçları inceleyiniz. >> x='123' >> sayi=str2num(x) >> y=str2num('123+2') >> z=str2num('abc') >> a=str2double('123.45e6') eval fonksiyonu ise parametre olarak fonksiyona girdi yapılan string te ifade edilen işlemi gerçekleştirir. Örneğin; >> b=eval('sind(30)') >> c=eval('1:1:10') disp fonksiyonu ile num2str nin kullanılması: >> not=100; >> disp(['alınan Not:', num2str(not),' dur']) fprintf fonksiyonu: fprintf fonksiyonu, bir çıkışın formatlı olarak gösterilmesinde kullanılır. Genel yazım biçimi; fprintf ( Metin %format\n, değişken_adı). >> x=123.45 >> fprintf('işlem sonucu %f bulunmuştur',x) >> fprintf('işlem sonucu %f\n bulunmuştur',x)

>> fprintf('işlem sonucu %f bulunmuştur\n',x) >> fprintf('işlem sonucu %f bulunmuştur\n tekrar deneyiniz',x) >> fprintf('işlem sonucu %f bulunmuştur\t tekrar deneyiniz',x) >> fprintf('işlem sonucu %f bulunmuştur\b tekrar deneyiniz',x) >> fprintf('işlem sonucu %f ''dir.\n',x) fprintf fonksiyonunun bu şekilde kullanımı dışında dosyaya veri yazmak için de kullanımı mevcuttur. Bunlarla ilgili işlemler ilerleyen deneylerde yapılacaktır. Ayrıca, sprintf fonksiyonunu inceleyiniz. Veri türlerinden cell, struct ve class veri tipleri bu ders kapsamında incelenmeyecektir. MATLAB help dosyalarından inceleyebilirsiniz. MATLAB da kullanılan temel fonksiyonlar: >>help elfun Satırı ile ekranda gözüken fonksiyonları inceleyiniz. >>help elmat Ve >>help specfun Satırı ile ekranda gözüken fonksiyonları inceleyiniz. SORULAR: 1. Aşağıdaki işlemleri MATLAB programında gerçekleyiniz. a) sin(pi/7) b)sin(30 o ) c) 10log100 d) ln(10 2 /3) e) e 5 f) e log10 g) log 2 16 2. x=40 o, n=0.5x10 5 için; cos( x) sonuc hesaplayınız. 2 / 3 n ln( n) 3. t=300, r=0.072, a=0.233, b=0.057, A=20, B=10 için; gerçekleyiniz. 3 r t K ( a b) 2 1 A B işlemini DİZİLER MATLAB ın en temel işlem elemanı dizilerdir(array). Bu deneyde bir boyutlu (vektör) ve çok boyutlu diziler ve bunların oluşturulma biçimleri incelenecektir. Bir boyutlu dizi (vektör) oluşturma: MATLAB de vektör oluşturmanın üç temel yolu vardır: 1. Doğrudan köşeli parantez kullanarak [.]. 2. Eşit aralıklı elemanlar kullanarak. Bu işlem için : operatörü veya linspace ve logspace fonksiyonları kullanılır. 3. rand, randn, ones, zeros benzeri fonksiyonlar kullanılarak. >> x=[1 2 3 4 5] >> x=[1,2,3,4,5] >>x(2) >>y=[sind(30) cos(pi/6) sqrt(2)] >>n=1:1:10 >>y=1:10 >>z=1:2:10 >> n=[1:10]

ci=-2*pi:pi/2:2*pi >>v=linspace(1,10,5) >> h=randn(1,4) >>k=ones(1,5) >>kl=ones(2,5) >>z=zeros(1,7) Vektör işlemleri: >> a=[1 2 3] >> b=[-1 5 8] +b -b *b.*b /b./b.\b ^b.^b >>size(a) >>length(a) Dizilerde kullanılan çeşitli fonksiyonlar vardır. Bu fonksiyonları inceleyiniz; max, min, sum, prod, mean, sort. İki Boyutlu Diziler (Matrisler): =[1 2 3;4 5 6;7 8 9] >>b=2*ones(3,4) >>c=eye(3) >>d=pascal(4) >>x1=[1:5] >>x2=[-1 3 65 8 43] >>x3=ones(1,5) >>X=[x1;x2;x3] Matris işlemlerini incelemek için aşağıdaki satırları çalıştırınız: =[1 2;3 4] >>b=[-1 3;5 6] +b *b.*b /b./b >>det(a) >>inv(a) Matris İndeksleme ve Kolon (:) Notasyonu: Bir A matrisi için; 1. A(m,n) gösterimi: A dizisinin m,n. elemanının değerini verir. 2. A(:,n) gösterimi: A matrisinin n. sütununu verir. 3. A(m,:) gösterimi: A matrisinin m. satırını verir. 4. A(x:y,:) gösterimi: A matrisinin x den y ye kadar olan tüm satırlarını verir.

5. A(:,x:y) gösterimi: A matrisinin x den y ye kadar olan tüm sütunlarını verir. 6. A(m:n) gösterimi: Eleman sayısı ilk sütun elemanlarından başlayarak m. Eleman ile n. eleman arasındaki elemanları verir. Aşağıdaki satırları çalıştırınız ve elde edilen sonuçları inceleyiniz. >>A=magic(5) >>A(2,4) >>A(:,3) >>A(2,:) >>A(5:8) >>A(1:2,:) >>A(:,2:3) >>x=a >>x(1,1)=0 >>x(:,2)=[] >>y=ones(1,5) >>Ayeni=[A;y] >>y=ones(5,1) >>Ayeni=[A y] SORULAR: 1. Aşağıdaki satırlar MATLAB komut penceresinde yazıldığında elde edilecek çıktıları veriniz (x=[ones(3,2),eye(3);zeros(1,5)]; y=[1:5;2,2,2,2,2;6:10;-1-1 -1-1 -1];). 2011 YILI SINAV SORUSU. a) x b) y c) z=x(3,1:3) d) a=x(2:3,2:3) e) b=y(1:3,4) f) c=z*b g) d=z.*b h) e=x.*y 2. Beş işçinin 1 ay boyunca çalışma çizelgesi verilmiştir. Çizelgeyi matris şeklinde tanımlayınız. a) Her bir işçi bir ayda ne kadar para kazanmıştır. MATLAB de bulunuz. b) Bu aya toplam maaş ödemesi kaç TL dir. MATLAB de bulunuz. c) Ne kadar ürün üretilmiştir. d) Bir ürünü üretmenin toplam maliyeti ne kadardır? 1. İşçi 2. İşçi 3. İşçi 4. İşçi 5. İşçi Saat Ücreti 1.2 2 2.5 3 4.5 Çalışılan Saat 153 160 157 165 150 Ürün Adeti 1100 1250 1000 1200 1100