matlab-programlama

  • Upload
    cansu

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

  • Matlab Ders Notlar

    MATLAB de

    Programlama

    Do. Dr. rfan KAYMAZ

    Kontrol Yaplar

    Dng Yaplar

  • Matlab Ders Notlar

    if artnn ekli vardr

    if art 1. ilem; 2. ilem; 3. ilem; end

    Bir mantksal ifadeyi kontrol ederek bunun sonucuna gre mmkn seeneklerden birini icra

    edebilen bir komuttur.

    if artl deyimi:

    if art 1.ilem; Else 2. ilem; end

    if art 1.ilem; Elseif art 2.ilem; else 3.ilem; end

    1 2 3

  • Matlab Ders Notlar

    rnek: Girilen iki saynn orann bulan ve paydaya sfr girildiinde ekrana zgnm sfra blm hatas var mesaj yazdran program

    clc

    N = input(pay giriniz: '); D = input(payday giriniz: ');

    if D==0

    Disp(zgnm, sfra blm hatas var)

    else

    oran = N/D

    end

    payda

    payoran

    Disp komutu: Ekrana her hangi bir mesaj yazdrmak iin kullanlan komuttur.

    Disp(yazdrlacak mesaj);

  • Matlab Ders Notlar

    NOT: Yukardaki soruda ay deeri 12nin zerinde bir deer girildii zaman da Bu ay 30 gnden oluur mesaj ekrana gelmektedir. Bunun yerine ekrana yanl deer girdiniz mesaj nasl yazdrrsnz?

    rnek: Aylarn gn saysn bulan bir program yaznz.

    if ay==1 | ay==3 | ay ==5 | ay==7 | ay==10 | ay==12

    disp(Bu Ay 31 gnden oluur) else

    if ay==2

    disp(' Bu Ay 28 gnden oluur) else

    disp(' Bu Ay 30 gnden oluur) end

    end

    clc

    ay = input(Kan ayn gn saysn renmek istiyorsunuz (1-12)= ' );

  • Matlab Ders Notlar

    Switch (durum)

    case (durum1)

    ilemler

    case (durum2)

    ilemler

    .

    .

    otherwise istee bal

    end

    SWITCH ART DEYM

    Belli durumlar iin sadece belirli ifadelerin bulunduu bloklarn iletilmesi istendii

    durumlarda kullanlr. letilecek durumlar deikenin alaca deere gre belirlenir.

    Switch komutunun genel kullanm:

  • Matlab Ders Notlar

    sayi=input(1 ile 10 arasnda bir say giriniz:);

    switch (sayi)

    case {1,3,5,7,9}

    disp(Bu say Tektir)

    case {2,4,6,8,10}

    disp(Bu say ifttir)

    otherwise

    disp(Say 1 ile 10 aralnn dndadr)

    end

    rnek: 1 ile 10 arasnda girilen saylarn tek ya da ift olduunu ekrana yazdran program yaznz

  • Matlab Ders Notlar

    Girilen ay numarasna gre, o ayn gn saysn veren program

    switch komutu kullanarak yaznz.

    Uygulama :

  • Matlab Ders Notlar

    FOR DNGS

    Bir ok uygulamada belirli ilemlerin tekrar tekrar gerekletirilmesi gerekir.

    Programlamada bu ilemler grubunu ok sayda tekrar etmek imkan salayan

    yaplara EVRM, DNG veya LOOP denir.

    evrimdeki ilem saysn nceden belirleyerek ve bu sayya ulap ulamadn bir saya ile denetleyerek gerekletirilen evrim

    yaplar

    evrimin sona ermesini bir koula bal olarak kontrol eden evrim yaplar

    evrim, bir tekrarl ilem yapsdr.

  • Matlab Ders Notlar

    for dng deikeni = balang : biti

    komutlar

    . end

    for dngsnn genel yaps

    clc

    toplam = 0 ;

    for x = 1:20

    toplam = toplam + x ;

    end

    toplam

    rnek: 1den 20ye kadar saylarn toplamn bulan program

  • Matlab Ders Notlar

    clc

    sayi=input(ltfen bir say giriniz=)

    toplam=0 ;

    carpim=1 ;

    for i=1:sayi

    toplam=toplam+i ;

    carpim=carpim*i ;

    end

    toplam

    carpim

    rnek: Ekrandan girilen bir sayya kadar olan saylarn toplamn ve arpmn bulan program

  • Matlab Ders Notlar

    Genel kullanm:

    fprintf (Ekrana yazdrlacak aklama %f \n, deger)

    Burada

    %f : Deerin reel say olduunu gsterir

    \n : Bir satr atlatr

    deger : Ekrana yazlmas istenen saysal deikenin ad

    Dier yazm biimleri:

    %g : Tamsay deeri basar

    %e : stel deer basar

    Fprintf komutu

    Ekrana bilgi yada saysal bir deeri beli bir dzende yazdrmak iin kullanlan

    komuttur. Bu komut vastasyla bir veya birden fazla bilgi ekranda grntlenir.

  • Matlab Ders Notlar

    rnek: Aada verilen kty ekrana yazdracak bir program yaznz.

    Sra Takm

    ---------------------

    1. Fenerbahe

    2. Fenerbahe

    3. Fenerbahe

    4. Fenerbahe

    5. Fenerbahe

    fprintf(Sra Takm\n')

    fprintf('-------------------\n')

    for i=1:5

    fprintf('%i. Fenerbahe\n',i)

    end

    Uygulama :

    Ekrana 1den 10 kadar saylar ve karelerini ekrana yazdran bir program

    yaznz.

  • Matlab Ders Notlar

    nceden belirlenmi belli bir durum gerekleinceye kadar

    gerekli sayda tekrar yapan dngdr.

    Genel Kullanm:

    while durum

    1.ifade

    2.ifade

    n.ifade

    end

    while Dngs

  • Matlab Ders Notlar

    a=5;

    toplam=0

    while a

  • Matlab Ders Notlar

    A=input(A katsaysn giriniz..: );

    while A=0

    A=input(A katsaysn giriniz..: );

    end

    B=input(B katsaysn giriniz..: );

    x=-B/A;

    fprintf(%d \n,x)

    = e

    h

    rnek: Ax+b=0 eklinde verilen 1. derece denklemin zmn veren program aada verilen ak diyagramndan yararlanarak MATLABde programlaynz.

  • Matlab Ders Notlar

    a=10 ve b=7 olarak veriliyor. Bu saylarn toplam 52325den byk olana kadar

    saylardan birisi iki katna katlanyor. Ka kez katlandn ekrana yazan

    program kodlaynz.

    Uygulama :

  • Matlab Ders Notlar

    FOR ve WHILE dnglerine ilaveten bir program akn kontrol edebilmenin dier

    bir yolu break ifadesini kullanmaktr. Break ifadesini dng gvdesi ierisinde

    kullanmak, dngnn durmasn ve dngden sonra gelen ilk ifade veya komutun

    iletilmesini salar.

    rnek: for j=2:6

    if j==4

    break

    end

    end

    fprintf(j= %g \n, j)

    disp(dng sonlandrld)

    break ifadesi

  • Matlab Ders Notlar

    clear

    toplam=0

    for i = 1:5

    toplam = 0

    for j = 1:5

    toplam = toplam + j

    end

    Carpm = toplam * i end

    ie FOR dngleri

  • Matlab Ders Notlar

    for a=1:10

    for b=1:10

    carpim=a*b;

    fprintf(%d * %d = %d\n, a, b, carpim)

    end

    end

    rnek: arpm tablosunu veren bir program yaznz.

  • Matlab Ders Notlar

    i=7;

    while i>5

    x=input(x deerini giriniz=); if x1

    if mod(x,2)==0

    x=x/2;

    else

    x=3*x+1;

    end

    end

    i=i-2;

    end

    fprintf(Bravo, program sonulandrdnz:%g, x)

    ie while dngleri