Algoritma hakkında soru?

Hocalarım python belgelerini vs okuyorum da şunu yap diye bir soru gelse örneğin döngülerin şartların vs olduğu sınav soruları gibi. Onlarda düşünemiyorum. Algoritma becerimi geliştirecek pratik yapacağım yerler var mı kolaydan başlayan

evet aynı sorunu bende yaşıyorum. puzzle parçalarını birleştiremiyorum

Küçükten başlayarak denemeler yapabilirsin. Veya kendine bir proje belirle o projeyi yapmak için birçok yönteme başvuracaksın zaten bu şekilde araştırarak oturta bilirsin bilgilerini.

Hackerrank diye bir site var. İngilizce ama işinizi görür.

Öğrendiğiniz her şeyi uygulamalısınız listeye eleman eklemeyi öğrendiniz şöyle bir kod yazın mesela

a = []
b = input("İsminizi girin")
a.append(b)
c = input("İsminizi tekrar girin")
if c not in b:
    print("İsim yanlış girildi")
else:
   print("isim doğrulaması doğru")

gibi basit örnekler yapın

Örneğin;
Karatsuba veya Nikhilam çarpma algoritmalarını Python ile yazmayı deneyebilirsiniz. Hem basit, hem öğretici olabilir.

Ne?

Liste olarak verilen herhangi iki sayiyi (mesela "1234" ve "99") toplayan ("1333") ve carpan ("122166") kod. Bu islemleri yaparken Python’in aritmetik operatorlerini (*, +) belirli bir sabitten buyuk sayilarla kullanmamali. Hatta istersen bu operatorler yerine su fonksiyonlari kullanma zorunlulugu koyalim:

def topla(a, b):
	assert 0 <= a <= 9
	assert 0 <= b <= 9
	return a + b

def carp(a, b):
	assert 0 <= a <= 9
	assert 0 <= b <= 9
	return a * b

Girilen sayilarin uzunlugunu da 9 haneye limitlemis olduk, ama istersen listelerle ugrasan kodda bu kisitlamayi kaldirabilirsin. Onemli olan, sinirli islem kapasitesi olan bir dili kullanarak sinirsiz kapasitede islem yapabilmek.

Nasil?

Sen 17 haneli iki sayiyi toplayabiliyor musun? Nasil? Kagit kalem mi lazim? 2 GiB RAM versem?
Sadece 9’a kadar (hatta bazen 8, 7 :​) olan carpimlari bildigin halde 5 haneli iki sayiyi nasil carpiyorsun?

Neden?

  • Herkes tarafindan cok iyi bilinen (ilkokulda ogrenilen) bir algoritmayi koda dokmus oluyorsun.
  • Bu herkese sen de dahil oldugun icin “ulan bu algoritma nasildi” diye arastirmana gerek yok.
  • Yazdigin kodun yapmasi gerekenle senin eline kagit-kalem aldiginda yaptigin feci benzer seyler.
  • Algoritmayi test etmesi kolay (yazdigin dil veya herhangi bir hesap makinesi yeter)
  • Carpim tablosunu niye ezberledigimizi ogrenmis oluyorsun!

Ben buyuk sayilari toplamayi/carpmayi bilmiyorum?

Programcilikla isin ne? Git ilkokul matematigi ogren!*

*: Sonra geri gelebilirsin tabi, kimseyi dislamiyoruz.

Ben de yeni başlayanlara codewars.com u öneririm. En düşük seviyedeki örnekleri çözmek için ıngilizceye pek gerek yok. Verilen örnekten ne istendiği çoğu zaman rahatça anlaşılıyor. Çözdükten sonra baskalarnin çözümünü görme imkanı da kişiye algoritmasi hakkında daha iyi bir değerlendirme imkanı sunuyor.