Algoritmalar ve Programlamaya Giriş 2025 Ara Sınav (Vize)
Kaynak: https://lolonolo.com/2025/10/26/algoritma-ve-programlamaya-giris-2025-vize-deneme-guz/
📖 Konu özeti (sınav öncesi tekrar)
Algoritma ve Programlamaya Giriş 2025 Vize Deneme (Güz)
Algoritma Temelleri ve Performans
Algoritma, belirli bir problemi çözmek veya bir görevi yerine getirmek için tasarlanan adım adım yönergeler bütünüdür. Her algoritmanın sonlu sayıda adımdan oluşması ve belirli bir sürede tamamlanması gerekir. Algoritmalar temel kontrol yapılarını kullanır:
“Sonlu yapı” bir kontrol yapısı türü değildir.
Algoritma performansı, algoritmanın ne kadar hızlı çalıştığı ve ne kadar bellek kullandığı ile ilgilidir. Performans genellikle O-Notasyonu (Big O Notation) ile ifade edilir. Bu notasyon, girdi boyutu (n) büyüdükçe algoritmanın çalışma süresinin veya bellek kullanımının nasıl arttığını gösterir. Daha düşük büyüme hızı, daha yüksek performans demektir. Performans sıralaması (yüksekten düşüğe): O(1) (sabit) > O(log n) (logaritmik) > O(n) (lineer) > O(n log n) > O(n2) (karesel) > O(n3) (kübik) … şeklindedir. Dolayısıyla O(1) en yüksek performansı ifade eder.
Koşullu Yapılar ve Mantıksal Operatörler
Seçimli yapılar, mantıksal koşullara dayanır. Bu koşullar birleştirilirken mantıksal operatörler kullanılır:
Örneğin, `a=5, b=8` için `a > 10 VE b < 5` koşulu yanlıştır (çünkü 5>10 yanlış). `a > 10 VEYA b < 5` koşulu da yanlıştır (çünkü hem 5>10 hem de 8<5 yanlış). String (metin) karşılaştırmaları yapılırken genellikle çift tırnak içinde değer kontrol edilir (örn: `ders_adı = “algoritma”`).
Tekrarlı Yapılar (Döngüler)
For Döngüsü: Belirli sayıda tekrar için kullanılır. Genellikle bir sayaç değişkeni, başlangıç değeri, bitiş koşulu ve artış/azalış miktarından oluşur. Örneğin, 10’dan 0’a kadar sayıları yazdırmak için başlangıç değeri 10, bitiş koşulu `>= 0` ve sayaç birer birer azaltılmalıdır. Artış miktarı negatif olabilir (azaltma). Artış miktarı kısmı bazı dillerde isteğe bağlı olabilir.
Alt Programlar (Fonksiyonlar)
Kod tekrarını önlemek ve programı modüler hale getirmek için kullanılan kod bloklarıdır. Bir ana programdan çağrılırlar. Parametre alabilir ve bir değer döndürebilirler (`return` komutu ile).
Veri ve Bilgi
Ham, işlenmemiş gerçekler Veri’dir. Verinin işlenip anlamlı hale getirilmesiyle Enformasyon oluşur. Enformasyonun yorumlanıp hedeflere ulaşmak için kullanılabilen anlayışa dönüşmesiyle Bilgi elde edilir.
Diziler (Arrays)
Aynı veri tipindeki elemanların bellekte ardışık olarak saklandığı veri yapısıdır. Elemanlara indis numarasıyla (genellikle 0’dan başlar) erişilir. Diziler string, char, sayısal gibi farklı tiplerde elemanlar tutabilir, ancak bir dizinin tüm elemanları aynı veri tipinde olmak zorundadır. Dizinin eleman sayısı programcı tarafından belirlenir. İki boyutlu diziler (matrisler) satır ve sütun indisleri ile kullanılır (örn: `matris[satir_indisi, sutun_indisi]`).
Arama ve Sıralama Algoritmaları
C Programlama Dili Notları
Algoritma ve Programlamaya Giriş 2025 Vize Deneme Sınavı
EĞER a > 10 VE b < 5 ise YAZ(“a 10’dan büyük ve b 5’ten küçüktür.”)
EĞER a > 10 VEYA b < 5 ise YAZ(“Ya a 10’dan büyüktür ya da b 5’ten küçüktür.”)
DEĞİLSE EĞER YAZ(“Ne a 10’dan büyük ne de b 5’ten küçüktür.”)
Yukarıda verilen kaba kodun çıktısı aşağıdaki şıklardan hangisinde doğru verilmiştir?
Ana programdan alt programın çağrılması için boş bırakılan yere gelmesi gereken doğru cevap, şıklardan hangisinde verilmiştir?
Alt Program
int Faktoriyel (int n)
BAŞLA
IF (n == 0) THEN
return 1
ELSE
return (n * Faktoriyel (n - 1))
END IF
BİTİR
Ana Program
BAŞLA
OKU ("Sayı giriniz:", sayı)
_______
YAZ (sonuç)
BİTİRBAŞLA
FOR i = 0 TO 3
FOR j = 0 TO 4
YAZ (matris[i, j])
NEXT j
NEXT i
BİTİR
Buna göre aşağıdaki şıklardan hangisi bu işlemlerin yapılmasını sağlar?
Bu tabloya göre:
- 8 elemanı: i=2, j=1 indisindedir (
sayılar[2,1]) - 9 elemanı: i=2, j=2 indisindedir (
sayılar[2,2]) - 3 elemanı: i=0, j=2 indisindedir (
sayılar[0,2])