Bilgisayar programlama soruları

[CODE lang="python" title="Arkadaşının yazdığı kod"]def Hesapla(b=48):
x=0
for a in range(1,99,1):
if (b == a**3-a**2):
print(a)
x+=1
else:
if x==0:
print("0-100 arasında öyle bir tam sayı değeri yoktur")

b = int(input())
Hesapla(b)[/CODE]
[CODE lang="python" title="default değeri eklendiğinde benim kod"]def hesapla(b=48):
l = []
for a in range(101):
if b == (a**3)-(a**2):
l.append(a)
if l == []:
print("Şartı Sağlayan Bir değer Yok")
else:
print(l)
hesapla()[/CODE]
Gördüğünüz üzere hiçbir fark yok ikisi de aynı.
Yalnızca arkadaşınız gereksiz olarak for döngüsündeki range sınıfının üçüncü parametresine 1 yazmış. Bu üçüncü parametre kaçar kaçar ilerleyeceğini belirten fonksiyon default değeri zaten 1 yani 3. parametre verilmediği taktirde 1 olacak. Benim yazdığım kodu düzenleyip b parametresinin default argumanı 48 yaptığımızda ayrıyeten fonksiyona parametre vermemiş oluyoruz.

Son olarak yazdığım koddaki döngüde kullanılan range(101) şu anlama geliyor: 0-100 arasındaki sayılar.
Arkadaşınız 1-98 arasındaki sayılarla işlem yapan bir döngü kurmuş.
Bizden istenen de 0-100 arasındaki sayılarla işlem yapması.

Tamam o kısmı çözük.

Kod:
def Hesapla(b=48):
            
            for a in range(1,99,1):
                if (b == a**3-a**2): 
                    print(a)
                    break
            else:
                    print("0-100 arasında öyle bir tam sayı değeri yoktur")
                    
b = int(input())
Hesapla(b)

Şeklinde olunca çıkıyor.
Break yazınca direk çıktı.
 
Tamam o kısmı çözük.

Kod:
def Hesapla(b=48):
          
            for a in range(1,99,1):
                if (b == a**3-a**2):
                    print(a)
                    break
            else:
                    print("0-100 arasında öyle bir tam sayı değeri yoktur")
                  
b = int(input())
Hesapla(b)

Şeklinde olunca çıkıyor.
Break yazınca direk çıktı.
Yazdığımı bir denermisiniz ?

Hemen hemen aynı şeyleri söylüyoruz zaten :)
 
Kodu denedim. Çalıştır dediğim zaman direk koddan çıkıyor. Değer girilmiyor.
Nasıl değer girilmiyor ?
Python:
def hesapla(b=48):
    l = []
    for a in range(101):
        if b == (a**3)-(a**2):
            l.append(a)
    if l == []:
        print("Şartı Sağlayan Bir değer Yok")
    else:
        print(l)
hesapla(0)
>>>[0, 1]

Python:
def hesapla(b=48):
    l = []
    for a in range(101):
        if b == (a**3)-(a**2):
            l.append(a)
    if l == []:
        print("Şartı Sağlayan Bir değer Yok")
    else:
        print(l)
hesapla(25)
>>>Şartı Sağlayan Bir değer Yok
 
Kod:
def hesapla(b=48):
 l = []
 for a in range(101):
 if b == (a**3)-(a**2):
 l.append(a)
 if l == []:
 print("Şartı Sağlayan Bir değer Yok")
 else:
 print(l)
hesapla()

Kodunda "[4]" şeklinde bir çıktı veriyor ve direk çıkıyor. Değer girilmiyor.

En son attıklarında galiba yazdığın değer için direk sonuç çıkıyor. Ama yine değer girlmiyor onda.
 
Kod:
def hesapla(b=48):
 l = []
 for a in range(101):
 if b == (a**3)-(a**2):
 l.append(a)
 if l == []:
 print("Şartı Sağlayan Bir değer Yok")
 else:
 print(l)
hesapla()

Kodunda "[4]" şeklinde bir çıktı veriyor ve direk çıkıyor. Değer girilmiyor.

En son attıklarında galiba yazdığın değer için direk sonuç çıkıyor. Ama yine değer girlmiyor onda.
Bu matematik işlemini kağıt üzerinde gerçekten hesaplayıp test etmedim. Buradaki algoritmaya göre a'nın küpü eksi a'nın karesinin farkı belirlediğimiz b parametresine eşit mi değilmi onun kontolünü yapıyor. Eşit ise eşit olan değerleri değil ise boş bir listeyi döndürüyor(bizde bunu yakalayıp şarta uymuyor diyoruz)
kodda 4 çıktısının vermesinin sebebi b parametresine herhangi bir arguman vermediğimiz için. Burada da default hali 48 olduğundan 48 ile ilgili bir işlem yapıyor bundan dolayı 4 sonucu veriyor.
fonksiyonda oluşturulan b parametresinin yanına bakarsanız "=48" ibaresini görürsünüz. Bu da bu fonksiyona herhangi bir arguman (parametreye girilen bir değer) girilmezse atanan değer ile işlem yapmasını sağlıyor.

Ama yine değer girlmiyor onda.
Değer girmekten kastın bir input fonksiyonunun olmaması mı ?
Yoksa şakır şakır değer giriliyor.
 
Bu matematik işlemini kağıt üzerinde gerçekten hesaplayıp test etmedim. Buradaki algoritmaya göre A'nın küpü eksi A'nın karesinin farkı belirlediğimiz b parametresine eşit mi değil mi onun kontolünü yapıyor. Eşit ise eşit olan değerleri değil ise boş bir listeyi döndürüyor(bizde bunu yakalayıp şarta uymuyor diyoruz)
Kodda 4 çıktısının vermesinin sebebi b parametresine herhangi bir arguman vermediğimiz için. Burada da default hali 48 olduğundan 48 ile ilgili bir işlem yapıyor bundan dolayı 4 sonucu veriyor.
Fonksiyonda oluşturulan b parametresinin yanına bakarsanız "=48" ibaresini görürsünüz. Bu da bu fonksiyona herhangi bir arguman (parametreye girilen bir değer) girilmezse atanan değer ile işlem yapmasını sağlıyor.

Değer girmekten kastın bir input fonksiyonunun olmaması mı?
Yoksa şakır şakır değer giriliyor.

Aynen input fonksiyonunun olmadığı için direk çıkıyor. Dediğin gibi çıkıyor. İşlemleri oraya yazarken paranteze gerek var mı?
 
Aynen input fonksiyonunun olmadığı için direk çıkıyor.
Çok şükür. 🥳
Çünkü program çalıştığı sıra input fonksiyonuna geldiğinde kullanıcıdan bir girdi bekliyor.
Benim yazdığım kodda ise input fonksiyonuna gerek kalmadan sadece bir arguman girerek işlem yapıyor. Böylece program çalıştığı sıra kullanıcıdan bir girdi alınması beklenmiyor. bundan dolayı da işlem sonucunda da program bitmiş oluyor.

İşlemleri oraya yazarken paranteze gerek var mı?
Nereye işlemleri yazarken ?
Ne işlemi ?
 
Nereye işlemleri yazarken?
Ne işlemi?

(A**3)-(a**2)
İşleminden bahsediyorum. Arkadaş ile yazdığımızda direk a**3-a**2 şeklinde çıktı. Parantez koyduğumuz zaman bir şey değişiyor mu yoksa fonksiyon olarak işlem önceliğini mi belirliyor?

Yani matematikte kullandığımız parantezin kullanımı burada tanımlı mı? Çünkü ben önce çarpma bölme sonra toplama çıkarma işlem önceliğini takip ediyor diye hatırlıyorum.
 

Geri
Yukarı