DATA STRUCTURES. Part II. Değer ve Referans Veri Tipleri, Metotlar C# Programlama Dili Örnekleri



Benzer belgeler
ALGORTMA ve PROGRAMLAMA - II (C# Sürümü) DERS NOTLARI

Java Programlama Örnekleri. Doç. Dr. Aybars UĞUR

ALGORTMA ve PROGRAMLAMA - II (C# Sürümü) DERS NOTLARI

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

İNTERNET TABANLI PROGRAMLAMA

11- FONKSİYONLAR (FUNCTIONS)

DATA STRUCTURES. Lab II Metotlar, Diziler ve Hata Ayıklama. Doç. Dr. Aybars UĞUR

PROGRAMLAMA TEMELLERİ DERSİ ÖZETİ

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

GENETİK ALGORİTMA GEZGİN SATICI ÖDEVİ

HSancak Nesne Tabanlı Programlama I Ders Notları

DATA STRUCTURES. Lab II Metotlar, Diziler ve Hata Ayıklama. Prof. Dr. Aybars UĞUR

DATA STRUCTURES. Part I C# Programlama Dili Temelleri

Görsel Programlama 1

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

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

Lambda İfadeleri (Lambda Expressions)

C# Diziler Sınıf metotları Erişim (kullanım hakkı) deyimleri Üyelerin ömrü(geçerlilik süresi) Hata ayıklama (debug) aracı

C# Örnek Uygulamalar I

C#.Net & Linq (Language Integrated Query)

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

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

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

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

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

Java Programlama Dilinde Veri Tipleri. Yrd. Doç. Dr. Aybars UĞUR

KRİPTOANALİZ DERSİ FİNAL ÖDEVİ. PSO ile TRANSPOSITION CIPHER ÇÖZÜMÜ

İNTERNET TABANLI PROGRAMLAMA

C# Çalışma Örnekleri

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

HSancak Nesne Tabanlı Programlama I Ders Notları

D İ Z İ L E R A R R A Y S

Dr. Fatih AY Tel:

Fonksiyonlar (Altprogram)

İNTERNET TABANLI PROGRAMLAMA- 3.ders

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

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 11: Metot Kavramı

JAVADA METOTLAR. BMÜ-111 Algoritma ve Programlama. Yrd. Doç. Dr. İlhan AYDIN

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

C de Detaylı Üs Alma Programı. C# Dilinde Metot Tanımlama ve Yazdırma

BİL1001 Bilgisayar Bilimlerine Giriş 1

Pythonda değişkenlerin türlerini tanımlamaya gerek yoktur

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

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

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

MEKANİZMA TEKNİĞİ (7. Hafta)

Görsel Programlama (Visual Programming) 2.Hafta

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

Nesne Tabanlı Programlama-1

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

İç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

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

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

C++ Dersi: Nesne Tabanlı Programlama

Bilgisayar Programcılığı. Görsel Programlama-I. Öğr. Gör. Cansu AYVAZ GÜVEN

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta

PDF. C# Console Örnekleri.

Programlama Dilleri 3

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

Sınıflar ve Yapılar Arasındaki Farklılıklar. Değer ve Referans Türde Olan Aktarımlar

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals

Visual Studio 2010 veya 2013, Sharp Develop 3.2 programlarını kurabilirsiniz.

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

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

VISUAL C#.NET. CONSOLE EKRANINA YAZI YAZDIRILMASI (using System Kullanılarak Yapılan Uygulama) CONSOLE DERLENMESİ= Debug / Start Without Debugging

TEMPLATES. Binnur Kurt Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. C++ ile Nesneye Dayalı Programlama 1

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

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

C# Console Uygulamaları ifelse Yapıları 2

/*int sayi1, sayi2,toplam=0;

Oyuncu Sınıfı. /// <summary> /// Oyuncumuzun elindeki kart /// </summary> private ArrayList kart = new ArrayList(6);

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

Ders 8: Metotlar. barisgokce.com

public static int Toplam int x, int y

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

Nesneye Dayalı Programlama Laboratuvarı

Programlama Dilleri III 1

10/17/2007 Nesneye Yonelik Programlama 3.1

BMH-303 Nesneye Yönelik Programlama

disp VEYA fprintf KOMUTLARIYLA EKRANA MESAJ YAZDIRMA

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

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

YZM 2105 Nesneye Yönelik Programlama

Aritmetik Operatörler, Math Sınıfı ve Program Akış Komutları

NESNEYE YÖNELİK PROGRAMLAMA C++ a Giriş

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

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

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

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama

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

Nesne Tabanlı Programlama

Görsel Programlama (Visual Programming) 2.Hafta

Dr. Fatih AY Tel: fatihay@fatihay.net

MATLAB a GİRİŞ. Doç. Dr. Mehmet İTİK. Karadeniz Teknik Üniversitesi Makine Mühendisliği Bölümü

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

Adım Adım C-II. Eksik kalmış konular

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

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.

Transkript:

DATA STRUCTURES Part II Değer ve Referans Veri Tipleri, Metotlar C# Programlama Dili Örnekleri

Types Overview A C# program is a collection of types Classes, structs, enums, interfaces, delegates C# provides a set of predefined types E.g. int, byte, char, string, object, You can create your own types All data and code is defined within a type No global variables, no global functions

Types contain: Data members Fields, constants, arrays Events Function members Types Overview Methods, operators, constructors, destructors Properties, indexers Other types Classes, structs, enums, interfaces, delegates

Değer ve Referans Veri Tipleri

Types Overview Types can be instantiated and then used: call methods, get and set properties, etc. Can convert from one type to another Implicitly and explicitly Types are organized Namespaces, files, assemblies There are two categories of types: value and reference Types are arranged in a hierarchy

Types Unified Type System Value types Directly contain data Cannot be null Reference types Contain references to objects May be null Data Type Variable Name int i = 123; string s = "Hello world"; i s 123 "Hello world"

Value types Types Unified Type System Primitives int i; float x; Enums enum State Off, On Structs struct Point int x,y; Reference types Root object String string Classes class Foo: Bar, IFoo... Interfaces interface IFoo: IBar... Arrays string[] a = new string[10]; Delegates delegate void Empty();

Sabitler ve Değişkenler Sabitler, değişmeyen değer ve ifadelerin saklanması amacı ile kullanılırlar. const double PI = 3.142857143; Değişkenler, değerleri program içerisinde geçici olarak saklamak için kullanılırlar. [Değişken tipi] [Değişken adı] = [İlk Değer] Doç. Dr. Aybars UĞUR 8

METOTLAR

Böl ve Çöz (Divide and Conquer) Yazılım Mühendisliği deneyimleri, büyük programlar geliştirmenin en iyi yolunun küçük program parçaları yazıp onları birleştirmek olduğunu göstermiştir. Böl ve Çöz olarak bilinen bu yöntem aynı zamanda, hatalardan arındırmayı, programı gelişen şartlara göre büyütmeyi, değişiklikler yapmayı kolaylaştırmak ve anlaşılırlığı artırmak gibi birçok avantajı da beraberinde getirmektedir. C# ta programları oluşturan en temel bloklar, sınıf (class) ve metotlardır (method). Metotlar yazılım içinde yeniden kullanılarak kodu ve yazılım geliştirme süresini kısaltmaktadır. Doç. Dr. Aybars UĞUR 10

Metotlar (Method) Bir işlemin yapılması için bir veya daha fazla ifade kullanmak gerekir. Verilen bir matrisi ekrana yazdırmak gibi. İlgili kodu yazdir() adını verdiğimiz bir metot içine yazarak istediğimiz zaman, ismi ile çağırabiliriz.net Framework Class Library (FCL) kapsamında, System ad uzayı (http://msdn.microsoft.com/enus/library/system.aspx) matematik hesaplamalarını (Math sınıfı), string, karakter, girdi/çıktı işlemlerini ve diğerlerini yapmak için hazır sınıflar ve metotlar içermektedir. Ayrıca değişik alanlarda hazırlanmış veya kendimizin daha önceden hazırladığı metotları da kullanmak mümkündür. Doç. Dr. Aybars UĞUR 11

Çok Kullanılan Hazır Metotlar Bazı Math Sınıfı Metotları http://msdn.microsoft.com/en-us/library/system.math.aspx Abs(x) Mutlak değer Abs(-5.3) == 5.3 Ceiling(x) Floor(x) Cos(x) Sin(x),Tan(x) x i kendinden küçük olmayan en küçük tamsayıya yuvarlar x ten büyük olmayan en büyük tamsayıyı döndürür Radyan cinsinden trigonometrik fonksiyonlar Ceiling(-9.8) == -9.0 Floor(-9.8) == -10.0 Cos(0.0) == 1.0 Exp(x) e x Exp(1.0) yaklaşık 2.718.. Log(x) Logaritma Log(2.718) yaklaşık 1.0 Max(x,y), Min(x,y) Max ve Min fonksiyonları 2 sayıdan büyük/küçük olanı döndürür. Max(3.7,12.3) == 12.3 Min(3.7,12.3) == 3.7 Pow(x,y) Üs : x y Pow(9.0,.5) == 3.0 Sqrt Karekök Sqrt(900.0) == 30.0 12

METOTLARIN GENEL BİÇİMİ erişim dönüş_tipi isim(parametre listesi) metodun gövdesi Erişim : public, private gibi Dönüş_tipi : metodun döndürdüğü veri tipi. Değer döndürmüyorsa void. Parametre listesi :, lerle ayrılmış tip ve parametre ismi. 01.10.2012 Y. Doç. Dr. Aybars UĞUR 13

Değer Döndürmeyen Metotlar void metotları public void yazdir() Console.WriteLine(Merhaba); Çağrılması : yazdir(); 01.10.2012 Y. Doç. Dr. Aybars UĞUR 14

Değer Döndüren Metotlar public int topla(int a, int b) return (a+b); Çağrılması : int y=topla(5,6); Metodun iki de parametresi var. 01.10.2012 Y. Doç. Dr. Aybars UĞUR 15

Parametre, Argüman, Return Argüman : Metoda aktarılan değer Parametre : Argümanı kabul eden değişken Return : Metottan çıkmak veya geri dönmek 01.10.2012 Y. Doç. Dr. Aybars UĞUR 16

Metot Çağrımı 3 5 static void Main(string[] args) 1. int a=3, b=5; 2. int c = topla(a, b); 3. Console.WriteLine(c);.. 21. c = topla(a, b) + topla(1, 2);.. 8 static int topla(int a, int b) return a + b; 3 35. int[] dizi = 1,3,5 ; 36. yazdir(dizi); 37... static void yazdir(int[] dizi) foreach(int i in dizi) Console.WriteLine(i); Doç. Dr. Aybars UĞUR 17

Metot Örneği I Verilen bir string i n kere yazdıran metot static void Main(string[] args) String str = "test"; nyazdir(str, 10); Console.ReadKey(); public static void nyazdir(string str, int n) for (int i = 0; i < n; ++i) Console.WriteLine(str); Doç. Dr. Aybars UĞUR 18

Metot Örneği II Faktöryel hesaplayan metot static void Main(string[] args) int sayi = 5; Console.WriteLine(f(sayi)); public static String f(int n) int carpim = 1; if (n<0) return "Invalid Input For Function"; else for(int i=1; i<=n;++i) carpim*=i; return ""+carpim; Sayı tipinde veri döndüren faktöryel fonksiyonunu yazınız. Doç. Dr. Aybars UĞUR 19

Metoda Değer Veri Tipi Gönderme static void Main(string[] args) int sayi = 5; Console.WriteLine("Metottan Once " + sayi); degerarttir(sayi); Console.WriteLine("Metottan Sonra " + sayi); Metottan önce 5 Metottan sonra 5 public static void degerarttir(int deger) deger += 1; Doç. Dr. Aybars UĞUR 20

Metoda Nesne Gönderme class TamsayıSınıfı class Program public int sayi; static void Main(string[] args) TamsayıSınıfı d = new TamsayıSınıfı(); d.sayi = 5; Console.WriteLine("Metottan Once " + d.sayi); Metottan önce 5 degerarttir(d); Console.WriteLine("Metottan Sonra " + d.sayi); Metottan sonra 6 public static void degerarttir(tamsayısınıfı d) d.sayi += 1; Nesne elemanının değeri değişmektedir. Doç. Dr. Aybars UĞUR 21

Metoda Dizi Gönderme static void Main(string[] args) double[] dizi = 5,5,5,5 ; Console.Write("\nMetottan Once = "); for(int i=0; i<dizi.length; ++i) Console.Write(dizi[i]+" "); degerarttir(dizi,2); Console.Write("\nMetottan Sonra = "); for(int i=0; i<dizi.length; ++i) Console.Write(dizi[i]+" "); Metottan Once = 5 5 5 5 Metottan Sonra = 5 5 10 5 public static void degerarttir(double[] dizi, int indis) dizi[indis] += 5; Dizi elemanının değeri değişmektedir. Doç. Dr. Aybars UĞUR 22

12 Debugging and Handling Exceptions C# Programming: From Problem Analysis to Program Design 3 rd Edition C# Programming: From Problem Analysis to Program Design 23

Chapter Objectives Learn about exceptions, including how they are thrown and caught Gain an understanding of the different types of errors that are found in programs Look at debugging methods available in Visual Studio Discover how the Debugger can be used to find run-time errors Become aware of and use exception-handling techniques to include try catch finally clauses Explore the many exception classes and learn how to write and order multiple catch clauses C# Programming: From Problem Analysis to Program Design 24

Errors Visual Studio IDE reports errors as soon as it is able to detect a problem Syntax errors Language rule violation C# Programming: From Problem Analysis to Program Design 25

Errors (continued) Quick info Error message does not always state the correct problem Figure 11-1 Syntax error extraneous semicolon C# Programming: From Problem Analysis to Program Design 26

Run-Time Errors Just because your program reports no syntax errors does not necessarily mean it is running correctly One form of run-time error is a logic error Program runs but produces incorrect results May be off-by-one in a loop Sometimes users enter incorrect values Finding the problem can be challenging C# Programming: From Problem Analysis to Program Design 27

Debugging in C# Desk check Many IDEs have Debuggers Debuggers let you observe the run-time behavior You can break or halt execution You can step through the application You can evaluate variables You can set breakpoints Debug menu offers debugging options C# Programming: From Problem Analysis to Program Design 28

Debugging in C# (continued) Figure 12-2 Debug menu options C# Programming: From Problem Analysis to Program Design 29

Debugging in C# (continued) Select Start Debugging and number of options to run your program doubles Figure 12-3 Debug menu options during debugging mode C# Programming: From Problem Analysis to Program Design 30

Breakpoints Markers placed in an application, indicating the program should halt execution when it reaches that point Break mode Examine expressions Check intermediate results Use Debug menu to set Breakpoint F9 (shortcut) Toggles C# Programming: From Problem Analysis to Program Design 31

Breakpoints (continued) Red glyph placed on the breakpoint line Figure 12-4 Breakpoint set C# Programming: From Problem Analysis to Program Design 32

In Break mode, Debugger displays Locals window All variables and their values are shown Break Mode Figure 12-5 Locals window at the breakpoint C# Programming: From Problem Analysis to Program Design 33

Break Mode (continued) Figure 12-7 Breakpoint location C# Programming: From Problem Analysis to Program Design 34

Debugging in C# Continue Takes the program out of break mode and restores it to a run-time mode If more than one breakpoint set, Continue causes the program to execute from the halted line until it reaches the next breakpoint Stepping through code Execute code line by line and see the execution path Examine variable and expression values as they change C# Programming: From Problem Analysis to Program Design 35

Stepping Through Code Step Into (F11) Program halts at the first line of code inside the called method Step Over (F10) Executes the entire method called before it halts Step Out (Shift+F11) Causes the rest of the program statements in the method to be executed, and then control returns to the method that made the call C# Programming: From Problem Analysis to Program Design 36

Watches Can set Watch windows during debugging sessions Watch window lets you type in one or more variables or expressions to observe while the program is running Watch window differs from Locals window, which shows all variables currently in scope Quick Watch option on Debug menu lets you type a single variable or expression C# Programming: From Problem Analysis to Program Design 37

Watches (continued) Figure 12-8 QuickWatch window C# Programming: From Problem Analysis to Program Design 38

C# Programlama Dili Örnekleri

ÖRNEKLER BÖLÜMÜNÜN İÇERİĞİ 1. Değişken Tanımlama 2. Aritmetik İşlemler 3. String'ler 4. I/O İşlemleri 5. Metotlar 6. Diziler (Array) 7. Denetim Yapıları (if, for, while,...) 8. GUI... Doç. Dr. Aybars UĞUR 40

Örnek 1 Ekrana Yazdırma, Write ve WriteLine Ekrana Yazdırma Komutu using System; class Merhaba public static void Main(string[] args) Console.WriteLine("Merhaba"); Ekran Çıktısı : Merhaba Doç. Dr. Aybars UĞUR 41

Örnek 2 Klavyeden Okuma ve ReadLine Klavyeden Okuma Komutu ve string Klavyeden bir metin girilmesini bekler. Enter tuşuna basılınca ad değişkenine atanır ve program sonlanır. using System; class Okuma public static void Main(string[] args) string ad = Console.ReadLine(); Doç. Dr. Aybars UĞUR 42

Örnek 3 Veri Tipleri, Değişkenler, İşlemler using System; class Degiskenler public static void Main(string[] args) double d = 5.8; float f = 7.3f; int i = 5; float fkare = f * f; double karetoplam = d * d + f * f + i * i; Console.WriteLine(kareToplam); Ekran Çıktısı : 111,930002784729 Doç. Dr. Aybars UĞUR 43

Örnek 4 Veri Tiplerinde Dönüşüm using System; Tip Dönüşümleri class TipDonusum public static void Main(string[] args) double sayi = Double.Parse(Console.ReadLine()); Console.WriteLine("Double : " + Math.Sqrt(sayi) + " " + "Int : " + (int)math.sqrt(sayi)); Ekran Çıktısı : C:\ALG>Ornek4 9,1 Double : 3,01662062579967 Int : 3 Doç. Dr. Aybars UĞUR 44

Örnek 5 İki sayıyı toplayan metot ve kullanımı using System; class Topla public static void Main(string[] args) Console.WriteLine(topla(5, 6)); Ekran Çıktısı : 11 public static int topla(int sayi1, int sayi2) return sayi1 + sayi2; Doç. Dr. Aybars UĞUR 45

int dizi[] = 5,6,7,8 ; veya benzer şekilde verilen bir tamsayı dizisinin elemanlarının toplamını bulan metodu içeren C# programını yazınız. Ekran Çıktısı : 26 Örnek 6 Tamsayı, Döngü, Dizi, Metot using System; class DiziTopla public static void Main(string[] args) int[] dizi = 5,6,7,8 ; Console.WriteLine(topla(dizi)); public static int topla(int[] dizi) int toplam = 0; for(int i=0; i<dizi.length; ++i) toplam+=dizi[i]; return toplam; Doç. Dr. Aybars UĞUR 46

Örnek 7 string'ler // Verilen bir string dizisini, ters sırada (sondan başa doğru) // listeleyen C# programını yazınız. using System; class DiziListele public static void Main(string[] args) string[] strdizi = "Ali", "Zekiye", "Cemil", "Kemal" ; int son = strdizi.length - 1; for (int i = son; i >= 0; --i) Console.WriteLine(strDizi[i]); Ekran Çıktısı : Kemal Cemil Zekiye Ali Doç. Dr. Aybars UĞUR 47

using System; class DiziArama Örnek 8 1 (Main metodu) if, if else public static void Main(string[] args) string[] strdizi="ali", "Zekiye", "Cemil", "Kemal"; string kelime = "Cemil"; if (ara(strdizi,kelime)) Console.WriteLine(kelime+" Dizide Bulundu"); else Console.WriteLine(kelime+" Dizide Bulunamadı"); kelime = "Yılmaz"; if (ara(strdizi,kelime)) Console.WriteLine(kelime+" Dizide Bulundu"); else Verilen bir kişi adını bir dizide arayan ve bulunup bulunamadığını belirten C# metodunu yazınız. Aranan kişinin string aranan = "Ali" şeklinde verildiğini varsayabilirsiniz. Ekran Çıktısı: Cemil Dizide Bulundu Yılmaz Dizide Bulunamadı Console.WriteLine(kelime+" Dizide Bulunamadı"); Doç. Dr. Aybars UĞUR 48

Örnek 8 2 (ara metodu) if, if else public static bool ara(string[] dizi, string aranan) for(int i=0; i<dizi.length; ++i) if (aranan.equals(dizi[i])) return true; return false; Doç. Dr. Aybars UĞUR 49

Boş bir diziye arka arkaya eleman ekleyen metodu içeren C# programını yazınız. Örnek 9 Diziler using System; class DiziElemanEkle static string[] strdizi; static int elemansayac = 0; public static void elemanekle(string yenieleman) strdizi[elemansayac]=yenieleman; elemansayac++; public static void Main(string[] args) strdizi = new String[10]; public static void listele() for(int i=0; i<strdizi.length; ++i) Console.WriteLine(strDizi[i]); elemanekle("ali"); elemanekle("cemil"); listele(); Doç. Dr. Aybars UĞUR 50

Örnek 10 Matrisler // 2 x 4'lük bir matris oluşturan ve elemanlarını listeleyen C# programını yazınız. class MatrisListele public static void Main(string[] args) int[,] matris = 5,6,7,8, 9, 10, 11, 12 ; listele(matris); public static void listele(int[,] matris) for(int i=0; i<2; ++i) for(int j=0; j<4; ++j) Console.Write(matris[i,j]+" "); Console.WriteLine(); Ekran Çıktısı: 5 6 7 8 9 10 11 12 Doç. Dr. Aybars UĞUR 51

class Stringler Örnek 11 String ler public static void Main(string[] args) string s= "abcdefghijklmnopqrstuvwxyzabcde"; // e harfinin alfabedeki konumu Console.WriteLine(s.IndexOf('e')); // e harfinin 20. karakterden sonra konumu Console.WriteLine(s.IndexOf('e',20)); // 5. karakterden 10 karakterlik string parçası Console.WriteLine(s.Substring(5,10)); // String birleştirme Console.WriteLine(String.Concat(s,"ABCDEFG")); // String atama s = "Merhaba"; Console.WriteLine(s); char[] chararray= new char[7]; s.copyto(0,chararray,0,7); Console.WriteLine(charArray); Ekran Çıktısı: 4 30 fghijklmno abcdefghijklmnopqrstuv wxyzabcdeabcdefg Merhaba Merhaba s = s + new string(chararray); Doç. Dr. Aybars UĞUR 52

BASİT ALIŞTIRMALAR 1. Verilen bir ismin, bir string dizisindeki kaçıncı eleman olduğunu bulan programı yazınız. 2. Verilen bir ismin, bir string dizisinde kaç kere tekrarlandığını bulan programı yazınız. 3. Bir tamsayı dizisinde, belirtilen bir sayıdan küçük kaç tane sayı olduğunu bulan programı yazınız. 4. Sıralı bir tamsayı dizisinden, verilen bir sayıyı silen metodu yazınız. 5. Sıralı bir diziye, verilen bir sayıyı ekleyen metodu yazınız. 6. Parametre olarak gönderilen iki tane matrisi toplayarak üçüncü matrisi elde eden metodu yazınız. 7. Bir matrisin satırları toplamını bir diziye aktaran metodu yazınız. 8. "Random" sayılardan oluşturduğunuz 10 elemanlı bir dizinin çift numaralı elemanlarını bir matrisin ilk satırına, tek numaralı elemanlarını ikinci satırına yerleştiren C# metodunu yazınız. Doç. Dr. Aybars UĞUR 53

Right-click your project in Solution Explorer and select Add reference... and then find System.Windows.Forms and add it. Örnek 12 Mesaj Kutusu Kullanımı using System; using System.Windows.Forms; class MesajKutusu public static void Main(string[] args) string sayi1, sayi2; int tamsayi1, tamsayi2, toplam, carpim, fark, kalan; float bolum; Console.WriteLine("1.sayiyi veriniz"); sayi1 = Console.ReadLine(); Console.WriteLine("2.sayiyi veriniz"); sayi2 = Console.ReadLine(); tamsayi1 = Int32.Parse(sayi1); tamsayi2 = Int32.Parse(sayi2); toplam = tamsayi1 + tamsayi2; carpim = tamsayi1 * tamsayi2; fark = tamsayi1 - tamsayi2; bolum = tamsayi1 / tamsayi2; kalan = tamsayi1 % tamsayi2; MessageBox.Show("Toplam = " + toplam + "\ncarpim = " + carpim + "\nfark = " + fark + "\ntamsayi Bolum = " + bolum + "\nkalan = " + kalan + "\nbolum = " + (float)tamsayi1 / tamsayi2, "Sonuclar", MessageBoxButtons.OK, MessageBoxIcon.Information); 1.sayiyi veriniz 5 2.sayiyi veriniz 6 Doç. Dr. Aybars UĞUR 54

Notu giriniz (Exit : -1) 5 Notu giriniz (Exit : -1) 6 Notu giriniz (Exit : -1) -1 Örnek 13 While Döngüsü Kullanımı Not ortalamasını bulan C# programı (-1 değeri girilene kadar notları okur. using System; using System.Windows.Forms; class NotOrt public static void Main(string[] args) float ortalama; int sayac=0, notu, toplam=0; Console.WriteLine("Notu giriniz (Exit : -1)"); string str = Console.ReadLine(); notu = Int32.Parse(str); while(notu!=-1) toplam += notu; ++sayac; Console.WriteLine("Notu giriniz (Exit : -1)"); str = Console.ReadLine(); notu = Int32.Parse(str); ; string s; if (sayac==0) s = "Not girilmedi!"; else s = "Sinif ort. = "+(float)toplam/sayac; MessageBox.Show(s,"Sonuclar", MessageBoxButtons.OK,MessageBoxIcon.Information); Doç. Dr. Aybars UĞUR 55

Projeyi, Form Uygulaması olarak açınca otomatik gelen ad uzayları Örnek 14 Form Uygulaması using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; RichTextBox public int kare(int i) return i * i; namespace WindowsFormsApplication4 public partial class Form1 : Form public Form1() InitializeComponent(); private void button1_click(object sender, EventArgs e) string str = "n" + "\t" + "kare(n)\n"; for (int i = 0; i < 10; ++i) str += "" + i + "\t" + kare(i) + "\n"; richtextbox1.text = str; Button Doç. Dr. Aybars UĞUR 56

Örnek 15 Random Sayı Üretme ve Kullanma private void Form1_Load(object sender, EventArgs e) Random r = new Random(); int[] frekans; frekans = new int[6]; for (int tekrar = 0; tekrar < 1000; ++tekrar) frekans[(int)(r.next(6))]++; metalan.readonly = true; metalan.text = "Yuzey \t Frekans"; for (int i = 0; i < 6; ++i) metalan.appendtext("\n" + (i + 1) + "\t" + frekans[i]); Properties penceresinde richtextbox1 adı metalan Doç. Dr. Aybars UĞUR olarak değiştirilmeli (Name sahası) 57

Örnek 16 Cep Telefonu Form Uygulaması private void button1_click_1(object sender, EventArgs e) textbox1.text += "1"; Formun Text sahası Properties penceresinde Cep Telefonu yapılmalı private void button2_click(object sender, EventArgs e) textbox1.text += "2"; private void button3_click(object sender, EventArgs e) textbox1.text += "3"; Doç. Dr. Aybars UĞUR 58

Değişkenlerin Kapsama Alanı static void Main(string[] args) int x = 5; if (x > 5) int y = 12; y degiskeninin tanımlı oldugu bölge //... // y tanımlı degil // x tanımlı for (int i = 0; i < 5; ++i) Console.WriteLine(i); i = 10; // Hatalı! Doç. Dr. Aybars UĞUR 59