Mobil Uygulamalar · 11. Sınıf
Dart Programlama Dili: Sıfırdan Döngülere
Değişkenlerden koşullara, oradan döngülere… Dart programlamanın temelini örneklerle öğrenelim.
1. Dart Nedir?
Merhaba arkadaşlar! Mobil uygulama geliştirmeye hazır mısınız? Telefonlarımızda kullandığımız hesap makineleri, mesajlaşma uygulamaları ve oyunlar programlama dilleriyle geliştirilir.
Dart, Google tarafından geliştirilen bir programlama dilidir. Özellikle Flutter ile Android ve iOS gibi platformlara mobil uygulamalar geliştirmekte kullanılır.
- Kullanıcıdan bilgi alabiliriz.
- Matematiksel işlemler yapabiliriz.
- Koşullarla karar veren programlar yazabiliriz.
- Döngülerle tekrarlanan işlemleri kolaylaştırabiliriz.
2. İlk Dart Programımız
İlk olarak ekrana bir mesaj yazdıralım:
void main() {
print("Merhaba Dünya!");
}
Kodumuzu tanıyalım:
void main(): Programın çalışmaya başladığı ana fonksiyondur.{ }: Program bloğunun başlangıç ve bitişini gösterir.print(): Ekrana yazı veya değer yazdırır.;: Komutun bittiğini belirtir.
Ekran çıktısı:
Merhaba Dünya!
3. Değişkenler ve Veri Türleri
Değişkenleri, bilgilerin saklandığı kutular gibi düşünebilirsiniz. Örneğin bir öğrencinin adını, yaşını veya notunu değişkenlerde tutabiliriz.
| Veri türü | Açıklama | Örnek |
|---|---|---|
int | Tam sayı | 17 |
double | Ondalıklı sayı | 85.5 |
String | Metin | "Ahmet" |
bool | Doğru veya yanlış | true |
void main() {
String ad = "Ahmet";
int yas = 17;
double ortalama = 82.5;
bool gectiMi = true;
print(ad);
print(yas);
print(ortalama);
print(gectiMi);
}
var, türün Dart tarafından belirlenmesini sağlar; değişkenin değeri uygun türde olmak şartıyla sonradan değiştirilebilir. final ise ilk atamadan sonra yeniden değer atanmasını engeller.
var sehir = "Ankara";
sehir = "İstanbul";
final okul = "Ahi Evran MTAL";
4. Aritmetik ve Karşılaştırma Operatörleri
Dart ile toplama, çıkarma, çarpma ve bölme gibi işlemleri yapabiliriz.
| Operatör | Anlamı | Örnek |
|---|---|---|
+ | Toplama | 10 + 5 |
- | Çıkarma | 10 - 5 |
* | Çarpma | 10 * 5 |
/ | Bölme | 10 / 5 |
~/ | Tam sayı bölmesi | 11 ~/ 2 |
% | Kalanı bulma | 11 % 2 |
void main() {
int sayi1 = 20;
int sayi2 = 6;
print(sayi1 + sayi2);
print(sayi1 - sayi2);
print(sayi1 * sayi2);
print(sayi1 / sayi2);
print(sayi1 ~/ sayi2);
print(sayi1 % sayi2);
}
~/ tam sayı bölümünü verir; % ise bölme işleminden kalanı verir. Örneğin 8 % 2 sonucu 0 olur.
Karşılaştırma operatörleri: == eşit, != eşit değil, > büyük, < küçük, >= büyük veya eşit, <= küçük veya eşit anlamına gelir.
5. Kullanıcıdan Veri Alma
Kullanıcının klavyeden bilgi girmesi için Dart dilinde dart:io kütüphanesinden yararlanabiliriz.
import 'dart:io';
void main() {
print("Adınızı giriniz:");
String? ad = stdin.readLineSync();
print("Merhaba $ad");
}
stdin.readLineSync() girilen satırı okur. String? ifadesi değerin metin veya null olabileceğini belirtir. $ad, değişkenin değerini metne ekler.
Sayıyla işlem yapmak için girilen metni sayıya dönüştürmeliyiz:
import 'dart:io';
void main() {
print("Birinci sayıyı giriniz:");
int sayi1 = int.parse(stdin.readLineSync()!);
print("İkinci sayıyı giriniz:");
int sayi2 = int.parse(stdin.readLineSync()!);
int toplam = sayi1 + sayi2;
print("Toplam: $toplam");
}
Kullanıcı 12 ve 8 girerse sonuç 20 olur. int.parse() metni tam sayıya dönüştürür. Bu başlangıç örneğinde kullanıcı geçerli bir tam sayı girmelidir.
6. Koşul Yapıları: if, else if ve else
Programlar koşullara göre karar verebilir. Örneğin not 50 veya üzerindeyse öğrencinin geçtiğini yazdırabiliriz.
void main() {
int not = 65;
if (not >= 50) {
print("Tebrikler, dersi geçtiniz!");
} else {
print("Dersten kaldınız.");
}
}
Birden fazla durum olduğunda else if kullanabiliriz:
void main() {
int not = 85;
if (not >= 85) {
print("Pekiyi");
} else if (not >= 70) {
print("İyi");
} else if (not >= 50) {
print("Geçer");
} else {
print("Başarısız");
}
}
Koşullar yukarıdan aşağıya kontrol edilir. İlk doğru koşulun bloğu çalışır ve diğer koşullar değerlendirilmez.
Mantıksal operatörler
&&(ve): İki koşul da doğru olmalıdır.||(veya): Koşullardan en az biri doğru olmalıdır.!(değil): Mantıksal sonucu tersine çevirir.
void main() {
int yazili = 70;
int uygulama = 80;
if (yazili >= 50 && uygulama >= 50) {
print("Her iki sınav notu da yeterli.");
} else {
print("En az bir sınav notu yetersiz.");
}
}
7. switch-case Yapısı
Bir değişkenin farklı değerlerine göre farklı işlemler yapmak için switch-case kullanabiliriz.
void main() {
int secim = 2;
switch (secim) {
case 1:
print("Ana Sayfa");
break;
case 2:
print("Öğrenci İşlemleri");
break;
case 3:
print("Not İşlemleri");
break;
default:
print("Geçersiz seçim");
}
}
switch: Kontrol edilecek değeri belirtir.case: Seçenekleri tanımlar.break: İlgili durumun çalışmasını bitirir.default: Eşleşen seçenek yoksa çalışır.
8. Döngüler: Tekrarlanan İşlemleri Kolaylaştıralım
1'den 100'e kadar sayıları tek tek print() yazarak ekrana basmak zahmetlidir. Döngüler, aynı işlemi tekrar tekrar yazmak yerine bir kod bloğunu birden fazla kez çalıştırmamızı sağlar.
Dart dilinde temel olarak üç döngü öğreneceğiz: for, while ve do-while.
8.1. for Döngüsü
Tekrar sayısı belli olduğunda for döngüsü sıkça kullanılır.
void main() {
for (int i = 1; i <= 5; i++) {
print(i);
}
}
Ekran çıktısı:
1
2
3
4
5
for döngüsünün üç bölümü:
int i = 1: Sayaç 1'den başlar.i <= 5: Sayaç 5'e eşit veya küçük olduğu sürece döngü çalışır.i++: Her tur sonunda sayaç bir artırılır.
i++, değişkenin değerini bir artırır; yani bu örnekte i = i + 1 ile aynı sonucu verir.
Örnek: 1'den 10'a kadar sayıların toplamı
void main() {
int toplam = 0;
for (int i = 1; i <= 10; i++) {
toplam = toplam + i;
}
print("Toplam: $toplam");
}Sonuç 55 olur. Döngü, 1'den 10'a kadar tüm sayıları toplam değişkenine ekler.
Örnek: 4'ün çarpım tablosu
void main() {
int sayi = 4;
for (int i = 1; i <= 10; i++) {
print("$sayi x $i = ${sayi * i}");
}
}
8.2. while Döngüsü
while döngüsü, koşul doğru olduğu sürece çalışır.
void main() {
int i = 1;
while (i <= 5) {
print(i);
i++;
}
}Bu kod da 1'den 5'e kadar sayıları yazdırır. Sayaç döngüden önce tanımlanır ve her turda artırılır.
Örnek: Otopark ücretini hesaplama
Bir otoparkın saatlik ücreti 40 TL olsun. Kullanıcı kaç saat kaldığını girsin.
import 'dart:io';
void main() {
print("Kaç saat kaldınız?");
int saat = int.parse(stdin.readLineSync()!);
int ucret = 0;
int i = 1;
while (i <= saat) {
ucret = ucret + 40;
i++;
}
print("Ödenecek ücret: $ucret TL");
}Kullanıcı 3 saat girerse ücret 120 TL olur. Döngü her saat için ücrete 40 TL ekler.
8.3. do-while Döngüsü
do-while döngüsünde önce kod bloğu çalışır, sonra koşul kontrol edilir. Bu yüzden koşul başlangıçta yanlış olsa bile döngü en az bir kez çalışır.
void main() {
int i = 1;
do {
print(i);
i++;
} while (i <= 5);
}
while ile do-while arasındaki fark:
void main() {
int i = 10;
while (i <= 5) {
print("while çalıştı");
}
do {
print("do-while çalıştı");
} while (i <= 5);
}Bu örnekte ekrana yalnızca do-while çalıştı yazılır. Çünkü while koşulu başta kontrol eder; do-while ise koşulu en sonda kontrol eder.
Döngüleri karşılaştıralım
| Özellik | for | while | do-while |
|---|---|---|---|
| Koşul kontrolü | Tur öncesi | Tur öncesi | Tur sonrası |
| En az bir kez çalışır mı? | Garanti değil | Garanti değil | Evet |
| Tipik kullanım | Tekrar sayısı belli | Koşul sürdükçe | En az bir kez işlem |
9. Kendinizi Deneyin: Uygulama Soruları
Bilgisayar başına geçin ve aşağıdaki soruları Dart dilinde çözmeye çalışın.
- Adınızı, yaşınızı ve okul numaranızı değişkenlerde tutarak ekrana yazdırın.
- Kullanıcıdan iki tam sayı alarak toplamını, farkını ve çarpımını yazdırın.
- Kullanıcıdan bir sınav notu alın. Not 50 veya daha büyükse “Geçti”, değilse “Kaldı” yazdırın.
switch-caseile 1 için “Ana Sayfa”, 2 için “Dersler”, 3 için “Sınavlar” yazdırın.fordöngüsüyle 1'den 20'ye kadar olan çift sayıları yazdırın.whiledöngüsüyle 10'dan 1'e kadar sayıları tersten yazdırın.do-whiledöngüsüyle 1'den 5'e kadar sayıların toplamını hesaplayın.fordöngüsüyle kullanıcından 5 sınav notu alın; toplamı ve ortalamayı yazdırın.