1. любой ли список является связным? обоснуйте ответ. 2. в чем отличие первого элемента однонаправленного (двунаправленного) списка от остальных элементов этого же списка? 3. в чем отличие последнего элемента однонаправленного (двунаправленного) списка от остальных элементов этого же списка? 4. почему при работе с однонаправленным списком необходимо позиционирование на первый элемент списка? 5. почему при работе с двунаправленным списком не обязательно позиционирование на первый элемент списка? 6. в чем принципиальные отличия выполнения добавления (удаления) элемента на первую и любую другую позиции в однонаправленном списке? 7. в чем принципиальные отличия выполнения основных операций в однонаправленных и двунаправленных списках? 8. с какой целью в программах выполняется проверка на пустоту однонаправленного (двунаправленного) списка? 9. с какой целью в программах выполняется удаление однонаправленного (двунаправленного) списка по окончании работы с ним? как изменится работа программы, если операцию удаления списка не выполнять?
const n=10;
var A,B,C,i,k: integer;
begin
A:=1; B:=1;
{ вывод последовательности на экран }
for i:=2 to n do
begin
C:=A; A:=A+B; B:=C;
writeln(i,' -> ',A,'/',B);
end;
{ подсчет k - го члена }
k:=20; A:=1; B:=1;
for i:=2 to k do
begin
C:=A; A:=A+B; B:=C;
end;
writeln(k,' - ый элемент = ',A,'/',B);
end.
uses utils;
var
n,i,sum,time:longint;
flag:boolean;
begin
readln(n);
if n<2 then flag:=false;{Единица - не простое число}
if n=2 then flag:=true;{2 - простое}
if (n>2) and (n mod 2 <> 0) then begin{ после двойки простые числа только нечетные}
for i:=1 to n do begin{проверяем что бы было только 2 делителя}
sum:=sum+1;
end;
if sum=2 then flag:=true;
end
else flag:=false;
if flag then writeln('Число простое') else writeln('Число НЕ простое');
time:=milliseconds;
writeln('Времени затрачено ',time:10,' ms.');
end.
Все проверки сделаны для сокращения времени работы программы.