Bir üniversitenin sistemine uyarak ders ortalamasını hesaplayan ve çıkan sonuca göre geçme-kalma durumunu belirten bir uygulama yapacağız. Bu uygulamada girinti sistemine çok dikkat etmenizi istiyorum.
Bir önceki blogda, bunun için gerekli faktörleri vermiştik. Kısa bir şekilde özet geçelim.
Üniversitede temel olarak iki sınav vardır. Bunlardan ilki 'vize', ikincisi ise 'final' olarak adlandırılır. Bu ikisinin ortalaması ise vize sınavının %40'ının, final sınavının ise %60'ının alınıp toplanması ile bulunur. Öğrenci, 50'nin altında not alırsa bütünleme sınavına kalır ve bütünleme sınavından da 50'den düşük bir puan alırsa dersten kalır. Öğrenci, 50-55 aralığında bir not alırsa 'şartlı geçer'. 55'ten yüksek bir puan ise öğrencinin geçmesini sağlar
Şimdi, sırasıyla gideceğiz. İlk önce kullanıcıdan vize notunu almamız lazım. Bunun için input() fonksiyonunu kullanacağım.

Vize notunu bu şekilde istiyoruz. float olarak yazmamın sebebi de, virgüllü puanlar içindir. Bu noktada buraya tam sayı da girebilirsiniz. Ancak metinsel bir ifade giremezsiniz.
Bir sınav notunun 0 ile 100 arasında olması gerekiyor. Yani kullanıcı, 0'dan küçük veya 100'den büyük bir değer girmemelidir. Onu nasıl ayarlayacağız?

Gördüğünüz gibi 'vize >= 0 and vize <= 100' ifadesi ile bu kontrolü sağladım. Burada and operatörünü kullandığım için girilecek olan sayının 0 ile 100 arasında olması için kullanıcıyı zorluyorum. else kısmında ise bu kuralın ihlal edilmesi durumunda kullanıcıyı uyarıyorum. Dikkat ederseniz final notunu, kullanıcı eğer vize için 0 ile 100 arasında bir sayı girerse istiyorum. Eğer kullanıcı 0 ile 100 arasında bir sayı girmezse final notu da istenmeyecektir. Burayı denemekte yarar var:

İlk kırmızı kutuda 120 sayısını girdim. Bu sayı, 0 ile 100 arasında olmadığı için uyarımız gösterildi ve program sonlandı. İkinci kırmızı kutuda 20 sayısını girdim ve bu sayı 0 ile 100 arasında olduğu için benden final notunu istedi.
Şimdi, vize için yaptığımız kontrolün aynısını final için de yapmamız gerekiyor. Bunun için sadece değişkeni değiştirerek aynı komutu veriyorum:

if'e ait olan ':' ifadesini yerleştirdikten sonra girinti sistemine uygun şekilde başka bir değişken tanımlıyorum; 'ortalama'. Bu noktada ortalama değişkeninin tuttuğu değer, vize notunun %40'ı + final notunun %60'ı şeklindedir. Gireceğimiz vize ve final notlarını bu şekilde hesaplayarak ortalama isimli değişkene atayacaktır.
Bu noktada elbette, final notunun da yanlış girilme ihtimaline karşı else ile bir uyarı yollamamız gerekiyor.

Girinti sistemine dikkat edin çünkü işler birazdan karışacak. Bu noktada kırmızı kutu, kodun genelini oluşturan bir if - else yapısıdır. Yeşil kutudaki if - else yapısı ise, kırmızı kutudaki if koşulunun çalışması durumunda devreye girecektir.
'ortalama' değişkenini tanımladık. Bundan sonra yapmamız gereken şey, ortalama değişkeninin değerine yani öğrencinin ortalamasına göre koşullar belirlemektir. İlk olarak ortalama değişkeninin değerinin 50'den küçük olması olasılığını ele alalım. Bunun için 'if (ortalama < 50):' şeklinde bir ifade girebiliriz.

Eğer ortalama 50'nin altındaysa öğrenci, bütünleme sınavına kalıyordu. Ben de bu durumu ona belirtiyorum.
Diğer koşulumuz, öğrencinin ortalamasının 55'in üstünde olması durumu idi. Bu durumda öğrenci dersten geçiyordu. Bunu, elif ile kontrol edebiliriz.
Son olasılık ise, öğrencinin 50 ile 55 arasında bir puan alması idi. Bu durumda öğrenci 'şartlı geçmiş' sayılacaktır. Bunu da else ile kontrol edebiliriz çünkü başka bir olasılık kalmadı. Hemen yapalım.

Önce bu kodu deneyelim. Sonrasında devam edeceğiz.

Gördüğünüz üzere üç ihtimali de denedik; hepsi çalışır durumda. Şimdi, öğrencinin bütünleme sınavına kalması durumunu ele almalıyız. Buna ait kodları, 'bütünleme sınavına kaldınız' ifadesinin yer aldığı koşulda yazmamız lazım. Yani 'if (ortalama < 50):' kısmına gitmemiz gerekiyor.

'ortalama' değişkeninin değerinin 50'den düşük olması durumunda öğrenci bütünleme sınavına giriyordu. O yüzden, bu durumu ona print ile belirttik. Tam bu noktada kullanıcıdan bütünleme sınavına dair bir puan almamız lazım. Bunun için butunleme = float(input("Bütünleme notu: ")) şeklinde bir kod yazıyorum.
Hemen sonrasında ise bütünleme notunun da 0 ile 100 arasında olmasını istediğim için vize ve final sınavlarına uyguladığım kontrolü buraya da uyguluyorum. Ondan sonra if bloğu ile bütünleme notunun 50'den küçük olup olmadığını sorguluyorum. Eğer küçükse, 'Kaldın.' diyorum; büyükse 'Geçtin.' diyorum ve programımızı sonlandırıyorum.
Aşağıdaki görüntüde geçme ve şartlı geçme durumlarını ele aldım. Bunlarda herhangi bir kompleks yapı yok.

Aşağıdaki görselde ise bütünleme sınavına kalma durumunu ele aldım. Ortalama 50'den düşük olduğunda bana bütünleme sınavına kaldığımı belirtiyor ve hemen sonrasında benden bütünleme notunu girmemi istiyor.

Bütünleme sınavının da notunu girdiğimde bunun 50'den büyüklüğünü/küçüklüğünü kontrol ediyor ve ona göre geçme-kalma durumunu bildiriyor.

Girinti sistemi ve if - elif - else konusu için güzel bir pratik olduğunu düşünüyorum. Kodların kesintisiz hâli aşağıdadır, sevgiler.

Yayınlanma Tarihi: 2022-10-25 18:09:10
Son Düzenleme Tarihi: 2022-10-29 21:28:32