Metodlar. C# İçindeki Program Modülleri

Benzer belgeler
İNTERNET TABANLI PROGRAMLAMA

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

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

BİL-142 Bilgisayar Programlama II

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

Diziler (Arrays) Giriş. Veri Yapıları (Data structures)

BMH-303 Nesneye Yönelik Programlama

11- FONKSİYONLAR (FUNCTIONS)

10/17/2007 Nesneye Yonelik Programlama 3.1

Kontrol Yapıları (2)

BMT 101 Algoritma ve Programlama I 11. Hafta. Yük. Müh. Köksal Gündoğdu 1

Nesne Yönelimli Programlama

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

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

Java da, tüm değişkenlerin kullanılmadan önce tanımlanması edilmesi gerekir. Bir değişken tanımlamanın temel gösterimi bu şekildedir:

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

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

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

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

public static int Toplam int x, int y

Fonksiyonlar (Altprogram)

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

BİL-142 Bilgisayar Programlama II

ENF102 TEMEL BİLGİSAYAR BİLİMLERİ VE C/ C++ PROGRAMLAMA DİLİ. Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

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

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır.

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.

ÜNİTE İÇİNDEKİLER HEDEFLER MATEMATİKSEL METOTLAR. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA. (Math Sınıfı ve Metotları)

PROGRAMLAMAYA GİRİŞ DERS 2

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

Ders 8: Metotlar. barisgokce.com

HSancak Nesne Tabanlı Programlama I Ders Notları

Imports ifadesi, program satırlarının en üstüne (Public Class satırından önce) yazılmalıdır. Aksi halde hata mesajı ile karşılaşılır.

Görsel Programlama 1

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

Hafta 13 Fonksiyonlar

İNTERNET TABANLI PROGRAMLAMA

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI)

HSancak Nesne Tabanlı Programlama I Ders Notları

7.1- C#.net Giriş Çıkış İşlemleri ve Visual Studio. M.İLKUÇAR - 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

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.

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

Bilgisayar programlama III Fonksiyonlar

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

2 VISUAL STUDIO 2012 GELİŞTİRME ORTAMI

«BM364» Veritabanı Uygulamaları

Bölüm 5 - Fonksiyonlar

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

Sunum İçeriği. Programlamaya Giriş

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

BİLG Dr. Mustafa T. Babagil 1

C#.Net & Linq (Language Integrated Query)

Nesne Tabanlı Programlama

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

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

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

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

Nesne Tabanlı Programlama

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

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

Nesne Tabanlı Programlama

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

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

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

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

PROSEDÜRLER ve FO F NKS K İY İ O Y NLA L R A

Lambda İfadeleri (Lambda Expressions)

Dr. Fatih AY Tel:

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

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58;

NESNEYE YÖNELİK PROGRAMLAMA

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

BMH-303 Nesneye Yönelik Programlama

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

Ders 5: Temel Kütüphane Fonksiyonlar

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

BÖLÜM 1b: C++ PROGRAMLAMANIN YAPISI. C++, hard diskte TC, BIN, INCLUDE, LIB gibi alt dizinlere yüklenir.

HSancak Nesne Tabanlı Programlama I Ders Notları

/*int sayi1, sayi2,toplam=0;

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

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

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

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.

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

Spring Framework Eğitimi

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

Nesneye Dayalı Programlama

Programlama Dilleri III 1

İsimler ve Kapsam. 24 Şubat Programlama Dilleri - Pamukkale Üniversitesi 1

Programlama Dilleri 3

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

C Programlama Dilininin Basit Yapıları

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

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

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

Giri. Program yazmaya balamadan önce

İNTERNET TABANLI PROGRAMLAMA- 3.ders

ANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF

Transkript:

Metodlar C# İçinde Program Modülleri Math Sınıfı Metodları Metodlar Metod Tanımlamaları C# Alan Adları Parametre Gönderme : Call-by-Value ve Call-by-Reference Tanımlayıcıların Süreleri Rastgele Sayı Üretme Scope Kuralları Method Overloading Modüller C# İçindeki Program Modülleri Sınıf Metod Sınıfların veya Metodların sadece ne yaptıklarını bilerek ve nasıl çalıştığını bilmeye gerek kalmadan kullanmak 1

C# İçindeki Program Modülleri boss worker1 worker2 worker3 worker4 worker5 Fig. 6.1 Hiyerarşik olarak boss metodu ile worker metodu arasındaki ilişki. Math sınıfı Math Sınıfı Metodları Kullanıcıların matematiksel hesaplamaları yapmalarını sağlar Metoldarın kullanımı ClassName.MethodName( argument1, arument2, ) Sabitler (Constants) Math.PI = 3.1415926535 Math.E = 2.7182818285 2

Metod Tanım Örnek Abs( x ) Mutlak değer x Abs( 23.7 ) = 23.7 Abs( 0 ) = 0 Abs( -23.7 ) = 23.7 Ceiling( x ) rounds x değerini x den büyük en küçük tamsayıya yuvarlar Ceiling( 9.2 ) = 10.0 Ceiling( -9.8 ) = -9.0 Cos( x ) Kosinüs (x radyan) Cos( 0.0 ) = 1.0 Exp( x ) exponential Exp( 1.0 ) yaklaşık 2.7182818 Exp( 2.0 ) yaklaşık 7.389056098 Floor( x ) rounds x to the largest integer not greater than x Floor( 9.2 ) = 9.0 Floor( -9.8 ) = -10.0 Log( x ) e tabanında doğal logaritma Log(2.7182818) yaklaşık 1.0 Log(7.3890560) yaklaşık 2.0 Max( x, y ) Min( x, y ) Pow( x, y ) x ve y den büyük olana eşittir (float, int ve long değer alabilir) x ve y den küçük olana eşittir (float, int ve long değer alabilir) x değerinin y dereceden üssünü alır Max( 2.3, 12.7 ) = 12.7 Max( -2.3, -12.7 ) = -2.3 Min( 2.3, 12.7 ) = 2.3 Min( -2.3, -12.7 ) = -12.7 Pow( 2.0, 7.0 ) = 128.0 Pow( 9.0,.5 ) = 3.0 Sin( x ) sinüs (x radyan) Sin( 0.0 ) = 0.0 Sqrt( x ) Karekök x Sqrt( 900.0 ) = 30.0 Sqrt( 9.0 ) = 3.0 Tan( x ) Tanjant (x radyan) Tan( 0.0 ) = 0.0 Fig. 6.2 Math sınıfının yaygın kullanılan meodları Metodlar Değişkenler Metod içinde tanımlananlar = local variables Metod dışında tanımlananlar = global variables 3

Özel metod yazmak Metod Tanımlamaları Header ReturnType Properties Name( Param1, Param2, ) Body Metodun yaptığı işleri içeren kod bulunur Gerekliyse metodun geri döndürdüğü değer bulunur Programın herhangi bir yerinde çağrılabilir Gerekliyse parametre gönderilebilir Bütün metodların bağlı oldukları sınıf içerisinde yazılması zorunludur 1 // Fig. 6.3: SquareInt.cs 2 // A programmer-defined Square method. 3 4 using System; // includes basic data types 5 using System.Drawing; // for graphics capabilities 6 using System.Collections; // for complex data structures 7 using System.ComponentModel; class SquareInteger // controls başlangıcı component behavior 8 using System.Windows.Forms; System.Windows.Forms.Form // for GUI development 9 using System.Data; // for reading outside data 10 11 // form used to display results of squaring 10 numbers 12 public class SquareIntegers : System.Windows.Forms.Form 13 { 14 private System.ComponentModel.Container components = null; 15 16 // label containing results 17 private System.Windows.Forms.Label outputlabel; 18 19 public SquareIntegers() SquareIntegers metodunun başlangıcı 20 { 21 // Required for Windows Form Designer support 22 InitializeComponent(); 23 24 int result; // store result of call to method Square 25 Metod değişkeni. Sadece metod içinde kullanılabilir. 4

26 // loop 10 times 27 for ( int counter = 1; counter <= 10; counter++ ) 28 { SquareIntegers 29 // calculate square of counter and store in result 30 result = Square( counter ); metodunun body kısmı 31 32 // append result to output string 33 outputlabel.text += "The square of " + counter + 34 " is " + result + "\n"; 35 } Square adlı metodun çağrılışı. counter 36 37 } // end SquareIntegers değişkeni matoda gönderiliyor ve 38 dönen sonuç result değişkenine 39 // Clean up any resources being used. aktarılıyor 40 protected override void Dispose( bool disposing ) 41 { 42 // Visual Studio.NET-generated code for method Dispose 43 } 44 45 // Required method for Designer support 46 private void InitializeComponent() 47 { 48 // Visual Studio.NET generated code 49 // for method InitializeComponent 50 } 51 52 // The main entry point for the application. 53 [STAThread] 54 static void Main() 55 { 56 Application.Run( new SquareIntegers() ); 57 } 58 Square metodu. Bir integer alır ve 59 // Square method definition 60 int Square( int y ) bir integer döndürür 61 { 62 return y * y; // return square of y 63 64 } // end method Square 65 66 } // end of class SquareIntegers Metod gelen değişkeni kendisiyle çarpıp geri gönderir 5

1 // Fig. 6.4: MaximumValue.cs 2 // Finding the maximum of three doubles. 3 4 using System; 5 6 class MaximumValue 7 { 8 // main entry point for application 9 static void Main( string[] args ) 10 { 11 // obtain user input and convert to double 12 Console.Write( "Enter first floating-point value: " ); 13 double number1 = Double.Parse( Console.ReadLine() ); 14 15 Console.Write( "Enter second floating-point value: " ); 16 double number2 = Double.Parse( Console.ReadLine() ); 17 18 Console.Write( "Enter third floating-point value: " ); 19 double number3 = Double.Parse( Console.ReadLine() ); 20 21 // call method Maximum to determine largest value 22 double max = Maximum( number1, number2, number3 ); 23 24 // display maximum value 25 Console.WriteLine("\nmaximum is: " + max ); 26 27 } // end method Main Kullanıcı 3 değer girer Girilen 3 değer Maximum matoduna gönderilir 28 29 // Maximum method uses method Math.Max to help determine 30 // the maximum value 31 static double Maximum( double x, double y, double z ) 32 { 33 return Math.Max( x, Math.Max( y, z ) ); 34 35 } // end method Maximum 36 37 } // end class MaximumValue Maximum metodu 3 değer alır ve en büyük olan 1 değeri gönderir Enter first floating-point value: 37.3 Enter second floating-point value: 99.32 Enter third floating-point value: 27.1928 maximum is: 99.32 6

C# Alan Adları Alan Adı Bir grup sınıf ve sınıflara ait metodlardan oluşur Alan adları.dll dosyalarda saklıdır Bir program içinde using anahtar kelimesiyle kullanılır C# Alan Adları Alan Adı System System.Data System.Drawing System.IO System.Threading Tanımlama Temel sınıfları ve veri tipleri bulundurur (int, double, char, v.b.). Veritabanı erişimi ve işlemleri için kullanılan ADO.NET sınıflarını içerir Çizim ve grafik işlemleri için gerekli sınıfları içerir Veri giriş ve çıkışı için gerekli sınıfları bulundurur Multithread sınıflarını bulundurur System.Windows.Forms Grafik kullanıcı arayüzü için gerekli sınıfları içerir System.Xml XML verilerini işlemek için kullanılan sınıfları içerir Fig. 6.6 Framework sınıf kütüphanelerindeki alan adları 7

Parametre Gönderme: Call-By-Value vs. Call-By-Reference Value ile gönderme Nesnenin bir kopyası metoda gönderilir Geri bir value döner Reference ile gönderme Gerçek referans noktası gönderilir Sonuçta değişkenin bütün program içindeki değeri değiştirilir Geri bir referans döner ref anahtar kelimesi kullanılır out çağrılan metodun gönderilen değişkene başlangıç değerini vereceğini gösterir 1 // Fig. 6.8: RefOutTest.cs 2 // Demonstrating ref and out parameters. 3 using System; 5 using System.Windows.Forms; 6 7 class RefOutTest 8 { 9 // x is passed as a ref int (original value will change) 10 static void SquareRef( ref int x ) 11 { 12 x = x * x; 13 } 14 15 // original value can be changed and initialized 16 static void SquareOut( out int x ) 17 { 18 x = 6; 19 x = x * x; 20 } 21 22 // x is passed by value (original value not changed) 23 static void Square( int x ) 24 { 25 x = x * x; 26 } 27 29 static void Main( string[] args ) 30 { 31 // create a new integer value, set it to 5 32 int y = 5; 33 int z; // declare z, but do not initialize it 8

34 // display original values of y and z 35 string output1 = "The value of y begins as " 36 + y + ", z begins uninitialized.\n\n\n"; 37 38 // values of y and z are passed by value 39 RefOutTest.SquareRef( ref y ); 40 RefOutTest.SquareOut( out z ); 41 42 // display values of y and z after modified by methods 43 // SquareRef and SquareOut 44 string output2 = "After calling SquareRef with y as an " + 45 "argument and SquareOut with z as an argument,\n" + 46 "the values of y and z are:\n\n" + 47 "y: " + y + "\nz: " + z + "\n\n\n"; 48 49 // values of y and z are passed by value 50 RefOutTest.Square( y ); 51 RefOutTest.Square( z ); 52 53 // values of y and z will be same as before because Square 54 // did not modify variables directly 55 string output3 = "After calling Square on both x and y, " + 56 "the values of y and z are:\n\n" + 57 "y: " + y + "\nz: " + z + "\n\n"; 58 59 MessageBox.Show( output1 + output2 + output3, 60 "Using ref and out Parameters", MessageBoxButtons.OK, 61 MessageBoxIcon.Information ); 62 63 } // end method Main 64 65 } // end class RefOutTest 9

Random sınıfı Rastgele Sayı Üretme System alan adı içinde Gerçek random Günün kesin zamanını kullanan bir fonksiyonla oluşturulur randomobject.next() Int32.MaxValue aralığında bir rastgele sayı üretir Int32.MaxValue = 2,147,483,647 randomobject.next( x ) 0 ile x aralığında bir sayı üretir randomobject.next( x, y ) x ile y arasında bir sayı üretir 1 // Fig. 6.9: RandomInt.cs 2 // Random integers. 3 4 using System; 5 using System.Windows.Forms; 6 7 // calculates and displays 20 random integers 8 class RandomInt 9 { Yeni bir Random nesnesi üretir 10 // main entry point for application 11 static void Main( string[] args ) 12 { 13 int value; 14 string output = ""; 15 16 Random randominteger = new Random(); 17 1 ile 7 arasında 7 hariç bir rastgele 18 // loop 20 times sayı üretir 19 for ( int i = 1; i <= 20; i++ ) 20 { 21 // pick random integer between 1 and 6 22 value = randominteger.next( 1, 7 ); 23 output += value + " "; // append value to output 24 25 // if counter divisible by 5, append newline 26 if ( i % 5 == 0 ) 27 output += "\n"; 28 29 } // end for structure 30 Her satırda 5 karakter yazılır 10

31 MessageBox.Show( output, "20 Random Numbers from 1 to 6", 32 MessageBoxButtons.OK, MessageBoxIcon.Information ); 33 34 } // end Main 35 36 } // end class RandomInt Tanımlayıcıların süreleri Süre (Duration) Tanımlayıcının hafızada kalma süresi Scope Program içindeki bir nesnenin referans edildiği kısımdır Local variables Tanımlanırken oluşturulur Tanımlandığı bloktan çıkarken hafızadan atılır 11

Scope Kuralları Scope Programın bir değişkene erişim yapılabilen kısmıdır Class scope class oluşturulduktan sonra başlar class sonlanana kadar (}) devam eder class içindeki tüm metodlar için global Block scope Blok oluşturulduktan sonra başlar Blok sonlanana (}) kadar devam eder Sadece tanımlandığı blok içinde kullanılır Blok içinde aynı isimle ikinci bir değişken tanımlanamaz 1 // Fig. 6.13: Scoping.cs 2 // A Scoping example. 4 using System; 5 using System.Drawing; 6 using System.Collections; 7 using System.ComponentModel; 8 using System.Windows.Forms; 9 using System.Data; 10 11 public class Scoping : System.Windows.Forms.Form 12 { 13 private System.ComponentModel.Container components = null; 14 private System.Windows.Forms.Label outputlabel; 15 16 public int x = 1; 17 18 public Scoping() 19 { 20 InitializeComponent(); 21 22 int x = 5; // variable local to constructor 23 24 outputlabel.text = outputlabel.text + 25 "local x in method Scoping is " + x; 27 MethodA(); // MethodA has automatic local x; 28 MethodB(); // MethodB uses instance variable x 29 MethodA(); // MethodA creates new automatic local x 30 MethodB(); // instance variable x retains its value 31 32 outputlabel.text = outputlabel.text + 33 "\n\nlocal x in method Scoping is " + x; 34 } 12

36 // Visual Studio.NET-generated code 37 38 public void MethodA() 39 { 40 int x = 25; // initialized each time a is called 41 42 outputlabel.text = outputlabel.text + 43 "\n\nlocal x in MethodA is " + x + 44 " after entering MethodA"; 45 ++x; 46 outputlabel.text = outputlabel.text + 47 "\nlocal x in MethodA is " + x + 48 " before exiting MethodA"; 49 } 51 public void MethodB() 52 { 53 outputlabel.text = outputlabel.text + 54 "\n\ninstance variable x is " + x + 55 " on entering MethodB"; 56 x *= 10; 57 outputlabel.text = outputlabel.text + 58 "\ninstance varable x is " + x + 59 " on exiting MethodB"; 60 } 62 // main entry point for application 63 [STAThread] 64 static void Main() 65 { 66 Application.Run( new Scoping() ); 67 } 68 69 } // end of class Scoping 13

Method Overloading Aynı isme sahip olan metodlar Aynı isme sahiptirler ancak farklı parametreler alırlar Aldıkları değişkenler farklı olmak zorundadır Genellikle aynı işi farklı veri tipleriyle yaparlar Farklı veri tipleri kullanırlar 1 // Fig. 6.18: MethodOverload.cs 2 // Using overloaded methods. 3 4 using System; 5 using System.Drawing; 6 using System.Collections; 7 using System.ComponentModel; 8 using System.Windows.Forms; 9 using System.Data; 10 11 public class MethodOverload : System.Windows.Forms.Form 12 { 13 private System.ComponentModel.Container components = null; 14 15 private System.Windows.Forms.Label outputlabel; 16 17 public MethodOverload() 18 { 19 InitializeComponent(); 20 21 // call both versions of Square 22 outputlabel.text = 23 "The square of integer 7 is " + Square( 7 ) + 24 "\nthe square of double 7.5 is " + Square ( 7.5 ); 25 } 26 27 // Visual Studio.NET-generated code 28 14

29 // first version, takes one integer 30 public int Square ( int x ) 31 { 32 return x * x; 33 } 34 35 // second version, takes one double 36 public double Square ( double y ) 37 { 38 return y * y; 39 } 40 41 [STAThread] 42 static void Main() 43 { 44 Application.Run( new MethodOverload() ); 45 } 46 47 } // end of class MethodOverload 1 // Fig. 6.19: MethodOverload2.cs 2 // Overloaded methods with identical signatures and 3 // different return types. 5 using System; 7 class MethodOverload2 8 { 9 public static int Square( double x ) 10 { integer döndürür 11 return x * x; 12 } 14 // second Square method takes same number, 15 // order and type of arguments, error 16 public static double Square( double y ) 17 { 18 return y * y; 19 } double döndürür 21 // main entry point for application 22 static void Main() 23 { 24 int squarevalue = 2; 25 Square( squarevalue ); 26 } 28 } // end of class MethodOverload2 Giden değerle hangisinin çalışacağı bilinemez ve hata verir 15

Haftalık Ödev Bir otoparkta otomobil için 2YTL, kamyon için 5YTL ve otobüs için 8YTL ücret alınmaktadır. Kar oranları otomobil için %25, kamyon için %30 ve otobüs için %35 olarak belirlenmiştir. Programın tüm işlemlerine aşağıdaki gibi bir ana menü ile ulaşılmaktadır. Örneğin araç girişi için 1, Toplam araç sayıları için 2 gibi seçimlerle ilgili işlemler yapılmaktadır. Araç girişinde otomobil için O, kamyon için K ve otobüs için B girilmektedir. Araç girişinden çıkmak için C harfi girilmektedir. Her araç girildiğinde yeni araç türü girilmesi istenmekte ve çıkış için C girilmesi gerektiği kullanıcıya bildirilmektedir. C ile çıkıldığında ekrana ana menü gelecektir. Aşağıdaki tüm işlemleri yapan bir program yapınız. 1-Araç Girişi 2-Toplam otomobil, kamyon ve otobüs sayıları 3-Toplam otomobil, kamyon ve otobüs ciroları 4-Otomobil, kamyon ve otobüs cirolarını yüzdelik dağılımları 5-Toplam otomobil, kamyon ve otobüs kar miktarları 6-Otomobil, kamyon ve otobüs kar miktarlarını yüdelik dağılımları 7-Toplam araç sayısı 8-Toplam gelir miktarı 9-Toplam kar miktarı 10-Programdan çıkış Lütfen Seçiminizi Giriniz (1..10) Not: Program menü geçişlerinde Console ekranını temizleyecek ve istenen işlem yapıldıktan sonra ana menüye geçiş için kullanıcıdan bir tuşa basması istenecek. Ana menüye geçişte ekran temizlenip ana menü ekrana getirilecektir. Ekran temizlemek için Web Sayfamda Downlods bölümünde bulunan ClearConsole sınıfını programınızın alan adı içerisine yeni bir class olarak eklemeniz ve bir değişkenle kullanmanız gerekmektedir. 16