Массивы

GoH

Здравствуйте! Прошу помочь с заданиями, если не сложно. Задания звучат так: Разработка в среде Turbo Pascal программы формирования и обработки элементов одномерного массива. 1. Сформировать двумерный целочисленный массив R(4х11), используя генератор случайных чисел на интервале (-6, 10). Элементы массива вывести на экран в виде матрицы. 2. Преобразовать массив R в одномерный массив V. Полученный массив вывести на экран. 3. Вычислить среднеарифметическое значение четных по значению элементов всего массива V. 4. Определить максимальное значение среди положительных элементов второй четверти массива V. 5. Упорядочить каждые третьи элементы второй половины массива V по возрастанию значений.
1 ответ

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]: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:=1 to k do
write(v[i]:4);
readln
end.