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

Напишіть код до задач на Python Задача “Numbers.py”

Дано два числа a і b. Якщо їх сума менша за їх добуток, то вивести знак ‘+’, інакше – ‘*’.

Контрольні приклади

1) a= 21, b= 4 => +

2) a= 9, b= 1 => *

Задача “Season.py”

Дано номер місяця N. Вивести пору року.

Контрольні приклади

1) N=1 => winter

2) N=4 => spring

3) N=8 => summer

4) N=11 => autumn

Вказівка. Якщо N=3 або N=4 або N=5, то друкувати ‘spring’.

Умова N=3 мовою Python записується N==3.

Задача “Computers_mouse.py”

Одного разу комп’ютерна мишка вирішила, що непогано мати ще один килимок на запас. Щоб ніхто не помітив запасного килимка, вона вирішила сховати його під свій прямокутний килимок.

Пробравшись вночі на склад, мишка виявила там лише круглі килимки. Чи зможе вона непомітно заховати круглий килимок під прямокутним?

Вхідні дані

Дано три натуральних числа W, H, R, де W – ширина, H – висота прямокутного килимка, R – радіус запасного килимка.

Вихідні дані

Програма виводить слово “YES”, якщо запасний килимок можна заховати під прямокутним, “NO” – в іншому випадку.

Контрольні приклади

1) W= 4, H= 7, R= 2 => YES

2) W= 28, H= 12, R= 9 => NO

Показать ответ
Ответ:
myshkin02
myshkin02
10.02.2020 12:51
Если в нашем распоряжении имеется современная версия PascalABC.Net 3.2, то есть минимум два решить такую задачу. Массив мы будем заполнять случайными числами из интервала [1;98].

Первый использовать имеющуюся в этой версии паскаля возможность находить максимумы и минимумы встроенными в язык средствами. Это очень быстро программируется и обычно страхyет от возможных ошибок при написании более детальных программ.

// PascalABC.NET 3.2, сборка 1353 от 27.11.2016
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(30,1,98); a.Println;
  Writeln('D=',a.Where(x->x.IsEven).Max-a.Where(x->x.IsOdd).Max)
end.

Пример
29 52 58 75 13 77 63 13 17 6 67 17 53 51 14 93 83 30 81 17 93 58 13 71 78 96 42 66 4 91
D=3

Второй не привязан к упомянутой выше версии языка, т.е. может быть использован в школах, исповедующих "доисторический стиль программирования" ))) Естественно, он длиннее и можно будет сравнить количество строк кода. Алгоритм основан на последовательном переборе элементов массива и одновременном получении максимума среди четных и нечетных его элементов.

const
  n=30;
var
  a:array[1..30] of integer;
  i,a1max,a2max:integer;
begin
  Randomize;
  a1max:=0; a2max:=0;
  for i:=1 to n do begin
    a[i]:=Random(98)+1;
    Write(a[i],' ');
    if a[i] mod 2 <> 0 then
      begin if a1max<a[i] then a1max:=a[i] end
    else
      if a2max<a[i] then a2max:=a[i]
    end;
  Writeln;
  Writeln('D=',a2max-a1max)
end.

Замечу, что данный вариант программы содержит фрагмент, в котором школьники (да и не только школьники) часто делают ошибку.
if a[i] mod 2 <> 0 then
  begin if a1max<a[i] then a1max:=a[i] end
else
  if a2max<a[i] then a2max:=a[i]
Выделенные мной begin и end на первый взгляд не нужны. Но в этом-то и ошибка!
По правилам языка паскаль когда внутри одного if встречается другой if и хотя бы один из них неполный, т.е. не содержит else, последний else относится к самому последнему из if, который без его будет неполным.
Запутанно? Поясню на нашем фрагменте.
Его без этих begin ... end можно понимать так:

if a[i] mod 2 <> 0 then
  if a1max<a[i] then a1max:=a[i]
else
  if a2max<a[i] then a2max:=a[i]

Но можно и так:

if a[i] mod 2 <> 0 then
  if a1max<a[i] then a1max:=a[i]
  else
     if a2max<a[i] then a2max:=a[i]

И паскаль, увы, понимает как раз по последнему варианту. Посему как раз begin ... end решают эту проблему. Но... встречается она не очень часто и о ней быстро забывают. А потом нарываютcя и не могут понять причины.

Что ж, выбор как решать - за вами!
0,0(0 оценок)
Ответ:
MARZHIVANKINA
MARZHIVANKINA
01.03.2023 15:45
Const
    N = 10;

var
    A: array[1..N] of integer;

function Fun: integer;
var
    i, M: integer;
begin
    writeln('Введите число M=');
    readln(M);
    for i := 1 to N do
        if A[i] = M then Fun := i;
end;

procedure CreateMassive;
var
    i: integer;
begin
    for i := 1 to N do
    begin
        A[i] := Random(199) - 100;
        write(A[i],' ');
    end;
    Writeln;
end;

begin
    CreateMassive;
    Writeln(Fun);
end.

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