Programlama soru çözümü

Ha bir de şunu eklemek istiyorum,
"methoda 1 vereceksin, sana bir şey döndürecek, 2 vereceksin sana bir şey döndürecek. Bunları yorumlayarak sana 3k vereceği sayıyı bulmanı istiyor."
Derken arasındaki oranı almaktan bahsetmiyorum, deneye deneye gitmen gerektiğini söylüyorum. Çünkü eğer adamın sana verdiği method bol if else'li farklı aralıklarda farklı matematiksel hesaplara sahip bir fonksiyon ise oran kurmaya çalıştığında yanılırsın. Daha açık konuşmak gerekirse,

3k'nın karşılığını mı arıyorsun?
4500'den başlayacaksın. Fazla mı geldi? 4400'e ineceksin, hala mı fazla? 4300'e ineceksin. Bu sefer az mı geldi? 4350'ye çıkacaksın, Hâlâ mı az? 4375'e çıkacaksın. Hâlâ mı az? 4388'e çıkacaksın. Vs vs, bu şekilde deneyerek bulacaksın.

Bu arada bunu yazınca hatırladım ki binary search'de son denediğin ve sondan önceki denediğini değil, alt sınır ve üst sınırı tutuyorsun :D Ama mantık kafanda oluşmuştur artık sanırım 3 mesajda. Özür dilerim iyi bir öğretmen değilim açıklığa kavuşturmam birkaç mesaj sürdü :D
Muhteşemsiniz, gayet de iyi anlattınız. Tam da birkaç gün önce Binary Search nedir diye araştırmıştım ve deneyim edinmiştim. Şimdi tekrar bir göz atıyorum, çok hoş oldu bu. Sağ olun, var olun.

Çok güzel anlattınız ama ben zorlandım, bilgim yetmedi. Mantığı kavradım ama kodu yazamadım. İleride tekrar bir göz atayım, geliştiğimi hissedince. Ama mantığı kavradığımı çok iyi hissettim, biraz daha Binary Search araştırıp tekrar bir göz atabilirim.
 
Mobilde olduğum için çok detaylı yazamıyorum. Fakat cevap söylenmiş; binary search. Sorudan bağımsız olarak açıklamaya çalışayım.

Bir arkadaşınızla aklından tuttuğun sayıyı bilme oyunu oynuyorsunuz. 1 ve 1000 arasında herhangi bir değer olduğunu düşünelim. Tahmine göre yukarı veya aşağı cevabı verilecek olsun. Normal tahmin yoluyla en iyi ihtimalle ilk denemede bulunur, en kötü ihtimalle 1000 denemede bulunur. Binary search yapılırsa en iyi ihtimal 1 deneme, en kötü ihtimal ise 10 deneme olacaktır. Alt limit A olsun, üst limit B olsun. Örnek senaryo;

Tutulan sayı : 347
Tahmin 1 : 500 (aşağı) A = 1 ve B = 1000
Tahmin 2 : 250 (yukarı) A = 1 ve B = 500
Tahmin 3 : 375 (aşağı) A = 250 ve B = 500
Tahmin 4 : 313 (yukarı) A = 250 ve B = 375
Tahmin 5 : 344 (yukarı) A = 313 ve B = 375
Tahmin 6 : 347 DUR A = 344 ve B = 350

Temel mantık bu şekilde. Her tahminde alt ve üst limit tahminine göre değişmiş oluyor. Ortadaki değeri tahmin edeceksin. O değer de bir sonraki tahminin alt veya üst limiti oluyor.
 
Python:
netMaas = float(input(f"Lütfen Net Maaş Değeri Girin: "))
brutMaasTahmin = float(input(f"Lütfen Tahmini Brüt Maaş Değeri Girin: "))

def netMaasHesaplama(brutMaasTahmin):

    if brutMaasTahmin > netMaas:
        kesintilimaas = int(brutMaasTahmin - (brutMaasTahmin * 0.1 + brutMaasTahmin * 0.2))
        
        if kesintilimaas > netMaas:
            brutMaasTahmin = float(input(f"Girdiğiniz Brüt Maaşın ({brutMaasTahmin}) Net Maaş Değeri: {kesintilimaas} Lütfen {brutMaasTahmin}'den daha küçük bir değer girin!: "))
            netMaasHesaplama(brutMaasTahmin)
            
        elif kesintilimaas < netMaas:
            brutMaasTahmin = float(input(f"Girdiğiniz Brüt Maaşın ({brutMaasTahmin}) Net Maaş Değeri: {kesintilimaas} Lütfen {brutMaasTahmin}'den daha büyük bir değer girin!: "))
            netMaasHesaplama(brutMaasTahmin)

        else:
            print(f"Girdiğiniz Brüt Maaş Değeri: {brutMaasTahmin} Net Maaş Değeri ise {kesintilimaas} tahmininiz doğru!!!")
            return brutMaasTahmin

    else:
        brutMaasTahmin = float(input(f"Lütfen {brutMaasTahmin}'den Daha Büyük Bir Değer Girin!: "))
        netMaasHesaplama(brutMaasTahmin)




print(netMaasHesaplama(brutMaasTahmin))
Ne olduğunu tam olarak ben de kavrayamadım ama bu şekilde bir çözümü olabilir diye düşünüyorum.
 
Dostlar, mantık tamamdır bende ama kodun yazımında zorlandım.
@329088 Teşekkürler efendim.
@trombonist76 Mantık bunun gibi efendim, ama biraz daha farklı kod yazmak lazım galiba, teşekkür ederim.
 
Hocam yaşınız kaçtı, ben programlamaya yeni başladım hocalarım bana üniversitede öğrenirsin derslerine asıl diyorlarda ben ikisini de bir arada götürmeye çalışıyorum. Dedikleri gibi üniversitede öğretiyorlar mı? Temel bilgileri falan.
Bu sene üniversite sınavına gireceğim.
Öğretiyorlar ama yetersiz kendin çalışmalısın. Şimdiden öğrenmeye başlarsan da üniversitede afallamadan programlama derslerinde kendini pekiştirirsin. Elbetteki derslerine asılman daha önemli olduğunu da unutma
 
Öğretiyorlar ama yetersiz kendin çalışmalısın. Şimdiden öğrenmeye başlarsan da üniversitede afallamadan programlama derslerinde kendini pekiştirirsin. Elbetteki derslerine asılman daha önemli olduğunu da unutma
Saolun hocam derslerimi hallettikten sonra yazin iyice odaklanirim yazilima suan derslerden vaktim olmuyor pek ve pratik yapamiyorum elimde pc olmadigi icin.
 
Hocam yaşınız kaçtı, ben programlamaya yeni başladım hocalarım bana üniversitede öğrenirsin derslerine asıl diyorlarda ben ikisini de bir arada götürmeye çalışıyorum. Dedikleri gibi üniversitede öğretiyorlar mı? Temel bilgileri falan.
Bu sene üniversite sınavına gireceğim.
Hocaların kesinlikle yanılıyor. Bilgisayar mühendisliği düşünüyorsan diplomadan çok programlama bilgin öne çıkarıcak seni özellikle yurt dışı düşünüyorsan
 
Hocaların kesinlikle yanılıyor. Bilgisayar mühendisliği düşünüyorsan diplomadan çok programlama bilgin öne çıkaracak seni, özellikle yurt dışı düşünüyorsan.
Ben buna katılmıyorum, bence iyi bir üniversite kazanan insan iyi bir yazılım bilgisini de kapar. Sonuçta iyi hocalardan yazılım dersini herkes almıyor. Bu çok öne geçiren bir şey. Tabii bu benim düşüncem.
 
Microsoft gibi büyük firmalar diplomaya aşırı önem vermiyor.
Herkes Microsoft üzerinde çalışacak diye bir şey yok, ülkende de kendini geliştirmeden bir yere gelemezsin. Sonuçta Microsoft gibi yerlere gelmeye çalışan çok insan var. Herkes giremez, bu süreçte işsiz kalmasını istemeyiz. Bu durumda biraz daha alçaktan bakmak ve olumsuz sonuçları da göze almak gerek bence. Güzel bir üniversite mezunu insan çoğu zaman bir adım öndedir gözümde. Genel olarak da bir proje girişimi değil de devamlı bir iş için diploma önemlidir. Ne kadar doğrudur bilemem.
 

Yeni konular

Geri
Yukarı