Algoritma_Eski_Sorular_ve_Çözümleri

Çanakkale On Sekiz Mart Üniversitesi Bilgisayar Mühendisliği

Algoritma ve Programlama Dersi
Necdet hocanın önceki yıllarda sorduğu soruları ve çözümlerini içeren bir döküman

SORU 1) 2^1000 ’nin basamak değerleri toplamını bulan bir python kodu yazınız.

İpucu: Örneğin 2^15 ’in değeri 32768 olduğundan soru 1000 yerine 15 için sorulsaydı
cevap 3 + 2 + 7 + 6 + 8 = 26 olurdu.

Soru 2) Eğer bir sayı kadar nokta kullanılarak bir üçgen oluşturulabiliyorsa o sayıya üçgen sayı denmektedir. İlk altı üçgen sayı (1,3,6,10,15,21) aşağıda gösterilmektedir. Buna göre kullanıcıdan okuduğu sayının bir üçgen sayı olup olmadığını belirleyen bir python programı yazınız. <img src="http://i.hizliresim.com/12yzzp.png" height="300"width="300"/>

Soru 3) 10 elemanlı ve elamanları tekrar edebilen biri dizinin elemanlarını tekrarsız bir şekilde sıralayan algoritmayı yazınız. İstediğiniz sıralama algoritmasını kullanabilirsiniz. Örnek: {3,42,1,3,17,1,1,1,10,2} -> {1,2,3,10,17,42}

Soru 4) Sadece çift Fibonacci sayılarını toplayarak 1000'i geçmeye çalışıyorsunuz. En son kaçıncı Fibonacci sayısı bu diziye dahil olacaktır?

Soru 5) a < b < c olmak üzere a^2 + b^2 = c^2 olan tam sayılara Pisagor üçlüsü denir. a + b + c = 1 000 olacak şekilde tek bir Pisagor üçlüsü vardır. Onu bulmanız istenmektedir.

Soru 6) Elinizde 1, 2, 5, 10, 25 ve 50 kuruşluk madeni paralarınız olsun. Bu paraları kullanarak toplamda 1 TL olusturmanız istenmektedir. Her seferinde her madeni para türünden mutlaka kullanmanız gerekmiyorsa kaç farklı şekilde 1 TL elde edilebildiğini hesaplayınız.

Soru 7) NxN’lik bir kare üzerinde en fazla kaç kare bulunduğunu hesaplayan programın akış şemasını çiziniz. (Örneğin 2x2’lik bir kare üzerinde 5 kare bulunabilir)

Soru 8) Kaçıncı Fibonacci sayısı 1000 basamaklıdır.

  örnek: 12.   Fibonacci   sayısı   144   olduğundan   üç   basamaklı   ilk   Fibonacci   sayısı  

F12dir.

Soru 9) 10001’inci asal sayıyı bulunuz.

Soru 10) 2 milyondan daha küçük tüm asal sayıların toplamını bulunuz.

Soru 11) 100!’in rakamları toplamını bulunuz.

  örnek: 10!= 3628800 olduğundan rakamları toplamı 27’dir. 

Soru 12) 1-20 arası tüm sayılara kalansız bölünebilen en küçük tam sayıyı bulunuz.

Soru 13) Aşağıdaki program ne çıktı verir?

  x = 3 
  if 2 > x : 
    print 'First' 
  else : 
    print  'Second' 
    if 2 > x : 
      print 'Third' 
    print 'Fourth' 
  print `Fifth'

Soru 14) Aşağıdaki program ne çıktı verir?

  words = 'this IS NoT EvEN' 
  print words.title() 
  print words.replace("IS", 'was') 
  print words.upper() 
  print words * 2  

Soru 15) Aşağıdaki programdaki hatayı bulunuz.

  line = raw_input("Type a word") 
  print "You typed", line 
  line = line + "h" 
  num = int(line) 
  print "You typed the number ", num  

Soru 16) Aşağıdaki algoritma ne iş yapmaktadır?

  A1. Basla; 
  A2. a,b değerlerini oku; 
  A3. x=a, y=0; 
  A4. Eğer (x>=b) değilse A7'ye git; 
  A5. x=x-b; 
  A6. y=y+1; A4'e dön; 
  A7. x ve y’yi yazdır; 
  A8. Dur. 

Soru 17) Aşağıda kuralları tanımlanmış oyunun algoritmasını yazınız.
* Kullanıcıdan n sayısını okuyup 1’den n’e kadar sayılar sırayla yazılır.
* İlk turda soldan sağa doğru önce ilk sayı, sonra birer atlayarak listenin sonuna kadar diğer sayılar çıkartılsın. İkinci turda ise aynı işlem sağdan sola doğru tekrarlansın.
* Son kalan sayı çıktı olarak verilmelidir.
Örnek:
Kullanıcıdan girdi olarak 9 okunursa oyun aşağıdaki gibi çalışmalıdır:
1 2 3 4 5 6 7 8 9
2 4 6 8
2 6
6

Soru 18) P(n); girdi olarak n alıp çıktı olarak n’den küçük veya eşit asal sayıların sayısını veren bir fonksiyon olsun. Örneğin P(1)=0, P(2)=1 ve P(100)=25 değerindedir. Bu fonksiyonun akış şemasını çiziniz

Soru 19) Yazacağınız python programında random modülünü kullanarak 1 ile 100 arasında rasgele sayılar üretilsin. Rasgele sayı üretmeyi, üretilen sayı 42 olana kadar tekrar edilsin ve kaçıncı tekrarda hedefe ulaşıldığını çıktı olarak versin.

Soru 20) Yazacağınız python kodu kullanıcıdan n değerini okuyup n. Fibonacci sayısının basamak değerlerinin toplamını döndürmelidir. Örneğin girdi olarak 9 alınca onuncu Fibonacci sayısı olan 34’ün basamak değerlerini toplayıp 7 çıktısını vermelidir.