Dart Programlama Dilinde Metodlar-3

Bu yazımızda Dart Programlama Dili ile Metod Tanımlama ve farklı örnekler yapmaya devam edeceğiz. Dart Programlama Dili ile daha önce aşağıdaki linklerden görebileceğiniz yazıları tamamlamıştık.

Dart Programlama Dilinde Metodlar-1

Dart Programlama Dilinde Metodlar-2


Şimdi de Metodu Liste olarak alan farklı örneklere devam edeceğiz. Şimdi gönderdiğimiz bir Liste yapısı içindeki sayıların toplamını bulup döndüren bir metod yazalım. Metodumuzu tanımlarken aşağıdaki gibi bir tanımlama kullanıyoruz.

double toplamBul(List a)  //Metod Tanım 1

double toplamBul(List<double> a)  //Metod Tanım 2

 
Yukarıdaki ifade toplamBul isimli metodun liste alacağını ve sonuçta tek bir double tipte değer döndüreceğini belirtiyor.  Dart Programlama dilinin versiyonuna göre yukarıdaki tanımlamalardan ikisini de kullanabilirsiniz, yeni nesil tanımlamada Tanım2 daha çok kullanılıyor.

Aşağıdaki örnekte metodumuzun tamamı görülmektedir. Bu metot liste olarak a listesini alıp bu listenin elemanlarını baştan sona for döngüsü ile dolaşıyoruz. Aşağıdaki iki satırda for döngüsünün parametre olarak gelen a listesinin uzunluğunu kadar dolaşması için a.length ifadesini kullanıyoruz. Her bir elemana da a[i] ifadesi ile erişiyoruz.

 for (int i = 0; i < a.length; i++)
     toplam += a[i];



Aşağıda ise kodun tamamı görülmektedir. Yukarıda iki satırda toplam bulunduktan sonra return toplam ifadesi ile fonksiyonumuz toplamı döndürmektedir.

Aşağıdaki main içinde 3 elemandan oluşan double tipinde bir liste tanımlıyoruz, listenin elemanlarına başlangıç değeri olarak da sıfır değerini veriyoruz.

var notlar = List<double>.filled(3, 0); 
  notlar[0] = 45.5;
  notlar[1] = 55.6;
  notlar[2] = 60;
 
Listenin elemanlarına sırasıyla 45.5, 55.6 ve 60 değerlerini atıyoruz. Küsüratlı değerlerle işlem yapabilmek için double tipinde tanımladığımıza dikkat ediniz.
 
Programın tamamı aşağıda yer almaktadır.

double toplamBul(List<double> a) {
  double toplam = 0;
  for (int i = 0; i < a.length; i++)
     toplam += a[i];
  return toplam;
}
 
void main() {
  var notlar = List<double>.filled(3, 0);
  notlar[0] = 45.5;
  notlar[1] = 55.6;
  notlar[2] = 60;
  double sonuc = toplamBul(notlar);
  print("Sonuç =" + sonuc.toString());
}

 
 
Şimdi de bir Liste'yi parametre alıp bir Liste döndüren bir metod yazalım. Bu metod bir tam sayı listesini parametre alarak geriye bu listedeki çift sayıların toplamını ve tek sayıların toplamını ayrı ayrı hesaplayıp döndürüyor. Burada geriye birden fazla değer döndüreceğimiz için dönüş tipini bir Liste olarak tanımladık. Metod içinde iki elemanlı bir listeyi aşağıdaki şekilde oluşturuyoruz.

var sonuc = List<int>.filled(2, 0);

ciftToplam ve tekToplam değerlerini bu listemize depoluyoruz.

  sonuc[0] = ciftToplam;
  sonuc[1] = tekToplam;

Programda main içinde rastgele sayı üretmek için en üstte 'dart:math' kütüphanesini kullanıyoruz. Aşağıda programın tamamı yer almaktadır. 

import 'dart:math';

Dart Programlama dilinde rastgele sayı üretmek için aşağıdaki yazımızı okuyabilirsiniz.

Dart Programlama Dilinde Rastgele Şifre Üretmek

Aşağıdaki satırlar ile 1-100 arasında 3 tane rastgele sayı üretiyoruz.

 var rastgele = new Random();
  for (int i = 0; i < 3; i++) {
    sayi[i] = rastgele.nextInt(100) + 1;
    print(sayi[i]);
  }

Bu sayıları daha önce   var sayi = List<int>.filled(10, 0); ile açtığımız liste içine depoluyoruz, Listeyi 10 eleman  alacak şekilde int tipinde açtık ve başlangıç değeri olarak sıfır ile doldurduk. Aşağıdaki satır ile de metodumuza gönderiyoruz.

tcsonuc = tekCiftToplam(sayi);

Programın tamamı aşağıda yer almaktadır.
 
List<int> tekCiftToplam(List<int> dizi) {
  int tekToplam = 0, ciftToplam = 0;
  var sonuc = List<int>.filled(2, 0);
 
  for (int i = 0; i < dizi.length; i++) {
    if (dizi[i] % 2 == 0)
      ciftToplam += dizi[i];
    else
      tekToplam += dizi[i];
  }
  sonuc[0] = ciftToplam;
  sonuc[1] = tekToplam;
  return sonuc;
}
 
void main() {
  var sayi = List<int>.filled(10, 0);
  var tcsonuc = List<int>.filled(2, 0);
  var rastgele = new Random();
  for (int i = 0; i < 3; i++) {
    sayi[i] = rastgele.nextInt(100) + 1;
    print(sayi[i]);
  }
  tcsonuc = tekCiftToplam(sayi);
  print("Çift sayılar toplamı:" + tcsonuc[0].toString());
  print("Tek sayılaclar toplamı:" + tcsonuc[1].toString());
}
 


Yukarıdaki kodu çalıştırdığımız zaman aşağıdaki sonucu elde edeceğiz.



Mutlu kodlamalar,
Oğuzhan TAŞ
Kasım, 2023.

Bookmark and Share