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

2. Дано число. Якщо воно від 2 до 5 включно, то збільшити його на 10. Якщо воно від 7 до 40, то зменш на 100. Якщо воно не більше о
або більше 3000, то збільшити в 3 рази (тобто помножити на 3).
Інакше вивести 0.​

Показать ответ
Ответ:
ilonazin03
ilonazin03
31.10.2021 04:35
Пришлось написать рекурсивную процедуру. Надеюсь, это не вызовет вопросов.
Во вложениях даны тестовые файлы.

const
  n1 = 20;

type
  r5 = record
    value: byte; {Значение элемента}
    right: boolean; {Есть ли единица справа?}
    down: boolean; {Есть ли единица ниже?}
    left: boolean; {Есть ли единица слева?}
    viewed: boolean {Элемент просмотрен?}
  end;

var
  n, i, j, k: integer;
  m: array[1..n1, 1..n1] of r5;
  fin, fout: Text;

procedure Mark(i: integer; j: integer);
{рекурсивная процедура, отыскивающая весь островок и помечающая его}
begin
  if not m[i, j].viewed then
  begin
    m[i, j].viewed := true;
    if m[i, j].right then Mark(i, j + 1);
    if m[i, j].down then Mark(i + 1, j);
    if m[i, j].left then Mark(i, j - 1)
  end
end;

begin
  Assign(fin, 'Input.txt');
  Reset(fin);
  {Инициализация из файла}
  Readln(fin, n);
  for i := 1 to n do
    for j := 1 to n do
      Read(fin, m[i, j].value);
  Close(fin);
  {Определение соседей}
  for i := 1 to n do
    for j := 1 to n do
    begin
      if m[i, j].value = 1 then begin
        if j < n then m[i, j].right := (m[i, j + 1].value = 1) else m[i, j].right := false;
        if i < n then m[i, j].down := (m[i + 1, j].value = 1) else m[i, j].down := false;
        if j > 1 then m[i, j].left := (m[i, j - 1].value = 1) else m[i, j].left := false
      end;
      m[i, j].viewed := false
    end;
  {Подсчет "островков"}
  k := 0;
  for i := 1 to n do
    for j := 1 to n do
    begin
      with m[i, j] do
      begin
        if (m[i, j].value = 1) and (not m[i, j].viewed) then begin
          k := k + 1;
          Mark(i, j)
        end
      end
    end;
  Assign(fout, 'Output.txt');
  Rewrite(fout);
  Writeln(fout, k);
  Close(fout)
end.
0,0(0 оценок)
Ответ:
лилия581
лилия581
29.11.2020 13:50
Система счисления - это для записи чисел и набор правил выполнения операций над ними.
Числа записываются при набора символов, обычно называемого цифрами.
Количество различных цифр, которое необходимо для  представления чисел, определяет основание системы счисления. Например, если для записи чисел используется десять разных цифр (0,1,2,3,4,5,6,7,8,9), система счисления называется десятичной. Если таких цифр две (0,1), система счисления называется двоичной, если восемь (0,1,2,3,4,5,6,7) - мы говорим о восьмеричной системе счисления. В шестнадцатиричной системе используется 16 цифр (от 0 до 15), но поскольку у нас только десять значков, изображающих цифры, то числа от 10 до 15 изображают буквами латинского алфавита и полный набор шестнадцатиричных цифр содержит символы 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.
Каждая цифра образует разряд. Рассмотренное выше число 123 записано в десятичной системе счисления и имеет три разряда: сотни, десятки и единицы. В системе счисления с иным основанием точно также различаются разряды. Например, 61DC4 - это шестнадцатиричное число, которое имеет пять разрядов.
Во избежание путаницы, если есть сомнения, что основание системы счисления отличается от десяти, следует указывать его. Обычно снование системы записывается в виде нижнего индекса, но можно также использовать и круглые скобки.
125_{8}, \, 347_{16}, \, 1001001_2, \, 1000_{10}
125 (8), 347 (16), 1001001 (2), 1000 (10).
Очень важно запомнить два правила:
1. Самое меньшее однозначное число всегда 0, самое большее на единицу меньше основания системы счисления.
2. Если к самом старшему однозначному числу в любой системе счисления прибавить единицу, то получится 10 в этой системе счисления, т.е. произойдет сброс в ноль значения в текушем разряде и +1 пойдет в следующий разряд. На этом правиле основана практически вся арифметика.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота