IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Двумерные массивы., [Нужна помощь по задачкам]
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 4
Пол: Мужской
Реальное имя: Артём

Репутация: -  0  +


Помогите решить три задачки пожалуйста.

Первая:
Задана матрица А размерностью 3х6. Сделать поворот относительно главной диагонали.

Вторая:
Задана матрица А размерностью 15х10. Найти рядок с наименьшим элементом и поменять его местами с последним.

Третья:
Задана матрица А размерностью 7х5 та матрица В размерностью 7х4. Сделать добавление А+В, результат записать в матрицу С.

Спасибо за внимание.
[Прошу прощение, если тема не в том разделе. По возможности прошу перенести данную тему в нужный раздел]
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2





Группа: Пользователи
Сообщений: 4
Пол: Мужской
Реальное имя: Артём

Репутация: -  0  +


Пытаясь решить третью задачу, я был подвержен критике специалистов, которые в итоге помогли мне сделать эту задачку.

Выложу решение, возможно, кому-то понадобится.

Задача №3. Программный код.
Код
Uses Crt;

var
a : array[1..7,1..5] of integer;
b : array[1..7,1..4] of integer;
c : array[1..7,1..9] of integer;
i,j : integer;


begin
  randomize();

{ a, b initialization }
  for i := 1 to 7 do
  begin
    for j := 1 to 5 do
      a[i,j] := random(100);
    for j := 1 to 4 do
      b[i,j] := random(100);
  end;

{ copying }
  for i := 1 to 7 do
  begin
    for j := 1 to 5 do
      c[i,j] := a[i,j];
    for j := 1 to 4 do
      c[i,j+5] := b[i,j];
  end;

{ printing }
  for i := 1 to 7 do
  begin
    for j := 1 to 9 do
    begin
      write( c[i,j] );
      write( ' ' );
    end;
    writeln('');
  end;
end.


Тема еще актуальна. Помогите с первой и второй задачей, пожалуйста.

Сообщение отредактировано: worp -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


В первой - неясно, что есть главная диагональ в неквадратной матрице. И что значит поворот относитлеьно нее (даже и в квадратной).

Вторая (надеюсь, что рядок это строка..)
type
  tRow= array[1..10] of ...

var
  a: array[1..15] of tRow;
  b: tRow;
...
  imin:= 1;
  jmin:= 1;
  for i:=1 to 15 do
    for j:=1 to 10 do
      if a[i,j]<a[imin,jmin] then begin
        imin:= i;
        jmin:= j
      end;
  b:= a[i];
  a[i]:= a[15];
  a[15]:= b;
...


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4





Группа: Пользователи
Сообщений: 4
Пол: Мужской
Реальное имя: Артём

Репутация: -  0  +


В первой задаче нужно сделать транспонирование матрицы.

Спасибо за помощь. Вот что получилось:
Задача №2.

const
  n=15;
  m=10;
type
  matr=array[1..n,1..m] of integer;
var
  a:matr;
  i,j,imin,jmin,i_point,buf:integer;
begin
  randomize;
  {Vyvod}
  writeln('Ishodnaya matritsa:');
  for i:=1 to n do
    for j:=1 to m do
      begin
        a[i,j]:=random(100)+5;
        write(a[i,j]:4);
        if j=m then
          writeln;
      end;
  writeln;
  {Poisk min, stroki min}
  imin:=1;jmin:=1;
  for i:=1 to n do
    for j:=1 to m do
      begin
        if a[i,j]<a[imin,jmin] then
          begin
            imin:=i;
            jmin:=j;
            i_point:=i;
          end;
      end;
  writeln('Min:',a[imin,jmin],' ego stroka: ',i_point,' Press enter...');
  readln;
  if i_point=n then{nomer stroki s min posledniy}
    writeln('Element nahoditsa v poslednei stroke. Nichego ne menyaem.')
  else
    begin
    {Obmen}
    for j:=1 to m do
      begin
        buf:=a[i_point,j];
        a[i_point,j]:=a[n,j];
        a[n,j]:=buf;
      end;
    {Vyvod}
    writeln('Posle obmena:');
    for i:=1 to n do
      for j:=1 to m do
        begin
          write(a[i,j]:4);
          if j=m then
            writeln;
        end;
    writeln;
  end;
end.


Осталась первая задача. Помогите пж.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





Группа: Пользователи
Сообщений: 4
Пол: Мужской
Реальное имя: Артём

Репутация: -  0  +


Первая задача с измененным условием: Не 3х6, а 6х6.
№1
uses crt;
const n=6;m=6;
var
a:array[1..n,1..m] of integer;
b:array[1..n,1..m] of integer;
i,j:integer;
begin
clrscr;
 
{Vyvod nachal`nogo massiva}
for i:=1 to n do begin
    for j:=1 to m do begin
    a[i,j]:=random(100);
    write(a[i,j]:4);
    end;
writeln;
end;
writeln;
{Zapolnenie novogo massiva z povorotom}
for i:=1 to n do begin
    for j:=1 to m do begin
    b[j,i]:=a[i,j];
    end;
end;
{Pechat` poluchivshegosya massiva}
for i:=1 to n do begin
    for j:=1 to m do begin
    write(b[i,j]:4);
    end;
writeln;
end;
 
readln;
end.


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.04.2025 23:20
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name