14 Aralık 2013 Cumartesi



Soru çözümleri kişiden kişiye değişebilir. Bir sorunun birden fazla çözümü olabilir. Bunun sebebi kullanıcının sorunun çözümü için izlediği algoritmaya bağlıdır. Doğru çalışan her kod bir çözümdür. Bu yüzden sizin yazmış olduğunuz kodlar aşağıdaki kodların aynısı olmak zorunda değildir.


Soru 1) Bir dersten geçme notu 50 olarak belirlenmiş olsun. Kullanıcıya notunu sorup dersten geçme-kalma durumunu ekrana yazan programı yazınız.
Çözüm:
# !/usr/bin/env python
# -*- coding: cp1254 -*-

alinanNot = int(input("Notunuzu giriniz:"))
# Kullanıcıdan notunu girmesini istiyoruz ve
# Kullanıcı girişini int türüne dönüştürüyoruz
# Dikkat! Değişkenimizin ismini not olarak tanımlayamayız.
# Çünkü 'not' deyimi Python'da değil işlemi için kullanılan bir komuttur.

# Girilen notun 0-100 aralığında olacağını da kontrol edelim.
if alinanNot < 0 or alinanNot > 100:# Girilen not 0'dan küçük ve 100 den büyük ise
    print ("Geçersiz bir not değeri girdiz!")

elif alinanNot < 50:    # Girilen not 50'dan küçük ise
    print ("KALDINIZ")
else:     # Geriye kalan diğer durumlar için geçtiğini belirtmek için yani [50,100] aralığı
    print ("GEÇTİNİZ")

Soru 2) Bir öğrencinin 2 tane sınav notunu kullanıcıdan alıp ortalamasını bulunuz. 100'lük sistemdeki bu notu 5'lik sistemdeki nota dönüştüren programı yazınız. (0-24->0; 25-44->1; 45-54->2; 55-69->3; 70-84->4; 85-100->5)
Çözüm:
# !/usr/bin/env python
# -*- coding: cp1254 -*-

alinanNot1 = int(input("1. Notunuzu giriniz:"))
alinanNot2 = int(input("2. Notunuzu giriniz:"))

# Geçersiz not girilmesi durumlarını kontrol edelim
if alinanNot1 < 0 or alinanNot2 < 0 or alinanNot1 > 100 or alinanNot2 > 100:
    print ("Geçersiz bir not değeri girdiniz!")
else:
# Geçerli bir not girildiyse ortalama hesaplanacak ve
# ortalamanın hangi not aralığında olduğu bulunacak
    ortalama = (int(alinanNot1) + int(alinanNot2)) / 2
    if ortalama <= 100:
        karneNotu = 5
    if ortalama < 85:
        karneNotu = 4
    if ortalama < 70:
        karneNotu = 3
    if ortalama < 55:
        karneNotu = 2
    if ortalama < 45:
        karneNotu = 1
# Karne notunu bulmak için hep 'if' deyimini kullandık
# 'elif' deyimi kullansaydık hata yapardık. Bu iki kullanımın
# farkını ayırt edemiyorsanız, yazımızı tekrar okuyabilirsiniz.

# Ortalamayı ve Karne Notunu ekrana yazalım
print ("Ortalamanız:",ortalama)
print ("Karne Notunuz:",karneNotu)

Soru 3) Kullanıcının 1 ile 7 arasında bir sayı girmesini isteyiniz. Girilen sayının haftanın hangi günü olduğunu bulan programı yazınız. Hatalı girişlerde programın uyarı vermesini sağlayınız.
Çözüm:
# !/usr/bin/env python
# -*- coding: cp1254 -*-
 
sayi = int(input("1-7 arasında bir sayı giriniz(sınırlar dahil):"))

# Sayı belirtilen aralıkta mı?
if sayi >= 1 and sayi <= 7:
    # Girilen sayı belirtilen aralıkta ise bu koşullar çalışacak
    if sayi == 1:
        print ("Pazartesi")
    elif sayi == 2:
        print ("Salı")
    elif sayi == 3:
        print ("Çarşamba")
    elif sayi == 4:
        print ("Perşembe")
    elif sayi == 5:
        print ("Cuma")
    elif sayi == 6:
        print ("Cumartesi")
    elif sayi == 7:
        print ("Pazar")
# Belirtilen aralığın dışında bir sayı girilmişse uyarı verelim
else:
    print("Geçersiz bir değer girdiniz!")


14 yorum :

  1. Birinci Soru Benim Yorumum:
    # -*- coding: cp1254 -*-
    #Soru 1) Bir dersten geçme notu 50 olarak belirlenmiş olsun. Kullanıcıya notunu sorup dersten geçme-kalma durumunu ekrana yazan programı yazınız.
    notGir = input("Notunuzu Giriniz: ")
    if notGir == 50:
    print "Tebrikler Geçtiniz."
    elif notGir >= 40:
    print "Ucundan Kaldın."
    elif notGir >= 30:
    print "Ortalamayı Tutturamadın."
    elif notGir >= 20:
    print "Maalesef Kaldınız."
    else:
    print "Maalesef Siktir Gidiniz."

    YanıtlaSil
    Yanıtlar
    1. bu kodda 100 alan adama siktir çekmiş oluyorsun.
      kod yanlış. düzeltiyorum;

      notGir = input("Notunuzu Giriniz: ")
      if int (notGir) >= 50:
      print "Tebrikler Geçtiniz."
      elif int (notGir) >= 40:
      print "Ucundan Kaldın."
      elif int (notGir) >= 30:
      print "Daha çok çalışmalısınız."
      elif int (notGir) >= 20:
      print "Başka bir bölüme geçmeyi düşünebilirsiniz. Notunuz berbat."
      else:
      print "Adam ol Adam!"

      Sil
    2. ne diye böyle yazarsınız...

      Sil
  2. Son Örneği de Yaptım Hocam:
    # -*- coding: cp1254 -*-
    #Soru 3) Kullanıcının 1 ile 7 arasında bir sayı girmesini isteyiniz. Girilen sayının haftanın hangi günü olduğunu bulan programı yazınız. Hatalı girişlerde programın uyarı vermesini sağlayınız.
    gunGir = input("Lütfen 1 ile 7 Arasında Bir Sayı Giriniz: ")
    if gunGir == 1:
    print "Pazartesi Seçildi."
    elif gunGir == 2:
    print "Salı Seçildi."
    elif gunGir == 3:
    print "Çarşamba Seçildi."
    elif gunGir == 4:
    print "Perşembe Seçildi."
    elif gunGir == 5:
    print "CUMA Seçildi / Mübarek Gündür Camileri Dolduralım."
    elif gunGir == 6:
    print "Cumartesi Seçildi."
    elif gunGir == 7:
    print "Pazar Günü Seçildi."
    else:
    print "Böyle Bir Tercih Hakkınız Bulunmamaktadır."

    YanıtlaSil
  3. Yalnız ikinci soruda sadece yukarıdaki çözümdeki gibi çözülürse elif lerde hata alırız, farklı mantıklar kurulduğunda elif ler çalışıyor, dolayısıyla genelleme olarak algılanmasın adminin çözümü. :)

    YanıtlaSil
  4. if ortalama <= 100:
    karneNotu = 5
    if ortalama < 85:
    karneNotu = 4
    if ortalama < 70:
    karneNotu = 3
    if ortalama < 55:
    karneNotu = 2
    if ortalama < 45:
    karneNotu = 1
    buradakimantığı çözemedim..ilk önce girilen sayı 100 den küçük olduğu için 5 ,85 ten küçük olduğu için 4 ....45 ten küçük olduğu için bir atıyor..44 girdiğim zaman 54321 değerlerini mi stack' a atıyor

    YanıtlaSil
    Yanıtlar
    1. Benim burada anladığım mantık şu oldu dostum eğer ortalama 100'e eşit veya 100'den düşükse karne notunu 5 veriyor ve sonraki satıra geçiyor.sonraki satırda ise ortalama 85 ten düşükse karne notunu yeniden düzenliyor ve nota 4 diyor yani 5'i 4'e çeviriyor.(a=5 dedikten sonra a yazarsan 5 der ama sonra sen a=4 dersen a yazarsan sana artık 4 der hesabı)eğer ortalama 70 den aşağı düşmezse 3'e çevirmiyor.

      Sil
  5. Ben neden elif olmayacağını anlayamadım bir türlü birisi anlatabilir mi ?

    YanıtlaSil
    Yanıtlar
    1. Bende yazarın neden böyle bir şeye değindiğini anlamadım.Oysa elif kullanarak oluşturabildim ben.

      Sil
    2. Yani elif farklı kodlamayla kullanılabilir fakat adminin yaptığı kodda kullanılamaz bunun sebebi ise

      if ortalama <=100:
      karneNotu=5
      elif ortalama <85:
      karneNotu=4

      şeklinde yazarsak her durumda karne notu 5 olarak gözükecektir çünkü her durumda if ile başlayan kodumuz doğru çıkacak ve bu sebeple de altındaki elifleri atlayacaktır.

      Sil
    3. ELif ile nasıl olacağını az önce yayınladım.. and operatörünü kullanarak elif ilede yapabilirsin. Ama yukarıda ki örnekte ilk "if" den sonra elif ile devam etseydin çalışma hatası alırdın.

      Sil
  6. Cevaplarım doğru mu acaba?

    1. cevap:

    sayi = raw_input ("Lütfen notunuzu giriniz: ")
    if int(sayi) > 50:
    print ("Geçtiniz!")
    if int(sayi) > 100:
    print ("100'den fazla almış olma ihtimalin yok ki mal. :)")
    elif int(sayi) < 50:
    print ("Kaldınız!")
    else:
    print ("Ucu ucuna yırttın. Hadi iyisin. :)")

    2. cevap:

    print "100'lük notunuzu ortalamaya dönüştüren programa hoşgeldiniz!"
    sayi = raw_input ("Lütfen notunuzu girin: ")
    if int(sayi) < 24:
    print ("Notunuz 0'dır.")
    elif int(sayi) < 44:
    print ("Notunuz 1'dir.")
    elif int(sayi) < 54:
    print ("Notunuz 2'dir")
    elif int(sayi) < 69:
    print ("Notunuz 3'dür.")
    elif int(sayi) < 84:
    print ("Notunuz 4'tür.")
    elif int(sayi) < 101:
    print ("Notunuz 5'dir")
    if int(sayi) > 100:
    print ("100'den fazla almış olma ihtimalin yok!")

    3. cevap:

    sayi = raw_input ("Lütfen 1 ile 7 arasında bir sayı giriniz: ")
    if int(sayi) < 1:
    print ("Hatalı giriş yaptınız!")
    if int(sayi) == 1:
    print ("Girdiğiniz sayı pazartesidir.")
    if int(sayi) == 2:
    print ("Girdiğiniz sayı salıdır.")
    if int(sayi) == 3:
    print ("Girdiğiniz sayı çarşambadır.")
    if int(sayi) == 4:
    print ("Girdiğiniz gün perşembedir.")
    if int(sayi) == 5:
    print ("Girdiğiniz gün cumadır.")
    if int(sayi) == 6:
    print ("Girdiğiniz gün cumartesidir.")
    if int(sayi) == 7:
    print ("Girdiğiniz gün pazardır.")
    if int(sayi) > 7:
    print ("Hatalı giriş yaptınız.")

    YanıtlaSil
    Yanıtlar
    1. 2. cevap eksik. Düzeltiyorum:

      print "Ders ortalaması ve not hesaplama programına hoşgeldiniz."
      sayi1 = raw_input ("Lütfen 1. dönem notunuzu giriniz: ")
      sayi2 = raw_input ("Lütfen 2. dönem notunuzu giriniz: ")
      ortalama = int(sayi1) + int(sayi2)
      ortalama = ortalama / 2
      print ortalama
      if ortalama < 101:
      notunuz = 5
      if ortalama < 85:
      notunuz = 4
      if ortalama < 70:
      notunuz = 3
      if ortalama < 55:
      notunuz = 2
      if ortalama < 40:
      notunuz = 1
      print notunuz

      Sil