Bilgisayar programlama soruları

1,2,3 ve 5. soruların cevaplarını verdim. 4. soruda numpy kütüphanesinin kullanımını istemiş. Benimde numpy kütüphanesi ile henüz bir tecrübem olmadığından yalnızca cevabını verdiğim soruları yaptım.

5. sorunun cevabının çok değişik olduğunu düşünmüyorum. Yalnızca daha açıklayıcı anlatılmış olabilir.
 
1, 2, 3 ve 5. soruların cevaplarını verdim. 4. soruda numpy kütüphanesinin kullanımını istemiş. Benim de numpy kütüphanesi ile henüz bir tecrübem olmadığından yalnızca cevabını verdiğim soruları yaptım.

5. sorunun cevabının çok değişik olduğunu düşünmüyorum. Yalnızca daha açıklayıcı anlatılmış olabilir.

PDF dosyasını eklemeyi unutmuşum ekledim
 
PDF dosyasını eklemeyi unutmuşum ekledim
5. sorunun cevabını attığım ilk gönderide uzun bir yazı olarak gönderdim. Aynısını akademik bir üslup kullanarak yazmış gibi geldi bana.


Yazdığım mesajdan daha rahat anlayacağını düşünüyorum eğer anlamazsan tekrardan daha açıklayıcı şekilde anlatabilirim.

4. soru tamamen listelerle ilgili istersen bunu yorumlayabilirim fakat bahsettiğim gibi numpy kütüphanesi hakkında bir tecrübem olmadığından ne kadar kodu sana yorumlasam da anlarmısın bilmiyorum.
 
5. sorunun cevabını attığım ilk gönderide uzun bir yazı olarak gönderdim. Aynısını akademik bir üslup kullanarak yazmış gibi geldi bana.


Yazdığım mesajdan daha rahat anlayacağını düşünüyorum eğer anlamazsan tekrardan daha açıklayıcı şekilde anlatabilirim.

4. soru tamamen listelerle ilgili istersen bunu yorumlayabilirim fakat bahsettiğim gibi numpy kütüphanesi hakkında bir tecrübem olmadığından ne kadar kodu sana yorumlasam da anlar mısın bilmiyorum.

Cevabı bilecek kadar bilgim olsun yeter. Ya da bir yere yazar oradan aklıma sokmaya çalışırım.
 
O zaman şöyle anlatıyorum.
Önce kendim örnek bir kod yazayım onun üstünden sana "self, __init__(), super().__init__()" terimlerini anlatayım. Hem verdiğim örneklerden daha rahat anlayabilirsin. Yine uzun bir yazı olabilir.
[CODE lang="python" title="Kalıtım örneği (Parent-child)"]class HomoSapiens:
def __init__(self,isim):
self.isim = isim # "self.<rastgele_değişken_ismi> = parametre"

if self.yürüyebilen(): # dönen "durum" değişkeni True ise
print(f"{self.isim} isminde özel karakter olduğundan bu kişi yürüyemez")
else: # dönen "durum" değişkeni False ise
print("İşte gerçek bir insan")

def yürüyebilen(self): # yürüyebilen adında bir method yani fanksiyon oluşturdum.
durum = False # durum değişkeni oluşturdum ve False(bool) değerini atadım
for i in "><£#$½{[]}\\": # tırnak içinde belirlenen karakterler içerisinde dolanan i değişkeni tanımlandı
if i in self.isim: # eğer i değişkeni sınıfa verilen parametreye girilen argumanda var ise
durum = True # durum değişkeninin değerini True olarak değiştiriyorum
else: # eğer i değişkeni sınıfa verilen parametreye girilen argumanda yoksa
durum # durum değişkenini aynen korusun yani False değeri hala kalmaya devam etsin
return durum # üstteki işlemlere göre de durum değişkeninin değerini fonksiyon da döndürsün.

class ModernInsan(HomoSapiens): # HomoSapiens sınıfından miras alıyoruz
def __init__(self, isim): #child sınıfımıza bir arguman verileceğinden bir parametre oluşturuyoruz
self.konuşan_insan = isim # "self.<rastgele_değişken_ismi> = parametre"
super().__init__(isim) # super() sınıfı yani Oluşturduğumuz Miras aldığımız "HomoSapiens" sınıfının __init__() methodunu alıyoruz
# böylece ModernInsan sınıfını kullanırken verdiğimiz parametreler arkada dönen ebeveyn sınıfta işlemlerin gerçekleşirmesini salamış oluyor.


ModernInsan("Arif")
ModernInsan("A[]rif><")[/CODE]
>>>İşte gerçek bir insan
>>>A[]rif>< isminde özel karakter olduğundan bu kişi yürüyemez

Burada HomoSapiens sınıfı oluşturdum.
ModernInsan sınıfında kullandığımız gibi bir kalıtım yaparak kullanacaksak o bilinçle ebeveyn sınıfı yazılıyor.
Yazılan bu sınıfta __init__() methodu, yazılan sınıf en alttaki gibi çağrılıp belirlenen parametre verildiğinde ilk olarak çalışan method oluyor.(önemli olan init methodu sınıf oluşturulduğunda çalışan ilk method olduğu bilinci)

ilk parametre “self” olmak zorunda değil, ama ilk parametre her zaman belirlenen “bir şey” olmak zorunda. ilk parametre kullanılarak oluşturulan değişkenler diğer bir adı ile, sınıfta türetilen nesneler, diğer methodlar tarafından da erişilebilmesi adına belirlediğimiz parametre ile yazılarak değişken/alan(field) oluşturuluyor. Farkındaysan HomoSapiens sınıfının __init__ methodunda yer alan isim parametresini, self kullanarak parametrenin taşıdığı ismin aynısını veriyorum. Burada farklılık olabilir elbette(örneğin self.ad = isim). Ama kafa karışıklığını gidermek adına türetilen nesne ismi ile __init__ methoduna verilen parametre isimleri genelde aynı oluyor.

ModernInsan sınfında ise göreceksiniz ki HomoSapiens sınıfını miras almış.
Bu demek oluyor ki miras sınıfna ait olan kullanılmak üzere oluşturulmuş olan bütün methodlara
ModernInsan sınıfı içerisinde ulaşabiliyoruz.
Gördüğün üzere ModernInsan sınıfının __init__ metoduda bir isim adında parametre alıyor.
aynı parametreyi (yine sınıf içerisinde farklı methodlar içinde kullanacağımı düşündüğümden) self anahtar kelimesi ile türetip bunu __init__ methodundaki isim parametresine atıyorum.

Peki bu atanan değişkeni ebeveyn sınıfta nasıl kullanıcam?
Burada da şöyle bir olay gerçekleşiyor:
super() adıyla bilinen sınıf, Ebeveyn olarak kullandığımız sınıfın ta kendisi olmuş oluyor.
yani ben diyorum ki burada "HomoSapiens sınıfının __init__ methoduna, ModernInsan sınıfında oluşturulan __init__ metodunun isim adlı parametresinin aldığı arguman(girilen veri/değer) kullanılsın"

EDİT:
Burada oluşturduğum örnekte child sınıfa ayrıyeten yazılmış methodlar bulunmamakta buda şunun göstergesi; üzerine fazladan özellik eklemeyeceğimiz sınıflarda miras almanın pek bir anlamı olmadığını söylüyor.

Fakat şöyle bir düzenleme yapıp child sınıfımıza yani ModernInsan sınıfımıza özgü bir fonksiyon yani method oluşturalım:
[CODE lang="python" title="Kalıtım örneği (Parent-child) ~ Child eklenen method" highlight="24-25,30"]class HomoSapiens:
def __init__(self,isim):
self.isim = isim # "self.<rastgele_değişken_ismi> = parametre"

if self.yürüyebilen(): # dönen "durum" değişkeni True ise
print(f"{self.isim} isminde özel karakter olduğundan bu kişi yürüyemez")
else: # dönen "durum" değişkeni False ise
print("İşte gerçek bir insan")

def yürüyebilen(self): # yürüyebilen adında bir method yani fanksiyon oluşturdum.
durum = False # durum değişkeni oluşturdum ve False(bool) değerini atadım
for i in "><£#$½{[]}\\": # tırnak içinde belirlenen karakterler içerisinde dolanan i değişkeni tanımlandı
if i in self.isim: # eğer i değişkeni sınıfa verilen parametreye girilen argumanda var ise
durum = True # durum değişkeninin değerini True olarak değiştiriyorum
else: # eğer i değişkeni sınıfa verilen parametreye girilen argumanda yoksa
durum # durum değişkenini aynen korusun yani False değeri hala kalmaya devam etsin
return durum # üstteki işlemlere göre de durum değişkeninin değerini fonksiyon da döndürsün.

class ModernInsan(HomoSapiens): # HomoSapiens sınıfından miras alıyoruz
def __init__(self, isim): #child sınıfımıza bir arguman verileceğinden bir parametre oluşturuyoruz
self.konuşan_insan = isim # "self.<rastgele_değişken_ismi> = parametre"
super().__init__(isim) # super() sınıfı yani Oluşturduğumuz Miras aldığımız "HomoSapiens" sınıfının __init__() methodunu alıyoruz
# böylece ModernInsan sınıfını kullanırken verdiğimiz parametreler arkada dönen ebeveyn sınıfta işlemlerin gerçekleşirmesini salamış oluyor.
def konuşabilen(self):
print(f"{self.konuşan_insan} konuşabilen modern bir insandır")


ModernInsan("Arif")
ModernInsan("A[]rif><")
ModernInsan("Arif").konuşabilen()[/CODE]
 
Son düzenleme:
O zaman şöyle anlatıyorum.
Önce kendim örnek bir kod yazayım onun üstünden sana "self, __init__(), super().__init__()" terimlerini anlatayım. Hem verdiğim örneklerden daha rahat anlayabilirsin. Yine uzun bir yazı olabilir.
[CODE lang="python" title="Kalıtım örneği (Parent-child)"]class HomoSapiens:
def __init__(self,isim):
self.isim = isim # "self.<rastgele_değişken_ismi> = parametre"

if self.yürüyebilen(): # dönen "durum" değişkeni True ise.
print(f"{self.isim} isminde özel karakter olduğundan bu kişi yürüyemez")
else: # dönen "durum" değişkeni False ise.
print("İşte gerçek bir insan")

def yürüyebilen(self): # yürüyebilen adında bir method yani fanksiyon oluşturdum.
durum = False # durum değişkeni oluşturdum ve False(bool) değerini atadım.
for i in "><£#$½{[]}\\": # tırnak içinde belirlenen karakterler içerisinde dolanan i değişkeni tanımlandı.
if i in self.isim: # eğer i değişkeni sınıfa verilen parametreye girilen argumanda var ise.
durum = True # durum değişkeninin değerini True olarak değiştiriyorum.
else: # eğer i değişkeni sınıfa verilen parametreye girilen argumanda yoksa.
durum # durum değişkenini aynen korusun yani False değeri hala kalmaya devam etsin.
return durum # üstteki işlemlere göre de durum değişkeninin değerini fonksiyon da döndürsün.

class ModernInsan(HomoSapiens): # HomoSapiens sınıfından miras alıyoruz.
def __init__(self, isim): #child sınıfımıza bir arguman verileceğinden bir parametre oluşturuyoruz.
self.konuşan_insan = isim # "self.<rastgele_değişken_ismi> = parametre"
super().__init__(isim) # super() sınıfı yani Oluşturduğumuz Miras aldığımız "HomoSapiens" sınıfının __init__() methodunu alıyoruz.
# böylece ModernInsan sınıfını kullanırken verdiğimiz parametreler arkada dönen ebeveyn sınıfta işlemlerin gerçekleşirmesini salamış oluyor.

ModernInsan("Arif")
ModernInsan("A[]rif><")[/CODE]
>>>İşte gerçek bir insan
>>>A[]rif>< isminde özel karakter olduğundan bu kişi yürüyemez

Burada HomoSapiens sınıfı oluşturdum.
ModernInsan sınıfında kullandığımız gibi bir kalıtım yaparak kullanacaksak o bilinçle ebeveyn sınıfı yazılıyor.
Yazılan bu sınıfta __init__() methodu, yazılan sınıf en alttaki gibi çağrılıp belirlenen parametre verildiğinde ilk olarak çalışan method oluyor.(önemli olan init methodu sınıf oluşturulduğunda çalışan ilk method olduğu bilinci)

İlk parametre “self” olmak zorunda değil, ama ilk parametre her zaman belirlenen “bir şey” olmak zorunda. İlk parametre kullanılarak oluşturulan değişkenler diğer bir adı ile, sınıfta türetilen nesneler, diğer methodlar tarafından da erişilebilmesi adına belirlediğimiz parametre ile yazılarak değişken/alan(field) oluşturuluyor. Farkındaysan HomoSapiens sınıfının __init__ methodunda yer alan isim parametresini, self kullanarak parametrenin taşıdığı ismin aynısını veriyorum. Burada farklılık olabilir elbette(örneğin self.ad = isim). ama kafa karışıklığını gidermek adına türetilen nesne ismi ile __init__ methoduna verilen parametre isimleri genelde aynı oluyor.

ModernInsan sınfında ise göreceksiniz ki HomoSapiens sınıfını miras almış.
Bu demek oluyor ki miras sınıfna ait olan kullanılmak üzere oluşturulmuş olan bütün methodlara.
ModernInsan sınıfı içerisinde ulaşabiliyoruz.
Gördüğün üzere ModernInsan sınıfının __init__ metoduda bir isim adında parametre alıyor.
Aynı parametreyi (yine sınıf içerisinde farklı methodlar içinde kullanacağımı düşündüğümden) self anahtar kelimesi ile türetip bunu __init__ methodundaki isim parametresine atıyorum.

Peki bu atanan değişkeni ebeveyn sınıfta nasıl kullanacağım?
Burada da şöyle bir olay gerçekleşiyor:
super() adıyla bilinen sınıf, ebeveyn olarak kullandığımız sınıfın ta kendisi olmuş oluyor.
Yani ben diyorum ki burada "HomoSapiens sınıfının __init__ methoduna, ModernInsan sınıfında oluşturulan __init__ metodunun isim adlı parametresinin aldığı arguman(girilen veri/değer) kullanılsın"

Edit:
Burada oluşturduğum örnekte child sınıfa ayrıyeten yazılmış methodlar bulunmamakta bu da şunun göstergesi; üzerine fazladan özellik eklemeyeceğimiz sınıflarda miras almanın pek bir anlamı olmadığını söylüyor.

Fakat şöyle bir düzenleme yapıp child sınıfımıza yani modernınsan sınıfımıza özgü bir fonksiyon yani method oluşturalım:
[CODE lang="python" title="Kalıtım örneği (Parent-child) ~ Child eklenen method" highlight="24-25,30"]class HomoSapiens:
def __init__(self,isim):
self.isim = isim # "self.<rastgele_değişken_ismi> = parametre"

if self.yürüyebilen(): # dönen "durum" değişkeni True ise.
print(f"{self.isim} isminde özel karakter olduğundan bu kişi yürüyemez")
else: # dönen "durum" değişkeni False ise.
print("İşte gerçek bir insan")

def yürüyebilen(self): # yürüyebilen adında bir method yani fanksiyon oluşturdum.
durum = False # durum değişkeni oluşturdum ve False(bool) değerini atadım.
for i in "><£#$½{[]}\\": # tırnak içinde belirlenen karakterler içerisinde dolanan i değişkeni tanımlandı.
if i in self.isim: # eğer i değişkeni sınıfa verilen parametreye girilen argumanda var ise.
durum = True # durum değişkeninin değerini True olarak değiştiriyorum.
else: # eğer i değişkeni sınıfa verilen parametreye girilen argumanda yoksa.
durum # durum değişkenini aynen korusun yani False değeri hala kalmaya devam etsin.
return durum # üstteki işlemlere göre de durum değişkeninin değerini fonksiyon da döndürsün.

class ModernInsan(HomoSapiens): # HomoSapiens sınıfından miras alıyoruz.
def __init__(self, isim): #child sınıfımıza bir arguman verileceğinden bir parametre oluşturuyoruz.
self.konuşan_insan = isim # "self.<rastgele_değişken_ismi> = parametre"
super().__init__(isim) # super() sınıfı yani Oluşturduğumuz Miras aldığımız "HomoSapiens" sınıfının __init__() methodunu alıyoruz.
# böylece ModernInsan sınıfını kullanırken verdiğimiz parametreler arkada dönen ebeveyn sınıfta işlemlerin gerçekleşirmesini salamış oluyor.
def konuşabilen(self):
print(f"{self.konuşan_insan} konuşabilen modern bir insandır")

ModernInsan("Arif")
ModernInsan("A[]rif><")
ModernInsan("Arif").konuşabilen()[/CODE]

Benim kafa daha çok karıştı. Sorunun cevabını anlasam bana yeter. Çünkü hoca bize kodu verecek onun çıktısını ve ne olduğunu vesaire soracakmış. Kısa bir şekilde şu ifade şu işe yarıyor şeklinde açıklama daha güzel olurdu sanki. Daha 1. sınıfım ben daha çünkü. İlk defa görüyorum dersi çok bir şey anlamıyorum.
 
Benim kafa daha çok karıştı. Sorunun cevabını anlasam bana yeter. Çünkü hoca bize kodu verecek onun çıktısını ve ne olduğunu vesaire soracakmış. Kısa bir şekilde şu ifade şu işe yarıyor şeklinde açıklama daha güzel olurdu sanki. Daha 1. sınıfım ben daha çünkü. İlk defa görüyorum dersi çok bir şey anlamıyorum.
super() -> Oluşturulan Ebeveyn sınıfın ta kendisi
super().__init__() -> Ebeveyn sınıfının __init__() methodu.
self -> methodlar arası oluşturulan değişkenlere erişmek için
method -> fonksiyonların sınıflardaki kullanımı
__init__() -> oluşturulan sınıf çağrıldığında çalışan ilk method.

def method1(self,deger1,deger2) -> Sınıf içinde oluşturulan methodun ilk parametresi her zaman self
Daha 1. sınıfım ben daha çünkü.
Hangi sınıfta olduğunuzun pek bir önemi yok 🙃
Zira ben bu dersleri hiç görmüyorum.
 

Geri
Yukarı