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

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

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

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





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

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


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

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

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

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

Спасибо за внимание.
[Прошу прощение, если тема не в том разделе. По возможности прошу перенести данную тему в нужный раздел]
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
worp
сообщение 2.12.2011 12:52
Сообщение #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 - 2.12.2011 13:02
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 3.12.2011 9:49
Сообщение #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 
 К началу страницы 
+ Ответить 
worp
сообщение 3.12.2011 17:37
Сообщение #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 
 К началу страницы 
+ Ответить 
worp
сообщение 5.12.2011 18:33
Сообщение #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

 



- Текстовая версия 20.07.2025 10:28
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"