Advertisement
Qpel

Untitled

Dec 3rd, 2017
431
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 3.42 KB | None | 0 0
  1. #Turime rajono ūkininkų auginamų gyvių sąrašą: ūkininko pavardė, gyvio pavadinimas, kiekis, amžius.
  2. #Rasti:
  3. #1)  Paieška pagal duotą gyvio pavadinimą.
  4. #2)  Daugiausia gyvių auginantį ūkininką.
  5. #3)  Paieška pagal gyvių amžiaus apatinę ribą.
  6.  
  7. $ukis = []    #masyvo sukurimas
  8. # A simple ukis class
  9. class Ukis
  10.   attr_reader :pavarde, :gpavad, :kiekis, :age
  11.  
  12.   def initialize(pavarde, gpavad, kiekis, age)
  13.     @pavarde = pavarde
  14.     @gpavad = gpavad
  15.     @kiekis = kiekis
  16.     @age = age
  17.   end
  18.   # I string kintamaji
  19.   def to_s
  20.     "#{pavarde}, #{gpavad}, #{kiekis}, #{age}"
  21.   end
  22. end
  23. class Ukiai
  24.   include Enumerable
  25.   def initialize
  26.     @ukiai = []
  27.   end
  28.   def <<(ukis)    #pridejimas
  29.     @ukiai << ukis
  30.   end
  31.   def each
  32.     @ukiai.each { |e| yield(e) }      #nustatymas ka reiskia each
  33.   end
  34. end
  35. class Programa    #pagrindine programa
  36.  
  37. def skaitymas   #nuskaitymas
  38. @@data = Ukiai.new
  39.  
  40. fp=File.open("input_sar.txt", "r")    #duomenu traukimas is failo
  41.  
  42. fp.readlines.each do |line|   #nuskaitymas
  43.   c=line.split(",")   #kablelis skiria kintamuosius
  44.   c[2]=c[2].to_i    #3 pozicija skaicius
  45.   c[3]=c[3].to_i    #4 pozicija skaicius
  46.   @@data<<Ukis.new(c[0],c[1],c[2],c[3])   #sukuria nauja
  47.     end
  48.  
  49.  fp.close   #failo uzdarymas
  50.  
  51. puts "Sarasas:"
  52. puts "*********************************************************"
  53. @@data.each_with_index{ |e, i| puts "#{i+1}. #{e.to_s}" }     #
  54. puts "*********************************************************"
  55. end
  56.  
  57. def jaunimas
  58. puts "Iveskite amziaus apatine riba"
  59. m=gets.to_i     #ivedimas
  60. puts "*********************************************************"
  61. puts "Gyvulių nuo duoto amziaus ribos sarasas:"
  62. puts "*********************************************************"
  63. jauni = @@data.select{ |e| e.age >m }   #pasirenka gyvulius kurie vyresni nei duotas amzius
  64. jauni.each{ |p| puts p.to_s }   #isvedimas
  65. puts "*********************************************************"
  66. end
  67.  
  68. def paieska
  69. puts "Iveskite gyvio pavadinima"
  70. pavadin=gets.chomp    #ivedimas
  71. puts "#{pavadin} sarasas:"
  72. puts "*********************************************************"
  73. gyvuliai = @@data.select{ |e| e.gpavad == pavadin } #pasirenka gyvulius pagal pavadinima
  74. gyvuliai.each{ |p| puts p.to_s }  #isvedimas
  75. end
  76.  
  77. def daugiausia
  78.  puts "Daugiausia gyviu auginantis ukininkas:"
  79. puts "*********************************************************"
  80. max=0
  81. gyvuliai = @@data.select{ |e| e.gpavad}     #nuskaitymas pagal gyvulio pavadinima
  82. gyvuliai.each{ |p| if p.kiekis > max then max=p.kiekis end}   #jeigu gyvuliu kiekis didesnis nei max, tada max yra kiekis
  83. gyvuliai.each{ |p| if p.kiekis==max then puts "#{p.pavarde} ---kiekis-#{max} " end}     #jeigu gyvuliu kiekis lygus max, tada isvedimas
  84. puts "*********************************************************"
  85. end
  86.  
  87. end
  88.  
  89. puts "\n"
  90. puts "*********************************************************"
  91. puts "\n"
  92.  
  93. while true
  94.  
  95. print <<TEXT
  96. 1 - Skaitymas is failo
  97. 2 - Paieska pagal duota gyvio pavadinima
  98. 3 - Paieska pagal gyviu amziaus apatine riba
  99. 4 - Daugiausia gyviu auginantis ukininkas
  100. 0 - Pabaiga
  101. TEXT
  102. s=Programa.new
  103.  
  104. puts "\n"
  105. puts "*********************************************************"
  106. puts "\n"
  107.     val = gets.to_i
  108.    
  109.          
  110.     case val
  111.     when 1
  112.       s.skaitymas
  113.     when 2
  114.       s.paieska
  115.      when 3
  116.       s.jaunimas
  117.      when 4
  118.       s.daugiausia
  119.     when 0
  120.       puts "Pabaiga"
  121.       exit
  122.     end
  123.     end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement