BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI 4. Hafta Ön bilgi: 1. Özyineli fonksiyon tanımlanabilmeli. Dizilerin fonksiyon parametresi veya geri dönüş değeri olarak kullanımı bilinmeli. Klavyeden girilen sayı n olmak üzere [1..n] aralığındaki sayıların toplamı iki farklı fonksiyon ile hesaplanmıştır. İnceleyiniz. static void Main() { Console.Write("Type a positif number: "); int value = Convert.ToInt32(Console.ReadLine()); int sumRegular = SumRegular(value); int sumRecursive = SumRecursive(value); } static int SumRecursive(int val) { if (val == 0) return 0; return val + SumRecursive(val - 1); } static int SumRegular(int val) { int sum = 0; for (int i = 1; i <= val; i++) { sum += i; } return sum; } 2. Aşağıda dizilerin fonksiyona parametre olarak gönderilmesi ve fonksiyonların geri dönüş değeri olarak atanmasına yönelik bir örnek bulunmaktadır. İnceleyiniz. static void Main() { int[,] myArray = GetArrayItems(2, 3); PrintArrayItems(myArray); } static int[,] GetArrayItems(int row, int column) { int[,] myArray = new int[row, column]; for (int i = 0; i < row; i++) { for (int j = 0; j < column; j++) { myArray[i, j] = Convert.ToInt32(Console.ReadLine()); } } return myArray; } BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI 4. Hafta static void PrintArrayItems(int[,] arr) { int row = arr.GetLength(0); int column = arr.GetLength(1); for (int i = 0; i < row; i++) { for (int j = 0; j < column; j++) { Console.WriteLine(i.ToString() + ":" + j.ToString() + " = " + arr[i, j].ToString()); } } } 3. Klavyeden girilen 𝑠𝑡𝑟𝑖𝑛𝑔 tipinde bir değeri klavyeden girilen bir karaktere göre ayrıştıran program kodunu yazınız. 𝑆𝑝𝑙𝑖𝑡 ismindeki hazır fonksiyonu kullanmayınız. Beklenen Fonksiyonlar ve Main Fonksiyon static string[] Split(string text, char splitter) static void PrintArrayItems(string[] arr) static void Main(string[] args) { Console.Write("Type a text: "); string tex = Console.ReadLine(); Console.Write("\nType a character as splitter: "); char splitter = Convert.ToChar(Console.ReadLine()); string[] words = Split(tex, splitter); PrintArrayItems(words); } Beklenen ekran çıktısı (boşluk karakterine göre ayrıştırılmış metin) 4. Fibonacci serisini özyineli fonksiyonla uygulayınız. Oluşan seriyi 𝑖𝑛𝑡𝑒𝑔𝑒𝑟 bir diziye atıp ekrana yazdırınız. 𝐹𝑛 = 𝐹𝑛−1 + 𝐹𝑛−2 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, … BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI 4. Hafta 5. Klavyeden girilen x ve y değerleri için aşağıdaki f(x,y) fonksiyonu sonucunu veren program kodunu fonksiyon overload işlemi ile yazınız. Fonksiyonlardan dönen değerler ve parametre türlerine aşağıda yer verilmiştir. (𝑖𝑛𝑡𝑒𝑔𝑒𝑟)(𝑥 + 𝑦 ) → 𝐸ğ𝑒𝑟 𝑥 𝑣𝑒 𝑦 𝑖𝑛𝑡𝑒𝑔𝑒𝑟 𝑑𝑒ğ𝑖ş𝑘𝑒𝑛 𝑖𝑠𝑒 𝑓(𝑥, 𝑦, 𝑧) = {(𝑑𝑜𝑢𝑏𝑙𝑒) |𝑥 − 𝑦| → 𝐸ğ𝑒𝑟 𝑥 𝑖𝑛𝑡𝑒𝑔𝑒𝑟 𝑣𝑒 𝑦 𝑑𝑜𝑢𝑏𝑙𝑒 𝑑𝑒ğ𝑖ş𝑘𝑒𝑛 𝑖𝑠𝑒 } (𝑖𝑛𝑡𝑒𝑔𝑒𝑟)(𝑥/𝑦) → 𝐸ğ𝑒𝑟 𝑥 𝑣𝑒 𝑦 𝑑𝑜𝑢𝑏𝑙𝑒 𝑑𝑒ğ𝑖ş𝑘𝑒𝑛 𝑖𝑠𝑒 Overload: Aynı imzaya sahip ancak aldıkları parametrelerin türleri ve/veya geri döndürdüğü değerin tipi farklılık gösteren fonksiyonlardır. Aşağıdaki kod bloğunda 𝑓 fonksiyonu üç kere overload edilmiştir. static int f(int x, int y) { } static double f(double x, int y) { } static double f(double x, double y) { } 6. Koordinat düzleminde 𝐴 noktası 𝐴(𝑥, 𝑦) olarak ifade edilmektedir. Kullanıcı tarafından girilen n adet noktanın orijine olan uzaklıklarını hesaplayıp orijine en yakın olan noktadan en uzak olana sıralama yapıp, noktaları bu sıra ile ekrana yazdıran program kodunu C# programlama dili ile yazınız. K ve L iki nokta olmak üzere bu iki nokta arasındaki uzaklık formülü aşağıdadır. 2 |𝐾𝐿| = √(𝑥𝑘 − 𝑥𝑙 )2 + (𝑦𝑘 − 𝑦𝑙 )2 7. Klavyeden girilen bir tamsayının karesini hesaplayan, aynı imzaya sahip fakat parametre tipi sırasıyla integer, double ve string olan 3 farklı fonksiyonu yazarak sonuçları ekranda gösteriniz. 8. Klavyeden girilen bir sayı için 1'den o sayıya kadarki sayıların üstlerini alarak toplamlarını veren konsol uygulamasını özyineli bir şekilde yazınız. 9. Taban alanı ve yükseklik bilgisi klavyeden girilen bir silindirin hacmini, aynı imzaya sahip ancak parametre tipi bir fonksiyon için integer diğer fonksiyon için double olan fonksiyon ile bulunuz.
© Copyright 2024 Paperzz