5/14/2015. Kaynaklar. Bilgisayar Programlama. Program. Programlamanın Amacı. Programlama Dili. Programlama Dilleri



Benzer belgeler
Microsoft Excel. Kısa Yollar. Operasyonlar. Excel hücrelerine veri girişi. Excel hücrelerine veri girişi. Excel 12/23/2014

BM202 SAYISAL ÇÖZÜMLEME

BİLGİSAYAR PROGRAMLAMA VE FİZİKTE PROGRAMLAMA DERSLERİ İÇİN MATLAB ÇALIŞMA NOTLARI. Mehmet ÖZKAN

BİLGİSAYAR PROGRAMLAMA DERSİ

BİLGİSAYAR PROGRAMLAMA DERSİ

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

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

BİLGİSAYAR PROGRAMLAMA MATLAB

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

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

Algoritma ve Akış Diyagramları

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

disp VEYA fprintf KOMUTLARIYLA EKRANA MESAJ YAZDIRMA

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar

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

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

2.3. MATRİSLER Matris Tanımlama

Mühendislikte İstatistik. Yrd. Doç. Dr. Ümit Deniz Uluşar Bilgisayar Mühendisliği

DENEY 1: Matlab de Temel Uygulamalar

Erzurum Teknik Üniversitesi Mühendislik Mimarlık Fakültesi Bilgisayar Programlama Dersi Ödevi Soru

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

ÖDEV (Vize Dönemi) CEVAPLAR. 1. Ekrana Merhaba Dünya! yazdıran algoritmanın akış diyagramını çiziniz ve sözde kod olarak yazınız.

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

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

MATLAB/Programı Dallandıran İfadeler

MatLab. Mustafa Coşar

Fen ve Mühendislik Uygulamalarında MATLAB

Pascal Programlama Dili

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

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Algoritma ve Akış Diyagramları

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

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

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

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

Bilgisayar Programlama

Erzurum Teknik Üniversitesi Mühendislik Mimarlık Fakültesi Bilgisayar Programlama Dersi Final Sınavı Soru Toplam Puanlar

Matlab da Dizi ve Matrisler. Mustafa Coşar

Algoritmalar ve Programlama. DERS - 4 Yrd. Doç. Dr. Ahmet SERBES

BİLGİSAYAR PROGRAMLAMA DERSİ

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


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

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

YUVARLAMA FONKSİYONLARI

ALGORİTMALAR. Turbo C Bilgisayarda Problem Çözme Adımları. Bilgisayarda Problem Çözme Adımları.

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

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

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

MatLab. Mustafa Coşar

Örnek bir Algoritma. Örneğimiz bir insanın evden çıkıp işe giderken izleyeceği yolu ve işyerine girişinde ilk yapacaklarını tanımlamaktadır.

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

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

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

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Algoritma Geliştirmek, Satır Kod)

LYS MATEMATİK DENEME - 1

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu

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

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2

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

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

PROGRAMLAMAYA GİRİŞ VE ALGORİTMA «YTÜROK» EĞİTMEN:REHA ÖZGÜR ŞİMŞEK

YZM 2105 Nesneye Yönelik Programlama

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

PROGRAMLAMA DİLLERİ I

BİLGİSAYAR PROGRAMLAMA DERSİ

PROGRAMLAMA TEMELLERİ DERSİ ÖZETİ

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

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

BİLGİSAYAR PROGRAMLAMA

Bilgisayar Programlama MATLAB

MATLAB DA SAYISAL ANALİZ DOÇ. DR. ERSAN KABALCI

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

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

Fen ve Mühendislik Uygulamaları ile MATLAB

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

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

R ile Programlamaya Giriş ve Uygulamalar

PROGRAMLAMA ve YAZILIM. Sayısal Analiz Yrd.Doç.Dr. Zekeriya PARLAK

3. KOŞUL YAPILARI 3.1. IF YAPISI 2

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

Microsoft Office Excel 2007

SIMAN KULLANIM KILAVUZU

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

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

BİL1001 Bilgisayar Bilimlerine Giriş 1

BAHAR YARIYILI MAK1010 MAKİNE MÜHENDİSLİĞİNDE BİLGİSAYAR UYGULAMALARI DERSİ FİNAL SINAV SORULARI

Algoritma ve Programlamaya Giriş

MATLAB MATLAB MAT LAB MAT LAB MATLAB

GÜMÜŞHANE ÜNĐVERSĐTESĐ MÜHENDĐSLĐK VE DOĞA BĐLĐMLERĐ FAKÜLTESĐ ELEKTRĐK-ELEKTRONĐK MÜHENDĐSLĐĞĐ EEM 114 ALGORĐTMA TASARIMI VE PROGRAMLAMA DĐLLERĐ

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

BİLGİSAYAR PROGRAMLAMA DERSİ

BİLGİSAYAR PROGRAMLAMA MATLAB

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

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

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

BÖLÜM 2: ALGORİTMALAR

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf

Transkript:

Kaynaklar A'dan Z'ye MATLAB ile ÇALIŞMAK,Doç. Dr. Doğan İbrahim HER YÖNÜ İLE MATLAB, Yrd.Doç.Dr.Mehmet UZUNOĞLU MATLAB ve MÜHENDİSLİK UYGULAMALARI, Cemalettin Kubat MATLAB Kılavuzu, Aslan İnan Bilgisayar Programlama Yrd. Doç. Dr. Ümit Deniz ULUŞAR İletişim : umitulusar@akdeniz.edu.tr Oda: 317 Web sayfası http://www.ulusar.com/prog101.htm Programlamanın Amacı Computational Thinking i öğrenerek küçük çaplı programlar yazabilmek. Başkaları tarafından yazılan programları anlayabilme ve kullanabilme!!!!! Bilimsel problemleri bilgisayarda çözülebilir bir hale getirme. Bilgisayarla konuşmanızı sağlayacak yeni bir dil öğrenme. Program Kontrol HAFIZA(Memory) CPU (İşlemci) ALU (Aritmetik Logic Unit) PC Komut 1 Komut 2 Komut 3... Komut n Programlama Dili Dil geçerli cümlelerden oluşan bir settir. Bir cümlenin geçerli olması için Syntax (Grameri doğru olmalı) Semantics ( Anlamlı olması) Ör: Kavaklar yolda yürüyor. Programlama Dilleri Üst seviye programlama dilleri Alt seviye programlama diller Interpreted diller Derlenen diller Genel amaçlı diller Özel amaçlı diller Matlab bilimsel amaçlı, sayısal hesaplama yapmak üzere geliştirilmiş, yorumlanan ve ki başına çalışamayan kodlar üreten 4. nesil bir dildir. 1

Matlab Kurulumu Command Penceresi Komutları yazabildiğiniz ve hemen sonucunu görebildiğiniz alan. 2

Editör Komutlar bir araya getirilebilir ve bir dosya şeklinde saklanabilir. Genellikle dosya uzantısı.m dir. Workspace Hafızada bulunan değişkenleri gösteriri. Aktif Klasör Çalışmakta olduğunuz klasörü gösterir. Yanındaki ikonları kullanarak aktif klasörünüzü değiştirebilirsiniz. Neden Matlab Veri analizi bilgisayar-tabanlı yöntemlerle yapılmaktadır. Gerçek veriler genellikle büyük miktarlarda olurlar. Genellikle ilk gözlemlenenin dışında birçok ekstra bilgiyi içerirler ancak bu veride gizli olan bilgiyi çıkartmak gelişmiş bir analiz yöntemi gerektirir. (Ör: Finansal verileri kullanarak bir hisse senedinin gelecekteki durumunu tahmin etmek) Matlab i Kullanmaya Başlamak Command penceresinde date yazın. Enter tuşuna basın. Mevcut bulunduğunuz klasörü göstermek pwd yazın. Enter tuşuna basın. Mevcut klasörleri ve dosyaları listelemek ls İstediğiniz bir klasörün içine girmek cd C:\windows Bir komut hakkında yardım almak (doc) doc ls Bulunduğunuz klasörden bir üst klasöre çıkmak cd.. 3

Merhaba Dünya Diğer Dillerde Merhaba Dünya http://www.helloworldexample.net/java-hello-worldexample.html Basit Aritmetik İşlemler Toplama: 1+1 ya da plus(1,1) Çıkartma: 17-12 ya da minus(17,12) Çarpma: 5.*8 ya da times(5,8) Bölme: 17./9 ya da rdivide(17,9) Üs Alma: 99.^2 ya da power(99,2) Karekök: sqrt(15) Değişkenler Belli bir türe ait veriyi saklayan veri deposudur. 2 2 Ör: c a b fonksiyonunda a=3 ve b=4 ise c nin değeri ne olur. a = 3.5 b = 4.1 a+b c=a+b a=3 b=4 c=sqrt(a.^2+b.^2) y = ax 2 + bx + c denklemini a = 2, b = 4, c = 8, x = 3.5 için y nin aldığı değeri hesaplatın. 4

Kullanıcıdan Bilgi Almak - Input Input komutu kullanıcının veri girmesini ister. sonuc=input( Kullanıcıya gösterilecek mesaj ) k=input( Bir sayı giriniz = ) disp( Girmiş olduğunuz sayının iki katı = ) disp(2.*k) İki açısı bilinen üçgenin üçüncü açısını hesaplayan bir program yazınız.? 65 85 Kullanıcınız için bir program yazmak istiyorsunuz. Kullanıcınızın çözmek istediği problem klasik havuz problemi. ( Ör: Birinci musluk havuzu tek başına x saatte dolduruyor ikinci musluk havuzu tek başına y saatte dolduruyor. İki musluk birlikte kaç saatte doldurur.) Burada program kullanıcında birinci ve ikinci musluğun havuzu kaç saatte doldurduğu bilgisini alacak ve sonuçta iki musluk birlikte kaç saatte doldurur bilgisini gösterecek. Matrisler ve Seriler clear all; clc; Matlab da temel veri yapısı matristir. Bütün veriler matris şeklinde tutulmaya ve işlenmeye çalışılır. Matrisi oluştururken köşeli parantezle başlanır. Satırdaki elemanları boşluk karakteriyle ayırırız. Bir alt satıra ; karakteriyle geçilir. Son olarak köşeli parantez kapatılır. a=[1 2 ; 3 4] a = 1 2 3 4 b=[2 1; 0 1] b = 2 1 0 1 5

a+b d=a.*b d = Transpoz a' Tersi inv(a) 3 3 3 5 2 2 0 4 1 3 2 4-2.0000 1.0000 1.5000-0.5000 f=a-b c=a*b Determinant det(a) a*inv(a) f = c = -1 1 3 3 2 3 6 7-2 1.0000 0 0.0000 1.0000 Elemanlara Erişim a(1,1) a(2,:) a(2,:)+b(2,:) a(1,:)+b(2,:) 1 3 4 a(1,:)+b(:,2) a(:,1) 1 3 a.^2 a^2 a(2,:)*a(2,:) Seriler >> t=1:1:10 t = 1 2 3 4 5 6 7 8 9 10 >> t=0:0.1:0.5 t = 0 0.1000 0.2000 0.3000 0.4000 0.5000 x -2 den başlayarak 2 ye 0.1 er değer artışlarıyla kadar giden serisini oluşturan komutu yazın daha sonra bu aralıkta y=x^2 grafiğini çizdirin. x=-2:0.1:2 % x değerlerinin bulunduğu seriyi oluştur y= x.^2 %y değerlerini hesapla plot(x,y) %komutunu kullanarak grafiğini çiz xlim([-4 4]) % grafiğin x eksenini ayarla -4 ile 4 arasında olsun ylim([0 10]) %grafiğin y eksenini ayarlar title( Grafiğin Başlığı ) % grafiğin başlığını belirt 6

y=5x 2 +6x+7 [-2:0.1:2] Dosyadan Veri Yüklemek Matlab de veri yükleme işlemi için load komutu kullanılır. Load komutu çeşitli tiplerde veriyi yüklemek için kullanılabilir. clear all load( gong.mat ); plot(y) sound(y,fs) Burada gong.mat dosyanın adını belirtmektedir. Ör: Ses dosyası load('gong.mat') % iki adet degisken workspace te olusacaktir %Fs ornekleme frekansini gosterir %y sinyali gosterir t=fs*3; ff=y(1:t).*2; % sesi acalim qq=y(1:t)./2; % sesi kisalim y=[ff; qq]; % sesleri birbirine ekleyelim. plot(y); % grafigini cizdirir sound(y,fs); % olusan sinyali ses olarak calar. wavrecord Ses dosyasını kaydetmek ve Matlab de oynatmak Fs = 11025; % saniyede kaç adet veri alınacak y = wavrecord(5*fs,fs,'int16'); % 5 saniyelik kayıt yapalım soundsc(y,fs); % kaydı oynat %Kaydetme wavwrite(y,'c:\matlab\myrecord.wav') %Tekrar Okuma wavread('c:\matlab\myrecord.wav ) Ses Üretmek Tek Bir Ses Üretmek function [s]=sesuret(ft,fs,td) s=sin([1:fs*td]*2*pi*ft/fs); nota=sesuret(440,16000,2) soundsc(note,16000) % sesi ölçekleyip oynat Sembolik Değişkenler syms a b simplify(6*a*b+3*a^2+2*a*b) solve('a*x^2+b*x+c=0') solve('3*x^2+2*x-8=0') syms a solve('a*x^2+b*x+c=0',a) 7

Ör: x^4-8x^2+16=0 denkleminin köklerini bulun. p=solve('x^4-8*x^2-16=0') p = [ 2*(2^(1/2)+1)^(1/2)] [-2*(2^(1/2)+1)^(1/2)] [ 2*(1-2^(1/2))^(1/2)] [-2*(1-2^(1/2))^(1/2)] vpa(p) Ör: Perde a=uint8(zeros(100,100)); % değerleri 0 ile 255 arasında olsun a(10:90,10:90)=255 a(10:90,80:90)=125 a(10:90,10:20)=125 a(:,45:55)=0 a(45:55,:)=0 imtool(a) Matrisler - Resim s = imread('pout.tif'); imtool(s) >> size(s) 291 240 >> s(:,1)=0; >> imtool(s) Çerceve s=imread( pout.tif ) s(:,1:20)=0; s(:,220:240)=0; s(1:20,:)=0; s(271:291,:)=0; imtool(s) Boyut Değiştirme >>s=imread( pout.tif ); >>size(s) 291 240 >>s2=s(1:240,1:240); >> size(s2) 240 240 >>imtool(s2) 8

Ödev Pout resminde çocuğun sol cebinde bulunan armanın yan yatmış şeklini cizdirin. Sayfa düzeni Ad Soyad Resim Program Kodu If ifadesi Eğer koşul doğruysa komutları çalıştırır. Else ifadesi Eğer koşul yanlışsa komutları çalıştırır. >> if (KOŞUL) % doğruysa çalışacak %komutlar else % yanlışsa çalışacak %komutlar Ör: If ifadesi a=5; if (a>10) disp('a 10 dan büyük') else disp('a 10 dan küçük') Ör: If ifadesi ve Input a=input( Bir sayı giriniz ); if (a>10) disp( Girilen sayı 10 dan büyük') else disp( Girilen sayı 10 dan küçük ya da eşit') a 10 dan küçük a=5 b=8 if (a==b) disp('a nin değeri b ye eşit') else disp('a nın değeri b ye eşit değil') Kullanıcıdan bir sayı isteyen ve eğer girilen sayı 50 den küçükse 50 den küçük değilse 50 den büyük yazdıran bir program yazın. 9

1. Vize ve final notlarını soran ve ortalamasını gösteren program yazınız. 2. Eğer ortalama 50 nin üstündeyse geçti değilse kaldı yazan program yazınız. Kullanıcıdan bir sayı isteyen ve eğer girilen sayı 2 nin tamsayı katıysa 2 nin katı değilse 2 nin katı değil yazdıran bir program yazınız. a=input('bir sayı giriniz'); b=mod(a,2); if(b==0) disp('2 nin katı') else disp('2. katı degil') Mantık Operasyonları Mantık Operatörleri x y X&&y (VE) DOĞRU DOĞRU DOĞRU DOĞRU YANLIŞ YANLIŞ YANLIŞ DOĞRU YANLIŞ YANLIŞ YANLIŞ YANLIŞ x y x y (VEYA) DOĞRU DOĞRU DOĞRU DOĞRU YANLIŞ DOĞRU YANLIŞ DOĞRU DOĞRU YANLIŞ YANLIŞ YANLIŞ a=5; b=9; a>b 0 (a<b)&&(a<6) 1 a>5 b>5 1 Döngüler - For Döngüler belirli komutların tekrar çalışmasına olanak sağlar. Matlab deki for yapısı for kelimesiyle başlar ve kelimesiyle biter. for indeks=değerler %çalıştırılacak komutlar Ör: for j=1:4 disp( Bla Bla ) 10

Ör: for i=1:10 disp( i nin aldığı değer = ) disp(i) 10 dan 100 e kadar kadar olan sayıları gösteren programı yazın. for i=10:100 disp(i) Birden 50 ye kadar olan sayıların toplamını gösteren programı yazın. t=0; for i=888:128120 t=t+i; disp(t) Kullanıcıdan 5 sayı girmesini isteyen ve girilen sayıların toplamını bulan bir program yazınız. Ödev Kullanıcıdan 1 ile 365 arasında gün bilgisi isteyen, girilen günün 1 ile 365 arasında olduğunu kontrol eden ve eğer koşul sağlanmışsa girilen günü hafta ve gün cinsinde gösteren bir program yazınız. Ör: 75 gün 10 hafta 5 gün olarak göstersin. 11

Ör: For Döngüsü Kullanarak Standart Sapma Hesaplama clear all;clc; x=[12 8 25 39 43 58 20]; n=length(x); % serinin uzunluğunu bulur t=0; for i=1:n t=t+x(i); xbar=t/n; z=0; for j=1:n z=z+(x(j)-xbar).^2; s=sqrt(z/(n-1)); disp(s) clear all M =[ [1, 4, 7] [2, 5, 8] [3, 6, 9] ]; for i = 1:3 a(i)=m(i,i); disp(a) (FOR IF) For ve if döngüsü iç içe kullanılabilir b=[ ]; a = [ 1 8 12 4 3 2 6 4 9 2 1 4 ]; for i =1:12 if ( a(i) >= 6 ) b(i)= 6; else b(i) = a(i); disp( b de tutulan değerler ) disp(b) İç İçe Döngüler Döngüleri iç içe kullanmak mümkündür. M = [ [1, 4, 7], [2, 5, 8], [3, 6, 9] ]; for i = 1:3 for j = 1:3 N(i, 4-j)= M(i, j); disp(n) Kullanıcıdan For Döngüsüyle Veri Almak for i=1:5 a(i)=input('sayı giriniz ='); disp('girmiş olduğunuz sayılar = ') for i=1:5 disp(a(i)) While Döngüsü while(koşul cümlesi) kod bloğu : Ör: i=0; while (i<99) i=i+2; disp(i) 12

Ör: Asal Sayılar clear all; clc; i=input('bir sayı giriniz ='); j=2; while (j<i-1) k=mod(i,j); if (k==0) break; j=j+1; if (k==0) disp('girilen sayý asal sayı'); else disp('girilen sayı asal sayı değildir') Boyut Değiştirme >>s=imread( pout.tif ); >>size(s) 291 240 >>s2=s(1:240,1:240); >> size(s2) 240 240 >>imtool(s2) : Resmin üstüne siyah renkli bir çarpı işareti ekleyin. Rastgele Sayı Üretmek Matlab de rastgele bir sayı üretmek için rand() fonksiyonu kullanılır. Ör: >> rand() 0.9058 >> rand() 0.1270 50 adet rastgele sayı üretelim ve bunu plot komutuyla ekrana çizdirelim. Sayıları Yuvarlamak Real bir sayıyı en yakın tam sayıya yuvarlamak için round fonksiyonu kullanılır. round(5.5) İçinde kaç tanesin 0.5 den büyük olduğunu saydıralım. 6 13

Ekrana for döngüsü kullanarak alttaki şekilde çıktı veren program yazın. Ödev pout.tif resmine en az 5 piksel kalınlığında bir çember ekleyiniz. Çember en az 50 piksel yarıçapında olacak. x xx xxx xxxx xxxxx Tek sayfa halinde. İsim Resim Çıktı Program (Yazı-Tura) 10 defa yazı tura atan ve sonucunu ekrana yazan bir program yazalım. Program 1 ile 100 arasında rasgele bir sayı üretsin. Eğer üretilen sayı 50 den büyükse ekrana Tura değilse Yazı yazdırsın. Bu işlemi for döngüsünün içinde 10 defa yapsın. : Seriler Kullanıcı tarafından girilen 10 sayıyı küçükten büyüğe doğru sıralanmış şekilde gösteren bir program yazınız. Dört basamaklı ve basamakları tekrarlanmayan bir sayı üreten bir program yazınız. 4 lük bir seri yaratacağız. (Ör: x(1:4)=0; ) [0 9] aralığında rastgele bir tamsayı yaratacağız. ( Ör: r=round(rand()*9); Yaratılan sayının önceki basamaklarda olup olmadığını kontrol edeceğiz. Bir seride en çok tekrarlanan sayıyı bulmak. Resminizin üstüne yaklaşık 10 piksel kalınlığında bir çember ekleyelim. 1. Diskinizin c kısmında resimlerim adı altında bir klasör yaratın. 2. Resminizi bu klasöre kopyalayın. Adını 1 olarak değiştirin. s=imread('c:/resimlerim/1.jpg'); % komutunu kullanarak hafızaya yükleyin s2=rgb2gray(s); % komutunu kullanarak siyah beyaz resim haline çevirin For döngüsünü kullanara s2 matrisinin ilgili değerlerini 0 a eşitleyin. Yazdığınız programı ve resmi bir A4 e bastırın. Fonksiyonlar function [cikti1, cikti2,...] = fonksiyonadi(girdi1, girdi2,...). Ör: function [fark]=cikart(a,b) fark=a-b; 14

Ör: Function rastgele.m adından bir dosya yaratın. İçine alttaki kodu yazın function [s1,s2]=rastgele() s1=rand(); s2=rand(); Sayı Oyunu rakamları birbirinden farklı ve 0 ile başlamayan 4 basamaklı bir sayı tutun Ör:1023 Rakibiniz bu sayıyı tahmin etmeye çalışıyor. Karşılıklı tahmin şeklinde oynanıyor 1032 (+2 2) Komut ekranında >>[x y] = rastgele() Komutuyla fonksiyonu çağırabilirsiniz. Eğer tahmin edilen sayıda rakam ve yeri tutuyorsa + Sadece rakam tutuyor yeri tutmuyorsa - sayiuret function [a1,a2,a3,a4]=sayiuret() a1=round(rand()*8)+1; a2=round(rand()*9); while (a1==a2) a2=round(rand()*9) ; a3=round(rand()*9); while(a3==a1 a3==a2) a3=round(rand()*9); a4=round(rand()*9); while (a4==a1 a4==a2 a4==a3) a4=round(rand()*9); Çağırmak için!!!! >>[t1,t2,t3,t4]=sayiuret() Artı function [arti]=artikac(a1,a2,a3,a4,b1,b2,b3,b4) arti=0; if (a1==b1) arti=arti+1; if (a2==b2) arti=arti+1; if (a3==b3) arti=arti+1; if (a4==b4) arti=arti+1; >>artikac(1,0,3,9,8,0,1,9) 2 Eksi function [eksi]=eksikac(a1,a2,a3,a4,b1,b2,b3,b4) eksi=0; if(a1==b2 a1==b3 a1==b4) eksi=eksi+1; if(a2==b1 a2==b3 a2==b4) eksi=eksi+1; if(a3==b1 a3==b2 a3==b4) eksi=eksi+1; if(a4==b1 a4==b2 a4==b3) eksi=eksi+1; >>eksikac(2,1,3,8,8,0,2,9) 2 Basamaklara Ayır function [b1,b2,b3,b4]=basayir(sayi) b1=fix(sayi/1000); sayi=mod(sayi,1000); b2=fix(sayi/100); sayi=mod(sayi,100); b3=fix(sayi/10); b4=mod(sayi,10); >>[k1,k2,k3,k4]=basayir(1234) k1=1, k2=2, k3=3, k4=4 15

mastermind.m [x1,x2,x3,x4]=sayiuret (); arti=0; while(arti<4) s=input('4 basamaklı sayi giriniz='); [y1,y2,y3,y4]=basayir(s); arti=artikac(x1,x2,x3,x4,y1,y2,y3,y4); eksi=eksikac(x1,x2,x3,x4,y1,y2,y3,y4); disp('+'); disp(arti); disp('-'); disp(eksi); olasisayilar=[ ]; for i=1023:9876 [t1,t2,t3,t4]=basayir(i); if(t1~=t2&& t1~=t3 && t1~=t4 && t2~=t3 && t2~=t4 && t3~=t4) olasisayilar =[olasisayilar; i]; while (true) x=round(rand()*(length(k)-1)+1); olasisayilar(x) e=input('eksi Kaç= '); a=input('arti Kaç= '); if (a>=4) break; qq=[ ]; for i=1:length(olasisayilar) [t1,t2,t3,t4]= basayir(olasisayilar(x)); [x1,x2,x3,x4]= basayir(olasisayilar(i)); ek=eksikac(t1,t2,t3,t4, x1,x2,x3,x4); ar=artikac(t1,t2,t3,t4, x1,x2,x3,x4); if (ek==e && ar==a) qq=[qq; olasisayilar(i)]; olasisayilar =qq; Sayı Oyunu İkinci Versiyon sayiuret function [cikti]=sayiuret() a1=round(rand()*8)+1; a2=round(rand()*9); while (a1==a2) a2=round(rand()*9) ; a3=round(rand()*9); while(a3==a1 a3==a2) a3=round(rand()*9); a4=round(rand()*9); while (a4==a1 a4==a2 a4==a3) a4=round(rand()*9); cikti=[a1, a2, a3, a4]; Çağırmak için!!!! >>[t]=sayiuret() Artı function [arti]=artikac(sayi1,sayi2) arti=0; for i=1:4; if(sayi1(i)==sayi2(i)) arti=arti+1; >>artikac([1,0,3,9],[8,0,1,9]) 2 Eksi function [eksi]=eksikac(sayi1,sayi2) eksi=0; if(sayi1(1)==sayi2(2) sayi1(1)==sayi2(3) sayi1(1)==sayi2(4)) eksi=eksi+1; if(sayi1(2)==sayi2(1) sayi1(2)==sayi2(3) sayi1(2)==sayi2(4)) eksi=eksi+1; if(sayi1(3)==sayi2(1) sayi1(3)==sayi2(2) sayi1(3)==sayi2(4)) eksi=eksi+1; if(sayi1(4)==sayi2(1) sayi1(4)==sayi2(2) sayi1(4)==sayi2(3)) eksi=eksi+1; >>eksikac([2,1,3,8],[8,0,2,9]) 16

Basamaklara Ayır function [sonuc]=basayir(sayi) b1=fix(sayi/1000); sayi=mod(sayi,1000); b2=fix(sayi/100); sayi=mod(sayi,100); b3=fix(sayi/10); b4=mod(sayi,10); sonuc= [b1,b2,b3,b4]; >>[s]=basayir(1234) mastermind.m sayi1=sayiuret (); arti=0; while(arti<4) s=input('4 basamaklı sayi giriniz='); sayi2=basayir(s); arti=artikac(sayi1,sayi2); eksi=eksikac(sayi1,sayi2); disp('+'); disp(arti); disp('-'); disp(eksi); olasisayilar=[ ]; for i=1023:9876 a=basayir(i); if(a(1)~=a(2)&& a(1)~=a(3) && a(1)~=a(4) && a(2)~=a(3) && a(2)~=a(4) && a(3)~=a(4)) olasisayilar =[olasisayilar; i]; while (true) y=round(rand()*(length(olasisayilar)-1)+1); olasisayilar(y) eksi=input('eksi Kaç= '); arti=input('arti Kaç= '); if (arti>=4) break; yeniliste=[ ]; for i=1:length(olasisayilar) sayi1= basayir(olasisayilar(y)); sayi2= basayir(olasisayilar(i)); ek=eksikac(sayi1, sayi2); ar=artikac(sayi1, sayi2); if (ek==eksi && ar==arti) yeniliste=[yeniliste; olasisayilar(i)]; olasisayilar =yeniliste; 17