İki durumu birbirinden ayırmak

Merhabalar,
if/else çalışırken böyle bi kod yazdım. Kullanıcıdan 2 vize (%60) ve 1 final (%40) notunu alıp ortalamaya göre geçme durumunu hesaplamak.
Eğer ortalama 50 ve üstündeyse geçti değilse kaldı yazdırmaya çalışıyorum.
a) Ortalama 50 olsa bile final notu en az 50 olmalı.
b) Finalden 70 ve üzeri alındığından ortalamanın önemi kalmasın.

İki durumu birden çalıştırıyorum istemsiz şekilde. Birbirinden nasıl ayırabilirim. Eğer ortalama 50 nin altına ve final notu 70 üstüyse: önce ilk durumdan dolayı geçemediğini sonra da 70 üstü olduğu için geçebilceğini yazdırıyor. Sadece geçme durumunu yazdırmak istiyorum.

Şimdiden ilgilenen arkadaşlara teşekkür ederim.

bkz: Soru Sorarken Sıkça Düşülen Hatalar #4

Iki kere calistiginda sorun olmayacak bir kod kullanarak. Mesela gecti = True.

Bunu ilk okudugumda aklima gelen soru “ortalama 60, final notu 40 ise ne olacak” idi.

Harf verilmemis sik (“Eğer ortalama 50 ve üstündeyse geçti değilse kaldı yazdırmaya çalışıyorum.”) hem a hem de b tarafindan degistiriliyor. Iki kere gecersiz kilinan maddeyi basa yazmaktansa baska bir sekil dusunmek lazim:

a) Ortalama >=50 ise, final notu da >=50 ise geciyor
b) Final notu >=70 ise ortalamaya bakmaksizin geciyor
c) Kaliyor

Bu yine ideal degil (neden? nasil duzeltilebilir?) ama en azindan her sey siklardan olusturu icin calisiyor.

2 Beğeni

Anladım teşekkür ederim. Kod paylaşımına da dikkat ederim. Forumda yeniyim

  1. Ortalama hesabınız hatalı vize2 den sonra parantez kapatılmalı
  2. Sizin tercih ettiğiniz algoritma üzerinde gidersek (1 ve 6. satırlar ortalama için bloklar)

if (ortalama>=50): if (final>=50): ----------------- else: ----------------- else: if (final>=70): ----------------- else: -----------------

1 Beğeni