<u>Итак зацикливание в программировании - это ситуация, когда цикл написан таким образом ,что условия выхода из него не выполняется.</u> Рассмотрим зацикливание в операторах цикла for,while и repeat . Справедливости ради все варианты будут рассмотрены в Turbo Pascal и PascalABC. Также будет добавлен оператор write для вывода результатов.
Зацикливание в for
Вообще идея зацикливания проста : необходимо всего-то в каждом шаге цикла уменьшать оператор шага на 1 (i:=i-1;) . Однако именно такая реализация возможна не везде. Рассмотрим простой пример.
for i:=1 to 5 do begin
i:=i-1;
write(i);
end.
Казалось бы все просто,да не тут то было.В то время как в Turbo Pascal все проходит на ура,в PascalABC такое не возможно и для зацикливания необходимо использовать оператор goto.
label m;
var i:integer;
begin
m:
for i:=1 to 5 do begin
write(i);
if i=2 then goto m;
end;
end.
Зацикливание в while
Напомню,что в операторе while шаг цикла необходимо добавлять самостоятельно. Поэтому произвести зацикливание проще всего : нужно только убрать шаг цикла
var i:integer;
begin
i:=0;
while i<>1 do
write(i);
end.
Оба компилятора адекватно реагируют на пропуск шага.
Зацикливание в repeat
Для создание бесконечного цикла в этом случае, как и предыдущем, достаточно не указывать шаг цикла
var i:integer;
begin
i:=0;
repeat
write(i);
until i=1;
end.
<u>тут вам приведены различные варианты для создание бесконечного цикла. Однако запомните,что зацикливание создает нагрузку и вообще редко используется. Гораздо чаще применяют неполное зацикливание при котором выход из цикла все же совершается.</u>
512=2^9 ---> 9 бит для кодировки одного символа
F = 4096*9=1024*4*9 бит =9*2^12 бит =4,5 *2^13 бит =4,5 Кбайт
ответ 4,5 Кбайт
Так. Ну для начала небольшая табличка простейших чисел (3-9);
<u>00=0;</u>
<u>01=1;</u>
<u>02=2;</u>
<u>10=3;</u>
<u>11=4;</u>
<u>12=5;</u>
<u>20=6;</u>
<u>21=7;</u>
<u>22=8;</u>
И так, ситуация у нас почти такая же, как и из двоичной в восмеричную, только мы берем не 3 цифры, а 2. Вот например: 102211<u>02 </u>= (смотрим по таблице(2));
1022<u>11</u> = (смотрим по таблице(4));
10<u>22 </u>= (смотрим по таблице(8));
<u>10</u> = (смотрим по таблице(3));
Итоговое число(снизу вверх)=10221102(3)=3842(9);