Temel Programlama Notları
Programlama Nedir?
Programlama, bilgisayarlara ne yapması gerektiğini söyleme sanatıdır. Bir programlama dili kullanarak bilgisayarın anlayabileceği talimatlar yazarsınız ve bilgisayar bu talimatları yerine getirir.
💡 Programlama Öğrenmenin Faydaları:
- Problem çözme yeteneklerinizi geliştirir
- Mantıksal düşünme becerilerinizi artırır
- Yaratıcılığınızı ortaya çıkarır
- İyi bir kariyer fırsatı sunar
- Kendi projelerinizi hayata geçirebilirsiniz
Temel Kavramlar
1. Değişkenler (Variables)
Veri saklama birimleridir. Bir kutu gibi düşünebilirsiniz, içine değer koyarsınız.
C# Örneği:
// Değişken tanımlama
int yas = 25;
string ad = "Ahmet";
double maas = 5000.50;
bool aktif = true;
// Değişken kullanımı
Console.WriteLine("Ad: " + ad);
Console.WriteLine("Yaş: " + yas);
JavaScript Örneği:
// Değişken tanımlama
let yas = 25;
const ad = "Ahmet";
var maas = 5000.50;
// Değişken kullanımı
console.log("Ad: " + ad);
console.log("Yaş: " + yas);
2. Veri Tipleri (Data Types)
- int: Tam sayılar (1, 2, 100, -5)
- double/float: Ondalıklı sayılar (3.14, 2.5)
- string: Metin ("Merhaba", "Ahmet")
- bool: Mantıksal (true, false)
- char: Tek karakter ('A', 'x')
3. Operatörler (Operators)
Aritmetik Operatörler:
int a = 10;
int b = 3;
int toplam = a + b; // 13
int fark = a - b; // 7
int carpim = a * b; // 30
int bolum = a / b; // 3
int kalan = a % b; // 1 (mod)
Karşılaştırma Operatörleri:
int x = 5;
int y = 10;
bool esitMi = (x == y); // false
bool esitDegilMi = (x != y); // true
bool buyukMu = (x > y); // false
bool kucukMu = (x < y); // true
bool buyukEsitMi = (x >= y); // false
bool kucukEsitMi = (x <= y); // true
Mantıksal Operatörler:
bool a = true;
bool b = false;
bool ve = a && b; // false (AND)
bool veya = a || b; // true (OR)
bool degil = !a; // false (NOT)
4. Koşullar (Conditionals)
Karar yapıları. "Eğer şu olursa, bunu yap" mantığı.
if-else:
int yas = 18;
if (yas >= 18) {
Console.WriteLine("Reşitsiniz");
} else {
Console.WriteLine("Reşit değilsiniz");
}
// Çoklu koşul
int not = 75;
if (not >= 90) {
Console.WriteLine("AA");
} else if (not >= 80) {
Console.WriteLine("BA");
} else if (not >= 70) {
Console.WriteLine("BB");
} else {
Console.WriteLine("Geçemedi");
}
switch-case:
int gun = 3;
switch (gun) {
case 1:
Console.WriteLine("Pazartesi");
break;
case 2:
Console.WriteLine("Salı");
break;
case 3:
Console.WriteLine("Çarşamba");
break;
default:
Console.WriteLine("Geçersiz gün");
break;
}
5. Döngüler (Loops)
Tekrarlayan işlemler için kullanılır.
for Döngüsü:
// 1'den 10'a kadar sayıları yazdır
for (int i = 1; i <= 10; i++) {
Console.WriteLine(i);
}
// Dizi elemanlarını yazdır
string[] isimler = {"Ahmet", "Ayşe", "Mehmet"};
for (int i = 0; i < isimler.Length; i++) {
Console.WriteLine(isimler[i]);
}
while Döngüsü:
int sayac = 0;
while (sayac < 5) {
Console.WriteLine("Sayaç: " + sayac);
sayac++;
}
foreach Döngüsü:
string[] meyveler = {"Elma", "Armut", "Muz"};
foreach (string meyve in meyveler) {
Console.WriteLine(meyve);
}
6. Fonksiyonlar (Functions/Methods)
Yeniden kullanılabilir kod blokları.
// Parametresiz fonksiyon
void SelamVer() {
Console.WriteLine("Merhaba!");
}
// Parametreli fonksiyon
void SelamVerKisiye(string isim) {
Console.WriteLine("Merhaba " + isim);
}
// Değer döndüren fonksiyon
int Topla(int a, int b) {
return a + b;
}
// Kullanım
SelamVer(); // Merhaba!
SelamVerKisiye("Ahmet"); // Merhaba Ahmet
int sonuc = Topla(5, 3); // 8
7. Diziler (Arrays)
Aynı tipte birden fazla değeri saklar.
// Dizi tanımlama
int[] sayilar = {1, 2, 3, 4, 5};
string[] isimler = new string[3];
// Dizi elemanlarına erişim
isimler[0] = "Ahmet";
isimler[1] = "Ayşe";
isimler[2] = "Mehmet";
Console.WriteLine(isimler[0]); // Ahmet
// Dizi uzunluğu
int uzunluk = sayilar.Length; // 5
8. Listeler (Lists)
Dinamik boyutlu diziler.
using System.Collections.Generic;
// Liste oluşturma
List sehirler = new List();
// Eleman ekleme
sehirler.Add("İstanbul");
sehirler.Add("Ankara");
sehirler.Add("İzmir");
// Eleman silme
sehirler.Remove("Ankara");
// Eleman sayısı
int adet = sehirler.Count;
// Listeyi dolaşma
foreach (string sehir in sehirler) {
Console.WriteLine(sehir);
}
Nesne Yönelimli Programlama (OOP)
Class (Sınıf) ve Object (Nesne)
// Class tanımlama
public class Araba {
// Properties (Özellikler)
public string Marka { get; set; }
public string Model { get; set; }
public int Yil { get; set; }
// Constructor (Yapıcı metot)
public Araba(string marka, string model, int yil) {
Marka = marka;
Model = model;
Yil = yil;
}
// Method (Metot)
public void BilgiGoster() {
Console.WriteLine($"{Yil} {Marka} {Model}");
}
}
// Object oluşturma
Araba benimArabam = new Araba("Toyota", "Corolla", 2020);
benimArabam.BilgiGoster(); // 2020 Toyota Corolla
Encapsulation (Kapsülleme)
public class BankaHesabi {
private double bakiye; // private - dışarıdan erişilemez
public double Bakiye {
get { return bakiye; }
private set { bakiye = value; }
}
public void ParaYatir(double miktar) {
if (miktar > 0) {
bakiye += miktar;
}
}
public void ParaCek(double miktar) {
if (miktar > 0 && miktar <= bakiye) {
bakiye -= miktar;
}
}
}
Hata Yönetimi (Exception Handling)
try {
int sayi = int.Parse("abc"); // Hata oluşur
}
catch (FormatException ex) {
Console.WriteLine("Geçersiz format: " + ex.Message);
}
catch (Exception ex) {
Console.WriteLine("Bir hata oluştu: " + ex.Message);
}
finally {
Console.WriteLine("Her durumda çalışır");
}
Örnek: Basit Hesap Makinesi
using System;
class HesapMakinesi {
static void Main() {
Console.WriteLine("=== Hesap Makinesi ===");
Console.Write("Birinci sayıyı girin: ");
double sayi1 = Convert.ToDouble(Console.ReadLine());
Console.Write("İkinci sayıyı girin: ");
double sayi2 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("\nİşlem seçin:");
Console.WriteLine("1. Toplama");
Console.WriteLine("2. Çıkarma");
Console.WriteLine("3. Çarpma");
Console.WriteLine("4. Bölme");
int secim = Convert.ToInt32(Console.ReadLine());
double sonuc = 0;
switch (secim) {
case 1:
sonuc = sayi1 + sayi2;
Console.WriteLine($"Sonuç: {sonuc}");
break;
case 2:
sonuc = sayi1 - sayi2;
Console.WriteLine($"Sonuç: {sonuc}");
break;
case 3:
sonuc = sayi1 * sayi2;
Console.WriteLine($"Sonuç: {sonuc}");
break;
case 4:
if (sayi2 != 0) {
sonuc = sayi1 / sayi2;
Console.WriteLine($"Sonuç: {sonuc}");
} else {
Console.WriteLine("Sıfıra bölme hatası!");
}
break;
default:
Console.WriteLine("Geçersiz seçim!");
break;
}
Console.ReadKey();
}
}
🎯 Öğrenme İpuçları:
- Her gün düzenli pratik yapın
- Küçük projelerle başlayın
- Hataları öğrenme fırsatı olarak görün
- Kod yazarken yorum satırları ekleyin
- Başkalarının kodlarını okuyun
- Online platformlarda (LeetCode, HackerRank) pratik yapın
- Bir proje yaparak öğrenin (To-Do List, Hesap Makinesi, vb.)
