Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2011, 00:41   #11
kuy
Форумчанин
 
Аватар для kuy
 
Регистрация: 05.09.2011
Сообщений: 109
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Ну так у вас в цикле i
а используете какую-то j.
Незнаю, подскажите пожалуйста код который поменяет местами строки для этой програмы.
kuy вне форума Ответить с цитированием
Старый 12.10.2011, 00:47   #12
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

oO
Код:
for i:=1 to 4 do
begin
   temp := mas[maxi,i];
   mas[maxi,i] := mas[mini,i];
   mas[mini,i] := temp;
end;
А как вы эту программу написали, если не поняли сейчас в чем ошибка была?) Только копипастом?оО
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.10.2011, 01:02   #13
kuy
Форумчанин
 
Аватар для kuy
 
Регистрация: 05.09.2011
Сообщений: 109
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
oO
Код:
for i:=1 to 4 do
begin
   temp := mas[maxi,i];
   mas[maxi,i] := mas[mini,i];
   mas[mini,i] := temp;
end;
А как вы эту программу написали, если не поняли сейчас в чем ошибка была?) Только копипастом?оО
Я пробывал такой код, выдаёт ту же ошибку:
А писал где-то наполовину копипастом, розобратся пытаюсь. Но то что выше в програме уже усвоил.
Так что с ошибкой??
kuy вне форума Ответить с цитированием
Старый 12.10.2011, 09:49   #14
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А, так массив же у нас константный т.е. неизменяемый. Либо используй второй массив (не const), либо перемести его в var из const)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.10.2011, 22:28   #15
kuy
Форумчанин
 
Аватар для kuy
 
Регистрация: 05.09.2011
Сообщений: 109
Радость

Впринцыпи код готов:
Код:
program boommatree;

{$APPTYPE CONSOLE}


uses
  SysUtils;

const
 mas: array[1..4, 1..3] of integer =
    (
    (8, 9, 1),
    (5, 6, 7),
    (0, 2, 8),
    (3, 7, 5)
    );
var
  mas2: array[1..4, 1..3] of integer =
    (
    (8, 9, 1),
    (5, 6, 7),
    (0, 2, 8),
    (3, 7, 5)
    );
  i,j,max,min,maxi,mini,temp  : integer;
begin
writeln('original matrix 4*3:');
for i:=1 to 4 do
 begin
 for j:=1 to 3 do
   write(mas[i,j]:4);
   writeln;
  end;


max:=mas[1,1]; min:=mas[1,1]; //предположим, что элемент [1,1] являются макс и мин
maxi:=1; mini:=1; //номера строк
for i:=1 to 4 do
    for j:=1 to 3 do
    begin
       if mas[i,j]>max then begin max:=mas[i,j]; maxi:=i; end;
       if mas[i,j]<min then begin min:=mas[i,j]; mini:=i; end;
    end;
writeln('max line = ',maxi);
writeln('min line = ',mini);


writeln('new matrix:');
 for i:=1 to 4 do

begin
   temp := mas2[maxi,i];
   mas2[maxi,i] := mas2[mini,i];
   mas2[mini,i] := temp;
end;

for i:=1 to 4 do
 begin
 for j:=1 to 3 do
   write(mas2[i,j]:4);
   writeln;
  end;
readln;
end.
Но мне интересно как присвоить значение одной матрицы для другой..? у меня ничего не вышло..
kuy вне форума Ответить с цитированием
Старый 12.10.2011, 22:42   #16
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
присвоить значение одной матрицы для другой
а это как?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.10.2011, 22:45   #17
kuy
Форумчанин
 
Аватар для kuy
 
Регистрация: 05.09.2011
Сообщений: 109
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
а это как?
нууу типа есть одна матрица и вторая, они разные, нужно одной матрице присвоить значения елементов второй.
kuy вне форума Ответить с цитированием
Старый 12.10.2011, 22:59   #18
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Дык просто в цикле проходить массив и присваивать кому что надо.
Код:
for i:=1 to 10 do
   for j:=1 to 5 do
     arr2[i,j]:=arr1[i,j];
ну или еще если массивы одного типа т.е.
Код:
a,b:array of integer[1..5];
либо
Код:
type myarr = array [1..5] of integer;
var a,b:myarr;
то можно b:=a; по крайней мере в Дельфи и АБС.
с
Код:
a: array [1..5] of integer;
b: array [1..5] of integer;
и т.п. работать не будет т.к. это не считается одним типом.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.10.2011, 23:24   #19
kuy
Форумчанин
 
Аватар для kuy
 
Регистрация: 05.09.2011
Сообщений: 109
Хорошо

Спасиба за всё!
Если у когото такоеже или подобное задание, то вот код:
Код:
program matrix;

{$APPTYPE CONSOLE}


uses
  SysUtils;

const
 mas: array[1..4, 1..3] of integer =
    (
    (8, 9, 1),
    (5, 6, 7),
    (0, 2, 8),
    (3, 7, 5)
    );
var
  mas2: array[1..4, 1..3] of integer;
  i,j,max,min,maxi,mini,temp  : integer;
begin
writeln('original matrix 4*3:');
for i:=1 to 4 do
 begin
 for j:=1 to 3 do
   write(mas[i,j]:4);
   writeln;
  end;


max:=mas[1,1]; min:=mas[1,1]; //предположим, что элемент [1,1] являются макс и мин
maxi:=1; mini:=1; //номера строк
for i:=1 to 4 do
    for j:=1 to 3 do
    begin
       if mas[i,j]>max then begin max:=mas[i,j]; maxi:=i; end;
       if mas[i,j]<min then begin min:=mas[i,j]; mini:=i; end;
    end;
writeln('max line = ',maxi);
writeln('min line = ',mini);


writeln('new matrix:');
begin
for i:=1 to 4 do
   for j:=1 to 3 do
     mas2[i,j]:=mas[i,j];
end;
 for i:=1 to 4 do

begin
   temp := mas2[maxi,i];
   mas2[maxi,i] := mas2[mini,i];
   mas2[mini,i] := temp;
end;

for i:=1 to 4 do
 begin
 for j:=1 to 3 do
   write(mas2[i,j]:4);
   writeln;
  end;
readln;
end.
kuy вне форума Ответить с цитированием
Старый 09.10.2013, 21:32   #20
kinash96
Пользователь
 
Регистрация: 09.10.2013
Сообщений: 15
По умолчанию

спасибо очень пригодилось)))

Последний раз редактировалось kinash96; 09.10.2013 в 22:39. Причина: поправка
kinash96 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массивы. Вложенные циклы Usefur Помощь студентам 4 27.12.2010 22:48
Блок схема для «Двумерные массивы. Вложенные циклы» MariKa-91 Паскаль, Turbo Pascal, PascalABC.NET 8 27.05.2010 19:03
двумерные массивы.вложенные циклы Горящее сердце Помощь студентам 2 26.05.2010 20:29
массивы и вложенные циклы cobrita24 Помощь студентам 10 03.12.2009 15:22
Двумерные массивы, вложенные циклы, матрицы denis12345 Паскаль, Turbo Pascal, PascalABC.NET 1 15.06.2009 03:09