Другие языки программирования и технологии

Контрольная по информатике.:( Жду вашей помощи!

На языке Ruby:

# размер матрицы
size = 4
# разброс значений элементов матрицы
max_num = 100

def print_matrix(matrix)
puts "Матрица: "
elem_width = matrix.map { |row| row.map { |elem| elem.to_s.size }.max }.max
puts matrix.map { |row| row.map { |elem| elem.to_s.rjust(elem_width) }.join(" ") }.join("\n")
end

# создание матрицы размером size * size
# заполненной случайными числами из диапазона [-max_num; max_num]
matrix = Array.new(size) { Array.new(size) { rand(2*max_num + 1) - max_num } }

print_matrix(matrix)

puts "Произведение суммы элементов главной диагонали и суммы элементов побочной диагонали: "
puts (0...size).inject([0, 0]) { |sum, index| [sum.first + matrix[index][index], sum.last + matrix[index][size - index - 1]]}.reduce(:*)

print_matrix(matrix)

puts "Количество отрицательных элементов над диагональю: "
puts (0...size).map { |index| matrix[index][(index + 1)...size].inject(0){ |count, element| element < 0? count + 1 : count } }.reduce(:+)

print_matrix(matrix)

puts "Минимальный элемент под диагональю: "
puts (1...size).map { |index| matrix[index][0...index].min }.min

print_matrix(matrix)

puts "Удалить вторую строку. "
matrix.delete_at(1)

print_matrix(matrix)

puts "Первый столбец матрицы: "
puts matrix.map { |row| row.first }

print_matrix(matrix)

k = 1
puts "Вставить #{k}-ую строку. "
matrix.insert(k - 1, Array.new(size) { rand(2*max_num + 1) - max_num })

print_matrix(matrix)

puts "Поменять местами 2-й и последний столбцы. "
(0...size).each { |index| matrix[index][1], matrix[index][size - 1] = matrix[index][size - 1], matrix[index][1] }

print_matrix(matrix)
Александр Добрынин
Александр Добрынин
2 433
Лучший ответ
Аналогично Dark Smile ) за халяву надо платить :) тем более здесь не две строчки черкнуть
Михаил Домский
Михаил Домский
20 142
Могу я, но плати
главная i=j
побочная n-i+1
ставь условия вот и всё... решать 7 задач никто не будет