Составить программу вычисления суммы положительных элементов одномерного массива А(N), встречающихся в ясно массиве более двух раз — Pascal(Паскаль)

uses crt;
const max=100;
var a:array[1..max] of integer;
    n,i,j,k,p,q:byte;
    s,x:integer;
begin
clrscr;
repeat
write('Размер массива n=');
readln(n);
until n in [1..max];
writeln('Введите ',n,' целых чисел:');
for i:=1 to n do
 begin
  write('a[',i,']=');
  readln(a[i]);
 end;
clrscr;
writeln('Исходный массив:');
for i:=1 to n do
write(a[i],' ');
writeln;
writeln;
s:=0;{сумма}
i:=1;
while i<=n do{пока не конец массива}
if a[i]>0 then{если положительное}
 begin
  k:=1;{1 есть}
  for j:=i+1 to n do{смотрим вперед}
  if a[j]=a[i] then k:=k+1;{если такое же, считаем}
  if k>2 then{если больше 2х}
   begin
    s:=s+a[i]*k;{считаем сумму, не понял как считать, 
только 1 раз(тогда не нужно умножать на к)или все, тогда нужно}
    p:=i;x:=a[i];{запоминаем число и от него}
    while p<=n do{до конца массива}
    if a[p]=x then{все такие}
     begin
      for q:=p to n-1 do{удаляем сжатием массива влево}
      a[q]:=a[q+1];{на 1}
      n:=n-1;{уменьшаем размер массива}
     end
    else p:=p+1;{если не равно х}
   end
  else i:=i+1;{если не больше 2х раз}
 end
else i:=i+1;{если не положительное}
write('Сумма чисел, встречающихся более 2х раз=',s);
readln
end.

Leave a Comment

9 + 1 =