bilgisayar programlama ( yrd . doç. dr. İbrahim asrİ )

27
Bilgisayar Programlama (Yrd. Doç. Dr. İbrahim ASRİ) Kaynak; T.Aydın(Ata.Ü.)

Upload: royal

Post on 20-Jan-2016

66 views

Category:

Documents


6 download

DESCRIPTION

Bilgisayar Programlama ( Yrd . Doç. Dr. İbrahim ASRİ ). Kaynak; T.Aydın(Ata.Ü.). disp VEYA fprintf KOMUTLARIYLA EKRANA MESAJ YAZDIRMA. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Bilgisayar Programlama ( Yrd .  Doç. Dr.  İbrahim ASRİ )

Bilgisayar Programlama (Yrd. Doç. Dr. İbrahim ASRİ)

Kaynak; T.Aydın(Ata.Ü.)

Page 2: Bilgisayar Programlama ( Yrd .  Doç. Dr.  İbrahim ASRİ )

disp VEYA fprintf KOMUTLARIYLA EKRANA MESAJ YAZDIRMA

Daha önceki derslerimizde (değişkenin adı + enter) tuş kombinasyonu, istediğimiz değişkenin değerini görmemizi sağlıyordu. Ya da workspace içinde de değişkenimizi ve değerini görebiliyorduk.

Ama disp ve fprintf komutları çok daha güçlü ve kullanışlı komutlar olup, ekrana mesaj yazmamızı sağlarlar.

Page 3: Bilgisayar Programlama ( Yrd .  Doç. Dr.  İbrahim ASRİ )

disp KOMUTUYLA EKRANA MESAJ YAZDIRMA

disp ile Metinsel Çıkış>>disp('Bu bir metin ciktisidir. ')

disp ile Metinle Beraber Nümerik Degişken Çıkışı>>disp(['Bu bir metin ciktisidir.' num2str(numerik degisken)])

disp ile Nümerik Değişken Çıkışı>>disp(numerik degisken)

ÖNEMLİ NOT : Bu slaytta “numerik degisken” dediğimiz şey bir skaler, bir vektör ya da bir matris olabilir.

Page 4: Bilgisayar Programlama ( Yrd .  Doç. Dr.  İbrahim ASRİ )

fprintf KOMUTUYLA EKRANA MESAJ YAZDIRMA

fprintf('ekrana basılacak açıklama %x \n', deger)

Burada %x Kısmında Kullanabileceğimiz Seçenekler :

%c : degerin tek bir karakter olduğunu gösterir. %s : degerin bir string olduğunu gösterir. %d : degerin bir tam sayı olduğunu gösterir. %f : degerin ondalıklı bir sayı olduğunu gösterir.

Diğer yandan : \n : degeri ekrana yazdıktan sonra imleci bir satır atlatır.

\t : degeri ekrana yazdıktan sonra imleci bir TAB kadar atlatır.

Page 5: Bilgisayar Programlama ( Yrd .  Doç. Dr.  İbrahim ASRİ )

fprintf ve disp KOMUTUYLA EKRANA MESAJ YAZDIRIRKEN KESME İŞARETİNE DİKKAT !!!

fprintf('ekrana basılacak açıklama %X \n', deger) DOĞRU !

fprintf(‘ekrana basılacak açıklama %X \n ’, deger) YANLIŞ !

Page 6: Bilgisayar Programlama ( Yrd .  Doç. Dr.  İbrahim ASRİ )

X = 4;

Y = 56.23;

Z = 'Merhaba Dünya' ;

Q = 'c';

fprintf(' Tam sayı örneği ... X = %d \n ', X);

fprintf(' Ondalıklı sayı örneği ... Y = %f \n ', Y);

fprintf(' String (katar) örneği ... Z = %s \n ', Z);

fprintf(' Char (karakter) örneği ... Q = %c \n ', Q);

ÖRNEK (fprintf örneği)

Page 7: Bilgisayar Programlama ( Yrd .  Doç. Dr.  İbrahim ASRİ )

Ekrandan girilen bir sayının karekökünü bulan, sayı sıfırdan küçükse “Negatif sayıların karekökü olmaz” uyarı mesajı veren programı yazınız.

clc;clear;

sayi = input(' Karekökü hesaplanacak sayıyı giriniz: ');

if sayi<0

disp(' Negatif sayının karekökü olmaz!!! ');else

karekok=sqrt(sayi);fprintf(' Karekök değerimiz = %f \n', karekok);

end

ÖRNEK (disp ve fprintf örneği)

Page 8: Bilgisayar Programlama ( Yrd .  Doç. Dr.  İbrahim ASRİ )

DÖNGÜLER

Tekrar tekrar yapılması gereken komutları döngü yapısı içine yazmalıyız. Döngü yapısı for veya while komutu ile gerçekleştirilir.

for Döngüsü

for döngüsünün genel formatı

for döngü değişkeni=ifade komutlar ...

end while Döngüsü

while döngüsünün genel formatı

while koşulkoşullar ...

end

Page 9: Bilgisayar Programlama ( Yrd .  Doç. Dr.  İbrahim ASRİ )

for döngü değişkeni = başlangıç:artış miktarı:bitiş

komutlar...end

for Döngüsündeki İfadenin Tanımlanması

for döngü değişkeni = başlangıç:bitiş komutlar...

end

*** Artış miktarı belirtilmezse matlab otomatik olarak 1 kabul eder ...

Page 10: Bilgisayar Programlama ( Yrd .  Doç. Dr.  İbrahim ASRİ )

clc;

clear;

toplam=0; % toplamada etkisiz eleman

for i=1:50

toplam=toplam+i ;

end toplam % toplamı ekrana yazdırır

FOR UYGULAMA (1)1 ile 50 arasındaki tam sayıların toplamını hesaplayarak ekrana basan bir MATLAB programı yazınız.

*** Noktalı virgülden sonra ‘%’ işareti ile satırın sonuna kadarki kısım matlab tarafından çalıştırılmaz. Bu tamamen kullanıcıyı bilgilendirme amacı ile yazılan bir cümledir.

Page 11: Bilgisayar Programlama ( Yrd .  Doç. Dr.  İbrahim ASRİ )

clc;

clear;

n =input('Lütfen Sayıyı Giriniz ');

toplam=0;

for i=1:n

toplam=toplam+i ;

endfprintf(' Cevap = %f \n ', toplam);

% toplamı ekrana yazdırmanın başka bir yolu

FOR UYGULAMA (2)1 ile ekrandan okunan bir sayı arasındaki tam sayıların toplamını hesaplayarak ekrana basan bir MATLAB programı yazınız.

Page 12: Bilgisayar Programlama ( Yrd .  Doç. Dr.  İbrahim ASRİ )

clc;

clear;

birinci=input('Lütfen Birinci Sayıyı Giriniz: ');

ikinci=input('Lütfen İkinci Sayıyı Giriniz: ');

toplam=0;

for i=birinci:ikinci

toplam=toplam+i ;

end fprintf(' Cevap = %f \n ', toplam);

FOR UYGULAMA (3)Ekrandan okunan iki ayrı sayı arasındaki tam sayıların toplamını hesaplayarak ekrana basan bir MATLAB programı yazınız.

Page 13: Bilgisayar Programlama ( Yrd .  Doç. Dr.  İbrahim ASRİ )

clc;clear;

n=input('Lütfen Bir Sayı Giriniz = ');

carpim=1; % carpmada etkisiz eleman

for i=1:n

carpim=carpim*i;

end carpim

FOR UYGULAMA (4)1 ile ekrandan okunan herhangi bir sayı arasındaki sayıların çarpımını hesaplayarak ekrana basan bir MATLAB programı yazınız.

**Bu program aslında ne yapar? Faktöryel hesabı

Page 14: Bilgisayar Programlama ( Yrd .  Doç. Dr.  İbrahim ASRİ )

FOR UYGULAMA (5)

For döngüsü testi yapan basit bir program:

fprintf('For döngüsünü test ediyoruz ... \n\n');

for i = 20:-2:4

fprintf('For döngüsü içindeyiz. i: %d \n',i);

end

fprintf('\n For döngüsünden çıktık \n');

fprintf('Her bir döngüde, döngü değişkeninin o anki değerini yazdık \n');

Page 15: Bilgisayar Programlama ( Yrd .  Doç. Dr.  İbrahim ASRİ )

FOR UYGULAMA (6)1 ile ekrandan okunan bir sayı arasındaki çift tam sayıların toplamını hesaplayarak ekrana basan bir MATLAB programı yazınız.

clc;

clear;

n=input('Lütfen Bir Sayı Giriniz = ');

toplam=0;

for i=1:n

if (mod(i, 2) == 0)

toplam=toplam+i ;

end

end toplam

Page 16: Bilgisayar Programlama ( Yrd .  Doç. Dr.  İbrahim ASRİ )

FOR UYGULAMA (7)3 ile ekrandan okunan bir sayı arasındaki 5 ile bölünebilen tam sayıların toplamını hesaplayarak ekrana basan bir MATLAB programı yazınız.

clc;

clear;

n=input('Lütfen Bir Sayı Giriniz = ');

toplam=0;

for i=3:n

if (mod(i, 5) == 0)

toplam=toplam+i ;

end

end toplam

** n sayısı 3’ten küçük olursa döngüye girmez? Neden?

Page 17: Bilgisayar Programlama ( Yrd .  Doç. Dr.  İbrahim ASRİ )

FOR UYGULAMA (8)1 ile 50 arasındaki tek sayıların toplamını ve çift sayıların toplamını ayrı ayrı hesaplayarak ekrana basan bir MATLAB programı yazınız.

clc;

clear;

teklerToplami=0;

ciftlerToplami=0;

for i=1:50

if (mod(i, 2) == 0)

ciftlerToplami=ciftlerToplami+i ;

else

teklerToplami=teklerToplami+i;

end

end teklerToplami

ciftlerToplami

Page 18: Bilgisayar Programlama ( Yrd .  Doç. Dr.  İbrahim ASRİ )

while Döngüsü

while koşul doğru

komut 1

komut 2

...

komut n

end

Page 19: Bilgisayar Programlama ( Yrd .  Doç. Dr.  İbrahim ASRİ )

While ve For Döngüleri Bazen Birbirleri Yerine Kullanılabilir

Ekrana adınızı ve soyadınızı 10 kez yazma işlemini, while döngüsü ve for döngüsü kullanarak 2 ayrı şekilde oluşturunuz.

% while Döngüsü ile Çözüm

clc;clear;

indeks=1;while indeks <= 10

disp('Tolga AYDIN');indeks = indeks + 1;

end

% for Döngüsü ile Çözüm

clc;clear;

for indeks=1:10 disp('Tolga AYDIN');

end

Page 20: Bilgisayar Programlama ( Yrd .  Doç. Dr.  İbrahim ASRİ )

While ve For Döngüleri Bazen Birbirleri Yerine Kullanılabilir (Devamı)

• For döngüsünde döngü değişkeni, her döngüde artım miktarı kadar otomatik olarak değişir

• While döngüsünde döngü değişkeni diye bir kavram yoktur, yeni bir döngünün başlaması için koşulun sağlanıp sağlanmadığının (doğru olup olmadığının) kontrolü vardır

% while Döngüsü ile Çözüm

clc;clear;

indeks=1;while indeks <= 10

disp('Tolga AYDIN');indeks = indeks + 1;

end

% for Döngüsü ile Çözüm

clc;clear;

for indeks=1:10 disp('Tolga AYDIN');

end

Page 21: Bilgisayar Programlama ( Yrd .  Doç. Dr.  İbrahim ASRİ )

WHILE UYGULAMA

devamEt=1;

X=0;

while devamEtdisp('Merhaba');X=X+1;

end

Aşağıdaki while döngüsü kaç kere işletilir?

**Sonsuz döngüden çıkmak için:• Command Window üzerine fare ile tıklayın• Ctrl + C tuş kombinasyonuna basın

devamEt=1;

X=0;

while devamEt == 1disp('Merhaba');X=X+1;

end

=

Page 22: Bilgisayar Programlama ( Yrd .  Doç. Dr.  İbrahim ASRİ )

Bilgisayar Programlama (Yrd. Doç. Dr. İbrahim ASRİ)

Page 23: Bilgisayar Programlama ( Yrd .  Doç. Dr.  İbrahim ASRİ )

break DEYİMİ• for veya while döngülerinde program akışını

kontrol edebilmenin bir yolu break deyimini kullanmaktır.

• break deyimini döngü gövdesi içerisinde kullanmak, döngünün durmasını ve döngüden sonra gelen ilk komutun çalıştırılmasını sağlar.

clc;

clear;

for indeks=10:2:30

if (indeks == 20)

break;

end

fprintf('indeksin şu anki değeri= %d \n', indeks);

end

disp('For döngüsü break deyimi ile sonlandırıldı ...');

Page 24: Bilgisayar Programlama ( Yrd .  Doç. Dr.  İbrahim ASRİ )

break DEYİMİ (Devamı)

clc;

clear;

indeks = 10;

while indeks <= 30

if (indeks == 20)

break;

end

fprintf('indeksin şu anki değeri= %d \n', indeks);

indeks = indeks + 2;

end

disp('While döngüsü break deyimi ile sonlandırıldı ...');

Page 25: Bilgisayar Programlama ( Yrd .  Doç. Dr.  İbrahim ASRİ )

continue DEYİMİ• SADECE for döngülerinde, program akışı

continue deyimi ile de kontrol edilebilir.

• continue deyimi işletildiğinde döngü değişkeni bir sonraki değerine artırılır, continue deyiminden sonraki bütün herşey ihmal edilir ve for döngüsü, döngü değişkeninin yeni değeri için en baştan çalıştırılır.

clc;

clear;

for indeks=10:2:30

if (indeks == 20)

continue;

end

fprintf('indeksin şu anki değeri= %d \n', indeks);

end

Page 26: Bilgisayar Programlama ( Yrd .  Doç. Dr.  İbrahim ASRİ )

BİR SATIR VEKTÖRÜNÜ BİLGİ DEPOLAMAK İÇİN KULLANMA

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.

Page 27: Bilgisayar Programlama ( Yrd .  Doç. Dr.  İbrahim ASRİ )

SATIR VEKTÖRÜNE SAĞDAN ve SOLDAN EKLEME

A=[ ];

1. Sağdan Ekleme

A=[A x]; %A=[x]A=[A y]; %A=[x y]Son eklenen dizi elemanı dizinin sonuncu elemanı oluyor.

2. Soldan Ekleme

A=[x A]; %A=[x]A=[y A]; %A=[y x]Son eklenen dizi elemanı dizinin birinci elemanı oluyor.