Program spiski;
type
ListElement = ^TListElement;
TListElement = record
Data: integer;
Next, Previous: ListElement;
end;
var
first, current, last: ListElement;
i: integer;
procedure Delete(var element: ListElement);
var
x: ListElement;
begin
while element <> nil do
begin
if (element^.Data = 0) and (element^.Next <> nil) then begin
x := element^.Next; {следующий элемент который надо удалить}
{сшиваем дырку которая образуется после удаления х}
element^.Next := x^.Next;
if (x^.Next <> nil) then
x^.Next^.Previous := element;
Dispose(x);
end;
element := element^.Next;
end;
end;
procedure Print(first: ListElement);
begin
if first = nil then
begin
writeln('Список пуст.');
exit;
end;
while first <> nil do
begin
Write(first^.Data, ' ');
first := first^.Next
end;
writeln;
end;
begin
for i := 1 to 11 do
begin
if first = nil then
begin
new(first);
first^.Next := nil;
first^.Previous := nil;
last := first;
end
else
begin
new(last^.Next);
last^.Next^.Previous := last;
last := last^.Next;
last^.Next := nil;
end;
last^.Data := random(8 + 5) - 5;
end;
current := first;
Print(first);
Delete(current);
Print(first);
end.
3Мбайт = 3*1024*8 Кбит = 24576 Кбит
24576 / 2048 = 12 сек
t = 12 сек
3 раза прибавляешь 1
3 раза увеличиваешь в 2-е
1 раз прибавляешь 1
И 2 раза увеличиваешь в 2-е
<em>// PascalABC.NET 3.2, сборка 1407 от 18.03.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var s:=Range(1,10);
Writeln(s.Aggregate(1,(p,q)->p*q));
Writeln('S=',s.Where(k->k.IsEven).Sum,', П=',
s.Where(k->k.IsOdd).Aggregate(1,(p,q)->p*q));
Writeln('S2=',s.Select(k->k*k).Sum)
end.
<u>Результат</u>
3628800
S=30, П=945
S2=385
<em>// PascalABC.NET 3.2, сборка 1399 от 08.03.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var s:=ReadReal('Площадь решета равна');
var a:=ReadArrReal('Введите диаметры клубней:',10);
var d:=sqrt(4*s/pi);
var b:=a.Where(x->x<d);
var n:=b.Count;
if n>0 then begin
Write('Пройдут клубни диаметром '); b.Print;
Writeln(' - всего ',n,' шт.')
end
else Writeln('Ни один клубень не пройдет')
end.
<u>Пример</u>
Площадь решета равна 45
Введите диаметры клубней: 8.6 7.1 9 10.2 6.4 5 6 8.2 6.6 7
Пройдут клубни диаметром 7.1 6.4 5 6 6.6 7 - всего 6 шт.