Giri. Program yazmaya balamadan önce

Benzer belgeler
C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

C#.NET ile PROGRAMLAMAYA GİRİŞ

giriş program yapısı değişkenler metotlar class kontrol deyimleri döngü deyimleri diziler struct try. catch files GUI

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

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

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

En kucuk calisabilir birime satetement denir Statements semicolon (;) ile sonlanir Yalniz basina ; null statement i ifade eder

Kontrol Yapıları (2)

/*int sayi1, sayi2,toplam=0;

YZM 2105 Nesneye Yönelik Programlama

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

OPERATÖRLER Alıştırmalar

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ Published by Juan Soulié

1 GİRİŞ 1 C# Hakkında Genel Bilgiler 1.Net Framework 1 CLR 2 CLR Ve CTS 2 Temel Sınıf Kütüphanesi 3 CIL 3 Algoritma Nedir? 4 Sözde Kod (Pseudocode) 5

2 VISUAL STUDIO 2012 GELİŞTİRME ORTAMI

(7) C#.NET PROGRAMLAMAYA GİRİŞ. M.İLKUÇAR - 1

Akış Konrol Mekanizmaları

KARAR YAPILARI. Acaba hangi yöne gitmeliyim? Oturduğun yerden kalkıp, kapıya varana kadar kaç kez karar verdiniz biliyor musunuz?

Bölüm 3 Yapısal Programlama

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

DATA STRUCTURES. Part I C# Programlama Dili Temelleri

8- PROGRAM YAPISAL KOMUTLARI ve. M.ilkucar MAKU MYO 1

işlemler bittikten sonra dosyaların kapatılması uygun olacaktır. Bunun için, fclose(fin);

Görsel Programlama 1

C# Çalışma Örnekleri

BİL-142 Bilgisayar Programlama II

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

11- FONKSİYONLAR (FUNCTIONS)

Programlama Dilleri 3

Program AkıĢ Kontrol Yapıları

Java da İşleçler, Ders #3 (4 Kasım 2009)

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

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

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

Nesne Tabanlı Programlama

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir:

2.2- DEĞİŞKENLER VE SABİTLER ÇALIŞMA YAPRAĞI

Programlama Dilleri 3

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

Nesne Tabanlı Programlama

Nesne Yönelimli Programlama

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

Java da Program Denetimi ve Operatörler

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

Sınav Dağılım & IMKB Endeks

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

HSancak Nesne Tabanlı Programlama I Ders Notları

Programlama Dilleri III 1

Nesne Tabanlı Programlama

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

C#(Sharp) Programlama Dili

Nesne Tabanlı Programlama

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

Java da Program Denetimi ve Operatörler. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 2 1

Algoritma ve Programlamaya Giriş II JAVA İLE PROGRAMLAMA. Muhammet BAYKARA

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

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 5. Bölüm Karar ve Çevrim Kontrol Yapıları

Karşılaştırma İşlemleri ve Koşullu İfadeler

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

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.

Ders - 7 while döngüsü

Microsoft Visual Studio. internetten temin edilebilir. yazılımının başlatılması

HSancak Nesne Tabanlı Programlama I Ders Notları

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

C# Console Uygulamaları ifelse Yapıları 2

Döngüler - Loops 4/13/2011. ENF-102 Jeoloji Sayaç kontrollü bir döngüdeki temel öğeler. Sayaç (counter) Kontrollü Döngüler.

Döngüler - Loops 4/9/2010. ENF-102 Jeoloji Giriş. Sayaç kontrollü bir döngüdeki temel öğeler. Sayaç (counter) Kontrollü Döngüler.

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

Karabük Üniversitesi, Mühendislik Fakültesi... WEB TEKNOLOJİLERİ

B02.6 Karar Verme, Eşitlik ve Bağıntı Operatörleri

You're browsing: Bilişim Teknolojileri, Programlama Temelleri, C#» C# (C Sharp),Genel,Programlama Temelleri» C# Değişken Tanımlama ve Veri Türleri

BOĞAZİÇİ ÜNİVERSİTESİ UNVAN DEĞİŞİKLİĞİ SINAVI PROGRAMCI

Yazılım Kodlama ve İ simlendirme Standartları v1.0

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

BBS 514 YAPISAL PROGRAMLAMA (STRUCTURED PROGRAMMING)

Lambda İfadeleri (Lambda Expressions)

7.1- C#.net Giriş Çıkış İşlemleri ve Visual Studio. M.İLKUÇAR - 1

7.1- Operatörler ve Giriş-Çıkış İşlemleri. M.İLKUÇAR - 1

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler

Programlama Dilleri 3

Veri Tipleri Aşağıdaki programdaki 5 hatayı bulunuz.

Bölüm 4 C de Program Kontrolü

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

1 C#.NET GELİŞTİRME ORTAMI 1 Visual Studio 2015 Arayüzü 4 Menu Window 6 Solution Explorer 7 Properties Window 8 Server Explorer 8 Toolbox 9

GÜZ YY. - MKT103 - GÖRSEL PROGRAMLAMA DERSİ - ARA SINAVI

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

BİL132 Bilgisayar Programlama II

HSancak Nesne Tabanlı Programlama I Ders Notları

Java dili, aşağıdakiler de dahil olmak üzere çok çeşitli denetleyici türlerine sahiptir.

VB de Veri Türleri 1

MAT213 Bilgisayar Programlama I

Öğr. Gör. Musa AYDIN Fatih Sultan Mehmet Vakıf Üniversitesi

Bölüm 2 - C ile Programlamaya Giriş

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

PROGRAMLAMA DİLLERİ I

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals. Module 2:Server Side Internet Programming

Operator Aşırı Yükleme (Operator OverLoading)

Görsel Programlama. Temel Veri Tipleri, Değişkenler, Operatörler, Akış Kontrolü, Sınıflar, Metotlar, Paketler ve JavaDoc

Transkript:

Kontrol Yapıları Giri Algoritmalar Pseudocode Kontrol Yapıları if Seçme Yapısı if/else Seçme Yapısı while Tekrar Yapısı Algoritma Düzenleme : Örnek Çalıma 1 (Sayaç Kontrollü Tekrar) Algoritma Düzenleme : Örnek Çalıma 2 (Sentinel Kontrollü Tekrar) Algoritma Düzenleme : Örnek Çalıma 3 (çiçe Kontrol Yapısı) Atama Operatörleri Artırma ve Azaltma Operatörleri Giri Program yazmaya balamadan önce Problemi anlayın Çözüm için bir yaklaım düünün Yapılandırılacak blokları anlayın 1

Prosedür Algoritmalar Bir programın gerçekletirecei ilemlerdir lemlerin gerçekletirilecei sıradır Algoritma olarakta adlandırılır Program kontrol Bilgisayarın doru bir ekilde ilemleri gerçekletirebilmesi için görevlerin sıralanmasıdır Pseudocode Pseudocode (Kaba kod) Yapay ve günlük dil kullanır Programcıya algoritmayı planlamasında yardımcı olur Gerçek bir programlama dili deildir C# koduna basit bir ekilde çevrilir 2

Kontrol Yapıları Program kontrolü Program bir deyimden (statement) bir sonraki deyime geçerek çalıır Sıralı çalıma (Sequential execution) Bir sonraki satırdan baka bir satırı çalıtırmak için kontrol yapıları kullanılır Seçme Yapısı (Selection structure) if ve if/else deyimleri goto deyimi Kesinlikle gerekmedikçe kullanılmamalıdır Programın okunmasında problemler oluturabilir Tekrar Yapısı (Repetition structure) while ve do/while döngüleri (loops) for ve foreach dögüleri Kontrol Yapıları Akı emaları (Flow carts) Programın haritalanması için kullanılır Sırayla gelecek olayları gösterir Dikdörtgen bir ilemi gösterir (Toplama, Yazdırma v.b.) Oval balama ve biti gösterimlerinde kullanılır Daireler balantılar için kullanılır Paralel kenar kararilemlerini gösterir Kontrol yapılarının birletirilmesi Yıın Birinden dierine geçer çiçe Birisini dierinin içine ekler 3

Kontrol Yapıları add grade total total = total + grade; add 1 to counter counter = counter + 1; Fig. 4.1 Flowcharting C# s sequence structure. Kontrol Yapıları abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach get goto if implicit in int interface internal is lock long namespace new null object operator out override params private protected public readonly ref return sbyte sealed set short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using value virtual void volatile while 4

if yapısı if Seçme Yapısı Programın seçme yapmasını salar Belirtilen arta göre ilem yapar bool türünde bir ifadeyi deerlendirir True: ilemi yapar False: ilemi atlar Noktalı virgül gerektirmez if Seçme Yapısı Grade >= 60 true print Passed false Fig. 4.3 Flowcharting a single-selection if structure. 5

if/else yapısı if/else seçme yapısı Birden fazla durumun test edilmesinde kullanılır ({) parantezi kullanılarak birden fazla satır ilem yapılabilir if/else seçme yapısı false Grade >= 60 true print Failed print Passed Fig. 4.4 Flowcharting a double-selection if/else structure. 6

art operatörü (?:) art operatörü (?:) C# ın tek üç parçalı operatörüdür if/else yapısına benzer Yazımı öyledir: (boolean value? if true : if false) while tekrar yapısı Tekrar yapısı Tekrarlı yapılan ilemleri ifade eder While deyimi doru (true) olduu sürece ilem tekrarlanır While deyimi yanlı (false) olduunda ilem biter Bir satır veya paranteze alınmı bir blou içerir artın mutlaka sonlandırılmı olması gerekir Sonlandırılmamı artlarda sonsuz dögüye girer 7

while tekrar yapısı Product <= 1000 true Product = 2 * product false Fig. 4.5 Flowcharting the while repetition structure. Algoritmanın düzenlenmesi: Örnek Çalıma 1 (Sayaç Kontrollü Tekrar) Sayaç (Counter) Kontrollü Tekrar Bir zamanda bir bilgi giriinde kullanılır Sayaç döngünün ne zaman biteceini belirlemek için kullanılır Sayaç bir belirlenen deere ulatıında ilemler bitirilir 8

Algoritmanın düzenlenmesi: Örnek Çalıma 1 (Sayaç Kontrollü Tekrar) total deikenini sıfır yap grade sayacını bir yap grade sayacı 10 a eit veya küçük ise Bir sonraki grade deerini gir grade deerini total deerine ekle grade sayacını bir artır total deerini 10 a bölerek average deerini bul average deerini ekrana yaz Fig. 4.6 Sınıf ortalaması probleminin sayaç kontrollü çözümü 1 // Fig. 4.7: Average1.cs 2 // Class average with counter-controlled repetition. 3 4 using System; 5 6 class Average1 7 { 8 static void Main( string[] args ) 9 { 10 int total, // sum of grades 11 gradecounter, // number of grades entered 12 gradevalue, // grade value 13 average; // average of all grades 14 15 // initialization phase 16 total = 0; // clear total 17 gradecounter = 1; // prepare to loop 18 19 // processing phase 20 while ( gradecounter <= 10 ) // loop 10 times 21 { 22 // prompt for input and read grade from user 23 Console.Write( "Enter integer grade: " ); 24 25 // read input and convert to integer 26 gradevalue = Int32.Parse( Console.ReadLine() ); 27 28 // add gradevalue to total 29 total = total + gradevalue; 30 31 // add 1 to gradecounter 32 gradecounter = gradecounter + 1; 33 } total deikenini 0 olarak balat (initiliaze) gradecounter deerini 1 olarak balat while döngüsü 10 defa çalıır ve 10 örencinin notunu alır 10 adet grade deeri toplanır grade deeri girii için kullanıcı beklenir Sayaca 1 eklenir ve 10 dan büyük olunca döngüden çıkılır 9

34 35 // termination phase 36 average = total / 10; // integer division 37 38 // display average of exam grades 39 Console.WriteLine( "\nclass average is {0}", average ); 40 41 } // end Main 42 43 } // end class Average1 Sonuç ekrana yazılır total deikenin deeri 10 ile bölünür ve ortalam deer bulunur Enter integer grade: 100 Enter integer grade: 88 Enter integer grade: 93 Enter integer grade: 55 Enter integer grade: 68 Enter integer grade: 77 Enter integer grade: 83 Enter integer grade: 95 Enter integer grade: 73 Enter integer grade: 62 Class average is 79 Algoritmanın düzenlenmesi: Örnek Çalıma 2 (Sentinel Kontrollü Tekrar) Sentinel kontrollü tekrar stenen sayıda tekrarlanır Sentinel deer döngüden çıkmayı salar 10

Algoritmanın düzenlenmesi: Örnek Çalıma 2 (Sentinel Kontrollü Tekrar) total deeri sıfır olarak balat sayacı sıfır olarak balat ilk grade deerini gir (sentinel deer olabilir) kullanıcı sentinel deer girmediyse grade deerini total deerine ekle grade sayacına bir ekle bir sonraki grade deerini gir (sentinel olabilir) If sayaç deeri sıfır deilse total deerini sayaca bölerek average deerini bul average deerini ekrana yaz Else average deeri girilmediini ekrana yaz Fig. 4.8 Sınıf ortalaması probleminin sentinel kontrollü döngüyle çözümü 1 // Fig. 4.9: Average2.cs 2 // Class average with sentinel-controlled repetition. 3 4 using System; 5 6 class Average2 7 { 8 static void Main( string[] args ) 9 { 10 int total, // sum of grades 11 gradecounter, // number of grades entered 12 gradevalue; // grade value 13 14 double average; // average of all grades 15 16 // initialization phase 17 total = 0; // clear total 18 gradecounter = 0; // prepare to loop 19 20 // processing phase 21 // prompt for input and convert to integer 22 Console.Write( "Enter Integer Grade, -1 to Quit: " ); 23 gradevalue = Int32.Parse( Console.ReadLine() ); 24 average deikeni double türünde tanımlandı gradecounter ve total deikenleri 0 olarak balatıldı gradevalue deikeni için kullanıcıdan bir deer alındı 11

25 // loop until a -1 is entered by user 26 while ( gradevalue!= -1 ) 27 { 28 // add gradevalue to total 29 total = total + gradevalue; 30 31 // add 1 to gradecounter 32 gradecounter = gradecounter + 1; 33 34 // prompt for input and read grade from user 35 // convert grade from string to integer 36 Console.Write( "Enter Integer Grade, -1 to Quit: " ); 37 gradevalue = Int32.Parse( Console.ReadLine() ); 38 39 } // end while 40 41 // termination phase 42 if ( gradecounter!= 0 ) 43 { 44 average = ( double ) total / gradecounter; 45 46 // display average of exam grades 47 Console.WriteLine( "\nclass average is {0}", average ); 48 } 49 else 50 { 51 Console.WriteLine( "\nno grades were entered" ); 52 } 53 54 } // end method Main 55 56 } // end class Average2 grade deeri girilmediyse kullanıcı bilgilendirilir gradevalue deikeni -1 deerinden farklı olduu sürece döngüyü çalıtırır Grade deerlerini toplar Örenci sayısını belirlemek için sayaca bir ekle Kullanıcının baka bir grade deeri girmesi beklenir Girilen grade deerinin 0 olmadıı kontrol edilir average deeri hesaplanır average deeri ekrana yazılır Enter Integer Grade, -1 to Quit: 97 Enter Integer Grade, -1 to Quit: 88 Enter Integer Grade, -1 to Quit: 72 Enter Integer Grade, -1 to Quit: -1 Class average is 85.6666666666667 12

Algoritmanın düzenlenmesi: Örnek Çalıma 2 (çiçe Kontrollü Tekrar) çiçe Kotrol Bir kontrol yapısı dierinin içerisinde yer alır Çoklu dögü (Multiple loops) if deyimleri ile döngüler Algoritmanın düzenlenmesi: Örnek Çalıma 2 (çiçe Kontrollü Tekrar) passes deikenini sıfır yap failures deikenini sıfır yap student deikenini bir yap Örenci sayacı 10 a eit veya küçükse Yeni sınav sonucu gir If örenci geçtiyse passes deikenine bir ekle Else failures deikenine bir ekle örenci sayacına bir ekle Geçen örenci sayısını ekrana yaz Kalan örenci sayısını ekrana yaz Sekiz örenciden fazla örenci geçtiyse Ekrana Good results yaz Fig. 4.10 Pseudocode ile sınav sonuçları programı 13

1 // Fig. 4.11: Analysis.cs 2 // Analysis of Examination Results. 3 4 using System; 5 6 class Analysis 7 { 8 static void Main( string[] args ) 9 { 10 int passes = 0, // number of passes 11 failures = 0, // number of failures 12 student = 1, // student counter 13 result; // one exam result 14 15 // process 10 students; counter-controlled loop 16 while ( student <= 10 ) 17 { 18 Console.Write( "Enter result (1=pass, 2=fail): " ); 19 result = Int32.Parse( Console.ReadLine() ); 20 21 if ( result == 1 ) 22 passes = passes + 1; 23 24 else 25 failures = failures + 1; 26 27 student = student + 1; 28 } 29 passes ve failures deikenlerini 0, örenci sayacını 1 yap While döngüsü 10 defa çalıacaktır çiçe if deyimiyle hangi sayaca ekleme yapılacaı belirlenir Kullanıcı 1 girerse passes deikenine bir ekle Kullanıcı 1 girerse failures deikenine bir ekle Toplam örenci sayısına bir ekle 30 // termination phase 31 Console.WriteLine(); 32 Console.WriteLine( "Passed: " + passes ); 33 Console.WriteLine( "Failed: " + failures ); 34 35 if ( passes > 8 ) 36 Console.WriteLine( Good results\n" ); 37 38 } // end of method Main 39 40 } // end of class Analysis Sonuçları ekrana yaz Toplam geçen sayısı 8 den büyükse kullanıcıya bildir Enter result (1=pass, 2=fail): 2 Passed: 9 Failed: 1 Good results 14

Enter result (1=pass, 2=fail): 2 Enter result (1=pass, 2=fail): 2 Enter result (1=pass, 2=fail): 2 Enter result (1=pass, 2=fail): 2 Enter result (1=pass, 2=fail): 2 Passed: 5 Failed: 5 Atama operatörleri Atama Operatörleri Kod boyutunu azaltabilir x += 2 ile x = x + 2 aynıdır ++, -=, *=, /=, and %= 15

Atama Operatörleri! int c = 3, d = 5, e = 4, f = 6, g = 12; += c += 7 c = c + 7 c 10 olur -= d -= 4 d = d - 4 d 1 olur *= e *= 5 e = e * 5 e 20 olur /= f /= 3 f = f / 3 f 2 olur %= g %= 9 g = g % 9 g 3 olur " Artırma ve Azaltma Operatörleri Artırma operatörü Deikene bir ekler x++ ile x = x + 1 aynıdır Azaltma operatörü Deikenden bir çıkarır y-- Pre-increment ve post-increment x++ veya x-- Önce ilem yapılır daha sonra deikene bir eklenir / çıkarılır ++x veya --x Önce deikene bir eklenir / çıkarılır daha sonra ilem yapılır 16

Artırma ve Azaltma Operatörleri ++ preincrement ++a Önce a deikeni 1 artırılır daha sonra yeni deeri kullanılır. ++ postincrement a++ Önce a deikeninin deeri kullanılır daha sonra bir artırılır. -- predecrement --b Önce b deikeni 1 azaltılır daha sonra yeni deeri kullanılır. -- postdecrement b-- Önce b deikeninin deeri kullanılır daha sonra bir azaltılır. "# 1 // Fig. 4.14: Increment.cs 2 // Preincrementing and postincrementing 3 4 using System; 5 6 class Increment 7 { 8 static void Main(string[] args) 9 { 10 int c; c deikeni tanımlanır 11 12 c = 5; 13 Console.WriteLine( c ); // print 5 14 Console.WriteLine( c++ ); // print 5 then postincrement 15 Console.WriteLine( c ); // print 6 16 17 Console.WriteLine(); // skip a line 18 19 c = 5; c ye 5 atandı 20 Console.WriteLine( c ); // print 5 21 Console.WriteLine( ++c ); // preincrement then print 6 22 Console.WriteLine( c ); // print 6 23 24 } // end of method Main 25 26 } // end of class Increment c deikenine 5 atandı Ekrana c (6) olarak yazılır Ekrana c (6) olarak yazıldı Ekrana c (5) olarak yazıldı 1 eklendi ve ekrana c (6) olarak yazıldı 5 5 6 5 6 6 17