В
Все
Х
Химия
В
Видео-ответы
А
Алгебра
Г
Геометрия
О
ОБЖ
Д
Другие предметы
У
Українська література
Р
Русский язык
Б
Беларуская мова
У
Українська мова
Э
Экономика
Ф
Физика
М
Математика
Ф
Французский язык
Г
География
И
Информатика
М
МХК
О
Окружающий мир
П
Психология
Н
Немецкий язык
О
Обществознание
П
Право
И
История
М
Музыка
Л
Литература
Қ
Қазақ тiлi
Б
Биология
А
Английский язык
gehegeghegge
gehegeghegge
28.04.2020 16:51 •  Информатика

Нужно перевести из паскаля в питон
    n = 10;

var
    a, b: array[1..n]of real;
    i: integer;
    s, maxs: real;

begin
    for i := 1 to n do
    begin
        a[i] := random(3, 10);
        b[i] := random(3, 10);
        
        if (maxs < a[i] * b[i]) then maxs := a[i] * b[i];
    end;
    
    for i := 1 to n do
        if (maxs = a[i] * b[i]) then
            writeln(i, ' Площадь=', a[i] * b[i] * 0.5, ' а=', a[i], ' b=', b[i]);
    
end.​

Ответ:
джон7777
джон7777
05.01.2021 16:18

Некоторые изменения в коде на Питоне в отличие от Паскаля:

"const  n = 10;"  превратится в "n = 10"Присвоения обозначаются не :=, а просто =Раздел описаний нам не нужен, разве что можно сразу задать списки длины n: a = [None] * n; b = [None] * nВ Паскале некоторые переменные инициализируются нулем. Тут придется написать присвоение явно."for i := 1 to n do" превратится в "for i in range(1, n + 1):". Но так как нумерация элементов списка в Питоне начинается с нуля, имеет смысл поменять на range(n), чтобы действительно был проход по всем элементам. При этом в выводе придется поменять i на i + 1, чтобы сам вывод не поменялся.Вместо begin ... end используются отступыДля генерации случайных чисел в промежутке от 3 до 10 в модуле random есть функция randint, использование такое же, что и у random в исходной программеУсловная конструкция в Питоне if cond: ...Проверка на равенство ==, а не =Вывод - функция print. Чтобы Питон не добавлял лишние пробелы, нужно в функцию print дописать sep=''

Получается так:

Код (Python 3):

from random import randint

n = 10

a = [None] * n

b = [None] * n

maxs = 0

for i in range(n):

   a[i] = randint(3, 10)

   b[i] = randint(3, 10)

   if maxs < a[i] * b[i]:

       maxs = a[i] * b[i]

for i in range(n):

   if maxs == a[i] * b[i]:

       print(i + 1, ' Площадь=', a[i] * b[i] * 0.5, ' а=', a[i], ' b=', b[i], sep='')

Пример вывода:

5 Площадь=50.0 а=10 b=10

7 Площадь=50.0 а=10 b=10

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?