• Sonuç bulunamadı

Bilimsel Programlamaya Giriş

N/A
N/A
Protected

Academic year: 2022

Share "Bilimsel Programlamaya Giriş"

Copied!
12
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

FMUS1025

Dr. Ayhan AYDIN

Konular Program Yazma Toplama Programı Hız Sorusu Programı ¨cgen Sorusu Programı C¸ alı¸sma Sorusu

Bilimsel Programlamaya Giri¸s

Dr. Ayhan AYDIN

Ankara University, Department of Computer Engineering ayaydin@ankara.edu.tr

September 7, 2020

(2)

FMUS1025

Dr. Ayhan AYDIN

Konular Program Yazma Toplama Programı Hız Sorusu Programı ¨cgen Sorusu Programı C¸ alı¸sma Sorusu

Konular

Program Yazma if-Yapısı

if-else Yapısı if-elseif Yapısı nested if Yapısı

(3)

FMUS1025

Dr. Ayhan AYDIN

Konular Program Yazma Toplama Programı Hız Sorusu Programı ¨cgen Sorusu Programı C¸ alı¸sma Sorusu

Program Yazma

Daha ¨onceki derslerde ¨once MATLAB’ın yapısından daha sonrada programlama a¸samasına ge¸cmeden ¨once yapılması gereken hazırlıklardan bahsedildi. A¸sa˘gıdaki grafi˘ge balkıldı˘gında, program yazma i¸si 4 b¨ol¨um halinde verilmi¸sdir. Dikkat edilecek olursa program i¸cin Analiz ve Algoritma kısımları toplam s¨urenin

%55 − %60’lık kısmını kaplamaktadır. E˘ger bu hazırlıklar d¨uzg¨un bir ¸sekilde yapılırsa programı yazmak i¸cin, oreceli olarak daha az bir zaman yeterli olacaktır.

(4)

FMUS1025

Dr. Ayhan AYDIN

Konular Program Yazma Toplama Programı Hız Sorusu Programı ¨cgen Sorusu Programı C¸ alı¸sma Sorusu

Program Yazma

Ayrıca yapılması gereken i¸sleri maddeler halinde sıralayacak olursak:

Analiz: Problemi ¸c¨ozmek i¸cin gerekli t¨um girdi ve ¸cıktı adımlarının belirlenmesidir.

Dizayn: Programda kullanılacak t¨um i¸slemlerin belirlenmesi, gerekli ise analitik ¸c¨oz¨umlerin yapılması Algoritma ve Flowchart: Problemin ¸c¨oz¨um¨unde kullanılacak algoritmanın belirlenmesi ve program yazma i¸sini kolayla¸stırmak i¸cin akı¸s diyagramının (flowchart) olu¸sturulması.

Kod: Kullanılan bilgisayar programının yapısal ve s¨ozdizimsel ¨ozelliklerine ba˘glı kalarak programı yazma a¸samaları (Bu ders i¸cin MATLAB)

Test: ¨Ornek veriler ile programın test edilmesi ve gerekiyorsa daha ¨onceki i¸slem adımlarına d¨on¨ulmesi.

(5)

FMUS1025

Dr. Ayhan AYDIN

Konular Program Yazma Toplama Programı Hız Sorusu Programı ¨cgen Sorusu Programı C¸ alı¸sma Sorusu

˙Ilk Program

MATLAB programında k¨u¸c¨uk program par¸caları komut

ekranında yazılabilece˘gi gibi, bu i¸s i¸cin genellikle edit¨or (script) ekranı kullanılır.

(6)

FMUS1025

Dr. Ayhan AYDIN

Konular Program Yazma Toplama Programı Hız Sorusu Programı ¨cgen Sorusu Programı C¸ alı¸sma Sorusu

˙Ilk Program

S¸imdi edit¨or ekranına sadece clc komutunu yazın. Daha sonra programınızı ekranın sa˘g ¨ust k¨o¸sesinde bulunan Save butonuna tıklayarak ve a¸cılan ekranda File Name kısmına temizle adını vererek kaydediniz.

Programın komut satırında bri ka¸c adet i¸slem yapın.

Ornek: 3+5¨

komut satırına temizle yazın ve enter tu¸suna basın.

G¨or¨uld¨u˘g¨u gibi ilk basit program uygulamasını geli¸stirdiniz.

temizle adında komut satırı ekranını temizleyen bir program yazdınız.

(7)

FMUS1025

Dr. Ayhan AYDIN

Konular Program Yazma Toplama Programı Hız Sorusu Programı ¨cgen Sorusu Programı C¸ alı¸sma Sorusu

˙Iki Sayıyı Toplayan Program

˙Iki sayının toplamını bulan program i¸cin flowchart’ı hatırlayalım. Daha sonra a¸sa˘gıdaki kod par¸casını edit¨or ekranında yazarak programımıza toplama ismini vererek kaydedelim.

clc

A=input(’A sayısını Giriniz:’);

B=input(’B sayısını Giriniz:’);

C=A+B;

disp(C);

Programda clc komutu komut ekranını temizler, daha sonra A ve B de˘gi¸skenleri i¸cerisine 2 adet sayı atanması sa˘glanır. Bu i¸slem input komutu ile ger¸cekle¸stirilir. Parantez i¸cerisinde tırnak i¸saretleri arasında verilen metinler kullanıcıya ne yapması gerekti˘gini s¨oyleyen a¸cıklayıcı ifadelerdir. Programın ¸calı¸smasına herhangi bir etkisi yoktur. disp komutu ise C de˘gi¸skeni i¸cerisindeki de˘geri ekranda g¨osterir.

(8)

FMUS1025

Dr. Ayhan AYDIN

Konular Program Yazma Toplama Programı Hız Sorusu Programı ¨cgen Sorusu Programı C¸ alı¸sma Sorusu

Hız Programı

Program:

clear clc

t=input(’Zamani Giriniz:’);

if t < 10

V = (60/10) ∗ t;

elseif t < 25 V = 60;

else

V = 60 − (60/10) ∗ (t − 25);

end disp(V)

(9)

FMUS1025

Dr. Ayhan AYDIN

Konular Program Yazma Toplama Programı Hız Sorusu Programı ¨cgen Sorusu Programı C¸ alı¸sma Sorusu

Devam...

Ekrana yazdırılan ifade, program kullanıcısının daha rahat anlayaca˘ bir hale d¨on¨u¸st¨ur¨ulebilir. Bunun i¸cin ilk derslerde anlatılan matris ve string ifadelerinin bir takım ¨ozellikleri kullanılabilir.

Ornek:¨

MATLAB komut ekranında [’Ali’ ’Veli’] ¸seklinde bir komut yazılırda bu i¸sleminin sonucunun AliVeli olaca˘gını hatırlayın. MATLAB’da sıklıkla kullanılan komutlardan biride sayısal ifadeleri string (karakter)’e d¨on¨u¸st¨uren num2str built-in fonksiyonudur. S¸imdi programın ¸cıktısını matris formunda a¸sa˘gıdaki gibi hazırlayalım.

disp([num2str(t) ’.dakikada aracın hızı’ num2str(V) ’ km/sa dir’]) Programdaki display komutu bununla de˘gi¸stirilir ve program

¸calı¸stırıldıktan sonra t de˘geri olarak 5 girilirse program ¸cıktısı a¸sa˘gıdaki gibi olacaktır.

5. dakikada aracın hızı 30km/sa dir

(10)

FMUS1025

Dr. Ayhan AYDIN

Konular Program Yazma Toplama Programı Hız Sorusu Programı ¨cgen Sorusu Programı C¸ alı¸sma Sorusu

U¸cgen Sorusu Programı ¨

Program:

clear clc

A=input(’A kenar Uzunlu˘gunu Giriniz:’);

B=input(’B kenar Uzunlu˘gunu Giriniz:’);

C=input(’C kenar Uzunlu˘gunu Giriniz:’);

if A == B if B == C

disp(’E¸skenar ¨cgen’);

else

disp(’˙Ikizkenar ¨cgen’);

end

elseif A == C

disp(’˙Ikizkenar ¨cgen’);

elseif B == C

disp(’˙Ikizkenar ¨cgen’);

else

disp(’C¸ e¸sitkenar ¨cgen’);

end

(11)

FMUS1025

Dr. Ayhan AYDIN

Konular Program Yazma Toplama Programı Hız Sorusu Programı ¨cgen Sorusu Programı C¸ alı¸sma Sorusu

Devam...

Yukarıdaki ¨ornekde Nested-if (i¸ci¸ce-if) yapısı olu¸sturulabilece˘gi gibi, program, mantıksal operat¨orler kullanılarak daha farklı bir yakla¸sım ilede yazılabilir. A¸sa˘gıdaki ¨orne˘gi inceleyelim.

clear clc

A=input(’A kenar Uzunlu˘gunu Giriniz:’);

B=input(’B kenar Uzunlu˘gunu Giriniz:’);

C=input(’C kenar Uzunlu˘gunu Giriniz:’);

if A == B && B == C disp(’E¸skenar ¨U¸cgen’);

elseif A == B || B == C || A == C disp(’˙Ikizkenar ¨U¸cgen’);

else

disp(’C¸ e¸sitkenar ¨U¸cgen’);

end

(12)

FMUS1025

Dr. Ayhan AYDIN

Konular Program Yazma Toplama Programı Hız Sorusu Programı ¨cgen Sorusu Programı C¸ alı¸sma Sorusu

Ornek Soru: ¨

Bir ¨o˘grencinin harf notunu hesaplayan programı a¸sa˘gıdaki flowchart’a uygun ¸sekilde yazınız.

Not: ¨Oncelikle ¨o˘grencinin sınavdan aldı˘gı notu ve ¨o˘grenci numarasını input olarak programa vermeyi unutmayınız.

Kod, espri gibidir. A¸cıklamak zorundaysanız k¨ot¨ud¨ur .

Referanslar

Benzer Belgeler

The current study presents a patient with previous non-Hodgkin Lymphoma (NHL) history, who was complaining of a mass gradually increasing in size beneath the

Altyap ı, sosyal ve sağlık hizmetlerine erişim olanakları, yerel yönetimler, eğitim olanakları ve refahın eşit dağılımı gibi sorunlar kentlerde yo ğunlaşıyor.. WHO,

Portf¨ oy¨ un nasıl olu¸sturulaca˘ gı ve ne alıp satılaca˘ gı hakkında ayrıntılı

Cevap: Bir arbitraj fırsatı vardır ¸c¨ unk¨ u beklenen de˘ geri B menkul kıymetinden farklı olan A menkul kıymeti ve betası 0.75 olan risksiz varlık kullanılarak bir portf¨

onHilbert uzayı bir Hilbert

c i sayıları u vekt¨ or¨ une do˘ grusal olarak ba˘ glı ve i¸c¸carpım ilk de˘ gi¸skende do˘ grusal olduklarından, T do˘ grusal bir d¨ on¨ u¸s¨ umd¨ ur. B¨ oylelikle T

Yine düzenli ilaç kullanan hastalar›n umutsuzluk düzeylerinin düzenli ilaç kullanmayan hasta- lara göre anlaml› farkl›l›k yaratt›¤› saptan›rken, epilepsi hastalar›

• Java programlama diliyle bilgisayar programı yazmaya başlayabilmek için elinizde Java kurma seti (Java Development Kit- JDK