Advertisement
Vanilla_Fury

ruby code long 3

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