Проверьте плз, и подскажите что не правильно

GoH

Здравствуйте! Проверьте пожалуйста паскаль и поправьте ошибки если не трудно. Разработка в среде Turbo Pascal программы формирования и обработки элементов одномерного массива. 1. Сформировать двумерный целочисленный массив R(4х11), используя генератор случайных чисел на интервале (-6, 10). Элементы массива вывести на экран в виде матрицы. 2. Преобразовать массив R в одномерный массив V. Полученный массив вывести на экран. 3. Вычислить среднеарифметическое значение четных по значению элементов всего массива V. 4. Определить максимальное значение среди положительных элементов второй четверти массива V. 5. Упорядочить каждые третьи элементы второй половины массива V по возрастанию значений.Пятый пункт выходят каждые 2 элементы а нужно каждые 3.
uses crt;
const m=4;
      n=11;
var r:array[1..m,1..n] of integer;
    v:array[1..m*n] of integer;
    i,j,k,c,mx:integer;
    s:real;
begin
clrscr;
randomize;
writeln('Массив R');
for i:=1 to m do
 begin
  for j:=1 to n do
   begin
    r[i,j]:=-6+random(17);
    write(r[i,j]:4);
   end;
  writeln;
 end;
writeln('Массив V');
k:=0;
s:=0;
c:=0;
for i:=1 to m do
for j:=1 to n do
 begin
  k:=k+1;
  v[k]:=r[i,j];
  if v[k] mod 2=0 then
   begin
    s:=s+v[k];
    c:=c+1;
   end;
  write(v[k]:4);
 end;
writeln;
writeln('Среднее арифметическое четных элементов=',s/c:0:2);
mx:=v[k div 4+1];
for i:=k div 4+2 to k div 2 do
if v[i]>mx then mx:=v[i];
writeln('Максимальный элемент второй четверти=',mx);
for i:=3 to k-1 do
for j:=i+1 to k do
if (i mod 3=0)and(j mod 3=0)and(v[i]>v[j]) then
 begin
  mx:=v[i];
  v[i]:=v[j];
  v[j]:=mx;
 end;
writeln('Расположение всех третьих элементов по возрастанию');
for i:=k div 2+1 to k do
write(v[i]:4);
readln
end.
4 ответа

GoH

А чем не устроил ответ здесь? Массивы


GoH

Он был хорош, и вопросов нет но в 5 пункте каждый 3 член не со всего массива V а со второй половины,а он на второй половины начинает со 2 элемента.


GoH

uses crt;
const m=4;
      n=11;
var r:array[1..m,1..n] of integer;
    v:array[1..m*n] of integer;
    i,j,k,c,mx:integer;
    s:real;
begin
clrscr;
randomize;
writeln('Массив R');
for i:=1 to m do
 begin
  for j:=1 to n do
   begin
    r[i,j]:=-6+random(17);
    write(r[i,j]:3);
   end;
  writeln;
 end;
writeln('Массив V');
k:=0;
s:=0;
c:=0;
for i:=1 to m do
for j:=1 to n do
 begin
  k:=k+1;
  v[k]:=r[i,j];
  if v[k] mod 2=0 then
   begin
    s:=s+v[k];
    c:=c+1;
   end;
  write(v[k]:4);
 end;
writeln;
writeln('Среднее арифметическое четных элементов=',s/c:0:2);
c:=k div 4;
mx:=v[c+1];
for i:=c+2 to 2*c do
if v[i]>mx then mx:=v[i];
writeln('Максимальный элемент второй четверти=',mx);
c:=k div 2;
i:=c+3;
while i<k-2 do
 begin
  j:=i+3;
  while j<=k do
   begin
    if v[i]>v[j] then
     begin
      mx:=v[i];
      v[i]:=v[j];
      v[j]:=mx;
    end;
   j:=j+3;
  end;
 i:=i+3;
end;
writeln('Расположение всех третьих элементов второй половины массива по возрастанию');
for i:=1 to k do
 begin
  write(v[i]:3);
  if i= k div 2 then writeln;
 end;
readln
end.


GoH

Спасибо огромное, Ты лучший.