Нужен цикл этой программы написанный в pascal ( pascal abc) Буду благодарен если кто-то...

0 голосов
23 просмотров

Нужен цикл этой программы написанный в pascal ( pascal abc) Буду благодарен если кто-то поможет) Вариант 1 . Даю 50 баллов


image

Информатика (147 баллов) | 23 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

//И приз за самую неудобную работу с указателями получает Паскаль
//PascalABC.NET 3.2 сборка 1318

type
  pointint=^integer;

Var
  poi,prevpoi,nextpoi:pointint;
  se:set of integer;
  ar:array of integer;
  i,j,b,min,n,minj,poiint,prevsum,nextsum:integer;
begin
se:=[];
b:=0;
i:=n;
while b=0 do
  begin
   inc(n);
   setlength(ar,n);
   readln(ar[n-1]);
   if ar[n-1] in se then b:=1 else include(se,ar[n-1]);
 end;
poi:[email protected][0];
for i:=2 to n-1 do
  nextsum+=ar[i];
min:=sqr(ar[0]-nextsum);
nextsum:=0;
for i:=1 to n-2 do
  begin
  for j:=0 to i-1 do
    begin
      prevsum+=poi^;
      poiint:=integer(poi)+sizeof(integer);
      poi:=pointer(poiint);
    end;
      poiint:=integer(poi)+sizeof(integer);
      poi:=pointer(poiint);
   for j:=i+1 to n-1 do
    begin
      nextsum+=poi^;
      poiint:=integer(poi)+sizeof(integer);
      poi:=pointer(poiint);
    end;
    if abs(prevsum-nextsum)       begin
        min:=abs(prevsum-nextsum);
        minj:=i;
      end;
    poi:[email protected][0];
    nextsum:=0;
    prevsum:=0;
  end;
writeln(minj);
end.

Пример ввода:
1
2
3
2
Пример вывода:
2

(38.6k баллов)
0

Интересная у тебя работа