Помощь - Поиск - Пользователи - Календарь
Полная версия: Задачи на матрицы (двумерные массивы)
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Леха
1.Создать 2-х мерный массив 20х15 целых чисел заданных через randomize и найти их сумму.
2.Создать матрицу 5х5 значение каждого элемента = сумме № строки и столбца на пересечении которого он находиться. Вычислить сумму элементов каждой строки.
3.Создать 2-х мерный массив 4х4 и найти максимальный по абсолютному значению а также укажите номер строки и столбца содержащие этот элемент.
4.Создать 2-х мерный массив через randomize и определите и определите есть ли в нем элементы с одинаковым значением
5.Создать 2-х мерный массив вещественных чисел 3х5 выведите на экран затем разделить каждый элемент на среднее арифметическое значение элементов строки в котором они расположены.
6.Создайте программу проверяющую образуют ли элементы массива "Магический квадрат".(маг. квадрат- суммы по всем горизонталям вертикалям и 2-ум диагоналям - равны
Altair
1.
Код

var
a:array[1..20,1..15] of integer;
i,j,s:integer;
begin
randomize
for i:=1 to 20 do for j:=1 to 15 do begin a[i,j]:=random(200); s:=s+a[i,j] end;
end.
Altair
2.
Код

var
a:array[1..5,1..5] of integer;
i,j:integer;
begin
for i:=1 to 5 do for j:=1 to 5 do a[i,j]:=i+j;
end.



3.
Код

var
a:array[1..4,1..4] of integer;
i,j,m,si,sj:integer;
begin
randomize
for i:=1 to 4 do for j:=1 to 4 do
begin
a[i,j]:=random(200);
If a[i,j]>m then
begin
 m:=a[i,j]; si:=i,sj:=j;
end;
end;
writeln(m,' ',si,' ',sj);
end.

mithquessir
4.
Код

const
 n = 10;
var
 a:array[1..n] of integer;
 i,j:integer;
begin
 for i := 1 to n do
   a[i] := random(10);
 for i := 1 to n-1 do
   begin
     for j := i+1 to n do
       begin
         if a[i] = a[j] then
           break;
       end;
       if j < 10 then break;
   end;
   if i < 9 then writeln('Все элементы массива одинаковы')
     else writeln('Есть различный элементы');
end.

mithquessir
5. (Если я правильно понял условие) smile.gif
Код

const
 n = 3;
 m = 5;
var
 a:array[1..n,1..m] of real;
 i,j:integer;
 sum,mdl:real;
begin
 for i := 1 to n do
   for j := 1 to m do
     begin
       a[i,j] := random;
     end;
 for i := 1 to n do
   begin
     WriteLn;
     for j := 1 to m do
       Write(a[i,j]:4:3,' ');
   end;
 for i := 1 to n do
   begin
     sum := 0;
     for j := 1 to m do
       sum := sum + a[i,j];
     mdl := sum/m;
     for j := 1 to m do
       a[i,j] := a[i,j] / mdl;
   end;
end.
volvo
mithquessir
В решении 4-ой задачи не имел ли ты в виду вот это:
Код

if i < 9 then writeln('В массиве есть одинаковые элементы')
 else writeln('все элементы различны');
rolleyes.gif
mithquessir
volvo
maybe, maybe :D
Леха
Спасибо за помощь! :D rolleyes.gif
klem4
Извиняюсь, чушь написал.
Щас попробую 6-ю написать.
volvo
klem4
Все просто:
Код

const
 n = 3;
 a: array[1 .. n, 1 .. n] of integer =
   ((1, 2, 1), (1, 1, 1), (1, 1, 1));

var
 i, j, s, main: integer;
 b: boolean;
begin
 s := 0; b := true;

 for i := 1 to n do
   s := s + a[i, i];
 main := s;

 for i := 1 to n do
   s := s - a[i, n - i + 1];
 b := b and (s = 0);

 if b then
   for i := 1 to n do
     begin
       s := main;
       for j := 1 to n do
         s := s - a[i, j];
       b := b and (s = 0)
     end;

 if b then
   for j := 1 to n do
     begin
       s := main;
       for i := 1 to n do
         s := s - a[i, j];
       b := b and (s = 0)
     end;

 writeln('magic: ', b)
end.

smile.gif
klem4
Ага, а я так жестоко раскатал .... :D
Код
uses crt;
const n=3;
var x:array[1..n,1..n] of integer;
   i,j,s,snew:integer;
   bo:boolean;

Begin
  clrscr;
  randomize;
 {*************************************}
  for i:=1 to n do
   begin
      for j:=1 to n do
       begin
          readln(x[i,j]);
          write(x[i,j]);
          write(' ');
       end;
       writeln;
   end;
 {**************************************}
   bo:=true;
   s:=0;
   j:=1;
 {**************************************}
   for i:=1 to n do
    s:=s+x[i,j];
   writeln('s=',s);
 {**************************************}
  j:=1;
  while j<=n do
   begin
      snew:=0;
      for i:=1 to n do
       snew:=snew+x[i,j];
      if snew<>s then
       bo:=false;
      if bo=false then break;
      inc(j);
   end;
 {***************************************}
 i:=1;
 while i<=n do
  begin
     snew:=0;
     for j:=1 to n do
      snew:=snew+x[i,j];
     if snew<>s then
      bo:=false;
     if bo=false then break;
     inc(i);
  end;

 {***************************************}
 snew:=0;
 for i:=1 to n do
  snew:=snew+x[i,i];
 if snew<>s then
  bo:=false;
 {***************************************}
 snew:=0;
  j:=1;
for i:=n downto 1 do
 begin
    snew:=snew+x[i,j];
    inc(j);
 end;
 if snew<>s then
  bo:=false;
 {***************************************}
 writeln(bo);
 if bo=true then writeln('Magichesky')
  else writeln('Ne mahichsky');

readln;
 end.

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.