15 49.0138 8.38624 1 1 4000 1 https://womaneng.com 300

Nesne Yönelimli Programlama Vize – Final Hazırlık Soruları / Ruby

Merhabalar arkadaşlar bu yazımda sizlere nesne yönemli programlama ders notlarımdan ve derlediğim sorulardan hareketle sınavlarınızda yardımcı olabilmesi için test soruları ve denemelerim sonucunda elde ettiğim olası çıktıları vermeye çalıştım. Nesne yönelimli programlama dersi ile ilgili yer alan sorular Ruby programlama dili ile  yazılmış olup sizler için öğretici olacaktır. Umuyorum bu Ruby Test soruları birileriniz için işe yarayacaktır. Şimdiden kolay gelsin başarılar.

Sorular

1)  class Okul

    attr_reader :okulad, :okulid    //attr_accessor olsaydı çıktı=55000 olurdu

    def initialize okulad, okulid

        @okulad, @okulid  =  okulad, okulid

    end

end

omu = Okul.new “OMU” , 55

omu.okulid = 55000

puts omu.okulid

çıktı: hata verir


2)class Foo

    attr_accessor :bar  //global değişkenler $ ile gösterilir.

    $baz = 0

    @@count = 0  //örnek değişkenler @ ile gösterilir.

    def initialize bar //sınıf değişkenleri @@ ile başlar.

        @bar = bar

    end

    puts bar

end

baz = Foo.new 5

çıktı:hata verdiği görülmüştür.


3)class Foo

   def initialize(bar)

       @bar=bar

    end

    def bar=(bar) //attr_accessor yerine geçen bir kullanımdır.

        @bar=bar

    end

    def bar

        @bar

    end

end

baz = Foo.new “Ruby”

baz.bar = “Java”

puts baz.bar

 Çıktı:java olur


4)require ‘ostruct’

class Kisi

    attr_accessor :ad, :gün, :ay, :yil

def initialize (opts = {})

    @ad,@gün,@ay,@yil =opts[:ad],opts[:gün],opts[:ay],opts[:yil]

end

def isimbul bilgi

    if @ad.size > bilgi.ad.size

        @ad

else

    bilgi.ad

    end

end

def yilbul bilgi

    if @yil>bilgi.yil

        @yil

else

    bilgi.yil

end

end

end

bilgi1 = OpenStruct.new(:ad => “Ali”, :gun =>1, :ay =>11, :yil => 2011)

bilgi2 = OpenStruct.new(:ad => “Ahmet”, :gun => 10, :ay => 1, :yil => 2008)

a=Kisi.new bilgi1

b=Kisi.new bilgi2

print a.isimbul b

print b.yilbul a

Çıktı:Ahmet2011 olur. 


5)class Foo

    attr_reader :bar,:baz

def initialize bar,baz

    @bar,@baz =bar,baz

end

def degistir x,y

    bar,baz=x,y

end

end

nesne=Foo.new 10,20

nesne.degistir 30,40

puts nesne.bar + nesne.baz

çıktı:30


6)class Futbolcu

    attr_accessor :yas,:mevki

def initialize yas,mevki

@yas,@mevki = yas,mevki

end

end

insanlar =[]

insanlar << Futbolcu.new(25,’kaleci’)

insanlar << Futbolcu.new(30,’defans’)

insanlar << Futbolcu.new(35,’forvet’)

insanlar << Futbolcu.new(20,’ortasaha’)

insanlar << Futbolcu.new(22,’kanat’)

i=0

while i< insanlar.size

if insanlar[i].mevki.length > 5

insanlar[i].yas=insanlar[i].yas – insanlar[i].mevki.length

end

i +=1

end

puts insanlar[2].yas.to_s

Çıktı:29


7)class Foo

def initialize(x)

$dizi << x

end

def bar (dizi)

    baz=0

    dizi.each {|e| baz+= e}

    baz

end

end

$dizi=[]

%w(1 2 3 4 5).each do |n|

$f=Foo.new n.to_i

end

p $f.bar $dizi

çıktı:15


8)class Box

def initialize (w,h)

    @width,@heigth = w,h

end

def getArea

@area=@width/@heigth

“big box area is: #@area”

end

end

class BigBox < Box

    def getArea

    end

end

box=BigBox.new(20,10)

p box.getArea

çıktı:nil


9)class Point

    attr_reader :x,:y

def initialize (x,y)

@x,@y=x,y

end

def foo other

@h=Math.sqrt(((self.x-other.x).abs)**2+((other.y-self.y).abs)**2)

end

def to_s

“#{@h}”

end

end

p1=Point.new(1,5)

p2=Point.new(4,9)

p1.foo(p2)

puts p1

çıktı:5.0


10)class Foo

attr_accessor 😡

def bar gelen

@x>gelen.x

end

end

a=Foo.new

b=Foo.new

a.x,b.x= 5,7

p a.bar b

çıktı:false 


11)require ‘forwardable’

class Foo

extend Forwardable

    def_delegators :@bar,:'<<‘,:length,:map

attr_writer :bar

def initialize

@bar=[]

end

end

a=Foo.new

a<<3

a<<a.length

a<<55

a<<a.length

a=a.map{|e| e*2}

puts a[-2]

çıktı:110


12)class Foo

def initialize(bar,baz)

    @bar,@baz=bar,baz

    end

def quux

@baz.reverse

end

end

qux=Foo.new(“Lorem”,”Ipsum”)

puts qux.quux

çıktı:muspI


13)class Anne

def bilgi

p “Anne”

end

end

class Cocuk < Anne

def bilgi

    super

p “Cocuk”

end

end

foo=Cocuk.new

foo.bilgi

çıktı:anne

      cocuk 


14)class Islem

def initialize(a,b)

@a,@b=a,b

end

private

def Topla

return @a+@b

end

def Carp

return @a*@b

end

public

def Ekranayaz

puts “Topla: #{Topla()}”

puts “Carp: #{Carp()}”

end

end

islem=Islem.new(5,3)

islem.Ekranayaz

çıktı:topla:8

  çarp:15


15)class Kisi

def initialize(ad,soyad)

    

@ad,@soyad=ad,soyad

end

def selam

puts “merhaba ben #{@ad.capitalize} #{@soyad.upcase}”

end

end

class Muhendis < Kisi

def initialize(ad,soyad,meslek)

super(ad,soyad)

@meslek=meslek

end

def selam

puts “#{super} #{@meslek.capitalize} okuyorum.”

end

end

muhendis=Muhendis.new(“zeynep”,”kucuk”,”bilgisayar muhendisligi”)

muhendis.selam

çıktı:merhaba ben Zeynep KUCUK

      Bilgisayar mühendisliği okuyorum


16)class Area

    class << self

    def calculate(width, height)

        width * height

    end

    end

end

puts Area.calculate(5, 5)

çıktı:25


17)class Saat

    attr_reader :saat, :dakika, :saniye;

def initialize saat = 23, dakika = 0, saniye = 0

@saat,@dakika,@saniye = saat,dakika,saniye

end

def to_s

<<-HERE

    Saat #{saat} – #{dakika} – #{saniye}

HERE

end

end

s=Saat.new

puts s.to_s

s1=Saat.new(23,1,10)

puts s1.to_s

çıktı:Saat 23-0-0

Saat 23-1-10


18) class Bolum

  attr_reader :isim

  $liste=[]

  def initialize(is)

    @isim=is

     puts @isim

  end

  def kisi_ekle(isim)

    $liste<<(isim)

  end

  def kisiler()

    puts $liste

  end

end

bolum=Bolum.new “Bilgisayar Muh”

bolum.kisi_ekle “Erd”

bolum.kisi_ekle “Gokhan”

bolum.kisiler

çıktı:bilgisayar Muh

zeynep

Gulcin


19)$degisken = ” ”

class Sınıf1

def initialize

$degisken += “anne”

end

end

class Sınıf2 <Sınıf1

def initialize

super 

$degisken +=”cocuk”

end

end

nesne=Sınıf2.new

p $degisken

çıktı : “annecocuk”


20)class A

@@a1 = 20

@@a2 = 10

def self.a1

@@a1

end

class << self

attr_accessor :a2

end

end

class B < A

@@a1=60

@a2=30

def self.a1

@@a1

end

class << self

attr_accessor :a2

end

end

p A.a1

p A.a2

p B.a1

p B.a2

çıktı:60

nil

60

30


21)def sorgu dizi

s = dizi.length

i = 0

d = []

while i < s

d << dizi[i] if dizi[i] < dizi[s/2]

i += 1 

end

d

end

liste = [5, 35, 40, 20, 10, 6, 29]

puts “#{sorgu(liste)}”

çıktı: [5,10,6]  20 tan küçük olanları ekliyor listeye


22)def foo(dizi, l, r, a)

if r >= l

ort = r + (l – r) / 2

if dizi[ort] == a

ort

elsif dizi[ort] > a

foo(dizi, l, ort – 1, a)

else

foo(dizi, ort + 1, r, a)

end

end

end

dizi=[1, 0, 10, 17, 33, 55, 34, 3]

dizi = dizi.sort

puts foo(dizi, 0, dizi.length – 1, 33)

çıktı:5


23)def foo sayi

bar = “”

while sayi >= 1

kalan = (sayi%2).to_s

bar = bar + kalan

sayi = sayi / 2

end

bar.reverse

end

dizi = %w(ruby java c python)

i = 0

j = “”

while i < dizi.length

j = j +foo(dizi[i].length)

i += 1

end

puts j 

çıktı:1001001110


24)x = 7 //burada bize sorulan çıktının 4 olması içim x ne olmalı x>6

if x > 3

if x <= 5

y = 9

elsif x != 6

y = 4

else

y = 6

end

elsif x < 0

y =7

else 

y = 5

end

puts y 

çıktı=4   


25)def foo cümle

dizi = cümle.split()

i = 0 

bar = dizi[i].length

while i < dizi.length 

bar = dizi[i].length if bar < dizi[i].length

i += 1

end

bar

end

puts foo “ondokuz mayıs university departmant of computer engineering  Samsun Atakum”

çıktı:11


26)while nil

puts “Bu ruby cok eglenceli”

while nil 

puts “Bu ruby cok eglenceli”

end

end

puts “Bu ruby cok eglenceli”

çıktı:Bu ruby cok eglenceli


27)sayilar = [-1,0,1]

ort = (sayilar[0] + sayilar[1] + sayilar[2])/3

if ort=sayilar[1]

puts sayilar[1]

elsif

puts sayilar[2]

end

çıktı:0


28)def foo n //soru a ve b yerine ne yazılırsa çıktı 35 olur a=7 b=4

if n == 0

1

else

n * foo(n-1)

end

end

a,b = 7,4

p foo(a) / (foo(b) * foo(a-b))

çıktı:35


29)class Foo

ORIGIN = 0,0

@@population =0

def initialize(x,y)

@x ,@y = x,y

end

def self.ORIGIN

new(*ORIGIN)

end

@@population +=2

puts @@population

puts new(*ORIGIN)

end

çıktı: 2

#<Foo:0x007ffc6c87ffa8>    olur


30)class Foo

    def initialize (bar,baz)

        @bar,@baz = bar,baz

    end

    def quux

        @baz.reverse

    end

    def quuux

    @bar.reverse

    end

end

qux = Foo.new(“lorem”,”Ipsum”)

puts qux.quux

puts qux.quuux

çıktı:muspI

  merol


31)class Zeynep

attr_accessor :a,:b

def initialize (a,b)

@a=a

@b=b

end

end

a= Zeynep.new(1,2)

print a.a

print a.b

çıktı:12 olur


32)class Zeynep

attr_reader :a,:b

def initialize(a,b)

@a=a

@b=b

end

def a=(param)

@a=param

end

end

a=Zeynep.new(1,2)

a.a=10

print a.a

print a.b

çıktı:102 olur


33)class Zeynep

@@b=10

def self.b

@@b

end

end

class Sen < Bilal

@@b = 1645

def self.b

@@b

end

end

a=Zeynep.new

print Zeynep.b

çıktı:1645


34)class Zeynep

attr_accessor :a

@@b = 10 

@c = 15

def initialize(a)

@a=a

end

def self.b

@@b

end

def self.c

@c

end

end

a = Zeynep.new(1)

p a.a

p Zeynep.b

p Zeynep.c

çıktı:1

10

15


35)class Zeynep

@@b = 10 

@c=15

class << self

attr_accessor :c

def b

@@b

end

end

end

class kucuk < Zeynep

@@b=20

@c=60

class << self

attr_accessor :c

def b

@@b

end

end

end

a =Zeynep.new

b= kucuk.new

p Zeynep.b

p Zeynep.c

p kucuk.b

p kucuk.c 

çıktı:20 15 20 60


36)class Zeynep

attr_accessor :a,:b

def initialize(a,b)

@a=a

@b=b

end

end

class Kucuk < Zeynep

def metod

puts “metod burası”

end

end

a=Zeynep.new(1,2)

puts a.a

puts a.b

çıktı:1 

2


37)class Bilal

attr_accessor :a,:b

def initialize(a,b)

@a=a

@b=b

end

end

class Kucuk < Zeynep

def metod

puts metod

puts “metod gövdesi”

end

def to_s

puts @a

puts @b

end

end

a = Kucuk.new(3,5) //puts a.a a.b yazmak yerine to_s ile yazdırırz

a.to_s

çıktı=3

 


38)$global = “”

class Bilal

def initialize

$global += “Zeynep”

end

end

class Kucuk < Zeynep

def initialize

$global += “Kucuk”

end

end

a = Kucuk.new  //Zeynep.new olsaydı çıktı Zeynep olurdu

p $global

 

çıktı=Kucuk olur  


 

39)koda göre kaç tanesi doğrudur

class Foo

attr_reader :a,:b,:c

@@d=0

def initialize a,b,c

@@d +=1

end

def self.say

@@d

end

end

1)veri sarmalama yoktur

2)sınıf değişkeni vardır

3)sınıf metodu vardır

4)self anahtar kelimesi yerine sınıf adı yazılabilir.

Cevap:2 3 4 diyorum 3 tanesi yani


40)koda göre hangileri doğrudur

class Hayvan

end

class Kus < Hayvan

end

class Papagan < Kus

end

1)papagan bir kuştur ve kuş bir hayvandır

2)papagan bir hayvandır

3)papağan hayvan sınıfındaki metotları kullanamaz

4)papağan yalnızca kuş sınıfındaki metodu kullanabilir

5)papağan hem hayvan hem de kuş sınıflarındaki metotları kullanabilir.

cevap:1 2 ve 5 diyorum


41)koda göre işaretli satırda ne olmalıdır

class Cember

attr_accessor :yaricap

def initialize r

@yaricap=r

end

def +(diger)

……

end

end

c1=Circle.new 5

c2=Circle.new 6

c3 = c1 + c2

A)@yaricap +diger.yaricap

B)@yaricap + diger.@yaricap

C)CEmber.new @yaricap+diger.yaricap

D)hiçbiri

E)yaricap+diger.yaricap

cevap :hicbiri diyorum


42)koda göre hangileri doğrudur?

class Point

    attr_reader :x,:y

def initialize (x,y)

@x,@y=x,y

end

def foo other

@h=Math.sqrt(((self.x-other.x).abs)**2+((other.y-self.y).abs)**2)

end

def to_s

“#{@h}”

end

end

p1=Point.new(1,5)

p2=Point.new(4,9)

p1.foo(p2)

puts p1

 

1)ekrana 5.0 yazar

2)puts p1 satırı çalıştığında önce global to_s aranır

3)foo metodunun içindeki self p1 nesnesinin değerini alır

4)foo metodunun içindeki self p2 nesnesinin değerini alır

5)ekrana karekök 14 ün değerini yazar

Cevap : 1 ve 3 diyorum ama emin değilim.


43)kodda görülen @bar için aşağıdakilerden hangisi doğrudur.

class Foo

@bar = 0

def initialize(a)

@a=a

end

end

A)sınıf nesnesi değişkenidir

B)lokal(yerel)değişkendir

C)nesne niteliğidir

D)global(genel) değikendir

E)sınıf değişkenidir

Cevap:A diyorum emin değilim. 


 

Bir önceki yazımız olan Veri Madenciliği Nedir? başlıklı makalemizde AI, Analysis ve artificial hakkında bilgiler verilmektedir.

Paylaş:
Önceki
Knime (Konstanz Information Miner)
Sonraki
H2O.ai Makine Öğrenme Platformu nedir?
HAKKIMDA
Zeynep Küçük

Hi, I’m Zeynep I am studying in computer engineering in Samsun. I love to share and write about anything that interests me in tech, so welcome on my blog. I’d be really glad to get in touch with you! Don’t forget you can always contact me by email for any inquiries.Follow me on social media.

0 Yorum

Yorumla

This site uses Akismet to reduce spam. Learn how your comment data is processed.