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

Програма Python.
Складіть програму обчислення значення виразу а*b2-2*а, якщо а >b і виразу а/b, якщо а <= b із використанням функції з одним обов’язковим та одним необов’язковим параметрами

👇
Открыть все ответы
Ответ:
KaFnaTou
KaFnaTou
28.02.2021
Const
  N=2016;
var
  a: array [1..N] of integer;
  i, m, k: integer;
begin
  for i:=1 to N do
    readln(a[i]);
  k:=0;
  for i:=1 to N do begin
    m:=a[i]-516;
    if m>=0 then begin
      if m mod 8=0 then begin
        m:=m div 8;
        if (m - m mod 8) mod 8 = 0 then
          if a[i]>k then k:=a[i]
        end
      end
    end;
  Writeln(k)
end.

Объяснения
Число 1000₁₀ = 1750₈, а минимальное четырехзначное восьмеричное число - это 1000₈ = 512₁₀.
Следовательно, искомые числа лежат на интервале [512;1000] и всегда содержат 1 в старшем разряде своего восьмеричного представления.
Вычтем из исходного числа 512 и тогда можно рассматривать только трехзначные восьмеричные числа.
Трехзначное восьмеричное число в расширенной записи имеет вид
N=abc₈ = (a×8²+b×8¹+c)₁₀ = 64a+8b+c.
По условию с=4, поскольку число должно оканчиваться на 4 в своем восьмеричном представлении.
Мы получили соотношение N-4 = 64a+8b = 8(8a+b), т.е. N-4 должно быть кратно 8. Итак, первый шаг - получить a[i]-516 и если оно не отрицательно, проверить нулевой остаток от деления этой величины на 8. Если это так, полагаем m=(a[i]-4) div 8.
Рассматриваем уравнение m=8a+b. a=(m-b)/8. Понятно, что m-b>0 и a должно быть кратно 8. Что и следует проверить. Если все так и есть - число подходит и следует обычная проверка алгоритма поиска максимума.
4,8(1 оценок)
Ответ:
Animashka11
Animashka11
28.02.2021
Var used: Set of Char;
    s1, s2: string;
    i: integer;
    done: boolean;
    c: char;

function IsLetter(c: char): boolean;
begin
  IsLetter := ((c >= 'a') and (c <= 'z')) or ((c >= 'A') and (c <= 'Z'));
end;

function UpperCase(c: char): char;
begin
  if (c >= 'a') and (c <= 'z') then
    UpperCase := Chr(Ord(c) - Ord('a') + Ord('A'))
  else
    UpperCase := c;
end;

begin
used := [];

readln(s1);
readln(s2);

for i := 1 to length(s1) do
  if (IsLetter(s1[i])) then
    include(used, UpperCase(s1[i]));

for i := 1 to length(s2) do
  if (IsLetter(s2[i])) then
    include(used, UpperCase(s2[i]));

done := False;
for c := 'A' to 'Z' do
  if not (c in used) then
  begin
    done := True;
    write(c);
  end;

if not done then
  write(0);

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