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

Slides:



Advertisements
Benzer bir sunumlar
Prof. Dr. Ahmet Arıkan Gazi Ü niversitesi Gazi Eğitim Fakültesi OFMAE Bölümü Matematik Eğitimi Anabilim Dalı.
Advertisements

Algoritma.  Algoritma, belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.  Başka bir deyişle; bir sorunu çözebilmek için gerekli olan.
BİLGİSAYAR PROGRAMLAMA Ders 2: Algoritma ve Akış Şemaları
Hat Dengeleme.

Determinant Bir kare matrisin tersinir olup olmadığına dair bilgi veriyor n- boyutlu uzayda matrisin satırlarından oluşmuş bir paralel kenarın hacmine.
Bölüm 4 KAPALI SİSTEMLERİN ENERJİ ANALİZİ
AKIL (ZİHİN) HARİTASI.
Örnek 1 Kullanıcının girdiği bir sayının karesini hesaplayan bir program yazınız.
TC Windows Editörü DevC++. KURULUM PROGRAMIN KURULACAĞI YER BURADA BELİRLENİYOR.
İNSAN BİLGİSAYAR ETKİLEŞİMİ: BİLİŞSEL BOYUT III. İBE alanında etkileşimi anlamaya çalışan uzmanlar, özellikle şema ve zihinsel modeller üzerinde yoğunlaşırlar.
O R T L G İ M A A Ve Problem çözme.
9. HAFTA 25 Nisan2016. Fonksiyon M-Dosyaları Fonksiyon dosyaları ilk satırda “function” kelimesi bulunan “.m” uzantısı bulunan dosyalardır. MATLAB içinde.
MATEMATİK PROJE ÖDEVİ Adı-Soyadı:Nihat ELÇİ Sınıfı-Numarası:7/C 1057
Yazılım Mühendisliği1[ 3.hft ]. Yazılım Mühendisliği2 Yazılım İ sterlerinin Çözümlemesi Yazılım Yaşam Çevrimi “ Yazılım Yaşam çevrimin herhangi bir yazılım.
EQUIZSHOW.
Grafik ve Animasyon-II FLASH CS5 Öğr.Gör. Onur BULUT.
HAZIRLAYANLAR ZELİHA OKÇU ÖZGÜL ERGÜL  Bir hesap tablosu programıdır. Excel, her türlü veriyi (özellikle sayısal verileri) tablolar ya da listeler halinde.
Bölüm 5 Döngü Komutları while Komutu while Komutu Diğer Operatörler (Bileşik atama, artırma ve azaltma operatörleri ) Diğer Operatörler (Bileşik atama,
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
ÖZEL TANIMLI FONKSİYONLAR
BİLGİSAYAR PROGRAMLAMA DERSİ
Excel 2007.
Ders notlarına nasıl ulaşabilirim
KDV BEYANNAMESİ / MUHTASAR BEYANNAME / KURUMLAR VERGİSİ BEYANNAMESİ / GEÇİCİ VERGİ BEYANNAMESİ’NDE ORTAK ÖZELLİKLER F5 PENCERESİ Beyannamelerde yer alacak.
PROGRAMLI ÖĞRETİM Tanımı:
BM-103 Programlamaya Giriş Güz 2016 (3. Sunu)
BM-103 Programlamaya Giriş Güz 2016 (8. Sunu)
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
“nereden başlamalı ?” PROBLEM ÇÖZME (PROBLEM SOLVING)
Problem Çözme ve Algoritmalar
MODEL YETERSİZLİKLERİNİ DÜZELTMEK İÇİN DÖNÜŞÜMLER VE AĞIRLIKLANDIRMA
C Programlama Yrd.Doç.Dr. Ziynet PAMUK BMM211-H05
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
İleri Algoritma Analizi
MAT – 101 Temel Matematik Mustafa Sezer PEHLİVAN *
DOSYA BÜYÜKLÜKLERİ İkili Sistem Dosya Büyüklükleri ve Hesaplamalar
Klavye Kullanımı.
“Bilgi”’nin Gösterimi “Bilgi” İnsan veya Makina Yorumlama Öngörme
Bilgisayarlara komut verme Remzi ÖZ
PROBLEM ÇÖZME VE ALGORİTMALAR
Bilgisayar Programlama
İSTATİSTİK Yrd. Doç. Dr. Cumhur TÜRK
Bilgisayar Mühendisliğine Giriş
BİLGİSAYAR programlama II
SAYI ÖRÜNTÜLERİ ANAHTAR KAVRAMLAR MODELLEME ÖRÜNTÜ SAYI ÖRÜNTÜSÜ ÜS
ANALİTİK KİMYA DERS NOTLARI
Doğrusal Mantık Yapısı İle Problem Çözme
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
MAK 308 MAKİNA DİNAMİĞİ Bahar Dr. Nurdan Bilgin
İleri Algoritma Analizi
Bilgisayar Bilimi Koşullu Durumlar.
Karar Yapıları İle Problem Çözme
Bilgisayar II 8 Mart Mart
BENZETIM 3. Ders Prof.Dr.Berna Dengiz Monte Carlo Benzetimi
NİŞANTAŞI ÜNİVERSİTESİ
Fonksiyonlar ve Alt Programlar
6. DÖNGÜ (TEKRARLAMA) DEYİMLERİ
Bilgisayar Bilimi Fonksiyon Yazma.
Değerler ve Değişkenler
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
BLM-111 PROGRAMLAMA DİLLERİ I Ders-10 Diziler
Veri ve Türleri Araştırma amacına uygun gözlenen ve kaydedilen değişken ya da değişkenlere veri denir. Olgusal Veriler Yargısal Veriler.
NİŞANTAŞI ÜNİVERSİTESİ
MTM216 GÖRSEL PROGRAMLAMA
Kesikli Olay benzetimi Bileşenleri
İleri Algoritma Analizi
Sunum transkripti:

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

PROGRAMLAMA ve YAZILIM

Paketler ve programlama Günümüzde bir problemi çözmek için iki tür yöntem vardır. – Bunlardan ilki paket programlar kullanarak bir problemi çözmek – diğeri ise kendi geliştirdiği bir kod ile problemini çözmektir. Paket programlar kullanmak doğrusal bir denklem sistemini çözmek veya x-y değerlerinin grafiğini çizmek için özel bir çaba gerektirmeyen bir çözüm yöntemidir. Ancak bir paket programın standart kapasitesinin ötesinde problemler çıktığında, bu durumda programlama yeteneklerinizi artırarak ancak problemlerinize çözüm bulabilirsiniz. Örneğin Excel, MATLAB v.b. paket programlar, kendi kapasitelerini kullanıcılarına programlama imkanı da sunan yazılımladır. Mühendisler kendilerini sadece paket programların kendilerini sundukları hazır kodlar ile sınırlandırmamalı, problemlerini çözmek için aynı zamanda program yazmayı da öğrenmelidirler. Bu maksatla Excel üzerinde VBA makroları ve MATLAB üzerinde M-dosyaları yazmasını öğrenerek ilerleyebilirler.

Bilgisayar Programları Bilgisayar programları, bilgisayarın belirli bir işi yapması için yol gösteren talimatlar dizisidir. Programlama konusunu birkaç başlığa indirgeyebiliriz. 1.Basit bilgi gösterimi (sabitler, değişkenler ve tip tanımlamaları) 2.Gelişmiş bilgi gösterimi (veri yapısı, diziler ve kayıtlar) 3.Matematik formüller (yerine koyma, işlem önceliği kuralları ve özel fonksiyonlar) 4.Girdi/çıktı 5.Mantıksal gösterim (sıralama, seçim ve tekrar) 6.Modüler programlama (fonksiyonlar ve alt programlar)

Yapılandırılmış Programlama Yapılandırılmış programlama, programcıya biçim konusunda iyi alışkanlıklar öneren bir kurallar bütünüdür. Yapısal bir program, sıralama, seçme ve tekrar olarak belirtilebilecek üç temel yapı kullanılarak yazılır. Algoritmanın özel geometrik şekillerle çizilmiş hali de “akış diyagramı” olarak adlandırılır. Akış diyagramları ile bilgisayar kodları arasında geçişi sağlayan algoritmaları ifade etmenin diğer bir alternatifi ise kalıp programlardır (pseudocode).

Program yazma adımları Problem iyice irdelenir. Programlamaya en uygun (en az komut, en kısa süre, en doğru sonuç) çözüm yolu belirlenir. Kalıp program veya akış diyagramı hazırlanır. Kalıp program veya akış diyagramı bir programlama diliyle kodlanarak program oluşturulur

Algoritma Hazırlama Kuralları Yapılacak iş/çözülecek problem iyice irdelenir. Tüm ihtimaller gözden geçirilir. En uygun çözüm yolu/yöntem belirlenir. Tanımlayıcı isimleri (değişken, sabit, alt program vb.) belirlenir. Her işlem adımına bir numara verilir. Problem çözümü için gerekli veriler girilir veya başka bir ortamdan alınır. Bulunan sonuçlar görüntülenir veya belirli bir ortamda saklanır.

Akış diyagramlarında kullanılan semboller

Mantıksal Gösterim Sıralama. Sıralama yapısı, aksi söylenmedikçe, bilgisayar kodunun, komutları birbiri ardınca sırayla yapacağı şeklindeki basit fikri ifade eder. Örnek 1: Klavyeden girilen iki sayının toplamını bulup ekrana yazan programın akış şeması 1.Başla 2.Birinci sayıyı (A) gir 3.İkinci sayıyı (B) gir 4.T=A+B işlemini yap 5.Sonucu (T) yaz 6.Dur

Mantıksal Gösterim Seçim. Adım adım sırayla ilerleme yapısının aksine, seçim, mantıksal bir şartın sonucuna göre program akışının dallanmasını sağlar. Örnek 2: Girilen iki sayıdan büyük olandan küçük olanı çıkarıp farkı ekrana yazan programın akış şeması 1.Başla 2.Birinci sayıyı (A) gir 3.İkinci sayıyı (B) gir 4.Eğer A>B ise 5.F=A-B 6.Değilse 7.F=B-A 8.Yaz F 9.Dur

Mantıksal Gösterim Tekrar. Komutların birbiri ardınca tekrar kullanılmalarına olanak sağlar. Tekrarlama işlemi sonucunda oluşan yapılar, döngüler, nasıl bittiklerine göre iki farklı şekilde karşımıza çıkarlar. Bunlardan ilki karar döngüsüdür, çünkü döngü mantıksal bir koşulun sonucuna bağlı olarak sona erer. DOEXIT bir karar döngüsüdür. Şekildeki gibi bir döngüde ilk blok ve ikinci blok olmadan da çalışabilir. Bu döngü birçok programda WHILE olarak kullanılır.

Mantıksal Gösterim Tekrar. Komutların birbiri ardınca tekrar kullanılmalarına olanak sağlar. Tekrarlama işlemi sonucunda oluşan yapılar, döngüler, nasıl bittiklerine göre iki farklı şekilde karşımıza çıkarlar. Diğeri sayacı kontrollü döngü ya da DOFOR döngüsü belirtilen sayıda tekrarı veya iterasyonu gerçekleştirir. Şu şekilde çalışır; İndis (şekilde i ile temsil edilmiştir) başlangıçta başla ile değerine getirilen bir değişkendir. Program daha sonra indisin, son değeri bitti’den küçük ya da ona eşit olmadığını test eder. Eğer küçükse döngüde yer alan komutları yerine getirir ve DO ifadesine geri döner. ENDDO ifadesine her gelindiğinde indis, adım kadar otomatik olarak artırılır. Böylece indis sayaç görevini yapar. Daha sonra indis son değer bitti’den büyük olduğu zaman bilgisayar otomatik olarak döngüden çıkar ve kontrol ENDDO ifadesini izleyen satıra geçer.

Mantıksal Gösterim Örnek 3: 1’den N’e kadar olan tam sayıların toplamını bulan programın akış şeması 1. Başla 2. N sayısını gir 3. T=0 4.EĞER N<1 ise git 9 5. Döngüyü başlat (i=1 den N e kadar) 6.T=T+i 7.Git 5 8.Döngüyü sonlandır.(i=N e ulaştığı zaman) 9.Yaz T 10. Dur

Mantıksal Gösterim Örnek 4: Klavyeden girilen N tamsayısı için N! Değerini hesaplayan programın akış şeması 1.Başla 2.N sayısını gir 3.F=1 4.i=0 5.i=i+1 6.F=F*i 7.Eğer i<N ise git 5 8.Yaz F 9.Dur

Mantıksal Gösterim Ödev 1. Klavyeden N değeri girildiğinde, 1’den N’e kadar olan tek sayıların toplamını bulan programın akış diyagramını çiziniz. Ödev 2. Girilen iki sayı arasındaki mutlak farkı hesaplayan programın akış diyagramını çiziniz. Ödev 3. Aşağıdaki akış diyagramının sonucunu hesaplayınız. Ödev 4. Aşağıdaki algoritmanın sonucunu hesaplayınız. 1. Başla 2. F=1 3. S=20 4. Eğer S<1 ise git 9 5. S=S-3 6. F=F+S 7. F=F+2 8. Git 4 9. Yaz F 10. Dur

Paraşütçü problemi

g=9.8 INPUT cd,m INPUT ti,vi,tf,dt t=ti v=vi h=dt DO IF t+dt>tf THEN h=tf-t ENDIF dvdt=g-(cd/m)*v v=v+dvdt*h t=t+h IF t ≥ tf EXIT ENDDO DISPLAY v Döngü içine girer girmez, bir IF/THEN yapısı kullanılarak t+dt’in aralığın dışına çıkıp çıkmadığı kontrol edilir. Eğer çıkmıyorsa, ki başlangıçta çıkmayacaktır, hiçbir şey yapmadan IF koşulundan çıkılır. Eğer çıkıyorsa, h=tf-t’ye eşitlenerek değeri değiştirilir böylece programın sonlanması için ilk adım atılmış olur. Örneğin t=4 sn değeri başlangıçta atanırsa 4+0,5>4 olacağı için h=4-4=0 değerine atanır, böylece devam eden adımlar program sonlanır. Program devamında döngü t ≥ tf şartı sağlanan kadar devam eder. Ancak programda bazı eksiklikler devam etmektedir, örneğin; kullanıcı yanlışlıkla hesap aralığından daha büyük bir adım girmiş olabilir, ya da ti değeri tf değerinden büyük girilmiş olabilir.

Paraşütçü problemi Paraşütçü problemini MATLAB’da oluşturacağımız m-files dosyaları üzerinde kodlama yaparak çözebiliriz. MATLAB’in genel kullanım özelliklerinde kısaca bakarak bunun nasıl görelim. g= 9.8; m=input('kütle (kg) :'); cd=12.5; tf=2; v=g*m/cd*(1-exp(-cd/m*tf)) 1.Paraşütçü probleminin analitik çözümü bulmak için MATLAB’in komut penceresine (Command Window) yandaki sıralanan komutları yazalım; 2.Enter tuşuna bastığınızda m değerini kullanıcının girmesi gerektiği için, kullanıcı bu değeri yazdıktan sonra sonuç görülebilir 3.Aynı programı bir m-file içinde oluşturarak da sonuç alabiliriz. Bunun için File > New > Blank M-File’i seçin 4.Açılan m-files editörü için yukarıdaki kodun aynısını yapın ve analhesap.m ismiyle kaydedin. 5.MATLAB’in komut penceresinde >> analhesap yazarsanız bu m-doyasının içindeki hesap çalıştırılır ve sonuç ekrana yazılır.

Paraşütçü problemi g=9.8; m=input('kütle (kg) :'); cd=12.5; ti=0; tf=2; vi=0; dt=0.1; t=ti; v=vi; h=dt; while (1) if t+dt>tf h=tf-t; end dvdt=g-(cd/m)*v; v=v+dvdt*h; t=t+h; if t>=tf, break, end end disp('hız (m/s:') disp (v) 1.Sayısal çözüm için yeni bir m-file oluşturun ve numhesap.m olarak kaydedin. 2.Yandaki kodu yazın ve komut penceresinde numhesap yazıp çalıştırın. 3.MATLAB’de DO komutu yerine WHILE (1) komutunun kullanıldığına dikkat edin. 4.MATLAB buradaki 1 rakamı doğruya karşılık olarak yorumlar 5.Ancak döngü break konutu ile son bulur, kontrol end ifadesine geçerek döngü sonlanır.

Paraşütçü problemi function euler=f(dt, ti, tf, vi, m, cd) t=ti; v=vi; h=dt; while (1) if t+dt>tf h=tf-t; end dvdt=dv(t,v,m,cd); v=v+dvdt*h; t=t+h; if t>=tf, break, end end euler =v; 1.Programımızı daha düzgün bir fonksiyon ve yapılandırılmış bir şekle dönüştürmek için, yeni bir m-dosyası açın ve euler ismiyle kaydedin ve yandaki kodu yazın 2.dv fonkiyonu bunun içinde hesaplanmadığı için onu dv ismini vereceğimiz başka bir m- dosyasında hesaplayalım. 3.Fonksiyonu çalıştırmak ve sonucu görmek için aşağıdaki komutları komut penceresinde yazmalıyız. function dv=f(t,v,m,cd) g=9.8; dv=g-(cd/m)*v; >> euler(0.1,0, 2, 0, 68.1, 12.5)