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

Решить олимпиадную , надо и как можно быстрее.арлекино нужно сохранить в памяти компьютера растровое изображение размером 2048 на 1536 пикселей. изначально он попробовал сохранять изображение, применяя простой вариант а): в памяти сохранялись коды цветов каждого пикселя с использованием 24-х битной цветовой модели rgb. сжатия не производилось, и никакой дополнительной информации не хранилось.поняв, что при таком изображение занимает слишком много памяти, арлекино решил проанализировать цвета пикселей и обнаружил следующую закономерность: если разбить изображение на непересекающиеся квадраты, размером 256 на 256 пикселей каждый, то максимальное количество различных цветов, которое может встретиться в одном из квадратов, равно 1024. если же разбить изображение на непересекающиеся квадраты, размером 128 на 128 пикселей каждый, то максимальное количество различных цветов, которое может встретиться в одном из квадратов, равно 512. тогда арлекино решил применить следующий записи: 1. разбить изображение на непересекающиеся квадраты, размером n на n пикселей.2. сохранить для каждого квадрата независимо коды цветов его пикселей, используя для их кодирования минимальновозможное одинаковое для всех пикселей всех квадратов количество бит, рассчитанное исходя из того, какоемаксимальное количество цветов к может встретиться в каком-либо из получившихся квадратов.3. после каждого квадрата записать его кодовую таблицу – последовательность из k 24-х битных кодов. размеры кодовых таблиц, записываемых после каждого квадрата, одинаковые, даже если в конкретном квадрате встречаетсяменьше чем к цветов.4. никакой дополнительной информации не записывается.арлекино применил новый разбив изображение на квадраты, размером 256 на 256 пикселей (вариант б) иразмером 128 на 128 пикселей (вариант в). определите, в каком из вариантов получится меньший объем занимаемой изображением памяти. в ответе укажите сначала букву, обозначающую вариант, а затем через пробел целое число – объем занимаемой изображением памяти в кбайт (1 кбайт=1024 байта).

Показать ответ
Ответ:
Kukla228
Kukla228
10.08.2022 16:56

Если мы хотим вывести числа от 0 до 1, то мы пишем следующее :

1

2

3

var a : integer;

a := random;

Т.е. random без всего.

Бывают случаи когда хочется иметь промежуток(диапазон) чисел. Допустим от -23 до 5, как его задать ?

Для начала мы складываем 23 и 5 без учета знаков и прибавляем 1(всегда) , у нас будет 29. Теперь пишем

1

2

3

var a : integer;

a := random(29);

Но это вернет нам числа от 0 до 28, теперь просто надо вычесть 23, не учитывая знаков. Так для промежутка c отрицательными числами.

С двумя положительными числами всё наоборот, сначала вычитаем из второго первое и прибавляем 1, мы получаем число, затем к нему прибавляем первое число :

1

2

3

5 до 29 = 29 - 5 + 1 = random(25) + 5

 

-1 до 13 = 13 + 1 + 1 = random(15) - 1

Так же есть формула для всех случаев:

1

x := random(max-min+1)+min; // тут уже все знаки учитываются

Т.е. если нам нужен диапазон отрицательных чисел, например от -5 до -10, то мы пишем:

1

2

3

// -5 это максимальное значение, потому что оно больше -10, а -10 это минимальное

 

random(-5-(-10)+1)+(-10) // все знаки учитываются

В основном random и randomize в pascal используются вместе. Если использовать random отдельно, то у нас будут случайные числа постоянно одинаковы.

Допустим у нас есть код :

1

2

3

4

5

6

var a : integer;

begin

  a := random(10);

  writeln(a);

  readln;

end;

И при запуске программы у нас выведется допустим 3. И если мы запустим заново, то у нас снова выведется 3 и так при каждом запуске.

Для этого и используется randomize, чтобы числа не повторялись :

1

2

3

4

5

6

7

var a : integer;

begin

  randomize; // пишем до использование random()

  a := random(10);

  writeln(a);

  readln;

end;

Если мы это напишем, то у нас функция random каждый раз при запуске программы будет выдавать разные числа.

0,0(0 оценок)
Ответ:
Мухамед5Ли
Мухамед5Ли
08.09.2021 07:57

1) Какой ответ будет выведен после выполнения цикла:

for x := 1 to 8 do  Подставляем Х от 1 до 8

if x mod 7 = 0  Подставляем сюда Х=1   1  mod 7=0  нет так как mod это остаток от деления 1 mod 7 = 1  условие ложно и следующая строчка работать не будет, значит единственный Х который нам подходит это 7

7 mod 7 = 0 Да

then x := x + 1;   Х:=7+1  X:=8

ответ: 8

2) Какой ответ будет выведен после выполнения цикла:

S := 0;

for x := 1 to 10 do

if x mod 3 = 0    Тут у нас снова mod  и нам подходят только числа 3,6,9

так как они при делении на 3 дают остаток 0

3 mod 3 = 0 да

6 mod 3 = 0 да

9 mod 3 = 0 да

then S := S + x;

S:=0+3 S:=3

S:=3+6 S:=9

S:=9+9 S:=18

ответ: 18

Объяснение:

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