Monday, November 18, 2024

Mobil Hafta 06 - Listeler

// DİZİLER, LİSTELER

// listeler, birden fazla değer tutmam gerekiyor ise liste kullanabiliriz
// Listenin içindeki türler aynı olur.
// List<tür> değişkenadı;
// List<String> liste; // liste tanımlandı ama bir listeyi işaret etmiyor. yani null

// List<String> liste = []; boş bir liste ile eşitlendi, artık bir listeyi işaret ediyor.

// List<String> liste = ["İfade1", "ifade2", "ifade3"]; // başlangıçtada değerlere sahip bir liste tanımlanabilir.

void main(List<String> args) {
  List<int> liste = [];
  // liste.length -> listenin uzunluğunu yani eleman sayısını verir.
  print(liste.length);

  // bir listeye eleman ekleme
  liste.add(17);
  liste.add(5);

  print(liste.length);

  // listenin elemanlarına index no ile erişilir. index no 0 dan başlar
  // yani ilk eleman 0. eleman olacaktır, son eleman ise length-1 olacaktır.
  // 5 elemanlı bir listenin son elemanına erişmek için 4 değeri kullanılır.

  // Bir listenin elemanına eriştiğimizde aslında değişkene erişmiş oluruz, hem okuyabilir, hem de yazabiliriz.

  print(liste[1]);
  liste[0] = 8;
 
  print(liste);

  print(liste.reversed); // listenin tersini döndürür, listeyi değiştirmez, yani bu sadece değer döndürür.

  liste.clear(); // listeyi temizler, yani tüm elemanları siler

  liste = [8,5,7,5,6,4];
  liste.remove(5); // en baştan itibaren belirtilen değeri listede arar, ilk bulduğunu siler, hepsini değil
  print(liste);

  liste.removeAt(3); // belirtilen indexteki değeri siler, dizinin son indexinden büyük bir değer girilir ise hata alınır.
  print(liste);

}

 

// 3 yazılı 2 sözlü notu tutan notlar adında bir liste oluşturun.
// bu listeye, 0 - 100 arasında rastgele 5 değer atayın.
// Klavyeden kaçıncı notun silineceğini sorarak istenen notu silin
// notları ve notların ortalamasını aşağıdaki gibi ekrana yazdırın

// 45 - 65 - 43 - 76 = 78 (ort)

import 'dart:io';
import 'dart:math';

void main(List<String> args) {
  List<int> notlar = [];

  for (var i = 0; i < 5; i++) {
    notlar.add(Random().nextInt(101)); // rastgele sayı üretip listeye ekliyoruz
  }

    print(notlar);
    stdout.write("Kaçıncı notu sileceksiniz [1-5]:");
    int index = int.parse(stdin.readLineSync()!) - 1; // adamın girdiği sırayı index olarak ele alıyoruz

    notlar.removeAt(index);

    int toplam=0;
    for (var i = 0; i < notlar.length; i++) {
      stdout.write(notlar[i]); // değeri yaz
      toplam += notlar[i]; // değeri toplama ekle
      if(i!=notlar.length-1) stdout.write(" - ");   // son eleman değilse - koy
    }

    double ort = toplam / notlar.length;
    print(" = $ort");
}


// String ifadeler normalde Char dizisi gibi davranırlar(liste gibi)
// ancak dart dilinde karaktere ulaştığınızda da türü string tir.

import 'dart:io';

void main(List<String> args) {
  // String yazi = "Recep ÖZEN";

  // print(yazi[3]);
  //yazi[3] = "a"; // burada hata alırız, bu kullanım sadece okumadır, atama yapılamaz.

  // Klavyeden girilen yazının harflerini ekrana alt alta yazan programı yazınız.

  stdout.write("Bir yazı girin: ");
  String yazi = stdin.readLineSync()!;

  for (var i = 0; i < yazi.length; i++) {
    print(yazi[i]);
  }
}


// listelerdeki indexOf
// indexOf ile bir listede değer aranır,
// değer en baştan itibaren aranır, ilk bulduğunumn indexini döndürür
// eğer yok ise, yani listede bu değer yok ise -1 döndürür.

void main(List<String> args) {
  List<int> liste = [4,5,7,2,8,6,1,9,2,9,3,1,4];

  int sonuc = liste.indexOf(6); // 5 döndürür
  print(sonuc);

  sonuc = liste.indexOf(0);
  print(sonuc);
}

// ÖDEV = rastgele 1-10 arasında 5 adet sayı üretin,
// bunları ekrana yazdırın, klavyeden girilen sayı bu listede var ise
// girdiğiniz sayı listede var diyen, yok ise listede yok diyen programı yazın.









No comments: