Monday, December 9, 2024

Mobil Hafta 10

//
var liste = [
  {
    "ad": "Selnur",
    "soyad": "Badem",
    "maas": "34884",
    "medeniDurum": "Boşanmış"
  },
  {
    "ad": "Zümrüt",
    "soyad": "Uygur",
    "maas": "41352",
    "medeniDurum": "Evli"
  },
  {
    "ad": "Alime",
    "soyad": "Tuğral",
    "maas": "22697",
    "medeniDurum": "Bekar"
  },
  {
    "ad": "Serdengeçti",
    "soyad": "Tutal",
    "maas": "13012",
    "medeniDurum": "Dul"
  },
  {
    "ad": "Abdülveli",
    "soyad": "Nacar koşar",
    "maas": "20211",
    "medeniDurum": "Boşanmış"
  },
  {
    "ad": "Baytüzün",
    "soyad": "İbiş",
    "maas": "12404",
    "medeniDurum": "Ayrı Yaşıyor"
  },
  {
    "ad": "Nevred",
    "soyad": "Şengül gülbaş",
    "maas": "44277",
    "medeniDurum": "Evli"
  },
  {
    "ad": "Sebatı",
    "soyad": "Sevinçhan",
    "maas": "45893",
    "medeniDurum": "Boşanmış"
  },
  {
    "ad": "Abuzettin",
    "soyad": "Arpacı",
    "maas": "29724",
    "medeniDurum": "Evli"
  },
  {
    "ad": "Hayali",
    "soyad": "Yumlu",
    "maas": "48295",
    "medeniDurum": "Ayrı Yaşıyor"
  },
  {
    "ad": "Artan",
    "soyad": "Cingü",
    "maas": "16024",
    "medeniDurum": "Dul"
  },
  {
    "ad": "Akanay",
    "soyad": "Solmazgül",
    "maas": "10437",
    "medeniDurum": "Evli"
  },
  {
    "ad": "Yekpare",
    "soyad": "Elmas",
    "maas": "35667",
    "medeniDurum": "Evli"
  },
  {
    "ad": "Emrah",
    "soyad": "Yüzer",
    "maas": "44029",
    "medeniDurum": "Evli"
  },
  {
    "ad": "Asime",
    "soyad": "Özben",
    "maas": "46379",
    "medeniDurum": "Bekar"
  },
  {
    "ad": "Asri",
    "soyad": "Karhan",
    "maas": "37397",
    "medeniDurum": "Evli"
  },
  {
    "ad": "Nurçağ",
    "soyad": "Tepecik",
    "maas": "16705",
    "medeniDurum": "Dul"
  },
  {
    "ad": "Kıray",
    "soyad": "Sevilmiş",
    "maas": "28787",
    "medeniDurum": "Bekar"
  },
  {
    "ad": "Sıralp",
    "soyad": "Durdu",
    "maas": "24005",
    "medeniDurum": "Ayrı Yaşıyor"
  },
  {
    "ad": "Hasbi",
    "soyad": "Demirbaş",
    "maas": "45930",
    "medeniDurum": "Dul"
  },
  {
    "ad": "Tuzer",
    "soyad": "Konat",
    "maas": "24638",
    "medeniDurum": "Evli"
  },
  {
    "ad": "Burkan",
    "soyad": "Nergiz",
    "maas": "19571",
    "medeniDurum": "Bekar"
  }
];

Wednesday, December 4, 2024

Mobil Hafta 09 Class devam, constructor

 // class , yapı, fıtrat, plan


// Bir kişi bilgisi tutacağız diyelim
// bilgiler ne olacak ise, yani özellikleri ne olacak ise onlar kullanılır

// class ClassAdi{

// }

// Klavyeden 3 notu girilen öğrencinin ortalamasını ekrana yazan program
// yazmıştık.

// 3 öğrenci için okulno, ad, soyad, not1,not2, not3 bilgilerini girilmesini
// bu bilgilerin tutulmasını
// son olarak, aşağıdaki gibi görüntülemesini sağlayan programı yazalım

/*
Recep ÖZEN - ort: 45
Canan ÖZEN - ort: 17
Mehmet BİLİR - ort: 90
 */

import 'dart:io';

class Ogrenci {
  String? okulNo;
  String? ad;
  String? soyad;
  int? not1;
  int? not2;
  int? not3;
}

void main(List<String> args) {
  List<Ogrenci> ogrenciler = [];

  // listeye öğrencileri bilgileri ile ekliyoruz.
  for (var i = 0; i < 3; i++) {
    Ogrenci ogr = Ogrenci(); // new Ogrenci(); ile aynı
    stdout.write("${i + 1}. öğrenci için Okul No:");
    ogr.okulNo = stdin.readLineSync();

    stdout.write("${i + 1}. öğrenci için Ad:");
    ogr.ad = stdin.readLineSync();

    stdout.write("${i + 1}. öğrenci için Soyad:");
    ogr.soyad = stdin.readLineSync();

    stdout.write("${i + 1}. öğrenci için Not1:");
    ogr.not1 = int.parse(stdin.readLineSync()!);

    stdout.write("${i + 1}. öğrenci için Not2:");
    ogr.not2 =int.parse(stdin.readLineSync()!);

     stdout.write("${i + 1}. öğrenci için Not3:");
    ogr.not3 = int.parse(stdin.readLineSync()!);

    ogrenciler.add(ogr);
  }

  for (var i = 0; i < ogrenciler.length; i++) {
    var o = ogrenciler[i];

    double ort = (o.not1!+o.not2!+o.not3!)/3;

    print("${o.ad} ${o.soyad} - ort: $ort");
  }
}



// Klavyeden 4 kişi için Ad, Soyad, doğum yılı bilgileri giriliyor
// bu kişileri alt alta
// ad soyad yaş
// şeklinde listelen program

import 'dart:io';

class Kisi{
  String? ad;
  String? soyad;
  int? dogumYili;

 
  int yasVer(){
    int yas = 2024 - this.dogumYili!;
    return yas;
  }
}

void main(List<String> args) {
  List<Kisi> kisiler = [];

  for (var i = 0; i < 4; i++) {
    Kisi yenikisi = Kisi();
   
    stdout.write("Ad Girin: ");
    yenikisi.ad = stdin.readLineSync();
    stdout.write("Soyad Girin: ");
    yenikisi.soyad = stdin.readLineSync();
    stdout.write("Doğum yılı girin: ");
    yenikisi.dogumYili = int.parse(stdin.readLineSync()!);

    kisiler.add(yenikisi);
  }

  // for (var i = 0; i < kisiler.length; i++) {
  //   Kisi a = kisiler[i];
  //   int yas = 2024 - a.dogumYili!;

  //   print("${a.ad} ${a.soyad} $yas");
  // }

  for (var a in kisiler) {
    int yas = 2024 - a.dogumYili!;

   print("${a.ad} ${a.soyad} ${a.yasVer()}");
  }

}


// class larda metodlar

// classlardaki metotlar, onların yetenekleri gibiydi
// öncelikle metod ne idi, onu hatırlayalım
// çağrıldığında iş yapan kodlar, geriye birşey döndürür veya döndürmez

import 'dart:io';

class Kisi{
  String? ad;
  String? soyad;
  int? dogumYili;

  int yasVer(){
    int yas = 2024 - this.dogumYili!;
    return yas;
  }

  void bilgileriYaz(){
    stdout.write("$ad $soyad ${yasVer()}");
  }
}


// constructor metodu, yapıcı metodlar

// classlarda kullanılan özel bir metoddur.

// normalde metodların dönüş tipi olur idi

// constructor da ise dönüştipi yoktur.

// constructor metodun adı class ile aynı isimdedir.

// bir classtan nesne yaratıldığında çalışır. yaratılırken


class Personel{
  String? name;
  String? surname;
  int? maas;

  // constructor
  // Personel(){
  //   print("Yeni bir kişi oluşturuldu");
  // }
  // yukarıdaki kullanımda, parametre almadı, oluşturulurken bunun bilgisine verecek

  // parametrelerin isimlerini ayrı ayrı yazmak yerine classtan çekebiliriz.
  // Personel(this.name, this.surname, this.maas);
  // bu kullanımda farketti iseniz küme bloğu açmanıza gerek yok
  // zaten atama yapmıyoruz.

// aşağıdaki constructorda parametreler zorunludur.
  // Personel(String ad, String soyad, int maas){
  //     this.name = ad; //ad.toUpperCase();
  //     surname = soyad;
  //     this.maas = maas;
  //     // bu kullanım niye gerekebilir.
  //     // değer ataması yapılırken belirli kriterlerini var ise
  //     // mesela ad küçükte büyükte girilse, atama yapılırken büyük yapılabilir.
  // }


  Personel({this.name, this.surname, this.maas});

}

void main(List<String> args) {
  // normalde bir classtan nesne türettikten sonra
  // o nesnenin özelliklerini değiştirebiliyoruz.

  // Personel yeni = new Personel();
  // yeni.name = "Recep";
  // yeni.surname = "ÖZEN";
  // yeni.maas = 53500;

  // yeni üretilen bir nesnenin özelliklerini bu şekilde girmek biraz zahmetlidir.

  // Personel yeni = new Personel("Recep","ÖZEN",3000);
  // Personel a = Personel("Ali", "Tunç", 45000);
  // print(yeni.surname);

  Personel a = Personel();
  Personel b = Personel(name: "Recep", maas: 58000);
}



// Ad, Soyad, doğum yılı bilgilerini tutan
// 4 kişi kaydı oluşturarak bir listeye ekleyin.
// ad soyad yaş
// şeklinde listeleyen program

class Kisi{
  String? ad;
  String? soyad;
  int? dogumYili;

  Kisi(this.ad, this.soyad, this.dogumYili);

  int yasver(){
    return 2024-this.dogumYili!;
  }
}


void main(List<String> args) {

  List<Kisi> liste = [
    Kisi("Recep", "ÖZEN", 1980),
    Kisi("Ali", "Tuna", 1987),
    Kisi("Arda", "TURAN", 2005),
    Kisi("Yasemin", "ABLA", 2009)
  ];

  for (var k in liste) {
    print("${k.ad} ${k.soyad} ${k.yasver()}");
  }

  // for (var i = 0; i < liste.length; i++) {
  //   var k = liste[i];
  //   print("${k.ad} ${k.soyad} ${k.yasver()}");
  // }
}


// Şu ana kadar ne yaptık
// classın değişkenlerini hep null olabilen yaptık

// çünkü nesne üretildiğinde değer atanmış olmasını istiyordu

// artık biz constructor biliyoruz, yani
// nesne üretilirken değer atabilirim.

class Kisi{
  String ad;
  String soyad;

  Kisi(this.ad, this.soyad);
}

// yukarıdaki kullanımda
// constructorda üretildiği anda değerler zorunlu olarak
// atandığı için null olmayan değişken hata vermeyecektir.

void main(List<String> args) {
  Kisi a = Kisi("Recep", "ÖZEN");
}




class Kisi{
  String ad;
  String soyad;

// eğer null olmayan özelliğimizi zorunlu olmayan parametre olarak alırsak
//hata verecektir.
  Kisi(this.ad, {this.soyad = ""});
  // bunun çözümü maalesef sadece varsayılan bir değer atmak olur.
}

// yukarıdaki kullanımda
// constructorda üretildiği anda değerler zorunlu olarak
// atandığı için null olmayan değişken hata vermeyecektir.

void main(List<String> args) {
  Kisi a = Kisi("Recep", soyad: "ÖZEN");
  Kisi b = Kisi("Ahmet");
}



class Kisi{
  String ad;
  late String soyad;

  Kisi(this.ad);
  // eğer null olamayan bir değişkeni constructorda da değer atamaz isek
  // late diyebiliriz.
  // kardeşim biliyorum, bu null olmayacak, daha sonra ben değer atayacam
}

// yukarıdaki kullanımda
// constructorda üretildiği anda değerler zorunlu olarak
// atandığı için null olmayan değişken hata vermeyecektir.

void main(List<String> args) {
  Kisi a = Kisi("Recep");
  a.soyad = "ÖZEN";

  Kisi b = Kisi("Ahmet");
  print(b.soyad); // late ten ötürü hata vermez
  // değer atamadan kullanmaya kalkarsam çalışma sırasında hata oluşur
}


// Kitap bilgileri
// adı, yazarı, türü, Fiyatı
// classın değişkenleri null olamaz.
// 5 adet kitap sahip bir dukkanımız var.

// program çalıştırıldığında kitapların bilgilerini alta alta listeliyor
/*
1. KitapAdı  YazarAdı  Türü  Fiyatı
2. KitapAdı  YazarAdı  Türü  Fiyatı
3. Prens  YazarAdı  Türü  200
4. KitapAdı  YazarAdı  Türü  Fiyatı
5. KitapAdı  YazarAdı  Türü  Fiyatı

Hangi kitabı almak istiyorsunuz?: _3
Kaç tane almak istiyorsunuz?: 2

Satın alınan Prens kitabı, ödenecek tutar 400 TL
 */

import 'dart:io';

class Kitap{
  String adi;
  String yazar;
  String tur;
  double fiyat;

  Kitap(this.adi, this.yazar, this.tur, this.fiyat);

  String yaziHali(){
    return "$adi $yazar $tur $fiyat";
  }
}
void main(List<String> args) {
  List<Kitap> dukkan =[
    Kitap("Küçük Prens", "Ali", "macera", 450),
    Kitap("Maymun", "Cehennem", "roman", 100),
    Kitap("Ayşe suçu ne", "recep", "roman", 4500),
    Kitap("Aylin", "george orwell", "bilimsel", 5000)
  ];

  for (var i = 0; i < dukkan.length; i++) {
    var kitap = dukkan[i];
    print("${i+1}. ${kitap.yaziHali()}");
  }

   stdout.write("Hangi kitabı almak istiyorsunuz?:");
   int index = int.parse(stdin.readLineSync()!)-1;

   stdout.write("Kaç tane almak istiyorsunuz?:");
   int adet = int.parse(stdin.readLineSync()!);
   
   var kitap = dukkan[index];

   print("Satın alınan ${kitap.adi} kitabı, ödenecek tutar ${kitap.fiyat*adet} TL");
}



Friday, November 29, 2024

Mobil Hafta 08 class

// METODLAR, Method, function

// çağrılmadığı sürece çalışmayan kod bloğudur.
// sürekli tekrar tekrar uzun kod yazmamak için
// düzen için
// metodlara istediğimiz adı verebiliriz.
// bir blokta aynı isimde bir metod olamaz (c# da böyle değil)

// tanımlanması
// DönüşTipi MetodAdı(){  
// }
import 'dart:math';

// void, boş, hiç anlamına geliyor,
// dönüştipi olarak yazarsak hiçbirşey döndürmez denir

void MerhabaYaz(){
  print("Merhaba");
}

// Parametre ile devam edelim.
// Parametre, metodun çağrılırken içerisine veri göndermemizi sağlar
void EkranaYaz(String yazi){
  print(yazi);
}

// Birden fazla parametre olabilir,
// parametreleri , ile ayırırız
void ToplamiYaz(int a, int b){
  int toplam = a + b;
  print("Toplam = $toplam");
}

// ToplamHesapla adında bir metod istese idik
// ne yapacaktı, toplamı hesaplayıp, sonucu çağrıldığı yere döndürmesi lazım
// dönüştipi void değilse, mutlaka return olmalıdır.
int ToplamHesapla(int a, int b){
  int toplam = a+b;
  return toplam; // geri döndür, değeri
  // Not: return görüldüğünde metoddan çıkılır.
}



void main(){
  MerhabaYaz(); // çağırmak için adını yazmak yeterlidir,
  // aslında zaten metod kullanmıştık
  // print("Ekrana bir şey yazdık."); // mesela bu voiddi, işi yapar çağrıldığoı yere döner
  // int sayi = Random().nextInt(10);  // bu ise çağrıldığı yere bir sayı döndürüyor.
  EkranaYaz("Recep ÖZEN");
  ToplamiYaz(5, 6);
  int sonuc = ToplamHesapla(5,6);
  print(sonuc);
}


// ZarAt adında bir metod tanımlayın.
// ve metodu kullanarak ürettiğiniz sayıyı ekrana yazın

import 'dart:math';

import 'p1101.dart';

int ZarAt(){
  int zar = Random().nextInt(6)+1;
  return zar;
}

void main(List<String> args) {
  print(zarAt());

  int sayi = zarAt();
  print(sayi);

}


// Zorunlu olmayan parametreler
// metoda bir parametre yazdığımızda, çağırırken mecburi parametre de yazılmalı

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

// void EkranaYaz(String yazi){
//   stdout.write(yazi);
// }
// // yukarıdaki metod, ekrana yazar alta geçmez


// void EkranaYaz(String yazi, bool yenisatir){
//   stdout.write(yazi);
//   if(yenisatir){
//     stdout.write("\n");
//   }
// }

// void main(List<String> args) {
//   EkranaYaz("Recep",false);
//   EkranaYaz("ÖZEN",false);
// }

// ************************************************
// zorunlu olmayan parametreler küme bloğu içerisinde tanımlanır
// öncelikle yazılması gerekenler, zorunlu olanlardır,
// yani küme bloğundaki parametreler, en sonda kullanılır.
// küme bloğunda tanımlanan parametrelerin, varsayılan değeri olmalıdır.
// void EkranaYaz(String yazi, {bool yenisatir=true}){
//   stdout.write(yazi);
//   if(yenisatir){
//     stdout.write("\n");
//   }
// }

// void main(List<String> args) {
//   EkranaYaz("Recep",yenisatir: false);
//   EkranaYaz("ÖZEN");
// }

// ***************************************************

// kendisine gönderilen listeyi küçükten büyüğe veya
// büyükten küçüğe sıralanmış olarak ekrana yazan metodu tanımlayınız.
// parametre olarak liste gönderilecek, aynı zamanda yon adında bir zorunlu olmayan
// parametre de küçükten büyüğe mi büyükten küçüğe mi sıralanacağını belirtsin
// varsayılan olarak küçükten büyüğe sıralama yapılacaktır.

void Sirala(List<int> a, {bool yon = true}){
  List<int> yeni = a.toList();
  yeni.sort();
  if(yon) print(yeni);
  else print(yeni.reversed);
}

void Metod(int a, int b, int c){

}

void main(List<String> args) {
  List<int> liste = [3,56,7,23,8,1,9];
  Sirala(liste,yon: false);

  Sirala(liste);
  print(liste);

}



// KisiYarat adında gönderilen bilgiler ile kişi oluşturan
// metod yazıp, kişi yaratın
// Adı, Soyadı, TCNo, doğumyılı, Cinsiyet, Telefon, Email

// kişi yaratıldığını simüle etmek için bilgileri ekrana yazsın

// aşağıdaki yazımda bu bilgiler parametre olarak kesinlikle girilmeli, yoksa metodu çağıramayız
// void KisiYarat(String Ad, String Soyad, String TCNO, int dy, String Cinsiyet, String Telefon, String Email){

// }

// Cinsiyet, Telefon ve email bilgisi zorunlu olmasın.
void KisiYarat(String Ad, String Soyad, String TCNO, int dy, {String? Cinsiyet, String? Telefon, String? Email}){
  print("Ad: $Ad");
  print("Soyad: $Soyad");
  print("TCNo: $TCNO");
  print("Doğum Yılı: $dy");
  if(Cinsiyet!=null) print("Cinsiyet: $Cinsiyet");
 if(Telefon!=null) print("Telefon: $Telefon");
  if(Email!=null) print("Email: $Email");
}


void main(List<String> args) {
  KisiYarat("Recep", "ÖZEN", "52753025212", 1980);

  KisiYarat("Recep", "ÖZEN", "52753025212", 1980, Cinsiyet: "Erkek",Email: "recepozen54@gmail.com");
}



// KisiYarat metodu olsun yine, ad soyad cinsiyet ve medenihali göndereceğiz.

// void KisiYarat(String ad, String soyad, String cinsiyet, String medeniHali) {

// }


// enumaration, numaralandırma
enum Cinsiyet{
  Erkek,
  Kadin
}

enum MedeniHal{
  Bekar,
  Evli,
  Dul,
  AyriYasiyor,
  Bosanmis
}

void KisiYarat(String ad, String soyad, Cinsiyet cinsiyet, MedeniHal medeniHali) {
print(ad);
print(soyad);

if(cinsiyet==Cinsiyet.Erkek) print("ERKEK");
if(cinsiyet==Cinsiyet.Kadin) print("KADIN");

switch (medeniHali) {
  case MedeniHal.AyriYasiyor:
    print("Ayrı Yaşıyor");
    break;
    case MedeniHal.Evli:
    print("evli");
    break;
    case MedeniHal.Bekar:
    print("Bekar");
    break;
    case MedeniHal.Dul:
    print("Dul");
    break;
    case MedeniHal.Bosanmis:
    print("Boşanmış");
    break;
  default:
}
}


void main(List<String> args) {

  KisiYarat("Recep", "ÖZEN", Cinsiyet.Erkek,MedeniHal.Evli);
  KisiYarat("Yağmur", "Tatlısu", Cinsiyet.Kadin, MedeniHal.Bekar);

}


void main(List<String> args) {
  // constant - Sabit
  const pi = 3.14;

  // const ile tanımlanan değişken sadece bir defa atanabilir.
  // const a; bu hata verir
  // const ile tanımlanan sabit değişken, tanımlandığı anda değer ataması yapılmalıdır.

  final pi2 = 3.14;
  //pi2 = 4; // burada hata alınır
  // const ve final ikisi de sabit değişkenlerdir.

  // const atanırken değer tanımlanmalı idi
  // final ise tanımlandığı anda değer ataması yapılmak zorunda değildir
  // ataması yapıldıktan sonra bir daha atama yapılamaz, değeri değiştirilemez
  final pi3;
  pi3=3.14; // atama sonra da yapılabilir.
  // pi3=3; // burada hata alırız


  // final veya const ile tanımlanan değişkenler, var gibi davranır.
  // yani ilk atamadaki değerin türünü alır.
}




// Class nedir? Sınıftır.
// sınıf nedir? kültürel anlamda sormuyoruz, programlamada

// Class yapıdır, Class fıtrattır, Class plandır
// planların özellikleri vardır
// örneğin bina planının kat adedi, daire adedi, rengi, vb
// insan fıtratının, cinsiyeti, kangrubu, kanrengi, tenrengi vb.

// Nesne yönelimli programlama, Nesne tabanlı programlama
// her nesnenin bir fıtratı vardır, planı vardır,
// yani özelliklerini ve yeteneklerini belirten unsurları vardır.

// bir class nasıl tanımlanır

// class ClassAdi{

// }

// kedi fıtratı yazıyoruz.
class Kedi{
  // Özellikleri (Property), değişkenler olarak ifade edebiliriz.
  // String Renk; // Bu şekilde yazdığımızda hata alırız.
  // sebebi diyor ki nesne türetilir ise bu plandan, yani gerçek bir kedi
  // üretilirse rengi yok. yani varsayılan rengi yok diyor.
  // ya bir kedi üretildiğinde varsayılan rengi olmalı
  // String Renk = "Sarı";

  // ya bir kedi üretildiğinde varsayılan olarak null olsun
  // String? Renk; // tabii ki kullanacağımız zaman null ise ne yapacağını söylememiz lazım.

  // late String Renk; // bu ifade sonra anlamında kullanılabilir
  // diyoruz ki programa, bu Renk değeri null olmayacak, ama ben değeri
  // daha sonra atacağım, hata olabileceğinin farkındayım.

  // değişkenlere classlarda Field adı da verilir.
  String? renk;
  int? yas;
  int? patiSayisi;
  String? gozrengi;
  bool? tuylu;

  // Yetenekleri (Method), metodlar olarak ifade edebiliriz.

  void Miyav() {
    print("Miyav miyav");
  }

  void Yuru(){
    print("Yurudum, $yas yaşındayım, yoruldum");
  }
}


void main(List<String> args) {
  // Bir kedi yaratalım
  // kedi sınıfından bir nesne üreteceğiz.
  Kedi k1 = new Kedi();
  k1.gozrengi = "Ela";
  k1.patiSayisi = 5;
  k1.tuylu = false;
  k1.renk = "Turuncu";
  k1.yas = 5;

  k1.Miyav();
  k1.Yuru();

  var k2 = new Kedi();
  k2.yas = 10;

  k1.Yuru();
  k2.Yuru();
}



// Kişinin bilgilerini tutan Person adında bir sınıf tanımlayın

// Ad, Soyad, Maas bilgilerini tutsun


// Klavyeden bu gerekli bilgileri giriş alan
// kişi oluşturarak sonra bu kişiyi ekrana yazan programı yazınız.

import 'dart:io';

class Person{
  String? ad;
  String? soyad;
  double? maas;
}

void main(List<String> args) {
  stdout.write("Ad giriniz: ");
  String ad = stdin.readLineSync()!;

  stdout.write("Ad giriniz: ");
  String soyad = stdin.readLineSync()!;
 
  stdout.write("Ad giriniz: ");
  double maas = double.parse(stdin.readLineSync()!);

  Person kisi = new Person();
  kisi.ad =ad;
  kisi.soyad=soyad;
  kisi.maas = maas;
 
  print("Kişi Adı: ${kisi.ad}");
  print("Kişi soyadı: ${kisi.soyad}");
  print("Kişi maası: ${kisi.maas}");


  Person kisi2 = Person(); // new yazılmasa da yazılmış gibi nesne türetilir.
  // ClassAdı() yaptığımızda new ClassAdı() yapmış oluruz.
 
  stdout.write("Ad giriniz: ");
  kisi2.ad = stdin.readLineSync()!;

  stdout.write("Ad giriniz: ");
  kisi2.soyad = stdin.readLineSync()!;
 
  stdout.write("Ad giriniz: ");
  kisi2.maas = double.parse(stdin.readLineSync()!);

 
  print("Kişi Adı: ${kisi2.ad}");
  print("Kişi soyadı: ${kisi2.soyad}");
  print("Kişi maası: ${kisi2.maas}");
}

















 

Monday, November 25, 2024

Mobil Hafta 07

// METODLAR, Method, function

// çağrılmadığı sürece çalışmayan kod bloğudur.
// sürekli tekrar tekrar uzun kod yazmamak için
// düzen için
// metodlara istediğimiz adı verebiliriz.
// bir blokta aynı isimde bir metod olabilir (c# da böyle değil)

// tanımlanması
// DönüşTipi MetodAdı(){  
// }

// void, boş, hiç anlamına geliyor,
// dönüştipi olarak yazarsak hiçbirşey döndürmez denir

import 'dart:math';

void MerhabaYaz(){
  print("Merhaba");
}

// Parametre ile devam edelim.
// Parametre, metodun çağrılırken içerisine veri göndermemizi sağlar
void EkranaYaz(String yazi){
  print(yazi);
}

// Birden fazla parametre olabilir,
// parametreleri , ile ayırırız
void ToplamiYaz(int a, int b){
  int toplam = a + b;
  print("Toplam = $toplam");
}

// ToplamHesapla adında bir metod istese idik
// ne yapacaktı, toplamı hesaplayıp, sonucu çağrıldığı yere döndürmesi lazım
// dönüştipi void değilse, mutlaka return olmalıdır.
int ToplamHesapla(int a, int b){
  int toplam = a+b;
  return toplam; // geri döndür, değeri
  // Not: return görüldüğünde metoddan çıkılır.
}



void main(){
  MerhabaYaz(); // çağırmak için adını yazmak yeterlidir,
  // aslında zaten metod kullanmıştık
  // print("Ekrana bir şey yazdık."); // mesela bu voiddi, işi yapar çağrıldığoı yere döner
  // int sayi = Random().nextInt(10);  // bu ise çağrıldığı yere bir sayı döndürüyor.
  EkranaYaz("Recep ÖZEN");
  ToplamiYaz(5, 6);
  int sonuc = ToplamHesapla(5,6);
  print(sonuc);

} 

// ZarAt adında bir metod tanımlayın.
// ve metodu kullanarak ürettiğiniz sayıyı ekrana yazın

import 'dart:math';

import 'p1101.dart';

int ZarAt(){
  int zar = Random().nextInt(6)+1;
  return zar;
}

void main(List<String> args) {
  print(zarAt());

  int sayi = zarAt();
  print(sayi);

}


// Zorunlu olmayan parametreler
// metoda bir parametre yazdığımızda, çağırırken mecburi parametre de yazılmalı

import 'dart:io';

// void EkranaYaz(String yazi){
//   stdout.write(yazi);
// }
// // yukarıdaki metod, ekrana yazar alta geçmez


// void EkranaYaz(String yazi, bool yenisatir){
//   stdout.write(yazi);
//   if(yenisatir){
//     stdout.write("\n");
//   }
// }

// void main(List<String> args) {
//   EkranaYaz("Recep",false);
//   EkranaYaz("ÖZEN",false);
// }

// ************************************************
// zorunlu olmayan parametreler küme bloğu içerisinde tanımlanır
// öncelikle yazılması gerekenler, zorunlu olanlardır,
// yani küme bloğundaki parametreler, en sonda kullanılır.
// küme bloğunda tanımlanan parametrelerin, varsayılan değeri olmalıdır.
// void EkranaYaz(String yazi, {bool yenisatir=true}){
//   stdout.write(yazi);
//   if(yenisatir){
//     stdout.write("\n");
//   }
// }

// void main(List<String> args) {
//   EkranaYaz("Recep",yenisatir: false);
//   EkranaYaz("ÖZEN");
// }

// ***************************************************

// kendisine gönderilen listeyi küçükten büyüğe veya
// büyükten küçüğe sıralanmış olarak ekrana yazan metodu tanımlayınız.
// parametre olarak liste gönderilecek, aynı zamanda yon adında bir zorunlu olmayan
// parametre de küçükten büyüğe mi büyükten küçüğe mi sıralanacağını belirtsin
// varsayılan olarak küçükten büyüğe sıralama yapılacaktır.

void Sirala(List<int> a, {bool yon = true}){
  List<int> yeni = a.toList();
  yeni.sort();
  if(yon) print(yeni);
  else print(yeni.reversed);
}

void main(List<String> args) {
  List<int> liste = [3,56,7,23,8,1,9];
  Sirala(liste,yon: false);
  print(liste);
}