Вопрос задан 30.06.2023 в 19:13. Предмет Информатика. Спрашивает Романова Софья.

30 баллов! Помогите, пожалуйста, очень нужно! Оформите задачу "напишите программу, которая просит

ввести натуральное число N, и генерирует список списков размера N×N, заполненных случайными числами из отрезка [-50, 50]" в виде вспомогательной функции, которая получает число N, а возвращает список списков размера N×N, заполненный случайными числами. Основная программа просит в цикле ввести натуральное число, с помощью вспомогательной функции генерирует список списков размера N×N, заполненный положительными и отрицательными числами, рассортировывает положительные и отрицательные числа по двум линейным спискам. Начал так(возможно неправильно), а дальше не знаю, т.к. впервые решаю циклы. Может по другому как-то нужно написать и подскажите, пожалуйста, что дальше нужно сделать. Sorted не предлагать. import random def rand(n): l = []*n for i in range(n): for j in range(n): l.append(random.randint(-50, 50)) return l def maximal(l1): a = l1 n = 1 while n a[i+1]: a[i],a[i+1] = a[i+1],a[i] print(n) def main(): n = input('Введите число: ') while n != '': n = int(n) l1 = rand(n) print(l1) maximal(l1) n = input('Введите число: ') main()
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Фролова Арина.

import random

def magic(n):

   matrix = []

   def sort(array):

       i = 0

       def check(array):

           for j in range(len(array) - 2):

               if array[j] > array[j + 1]:

                   return False

           return True

       while True:

           if array[i] > array[i + 1]:

               max = array[i]

               array[i] = array[i + 1]

               array[i + 1] = max

           i += 1

           if i > len(array) - 2:

               i = 0

           if check(array):

               break

       return array

   def writeMatrix(matrix):

       for arr in matrix:

           print(arr)

   for row in range(n):

       matrix.append([])

       for column in range(n):

           matrix[row].append(random.randint(-50, 50))

   print("Non sorted")

   writeMatrix(matrix)

   print()

   print()

   for arr in matrix:

       arr = sort(arr)

   print("Sorted rows")

   writeMatrix(matrix)  # sorted rows

   column = []

   for arr in matrix:

       column.append(arr[0])

   column = sort(column)

   for j in range(len(column) - 1):

       matrix[j][0] = column[j]

   print()

   print()

   print("Full sorted")

   writeMatrix(matrix)  # sorted rows and columns

def main():

   n = int(input())

   magic(n)      

main()

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Вы начали хорошо, создав функцию rand(n), которая генерирует список списков размера N×N, заполненных случайными числами из отрезка [-50, 50]. Однако есть несколько недочетов в вашем коде. Я помогу вам исправить и дополнить его.

  1. Функция rand(n) должна создавать список списков размера N×N. Вместо этого вы создаете одномерный список, заполняя его случайными числами. Для создания списка списков можно воспользоваться генератором списка внутри генератора списка.

  2. Вам нужно рассортировать положительные и отрицательные числа в два разных списка, но у вас есть функция maximal, которая пытается сортировать список, но она не очень понятно работает. Вместо этого, вы можете создать два пустых списка и в цикле перебирать элементы исходного списка, добавляя их в соответствующий новый список.

Вот исправленный и дополненный код:

python
import random def generate_matrix(n): matrix = [] for _ in range(n): row = [random.randint(-50, 50) for _ in range(n)] matrix.append(row) return matrix def main(): while True: n_str = input('Введите натуральное число N (или пустую строку для выхода): ') if not n_str: break try: n = int(n_str) if n <= 0: print("Число N должно быть натуральным.") continue except ValueError: print("Введите корректное натуральное число.") continue matrix = generate_matrix(n) print("Сгенерированная матрица:") for row in matrix: print(row) positive_numbers = [] negative_numbers = [] for row in matrix: for number in row: if number > 0: positive_numbers.append(number) elif number < 0: negative_numbers.append(number) print("Положительные числа:", positive_numbers) print("Отрицательные числа:", negative_numbers) if __name__ == "__main__": main()

Этот код сначала запрашивает число N, затем генерирует матрицу размера N×N и рассортировывает положительные и отрицательные числа в два отдельных списка. Когда пользователь вводит пустую строку, программа завершает выполнение.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос