Vanilla_Fury

ruby test code long

Oct 7th, 2021 (edited)
292
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. =begin
  2.     Эта программа имеет 20 строгих и 72 нестрогих предупреждения
  3. =end
  4.  
  5. def create_matrix(size)
  6.   Array.new(size) do |r|
  7.     Array.new(size) do |c|
  8.       rand(10)
  9.     end
  10.   end
  11. end
  12.  
  13. def print_matrix(m)
  14.   m.each { |r| p r }
  15.   puts
  16. end
  17.  
  18. =begin
  19.     Тест комментов:
  20.     if a === b
  21.         puts(a===b)
  22.     end
  23.     loop do
  24.         puts "1. Операции с матрицами \n
  25.             2. Операции со строками \n
  26.             3. Выход \n
  27.             >>>"
  28.     end
  29. =end
  30.  
  31. loop do
  32.   puts "1. Операции с матрицами \n
  33.        2. Операции со строками \n
  34.        3. Выход \n
  35.        >>>"
  36.   mainInput = gets.chomp.to_i
  37.   case mainInput
  38.   when 1
  39.     puts "1. Ввести матрицу \n
  40.          2. Сложить \n
  41.          3. Отнять \n
  42.          4. Умножить \n
  43.          5. Возвести в квадрат \n
  44.          6. Выйти \n
  45.          >>>"
  46.     userInput = gets.chomp.to_i
  47.    
  48.     case userInput
  49.     when 1
  50.       puts "Выберете размер матрицы nxn: "
  51.       size = gets.chomp.to_i
  52.       matrix = create_matrix(size)
  53.     when 2
  54.       puts "Выберете размер для матриц: "
  55.       size = gets.chomp.to_i
  56.  
  57.       matrix = create_matrix(size)
  58.       puts "Первая матрица имеет вид: "
  59.       print_matrix(matrix)
  60.  
  61.       addMatrix = create_matrix(size)
  62.       puts "Вторая матрица имеет вид: "
  63.       print_matrix(addMatrix)
  64.  
  65.       for i in 0...size
  66.         for j in 0...size
  67.           addMatrix[i][j] += matrix[i][j]
  68.         end
  69.       end
  70.  
  71.       puts "Результат сложения: "
  72.       print_matrix(addMatrix)
  73.    
  74.     when 3
  75.       puts "Выберете размер матриц: "
  76.       size = gets.chomp.to_i
  77.      
  78.       matrix = create_matrix(size)
  79.       puts "Первая матрица имеет вид: "
  80.       print_matrix(matrix)
  81.      
  82.       addMatrix = create_matrix(size)
  83.       puts "Вторая матрица имеет вид: "
  84.       print_matrix(addMatrix)
  85.      
  86.       (0...size).each { |i|
  87.         (0...size).each { |j|
  88.           addMatrix[i][j] -= matrix[i][j]
  89.         }
  90.       }
  91.      
  92.       puts "Результат их разности: "
  93.       print_matrix(addMatrix)
  94.  
  95.     when 4
  96.       puts "Выберете размер матриц: "
  97.       size = gets.chomp.to_i
  98.  
  99.       matrix = create_matrix(size)
  100.       puts "Первая матрица имеет вид: "
  101.       print_matrix(matrix)
  102.  
  103.       addMatrix = create_matrix(size)
  104.       puts "Вторая матрица имеет вид: "
  105.       print_matrix(addMatrix)
  106.  
  107.       resultMatrix = create_matrix(size)
  108.       matrix.each_index do |i|
  109.         addMatrix[i].each_index do |j|
  110.           sum = 0
  111.           (0...size).each do |k|
  112.             sum += (matrix[i][j + k] * addMatrix[j + k][i])
  113.           end
  114.           resultMatrix[i][j] = sum
  115.         end
  116.       end
  117.      
  118.       puts "Результирующая матрица имеет вид:"
  119.       print_matrix(resultMatrix)
  120.     when 5
  121.       puts "Выберете размер матрицы: "
  122.       size = gets.chomp.to_i
  123.  
  124.       matrix = create_matrix(size)
  125.       puts "Матрица имеет вид: "
  126.       print_matrix(matrix)
  127.  
  128.       resultMatrix = create_matrix(size)
  129.       matrix.each_index {|i|
  130.           sum = 0
  131.           (0...size).each do |k|
  132.             sum += (matrix[i][i + k] * matrix[i + k][i])
  133.           resultMatrix[i][i] = sum
  134.         end
  135.       }
  136.       puts "Результат возведения: "
  137.       print_matrix(resultMatrix)
  138.     when 6
  139.       break
  140.     else
  141.       puts "Такой опции не существует, попробуйте снова ..."
  142.     end
  143.   when 2
  144.     puts "1. Частота вхождений символов в строку \n
  145.          2. Фильтрация ввода \n
  146.          3. Выход
  147.          >>>"
  148.     userInput = gets.chomp.to_i
  149.     case userInput
  150.     when 1
  151.       puts "Введите строку на латинице: "
  152.       text = gets
  153.       text.downcase!
  154.       freqs = {}
  155.       freqs.default = 0
  156.       text.each_char { |char|
  157.         freqs[char] += 1
  158.       }
  159.       ('a'..'z').each {|x|
  160.         puts x.to_str + " : " + freqs[x].to_s
  161.       }
  162.     when 2
  163.       puts "Введите строку: "
  164.       text = gets
  165.       i = 0
  166.       while i < text.length.to_i do
  167.         char = text[i]
  168.         if (char < 'a' || char > 'z') && char != ' '
  169.           text[i] = ''
  170.           i -= 1
  171.         end
  172.         i += 1
  173.       end
  174.       puts text
  175.     when 3
  176.       break
  177.     else
  178.       puts "Такой опции не существует, попробуйте снова ..."
  179.     end
  180.   when 3
  181.     break
  182.   else
  183.     puts "Такой опции не существует, попробуйте снова ..."
  184.   end
  185. end
  186.  
  187.  
  188. =begin
  189.     Эта программа умеет работать:
  190.         со строками
  191.         с матрицами
  192.  
  193.     Она может выполнить следующие действия над матрицей:
  194.         Ввести матрицу
  195.         Сложить
  196.         Отнять
  197.         Умножить
  198.         Возвести в квадрат
  199. =end
  200.  
Add Comment
Please, Sign In to add comment