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

Определи значения переменной c после выполнения фрагмента алгоритма-a: =30 b: =6 a: =a/2*b if a> b then c: =a-3*b else c: =a+3*b

Показать ответ
Ответ:
nikita112289
nikita112289
14.10.2020 20:46
Предлагается хранить типы блоков в массиве. Каждый элемент - 2Б, количество элементов - 2^20 => всего требуется 2МБ.

При перезаписи блока и очередной переоценке необходимо учитывать типы данных в блоке до перезаписи (T0), после перезаписи (T1) и в соседних блоках (TL, TR).

Если T0 = T1, то количество кусков данных не изменяется, т.е. W[i+1] = W[i]
TL = T0 = TR <> T1 -> W[i+1] = W[i] + 2
TL = T1 = TR <> T0 -> W[i+1] = W[i] - 2
TL = TR, T0 <> TL, T1 <> TL -> W[i+1] = W[i]

Далее рассмотрим случаи, когда TL <> TR
(TL = T0, TR = T1) или (TR = T0, TL = T1) -> W[i+1] = W[i]
(TL = T0, TR <> T1) или (TR = T0, TL <> T1) -> W[i+1] = W[i] + 1
(TL = T1, TR <> T0) или (TR = T1, TL <> T0) - > W[i+1] = W[i] - 1

Если все четыре типа не совпадают, то W[i+1] = W[i]
Если перезаписывается блок с адресом 0, считать, что тип TL не совпадает ни с одним из трех других.Аналогично при перезаписи блока с адресом , но для TR.

Вроде все?
0,0(0 оценок)
Ответ:
Lenaclati
Lenaclati
27.01.2022 07:41
PascalABC.NET 3.4.2, сборка 1933 от 01.04.2019

begin

 var (a, b) := ReadInteger2;  // Считывание a и b

 var simple := ArrFill(b + 1, true);  // Инициализация булевого массива значением true.

// Реализация решета Ератосфена

 for var i := 2 to b do

   if simple[i] then  

   begin

     var j := i * i;

     while (j <= b) do

     begin

       simple[j] := false;

       j += i;

     end;

   end;


 // Вывод на экран найденного результата

 for var i := a to b do

   if (simple[i]) and (i > 1) then i.Print

end.

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