М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
tsukikokawaii
tsukikokawaii
11.11.2021 20:46 •  Информатика

Нужно перевести из паскаля в питон
    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.​

👇
Ответ:
miloft
miloft
11.11.2021

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

"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

4,6(100 оценок)
Открыть все ответы
Ответ:
kydyrali610
kydyrali610
11.11.2021
Приведенная программа принимает целые числа и выводит два значения: a - количество цифр в числе и b - произведение цифр, составляющих число. При вводе нуля программа завершает работу.  Ввод отрицательных чисел игнорируется.
1) При исполнении этой программы на экран было сначала выведено число 2, затем число 15. НАИМЕНЬШЕЕ значение переменной x, для которого это возможно, равно С) 35
Здесь количество цифр равно двум, а их произведение равно 15. Число 15 представимо в виде произведения двух однозначных чисел только в виде 3х5 или 5х3. Следовательно, наименьшим числом могло быть только 35.
2) При исполнении этой программы на экран было сначала выведено число 2, затем число 15. НАИБОЛЬШЕЕ значение переменной x, для которого это возможно, равно B) 53
Решение аналогично предыдущему, но выбирается наибольшее число, т.е. 53.
3) НАИМЕНЬШЕЕ значение переменной b, которое может быть выведено на экран этой программой, равно Е) 0
Минимальное значение произведения n однозначных чисел будет равно нулю, если среди этих чисел встретить хотя бы один ноль.
4) При исполнении этой программы на экран было сначала выведено число 2. НАИБОЛЬШЕЕ значение переменной b, которое может быть выведено на экран, равно А) 81
Максимальное произведение двух однозначных чисел равно 9х9=81.
5) НАИМЕНЬШЕЕ значение переменной a, которое может быть выведено на экран этой программой, равно D) 1
Понятно, что чисел с количеством знаков, меньшим единицы, быть не может.
4,5(24 оценок)
Ответ:
lizarepkina2004
lizarepkina2004
11.11.2021

числа в if берутся из кодов ASCII

Объяснение:

#include <stdio.h>

#include <string.h>

int

main ()

{

 char s[10001];

 int i = 0;

 for (int j = 0; j < 10001; j++) {

     scanf("%c", &s[j]);

     if (s[j] == '\n')

         break;

 }

 while (s[i] != '\n')

   {

   if (((int)s[i] > 64 && (int)s[i] < 91) || ((int)s[i] > 96 && (int)s[i] < 123))

     if ((int)s[i] > 124)

s[i] = (char)((int)s[i] - 92); //3-127+32=92

else

       s[i] = (char)((int)s[i] + 3);

   i++;

   }

 for (int j = 0; j < i; j++)

     printf("%c", s[j]);

 return 0;

}

4,6(63 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ