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

 





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