BBS 514 YAPISAL PROGRAMLAMA (STRUCTURED PROGRAMMING)

Benzer belgeler
BBS 514 YAPISAL PROGRAMLAMA (STRUCTURED PROGRAMMING)

BLGM BÖLÜM. Problem Çözme Kavramları (Algoritma ve Akış Şemaları)

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

Week 5 Examples and Analysis of Algorithms

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Hiyerarşik Yazılım Tasarımı Kavramı

How many sides has the polygon?

Unlike analytical solutions, numerical methods have an error range. In addition to this

Giri. Program yazmaya balamadan önce

IDENTITY MANAGEMENT FOR EXTERNAL USERS

Virtualmin'e Yeni Web Sitesi Host Etmek - Domain Eklemek

BBS 514 YAPISAL PROGRAMLAMA (STRUCTURED PROGRAMMING)

WEEK 11 CME323 NUMERIC ANALYSIS. Lect. Yasin ORTAKCI.

BBM Discrete Structures: Final Exam Date: , Time: 15:00-17:00

ORACLE DA KÜRSÖRLER. Gerekli sistem değişkenleri

Programlamaya Giriş Karar Yapıları, Tekrarlı İfadeler(Döngüler)

C++ Programming: Program Design Including Data Structures, Third Edition. Bölüm 1: Bilgisayarlar ve Programlama Dillerine Kısa Bakış

Multiplication/division

#include <stdio.h> int main(void) { float sayi; float * p; p = &sayi; printf("deger girin:"); scanf("%f", p); printf("girilen deger:%f\n", *p);

Önsöz. İçindekiler Algoritma Algoritma Nasıl Hazırlanır? Yazılımda Algoritma Mantığı Nedir? 1.2. Algoritma Örnekleri ve Sorular

Yarışma Sınavı A ) 60 B ) 80 C ) 90 D ) 110 E ) 120. A ) 4(x + 2) B ) 2(x + 4) C ) 2 + ( x + 4) D ) 2 x + 4 E ) x + 4

Algoritma Hazırlama. Programlama. nereden başlamalı? ALGORİTMA VE PROGRAMLAMA Öğr.Gör.Günay TEMUR

Cases in the Turkish Language

DOKUZ EYLUL UNIVERSITY FACULTY OF ENGINEERING OFFICE OF THE DEAN COURSE / MODULE / BLOCK DETAILS ACADEMIC YEAR / SEMESTER


YAKIN DOĞU ÜNİVERSİTESİ DIŞA AÇIK DERSLER KOORDİNATÖRLÜĞÜ BİLGİSAYAR MÜHENDİSLİĞİ - İNGİLİZCE

BİL1001 Bilgisayar Bilimlerine Giriş 1

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

4- Turbo Pascal Bilgisayar Programlamada Kullanılan Şart Yapıları

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

D-Link DSL 500G için ayarları

BBM Discrete Structures: Midterm 2 Date: , Time: 16:00-17:30. Question: Total Points: Score:

Nesne Yönelimli Programlama

Ö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.

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

BBM Discrete Structures: Final Exam - ANSWERS Date: , Time: 15:00-17:00

TBP101 (4. Hafta) Alıştırma Soruları ve Cevapları

ALGORİTMAYA GİRİŞ. Program: Belirli bir işi gerçekleştirmek için gerekli komutlar dizisi olarak tanımlanabilir.

Bölüm 3 Yapısal Programlama

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-4 Döngü Yapıları. Yrd. Doç. Dr. Ümit ATİLA

Hem lw hem de sw komutlarının ofseti 16-bitlik işaretli tamsayıdır.

CENG/BILM 341 FINAL REVIEW. Dr. Esma Yıldırım

YAKIN DOĞU ÜNİVERSİTESİ DIŞA AÇIK DERSLER KOORDİNATÖRLÜĞÜ BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ - İNGİLİZCE

Kontrol Yapıları (2)

g Na2HPO4.12H2O alınır, 500mL lik balonjojede hacim tamamlanır.

M.E.B. ENG-4 Ünite-2 STUDENTS-4 UNIT-2 My Classroom ( Sınıfım ) Classroom Language ( Sınıf Dili )

NATURAL LANGUAGE PROCESSING

#include <stdio.h> int main(void) { FILE * dosya; dosya = fopen("soru1.txt", "w"); fprintf(dosya, "Merhaba Dunya!"); fclose(dosya); return 0; }

Yüz Tanımaya Dayalı Uygulamalar. (Özet)

Python ile Programlamaya Giriş DERS 6: DÖNGÜLER DR. HÜSEYİN BAHTİYAR

YABANCI DİL I Zorunlu 1 1 4

Hafta 4 Döngü Yapıları

UBE Machine Learning. Kaya Oguz

BBS515 Nesneye Yönelik Programlama. Ders 3 Zümra Kavafoğlu

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

can herhangi bir şeyi yapabilmeye yetenekli olduğumuzu belirtmek için

JAVA DÖNGÜ DEYİMLERİ. For Döngüsü

ALGORİTMA ANALİZİ. Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü

BM-311 Bilgisayar Mimarisi

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

Welcome. Hos Geldiniz. Summer Schools Presentation. Yaz Okulları Sunumu. Sandi Engler Overseas College Counselor Yurtdışı Üniversiteler Danışmanı

AB surecinde Turkiyede Ozel Guvenlik Hizmetleri Yapisi ve Uyum Sorunlari (Turkish Edition)

Adım Adım SPSS. 1- Data Girişi ve Düzenlemesi 2- Hızlı Menü. Y. Doç. Dr. İbrahim Turan Nisan 2011

CmpE 320 Spring 2008 Project #2 Evaluation Criteria

2 PYTHON A GIRIŞ 13 PyCharm İle Python Projesi Oluşturma 15 Projenin Çalıştırılması 18 İlk Python Programımız 19 Açıklama Satırları 21

A LANGUAGE TEACHER'S PERSONAL OPINION

Veri Yapıları ve Algoritmalar dönem

Week 6: Bağlı Liste (Linked List) BAĞLI LİSTE KAVRAMI TEKİL (SINGLE) BAĞLI LİSTE ÇİFT (DOUBLE) BAĞLI LİSTE DAİRESEL (CIRCULAR) BAĞLI LİSTE

Lecture 11: Generics

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

Bölüm 1 PROGRAMLAMAYA GİRİŞ. Bölüm 2 ALGORİTMA

1 I S L U Y G U L A M A L I İ K T İ S A T _ U Y G U L A M A ( 5 ) _ 3 0 K a s ı m

YEDİTEPE ÜNİVERSİTESİ MÜHENDİSLİK VE MİMARLIK FAKÜLTESİ

ENGLISH PROFICIENCY EXAM

Lesson 55 : imperative + and, or, otherwise Ders 55: Emir + ve, veya, aksi halde

Algoritmik Program Tasarımı, Akış Şemaları ve Programlama. Bilgisayar Mühendisliğine Giriş 1

YEDİTEPE ÜNİVERSİTESİ MÜHENDİSLİK VE MİMARLIK FAKÜLTESİ

Do not open the exam until you are told that you may begin.

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

ÖRNEKTİR - SAMPLE. RCSummer Ön Kayıt Formu Örneği - Sample Pre-Registration Form

Dersin Türü (Course Type) Zorunlu (Compulsory)[Χ] Seçmeli (Elective) [ ]

Teknoloji Servisleri; (Technology Services)

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü BİL 203 Veri Yapıları ve Algoritmalar I

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

CSE225 DATA STRUCTURES 2006 Student Name: MIDTERM EXAM II M.B.T. Student Number:

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Đ

Bölüm 6. Diziler (arrays) Temel kavramlar Tek boyutlu diziler Çok boyutlu diziler

Bölüm 4 C de Program Kontrolü

C++ Statements. { ve } arasında ifade edilen bir dizi statement bir compound statement (birleşik ifade) oluşturur.

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

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

Teori/Saat Uygulama/Saat Laboratuar/Saat AKTS BLM Dersin Amacı

Delta Pulse 3 Montaj ve Çalıstırma Kılavuzu.

İnternet Programcılığı Dersi 2.Dönem Ders Notu

PROBLEM ÇÖZME PROGRAMLAMA ve ÖZGÜN ÜRÜN GELİŞTİRME

SPSS (Statistical Package for Social Sciences)

C++ Programming: Program Design Including Data Structures, Third Edition. Bölüm 3: Giriş/Çıkış

Python ile Programlamaya Giriş DERS 8: DEMETLER VE SÖZLÜKLER DR. HÜSEYİN BAHTİYAR

Transkript:

1 BBS 514 YAPISAL PROGRAMLAMA (STRUCTURED PROGRAMMING) LECTURE 1: ALGORITHMS Lecturer: Burcu Can BBS 514 - Yapısal Programlama (Structured Programming)

İçerik Bilgisayar için problem çözme süreci ve Pólya nın Nasıl Çözmeli listesi Algoritma kavramı Yalancı kod Kontrol yapıları

Problem Çözme Problem çözme (sözlük anlamı): çözülmesi gereken mesele, sorun veya aşılması gereken engel için çözüm bulma.

Problem Çözme Nasıl Çözmeli: Matematiksel Yöntem için Yeni Bir Bakış - George Pólya Matematiksel problemler için yazılmış Liste oldukça genel ve bilgisayar için de uyarlanabilir. Bilgisayarla ilişkili problemleri çözmek için de kullanabiliriz.

Problem Çözme Problemleri nasıl çözersiniz? Problemi anla Bir plan oluştur n Planı gerçekleştir. n Gözden geçir. Eğer bu yöntemle çözülmezse, Pólya şunu tavsiye ediyor: Bir problemi çözemiyorsanız, çözmenin mümkün olduğu daha basit bir problem vardır. Eğer problemiçözemiyorsanız, onunla ilişkili başka bir problemiçözmeye çalışın.

Stratejiler Sorular sor! Problem hakkında ne biliyorum? Çözümü bulmak için elimde nasıl bilgiler mevcut? Nasıl bir çözüm bulunması gerekiyor? Özel durumlar var mı?

Stratejiler Sorular sor! Tekerleği yeniden icat etme! Benzer problemler farklı biçimlerde karşımıza çıkabilir. İyi bir programcı, daha önce çözülmüş bir görevi tanıyarak başka bir problemin çözümü için onu yeni çözüme dahil eder. Birbirine benzer iki problem tanımlayın!

Stratejiler Böl ve Yönet Büyük bir problemi daha küçük parçalarına böl ve alt problemleri çöz. Her alt görev başa çıkılır oluncaya dek böl ve yönet taktiği tekrar tekrar uygulanabilir.

Bilgisayarda Problem Çözme Analiz ve tanımlama aşaması Analiz et Tanımla Algoritma geliştirme aşaması Algoritma geliştirme Algoritmayı test et Uygulama aşaması Algoritmayı kodla Algoritmayı test et Bakım aşaması Kullan Hataları/eksiklikleri gider Tekrar eden kısımlar hangileridir?

Kod Geliştirme Aşamaları

Algoritmalar Algoritma Bir problemi veya alt problemi belli bir zamanda, sonlu sayıda veriyle çözmek için gerekli olan komutlar kümesi

Algoritma Yemek tarifleri, yol tarifleri en bilinen algoritmalardandır. Kek tarifi: Fırını 180 dereceye getirelim. Yumurtaları ve toz şekeri bir kabın içersine döküp köpük köpük olana kadar mikserle çırpalım. Burada dikkat etmeniz gereken şey, 3 yumurtayı aynı anda değil, tek tek kırıp köpük yapıp üzerine diğer yumurtayı kırıp işleme devam edin. Köpük köpük yaptıktan sonra diğer tüm malzemeleri sırasıyla kabın içerisine dökün ve çırpmaya devam edin. Kolay kekin harcını yaptıktan sonra istediğiniz şekildeki kalıba dökün ve fırına verin. Yaklaşık olarak 30-35 dakika kadar pişirdikten sonra fırından alın ve biraz demlenmesini bekledikten sonra servis yapın.

Algoritma Kekin yapımı: Fırını 180 dereceye getir. Bir kap al. Kabın içine 3 yumurtayı kır ve 2 çay bardağı toz şeker koy WHILE (köpürmedi) yumurta ve toz şekeri çırp Diğer bütün malzemeleri (2 çay bardağı yoğurt, yarım su bardağı zeytinyağı, 1 paket kabartma tozu, 1 paket vanilin, 3 su bardağı un) kabın içine koy Bütün harcıbirkalıba dök. Kalıbı fırına koy WHILE (kek pişmedi) Kalıbı fırında tut. Keki fırından çıkar.

Bir Algoritmanın Geliştirilmesi Bir problemi çözmede bilgisayar çözümü üretmenin iki yöntemi vardır: Yukarıdan aşağı tasarım (Top-down design) n Yapılacak görevlere yoğunlaşır. Nesneye yönelik tasarım (Object-oriented design) n Veriye yoğunlaşır. Algoritmaları ifade etmek için yalancı kodlar kullanılır!

Yukarıdan-Aşağı Tasarım

Yalancı Kod Yalancı kod (pseudocode): İngilizce ifadelerle programlama dili ifadelerinin karışık bir şekilde kullanıldığı kodlar. Örnek:10 luk tabandaki bir sayının başka bir tabana çevrilmesi: While (the quotient is not zero) Divide the decimal number by the new base Make the remainder the next digit to the left in the answer Replace the original decimal number with the quotient While (bölüm sıfır değil) Yeni ondalıklı sayıyı yeni tabana böl Kalanı sola doğru birsonraki basamakyap Orjinal ondalıklı sayıyı bölümle yer değiştir.

Yalancı Kod While (bölüm sıfır değil) Yeni ondalıklı sayıyı yeni tabana böl Kalanı sola doğru bir sonraki basamak yap Orjinal ondalıklı sayıyı bölümle yer değiştir. Ondalık tabanda 93 ün 8 lik tabandaki karşılığı nedir? 93/8 in sonucu 11, kalan 5 tir. 11/8 nın sonucu 1, kalan 3 tür. 1/ 8 in sonucu 0, kalan 1 dir. sonuç: 1 3 5

Tam Çözüm için Yalancı Kod Yazdır: Yeni tabanı giriniz" Oku: yenitaban Yazdır: Çevrilecek sayıyı giriniz" Oku: ondalıksayı Bölümü 1 olarak kaydet. WHILE (bölüm 0 değil) Bölüme ondalıksayi/yenitaban değerini ata Kalana ondalıksayi % yenitaban değerini ata Kalanı sola doğru bir basamak olarak kaydet. ondalıksayı değerini bölüm olarak güncelle Yazdır: Sonuç: " Sonucu yazdır

Yalancı Koddaki İfadeler Değişkenler: Verilerin kaydedildiği depo alanları n Örnek: bölüm, ondalıksayı, yenitaban Atama ifadeleri: Bir değişkene yeni değer verme n Bölüme 64 değerini ata.

Yalancı Koddaki İfadeler Çıktı Bir çıktı aygıtına değerin yazdırılması: Girdi n Yazdır (Write, Print) Dış dünyadan değerlerin alınıp değişkenlere kaydedilmesi n Oku (Get, Read)

Kontrol Yapıları Kontrol yapısı: Programda komutların hangi sırada çalıştırılacağını belirleyen komuttur.

Seçim İfadeleri Seçim: Farklı ifadelerin içinden birini çalıştırmak için seçmek veya bazı ifadeleri atlamak için kullanılır. Sayıyı al IF (sayı < 0) Yazdır sayı + " 0 dan küçüktür." veya Yazdır Pozitif bir sayı giriniz." Sayıyı al IF(sayı < 0) Yazdır sayı + " 0 dan küçüktür." Yazdır Talimatlara uymadınız."

Seçim İfadeleri à if deyimi

Seçim İfadeleri Problem: Verilen birhava sıcaklığına göre uygun kıyafeti yazdır. Yazdır: Sıcaklık değerini girin: " Sıcaklık değerini al. Kıyafeti belirle.

Seçim İfadeleri Kıyafeti Belirle IF (sicaklik > 90) Yazdır Hava sıcak: şort giy. ELSE IF (sicaklik > 70) Yazdır ideal hava: Kısa kollu t- shirt giymekuygundur. ELSE IF (sicaklik > 50) Yazdır Biraz serin: ince bir ceket giy. ELSE IF (sicaklik > 32) ELSE Yazdır Oldukça soğuk: Kalın bir mont giy. Yazdır İçeride kal.

Döngü İfadeleri Tekrar: Bir dizi ifadenin tekrar edilmesi. Set count to 1 WHILE ( count < 10) Write "Enter an integer number" Read anumber Write "You entered " + anumber Set count to count + 1 Kaç değer okunur?

Döngü İfadeleri à while ifadesi

Döngü İfadeleri Sayaç kontrollü döngü: Toplama 0 değeriniver. Sayaca 1 değerini ver. While (sayac <= limit) Sayıyı oku Toplama, toplam+sayı değeriniata. Sayacı artır Yazdır: Toplam:" + toplam Neden sayaç kontrollü deyim deniyor?

Döngü İfadeleri Olay kontrollü deyim: Toplama 0 değeriniver. Pozitif değişkenine dogru değeriniver WHILE (Pozitif) Sayı oku IF (Sayı > 0) Toplama toplam+sayı değeriniver. ELSE Pozitif e yanlış değeriniver. Yazdır: Toplam" + toplam Neden olaykontrollü döngü deniyor? Buradaki olaynedir?

Yalancı Kod Örneği Problem: Tekrarlı bir şekilde bir çift sayı al ve değerleri yazdır. WHILE (not done) Write "Enter two values separated by blanks" Read number1 Read number2 Print them in order

Yalancı Kod Örneği Değerlerisırayla yazdır: Write "How many pairs of values are to be entered?" Read numberofpairs Set numberread to 0 WHILE (numberread < numberofpairs) Write "Enter two values separated by a blank;; press return" Read number1 Read number2 IF(number1 < number2) Print number1 + " " + number2 ELSE Print number2 + " " number1 Increment numberread

Yalancı Kodun Çevrilmesi Hangi dile çevrilecek? Assembly dili Çok ayrıntılı ve zaman alır. Üst düzey programlama dili Yazması dahakolay.

From problem to program 33 In real world Problem in Natural language Top Down Design in pseudo-code Program in computer code (code in almost any computer language.) Requirements: A program that does this and that and the other. It must take data from this source and DESIGN The Problem Do this repeat if something then do this else do the other Print all done The Design (Algorithm) The Program Reduce cognitive load separating design and coding using top-down design IMPLEMENT BBS 514 - Yapısal Programlama (Structured Programming)

Steps of Software Development 34 1. Problem Understanding Read the problem carefully and try to understand what is required for its solution. 2. Analysis Identify problem inputs and outputs. 3. Design Develop a list of steps (algorithm) to solve the problem Refine steps of this algorithm. (Divide and Conquer) Verify that the algorithm solves the problem, i.e. the algorithm is correct. 4. Implementation Implement the algorithm as a (java) program. You have to know a specific programming language (java) Convert steps of the algorithm into programming language statements. 5. Testing and Verification Test the completed program, and verify that it works as expected. Use different test cases (not one) including critical test cases. BBS 514 - Yapısal Programlama (Structured Programming)

Algorithm 35 An algorithm is a design written in pseudo code. (in English, but a formal style) Algorithms contain: Sequence Decision Repetition BBS 514 - Yapısal Programlama (Structured Programming)

Everyday Algorithms 36 Problem: To drink a glass of milk. Algorithm: 1. Enter the kitchen 2. Get a glass 3. Get the milk from the refrigerator 4. Fill the glass with milk 5. Drink it Refine step 1: 1. Walk to the kitchen door 2. If the door is close then 2.T. Open it 3. Walk into the kitchen Refine step 3: 1. Open the refrigerator 2. Get the milk 3. Close the refrigerator Refine step 4: 1. while the glass is not full 1.1. Pour some milk into the glass BBS 514 - Yapısal Programlama (Structured Programming)

Area- Circumference Problem 37 Requirements: Design an algorithm to find and report the area and circumference of a circle whose radius the user gives. Example interaction Welcome to circle computer Please enter the radius: 5 The area of a circle of radius 5 is 78.55 and its circumference is 31.42 BBS 514 - Yapısal Programlama (Structured Programming)

Area- Circumference Problem 38 To find area & circumference of circle 1. Print welcome message 2. Ask for & get radius from user 3. Compute area as pi.radius.radius 4. Compute circumference as 2.pi.radius 5. Report area, circumference & radius Identify preconditions & ensure they are satisfied. Once we are sure that this is correct, move on to solve any nontrivial sub-problems. BBS 514 - Yapısal Programlama (Structured Programming)

Area- Circumference Problem (cont.) 39 Solve 2. Ask for & get radius from user 1. Ask (prompt) the user to enter radius 2. Get radius value from user Solve 5. Report area, circumference & radius 1. Print msg The area of a circle with radius 2. Print radius value 3. Print msg is 4. Print area value and move to next line 5. Print msg and its circumference is 6. Print circumference value 7. Print blank line BBS 514 - Yapısal Programlama (Structured Programming)

Calculating the average score of an exam 40 Problem: Calculating the average score of an exam Inputs : Scores of an exam Output: Average score of the exam Algorithm: 1. Set count to zero 2. Set sum to zero 3. while there is an exam sheet do 3.1. Read the score on the sheet 3.2. Add the score on the sheet to sum 3.3. Add one to count 3.4. Move to the next sheet 4. Compute average as sum/count 5. Display average BBS 514 - Yapısal Programlama (Structured Programming)

Prime Number 41 Problem: Deciding that a given integer number is prime or not. Input : An integer number N Output: A sentence indicating that N is prime or not. Algorithm: 1. Read the number N 2. Test whether N is prime or not 3. Display the result. Refine step 2: 1. set counter to 2 2. set PrimeFlag to true 3. while (counter < N and PrimeFlag = true) do 3.1. if N is divisible by counter then 3.1.T. set PrimeFlag to false 3.2. Increment counter by 1 BBS 514 - Yapısal Programlama (Structured Programming) Refine step 3: 1. if PrimeFlag = true then 1.T. Display that N is prime else 1.F. Display that N is not prime

Factorial 42 Problem: Calculating N! Inputs: A positive integer N Output: N! Algorithm: 1. Read a positive integer N 2. Calculate NFactorial 3. Display NFactorial Refine step 2: 1. Set NFactorial to 1 2. Set counter to 2 3. while (counter <= N) do 3.1. Multiply NFactorial by counter 3.2. Increment counter by 1 BBS 514 - Yapısal Programlama (Structured Programming)

Types & Layout (of algorithm steps) 43 Sequence Decision 1. step 2. step 3. step 4. step Repetition Any step can be replaced with one of the other types n. if condition then nt step else nf step indent n. while condition do step n. do step while condition indent n. for so many times do step indent BBS 514 - Yapısal Programlama (Structured Programming)