Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.72 KB | None | 0 0
  1. #Definovani poli a promennych
  2. output = []
  3. nasobeni = []
  4. vysledek = 0
  5. longest_line = 0
  6. #Vyzve k zadani dvou cisel a operace
  7. print "Zadejte 1. cislo: "
  8. cislo1 = gets.to_i
  9. print "Zadejte 2. cislo: "
  10. cislo2 = gets.to_i
  11. print "Zadejte operaci: "
  12. operator = gets.strip
  13. puts ""
  14. #Rozhodnuti o operace
  15. case operator
  16. when "+"
  17.   vysledek = cislo1 + cislo2
  18. when "-"
  19.   vysledek = cislo1 - cislo2
  20. when "*"
  21.   vysledek = cislo1 * cislo2
  22. end
  23. #Prirazeni polozek do pole
  24. output << cislo1.to_s
  25. output << operator + cislo2.to_s
  26. output << vysledek.to_s
  27. #Zjisteni nejdelsiho radku
  28. output.each do |radek|
  29.   longest_line = radek.length if (longest_line < radek.length)
  30. end
  31. #Vlozeni separatoru
  32. output.insert(2,"-" * longest_line)
  33. #Vypis vypoctu
  34. #Prvni pripad kdy se vypise scitani, odcitani a nasobeni jednim cislem
  35. unless (operator == "*" and cislo2.to_s.length > 1)
  36.   output.each do |i|
  37.     puts i.rjust(longest_line)
  38.   end
  39. else
  40.   #Druha varianta ktera se vypise v pripade ze cislo kterym nasobime obsahuje dve a vice cisel
  41.   longest_line = 0
  42.   nasobeni << cislo1.to_s
  43.   nasobeni << operator + cislo2.to_s
  44.   #Vytvoreni a vlozeni separatoru
  45.   nasobeni.each do |radek|
  46.     longest_line = radek.length if (longest_line < radek.length)
  47.   end
  48.   nasobeni << "-" * longest_line
  49.   # Postupne nasobi vsemi cisly z 2. cisla odzadu 1. cislo
  50.   input = [cislo2.to_s]
  51.   input[0].length.times do |i|
  52.     i = i +1
  53.     nasobeni << (input[0][input[0].length-i,1].to_i * cislo1).to_s + " " * (i - 1)
  54.   end
  55.   nasobeni << vysledek.to_s
  56.   #Vytvoreni a vlozeni druheho sepratoru
  57.   nasobeni.each do |radek|
  58.     longest_line = radek.length if (longest_line < radek.length)
  59.   end
  60.   nasobeni.insert(-2, "-" * longest_line)
  61.   #Vysledny vypis
  62.   nasobeni.each do |vystup|
  63.     puts vystup.rjust(longest_line)
  64.   end
  65. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement