BİLGİSAYAR PROGRAMLAMAYA GİRİŞ



Benzer belgeler
PROGRAMINIZI ANĠ SONLANDIRMAK ĠSTEDĠĞĠNĠZ YER BĠR DÖNGÜNÜN ĠÇĠ ĠSE NE OLUR?????????

Bilgisayar Programlama MATLAB

BİLGİSAYAR PROGRAMLAMA DERSİ

Bilgisayar Programlama MATLAB

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

Matlab da Dizi ve Matrisler. Mustafa Coşar

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

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

disp VEYA fprintf KOMUTLARIYLA EKRANA MESAJ YAZDIRMA

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

Bilgisayar Programlama MATLAB

BİLGİSAYAR PROGRAMLAMA DERSİ

BİLGİSAYAR PROGRAMLAMA DERSİ

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

2.3. MATRİSLER Matris Tanımlama

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

Fen ve Mühendislik Uygulamalarında MATLAB

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

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ı

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

Bilgisayar Programlama

3. BÖLÜM MATRİSLER 1

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

MatLab. Mustafa Coşar

Diziler (Arrays) Çok Boyutlu Diziler

Matlab - Giriş (İleri Yapı Statiği II. Kısım)

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

Soru 1: 3x5 boyutunda s adlı sıfır matrisi oluşturunuz.

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

NESNE TABANLI PROGRAMLAMA Final Sınavı Cevapları

8. HAFTA BLM323 SAYISAL ANALİZ. Okt. Yasin ORTAKCI.

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

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

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

BİLGİSAYAR PROGRAMLAMA Araş. Gör. Ahmet ARDAHANLI. Kafkas Üniversitesi Mühendislik Fakültesi

ÇOK BOYUTLU DİZİLER VE DİNAMİK BELLEK YÖNETİMİ İLE İLGİLİ ÖRNEKLER

MATLAB ile ANALİZ (MIA)

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

D İ Z İ L E R A R R A Y S

Bölüm: Matlab e Giriş.

ALGORİTMALAR VE PROGRAMLAMA

MATLAB

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI

Ders 4: Diziler (Arrays( Arrays) barisgokce.com

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

1- Temel MATLAB Fonksiyonları ve Programlama

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

GEO182 Lineer Cebir. Matrisler. Matrisler. Dersi Veren: Dr. İlke Deniz Derse Devam: %70. Vize Sayısı: 1

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

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

ALGORİTMA VE PROGRAMLAMA II

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.


Diziler. Yukarıdaki bilgileri bilgisayar belleğinde saklamak için aşağıdaki gibi değişkenler tanımlanır ve değerler bu değişkenlere aktarılır :

BİLGİSAYAR PROGRAMLAMA DERSİ

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-10 Diziler. Yrd. Doç. Dr. Ümit ATİLA

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

ÖZDEĞERLER- ÖZVEKTÖRLER

Matlab. Vektör ve Matris İşlemleri

BM202 SAYISAL ÇÖZÜMLEME

Bilgisayar Programlama MATLAB

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

Dr. Fatih AY Tel: fatihay@fatihay.net

C++ Dersi: Nesne Tabanlı Programlama

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

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

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

BPR152-Algoritma ve Programlama II Uygulama -13

Matrisler Matris Tanımı m satır ve n sütundan oluşan tablosuna matris adı verilir.

m=n şeklindeki matrislere kare matris adı verilir. şeklindeki matrislere ise sütun matrisi denir. şeklindeki A matrisi bir kare matristir.

MatLab. Mustafa Coşar

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

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

STEM komutu ayrık zamanlı sinyalleri veya fonksiyonları çizmek amacı ile kullanılır. Bu komutun en basit kullanım şekli şöyledir: stem(x,y).

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

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#3: ALGORİTMA ANALİZİ#2

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

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

BİLGİSAYAR PROGRAMLAMA MATLAB

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

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

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,

BLM111 Programlama Dilleri I. Hafta 10 Diziler. Yrd. Doç. Dr. Caner ÖZCAN

Lineer Cebir. Doç. Dr. Niyazi ŞAHİN TOBB. İçerik: 1.1. Lineer Denklemlerin Tanımı 1.2. Lineer Denklem Sistemleri 1.3. Matrisler

Sınav Dağılım & IMKB Endeks

2) /* Kullanıcıdan alınan iki sayının obebini alt fonksiyon yardımı ile hesaplayan C programı*/

Veri Yapıları Laboratuvarı

GAP (Grup, Algoritma ve Programlama)

Matrisler ve matris işlemleri

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

İstatistik ve Olasılık

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta

Adı Soyadı : Öğrenci No :

Temel Excel Kullanım Bilgisi

Lineer Dönüşümler ÜNİTE. Amaçlar. İçindekiler. Yazar Öğr. Grv.Dr. Nevin ORHUN

Transkript:

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ 10. ders notu DİZİLER (devam) Kaynak: Dr.Deniz DAL kitabı ve ders sunumları

BİR SATIR VEKTÖRÜNÜN BİLGİ DEPOLAMAK AMACIYLA KULLANILMASI A=[ ]; %Başlangıçta Boş 1. METOD A=[A x]; %A=[x] A=[A y]; %A=[x y] 2. METOD A(1)=x; %A=[x] A(2)=y; %A=[x y] Başlangıçta boş olan bir satır vektörünün içine sırasıyla x ve y elemanları ekleniyor.

İKİ RESİM ARASINDAKİ 10 FARKI BULUNUZ A=[ ]; %Baslangıçta Boş 1. RESİM A=[A x]; %A=[x] A=[A y]; %A=[x y] Son eklenen dizi elemanı dizinin son elemanı oluyor. 2. RESİM A=[x A]; %A=[x] A=[y A]; %A=[y x] Son eklenen dizi elemanı dizinin ilk elemanı oluyor. Bu iki farklı türdeki depolama stratejisinin ne tür uygulamalar için uygun olabileceği üzerinde dikkatlice düşününüz.

>>A=[ ] >>A=[A 1] >>A=[A 2] >>A=[3 A]

Programın çalışabilmesi için bu alt m-dosyasının içerisine fonksiyonun yazınız. çalışma dizini altında tanımlı olması (mevcut olması) gereklidir. function depovektor=araliktakiciftleribul(altlimit,ustlimit) depovektor=[ ];%Başlangıçta Boş Bir Satır Vektörü for i=altlimit:ustlimit if CiftSayiMi(i)%Geriye 1 veya 0 Döndüren Alt Fonksiyon UYGULAMA Kisine parametre olarak aldığı bir alt limit ile bir üst limit arasındaki çift sayıları bularak bir satır vektörü içerisinde geriye döndüren bir MATLAB fonksiyonunu AraliktakiCiftleriBul.m adındaki fonksiyon KOMUT PENCERESİ >>AraliktakiCiftleriBul(1,10) ans= 2 4 6 8 10 >>AraliktakiCiftleriBul(10,1) ans= [ ] depovektor=[depovektor i];%depo Vektörun Sonuna Ekle %depovektor=[i depovektor];

DİZİ DEĞERİNİN GİRİLMESİ

ÖRNEK

2 BOYUTLU DİZİLER A DİZİSİ 1 2 3 1 2 3 4 23 12 75 48 3 36 15 12 45 4 55 13 A(1,3)=75; A(2,4)=12

MATRİSLER

size Fonksiyonu

MATRİS ELEMANLARINA İNDİS İLE ULAŞMA Virgül ile ayrılmış iki indis kullanıldığına dikkat ediniz (satır indisi ve sütun indisi). Tek boyutlu dizilerde ise tek bir indis kullandığımızı da hatırlayınız.

DİZİ DEĞERİNİN GİRİLMESİ

İPUCU Bir matris içerisinde iç içe 2 for döngüsü kullanılarak kolaylıkla gezilebilir. Dıştaki döngü (i ile kontrol edilen döngü) satır indislerini ve içteki döngü (j ile kontrol edilen döngü) sütun indislerini temsil amacıyla kullanılabilir. [satirsayisi sutunsayisi]=size(m); toplam=0; for i=1:satirsayisi for j=1:sutunsayisi toplam=toplam+m(i,j); disp(toplam); Bu program ne iş yapar?

UYGULAMA

MATRİSLERDE İŞLEMLER Aşağıdaki matris işlemlerini MATLAB zaten kolayca gerçekleştirmektedir. Ama bizim amacımız bu işlemleri şimdiye kadar öğriğimiz programlama yapıları ile kimizin yazabilmesidir. Matrislerin Bir Skalerle Çarpımı Matrislerde Toplama ve Çıkarma Matrislerde Çarpma Matrislerin Transpozu

Matrislerin Bir Skalerle Çarpımı Kisine parametre olarak aldığı bir M matrisinin her bir elemanını yine kisine parametre olarak aldığı bir k skaleri ile çarpan ve elde ettiği N matrisini geriye döndüren bir MATLAB fonksiyonunu MatrisiSkalerleCarp.m adındaki fonksiyon m-dosyasının içerisine yazınız. function N=MatrisiSkalerleCarp(M,k) N=[ ];%Başlangıçta Boş Bir Matris [satirsayisi sutunsayisi]=size(m); for i=1:satirsayisi for KOMUT j=1:sutunsayisi PENCERESİ N(i,j)=M(i,j)*k; >>MatrisiSkalerleCarp([1 2;3 4],6) ans= 6 12 18 24

Matrislerde Toplama ve Çıkarma İşlemi Kisine parametre olarak aldığı bir M matrisi ile yine kisine parametre olarak aldığı bir N matrisini toplayarak elde ettiği T matrisini geriye döndüren bir MATLAB fonksiyonunu IkiMatrisiTopla.m İki adındaki matrisin fonksiyon toplanabilmesi m-dosyasının veya çıkarılabilmesi içerisine yazınız. ancak ve ancak boyutlarının (yani satır ve sütun sayılarının) eşit olması ile mümkündür. function T=IkiMatrisiTopla(M,N) T=[ ];%Başlangıçta Boş Bir Matris [satirsayisim sutunsayisim]=size(m); [satirsayisin sutunsayisin]=size(n); if (satirsayisim==satirsayisin)&&(sutunsayisim==sutunsayisin) KOMUT PENCERESİ for i=1:satirsayisim%veya >>IkiMatrisiTopla([1 satirsayisin 2;3 4],[5 6;7 8]) ans= for j=1:sutunsayisim%veya sutunsayisin T(i,j)=M(i,j)+N(i,j); 6 8 10 12

A ve B gibi iki matrisin çarpılabilmesi için A matrisinin sütun sayısının B matrisinin satır sayısına eşit olması gerekmektedir. A matrisi mxn, B matrisi nxk ise bu çarpma işlemi sonucunda elde edilecek C matrisinin boyutu mxk olacaktır. 1 A 0 C Örnek 2 3 1 1 A B Matrislerde Çarpma İşlemi 5 1 1 B 1 2 15 12 2 5 3 A=[1 2 1;0 3-1]; B=[1 2; 1 5;2 3]; if size(a,2) ~= size(b,1) disp('carpim Illegal'); return; C=zeros(size(A,1),size(B,2)); for i=1:2 for j=1:2 for k=1:3 C(i,j)=C(i,j)+A(i,k)*B(k,j); disp(a); disp(b); disp(c);

Matrislerde Transpoz İşlemi Transpoz, matrislerde satır ile sütunun yer değiştirmesi işlemidir. Yani A=2x3 lük bir matrisin transpozu alındığı zaman B=A T =3x2 lik bir matris elde edilir. A=[1 3 0; 4 2-3]; B=[ ]; [m n]=size(a); for i=1:n %A nın Sütunu for j=1:m %A nın Satırı B(i,j)=A(j,i); disp(a); disp(b); A = 1 3 0 4 2-3 B =A T 1 4 3 2 0-3 Komut satırında A' yı test ediniz. Hangi metod daha kolay?

BAZI VEKTÖR KOMUTLARI max(a) min(a) sum(a) mean(a) length(a) size(a) A(:,1) A(1,:) A=[2 4 6 7-4;1 5 0 4 5; 3 1 6 9 5]

UYGULAMA

UYGULAMA

UYGULAMA B=[-45 6 0 6 7-1] dizisinin elemanlarını tersten yazdırarak başka bir diziye aktaran programı yazınız.

UYGULAMA B=[-4 3 0; 2 0 5] matrisindeki sıfırların sayısını ve yerini (satır ve sütun numarasını) veren programı yazınız.

UYGULAMA Rand*100 komutu ile rastgele sayılardan oluşan 6 elemanlı bir dizinin en büyük ve en küçük elemanını bulan programı yazınız

UYGULAMA 3x4 boyutunda bir A matrisinin elemanları okutularak bu matrisin sıfırdan küçük elemanlarını bir y vektörüne atayan programı yazınız

UYGULAMA 2x3 boyutunda bir A matrisinin elemanlarının ortalamasını ve sıfırdan büyük sayıların kareköklerinin toplamını bulan bir program yazınız.

BİR KARE MATRİSİN ANA KÖŞEGENİ (Kuzey Batı Güney Doğu Köşegeni) Köşegen Üzerindeki Elemanlar (i==j) İç Döngü Değişkeni (j) Üst Üçgen Bölgedeki Elemanlar (j>i) Dış Döngü Değişkeni (i) M = 4 4 15 3 27 1 78 9 16 7 123 9 25 34 2 4 58 34 42 56 65 112 2 8 3 Alt Üçgen Bölgedeki Elemanlar (i>j)

UYGULAMA Kisine parametre olarak aldığı bir M kare matrisinin ana köşegeni üzerindeki elemanlarının aritmetik ortalamasını bularak geriye döndüren bir MATLAB fonksiyonu yazınız. (İç içe 2 for döngüsüne ihtiyaç duyulur mu? Tek bir for döngüsü ile çözüme ulaşabilir miyiz?)

UYGULAMA Aşağıdaki gibi bir ekran çıktısı verecek EkranaRakamBas.m adında bir fonksiyon m-dosyası yazınız. (Fonksiyonunuz kisine 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 function EkranaRakamBas() clc; for i=1:9 %Satır Sayısı for j=1:(10-i) %Sütun Sayısı fprintf('%d ', j); fprintf('\n'); %Bir Alt Satırın Başına Git

UYGULAMA Aşağıdaki gibi bir ekran çıktısı verecek EkranaRakamBas.m adında bir fonksiyon m-dosyası yazınız. (Fonksiyonunuz kisine hiçbir argüman almayacak ve geriye yine hiçbir değer çevirmeyecektir.) EKRAN ÇIKTISI >>EkranaRakamBas() 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 4 4 4 4 4 4 5 5 5 5 5 6 6 6 6 7 7 7 8 8 9

UYGULAMA Aşağıdaki gibi bir ekran çıktısı verecek EkranaRakamBas.m adında bir fonksiyon m-dosyası yazınız. (Fonksiyonunuz kisine hiçbir argüman almayacak ve geriye yine hiçbir değer çevirmeyecektir.) EKRAN ÇIKTISI >>EkranaRakamBas() 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 1 2 3 4 5 6 1 2 3 4 5 6 7 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 9 9x9 luk bir kare matrisin ana köşegene göre alt üçgen bölgesinde (ana köşegen dahil) (if i>=j) j leri, üst üçgen bölgesinde ise boşluk karakterlerini ekrana basan bir çözüm işe yarar mı?

UYGULAMA K=[-4 3 0;2 0 4 ] matrisindeki sıfırların sayısını ve yerini (satır ve sütun numaralarını) ekrana basan bir MATLAB düzyazı m-programı yazınız. K=[-4 3 0;2 0 4 ];%Rastgele Matris Icinde Sıfır Arayin [m n]=size(k); sifirsayisi=0;%sayac for i=1:m for j=1:n if K(i,j)==0 sifirsayisi=sifirsayisi+1; fprintf('k(%d,%d)=0\n',i,j); disp(k); fprintf('k Matrisindeki SIFIR Sayisi=%d\n',sifirSayisi);

TEŞEKKÜR Kitap ve ders notlarından yararlandığım Değerli Hocamız Dr. Deniz DAL a ve yine ders notlarından yararlandığım değerli dekanımız Prof.Dr. İrfan KAYMAZ a teşekkürlerimle