9.Sınıf Bilgisayar Bilimi 1.Dönem 2.Yazılı - Açık Uçlu Sorular
-
Bilgisayar programları neden modüller kullanarak yazılır? Modüler programlamanın avantajları nelerdir?
-
Doğrusal yapı nedir? Klavyeden girilen sınav puanlarının aritmetik ortalamasını hesaplayan doğrusal bir yapıyı açıklayın.
-
Bir marketteki çay paketlerinin fiyatını ve indirim oranlarını hesaplayan algoritma ve akış şeması nedir?
-
Klavyeden girilen üç kenar uzunluğuna göre bir üçgen oluşturup oluşturamayacağını kontrol eden algoritma ve akış şeması nedir?
-
Girilen iki değer arasındaki sayıların toplamını bulan ve ekrana yazdıran algoritma ve akış şeması nedir?
-
Bir öğrencinin ortalama ve devamsızlık bilgisine göre geçme/kalma durumunu kontrol eden algoritma ve akış şeması nedir?
-
Klavyeden girilen bir sayının faktöriyelini hesaplayan algoritma ve akış şeması nedir?
-
Programcının modülleri nasıl oluşturması önerilir ve modül oluştururken nelere dikkat etmelidir?
-
Etkileşim çizelgesi nasıl oluşturulur ve bu problem için nasıl kullanılır?
-
Verilen problem için seçilen çözüm seçeneğini açıklayınız.
-
Verilen bir öğrencinin puan ortalamasına göre belge alma durumunu kontrol eden bir programın iç içe karar yapıları kullanarak tasarlanması nasıl olur?
-
Pozitif mantık ve negatif mantık arasındaki temel farklar nelerdir?
-
While/While End döngü yapısının avantajları ve dezavantajları nelerdir?
-
While/While End döngü yapısı ile ilgili bir örnekleme yaparak, bir döngü yapısının nasıl oluşturulduğunu açıklayınız.
-
Kullanıcının girdiği 10 sayı için 2'ye, 3'e ve 5'e bölünebilen sayıların adedini ve toplamlarını bulan bir programın algoritmasını yazınız.
-
Kullanıcının girdiği şifrenin belirli kriterlere uyup uymadığını kontrol eden bir programın algoritmasını yazınız.
CEVAP ANAHTARI
- Bilgisayar programları modüler bir yapıda yazılır çünkü bu, programın bütününü anlamlı işlemler içeren parçalara bölerek daha düzenli ve sürdürülebilir bir hale getirir. Modüler programlamanın avantajları, kodun okunabilirliğini artırmak, bakımını kolaylaştırmak ve yeniden kullanılabilirliği teşvik etmektir.
- Doğrusal yapı, işlemleri sırasıyla çalıştıran bir yapıdır. Örneğin, klavyeden girilen iki sınav puanının aritmetik ortalamasını hesaplayan bir doğrusal yapıda adımlar sırasıyla çalışır: başla, notları oku, ortalamayı hesapla, ortalamayı yaz, bitir.
- 1. Başla 2. Çay Paketi Fiyatı = 10 TL 3. Çay Adeti Oku 4. İndirim Oranını Belirle 5. İndirimli Fiyatı Hesapla 6. KDV'yi Hesapla (%8) 7. Toplam Fiyatı Hesapla 8. Yaz "Toplam Ödeme: Toplam Fiyat" 9. Bitir
- 1. Başla 2. Kenar Uzunluklarını Oku 3. Eğer (a + b > c) ve (a + c > b) ve (b + c > a) ise 4. Yaz "Üçgen Oluşturulabilir" 5. Değilse 6. Yaz "Üçgen Oluşturulamaz" 7. Bitir
- 1. Başla 2. Başlangıç ve Bitiş Değerlerini Oku 3. Toplam = 0 4. İ Sayacı = Başlangıç 5. Sonsuz Döngü: 6. Eğer İ Sayacı > Bitiş ise 7. Döngüden Çık 8. Toplam = Toplam + İ Sayacı 9. İ Sayacı Artır 10. Yaz "Aralıktaki Sayıların Toplamı: Toplam" 11. Bitir
- 1. Başla 2. Ortalama ve Devamsızlık Bilgilerini Oku 3. Eğer Ortalama >= 50 ve Devamsızlık <= 10 ise 4. Yaz "Geçti" 5. Değilse 6. Yaz "Kaldı" 7. Bitir
- 1. Başla 2. Sayıyı Oku 3. Faktöriyel = 1 4. İ Sayacı = 1 5. Sonsuz Döngü: 6. Faktöriyel = Faktöriyel * İ Sayacı 7. İ Sayacı Artır 8. Eğer İ Sayacı > Sayı ise 9. Döngüden Çık 10. Yaz "Faktöriyel: Faktöriyel" 11. Bitir
- Programcılar modüller oluştururken aşağıdaki prensiplere dikkat etmelidir: Modüller, işlemleri başlatır, gerçekleştirir ve tamamlar. Aralarında dallanma olmamalıdır. Her modül, tek bir işlevi yerine getirmelidir; bu, modülün anlaşılırlığını artırır. Modüller rahatça anlaşılabilir ve kolayca güncellenebilir olmalıdır. Modül uzunluğu, işlevine ve yönergelerin sayısına bağlı olarak değişebilir. Modüller, süreç akışını kontrol etmek ve organize etmek için oluşturulmalıdır.
- Etkileşim çizelgesi oluşturmak için öncelikle problemi daha küçük parçalara bölmeli ve bu parçalar arasındaki etkileşimi belirlemelisiniz. Verilen problemde etkileşim çizelgesi şu şekilde olabilir: [Kullanıcıdan Veri Al] -> [Faiz Hesapla] -> [Sonuçu Yazdır]
- Verilen problem için seçilen çözüm seçeneği şu şekildedir: Bütün verileri değişken olarak tanımla ve girdi olarak al. Anapara ve faiz yüzdesini sabit olarak tanımla. Her bir seferde bir banka için hesaplama yap.
- # Algoritma If ortalama >= 50 Then Doğru If ortalama >= 85 Then durum = “Takdir Belgesi” Else If ortalama >= 70 Then durum = “Teşekkür Belgesi” Else durum = “Belge Yok” End If End If Else Yanlış durum = “Kaldı” End If # Akış Şeması If ortalama >= 50 Doğru If ortalama >= 85 durum = “Takdir Belgesi” Else If ortalama >= 70 durum = “Teşekkür Belgesi” Else durum = “Belge Yok” End If End If Else Yanlış durum = “Kaldı” End If
- Pozitif mantık ve negatif mantık arasındaki temel farklar şunlardır: Pozitif Mantık: Pozitif mantıkta, koşul doğru olduğunda belirli bir eylem gerçekleştirilir. Yani, "doğru" durumunda belirli bir şartın yerine getirilmesi beklenir. "Doğru" durumu gerçekleşmediğinde ise başka bir duruma geçilir. Negatif Mantık: Negatif mantıkta ise, koşul yanlış olduğunda belirli bir eylem gerçekleştirilir. Yani, "yanlış" durumunda belirli bir şartın yerine getirilmesi beklenir. "Yanlış" durumu gerçekleşmediğinde ise başka bir duruma geçilir.
- Avantajlar: Esneklik: While/While End döngü yapısı, tekrarlanan işlemleri bir koşula bağlı olarak esnek bir şekilde gerçekleştirmeyi sağlar. Koşul doğru olduğu sürece döngü devam eder. Anlaşılırlık: Doğru bir şekilde kullanıldığında, bu döngü yapısı algoritmanın okunabilirliğini artırabilir. Girinti ve uygun biçimlendirme ile kodun anlaşılması kolaylaşır. İleriye Dönük Kontrol: Koşulun döngü başında kontrol edilmesi, döngünün başlamadan önce belirli bir durumu kontrol etme ve işlem yapma olanağı sağlar. Dezavantajlar: Sonsuz Döngü Riski: Koşulun yanlış olmaması durumunda döngü sonsuz bir şekilde devam edebilir. Bu durum, programın istenmeyen bir şekilde çalışmasına neden olabilir. Performans: Döngülerin sürekli olarak koşulu kontrol etmesi, büyük veri setleri veya uzun süreli işlemler için performans sorunlarına yol açabilir. Karmaşıklık: Karmaşık bir koşul kullanılması veya döngü içindeki işlemlerin anlaşılması zor olabilir. Bu durum, bakım ve geliştirme süreçlerini zorlaştırabilir.
- # Algoritma toplam = 0 sayac = 1 While sayac <= 5 toplam = toplam + sayac sayac = sayac + 1 While End # Akış Şeması [1] --(Başla)---> [Koşul: sayac <= 5] ---- Evet ----> [İşlem: toplam = toplam + sayac] | | -----------(Hayır)-------------------<------------ | [2] --(Bitir)--> [Sonuç: toplam] Bu örnekte, 1'den 5'e kadar olan sayıların toplamını bulan bir döngü yapılmıştır. Sayac, döngü başında 1 olarak atanır ve her adımda bir artırılır. Koşul, sayac'ın 5'e eşit veya küçük olup olmadığını kontrol eder. Eğer koşul doğru ise, toplam değişkenine sayac eklenir ve sayac bir artırılır. Bu işlem, sayac 5'e eşit veya küçük olana kadar devam eder.
- 1. Başla. 2. i = 1 3. 2_bölünebilen_adet = 0, 2_bölünebilen_toplam = 0 4. 3_bölünebilen_adet = 0, 3_bölünebilen_toplam = 0 5. 5_bölünebilen_adet = 0, 5_bölünebilen_toplam = 0 6. Tekrarla 10 kez: a. Sayı Gir; (sayı) b. Eğer sayı % 2 == 0; 2_bölünebilen_adet = 2_bölünebilen_adet + 1 2_bölünebilen_toplam = 2_bölünebilen_toplam + sayı c. Eğer sayı % 3 == 0; 3_bölünebilen_adet = 3_bölünebilen_adet + 1 3_bölünebilen_toplam = 3_bölünebilen_toplam + sayı d. Eğer sayı % 5 == 0; 5_bölünebilen_adet = 5_bölünebilen_adet + 1 5_bölünebilen_toplam = 5_bölünebilen_toplam + sayı 7. Bitir.
- 1. Başla. 2. Şifre Gir; (şifre) 3. En az 8 karakter kontrolü: Eğer ŞifreUzunluğu(şifre) >= 8; Yazdır: "Şifre en az 8 karakter içermektedir." değilse Yazdır: "Şifre en az 8 karakter içermelidir." 4. En az bir simge içermeyi kontrol et: Eğer ŞifreSimgeVarMı(şifre); Yazdır: "Şifre bir simge içermektedir." değilse Yazdır: "Şifre bir simge içermelidir." 5. En az bir sayı içermeyi kontrol et: Eğer ŞifreSayıVarMı(şifre); Yazdır: "Şifre bir sayı içermektedir." değilse Yazdır: "Şifre bir sayı içermelidir." 6. Bitir.