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

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

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

 
 Ответить  Открыть новую тему 
> Матрица
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

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


Народ помогите пожайлуста дополнить эту программу(надо дополнить её выводом исходной матрицей) и посмотреть правильно ли я её сделал. Заранее всех благодарю.
Сама задача.
В данной действительной матрице 6х9 поменять местами строку, содержащую элемент с наибольши значение. предпологается, что эти элементы единственные.
Program matr;
var
mat:array[1..6,1..9] of integer;
max,b:integer;
j,i,maxj:byte;
BEGIN
randomize;
for i:=1 to 6 do
begin
for j:=1 to 9 do
begin
mat[i,j]:=integer (random(100))-50;
write(mat[i,j]:4,' ');
end;
writeln;
end;
max:=mat[1,1]; maxj:=1;
for i:=1 to 6 do
for i:=1 to 9 do
if mat[i,j]>max then begin
maxj:=j;
max:=mat[i,j];
end;
end.



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


Человек
*****

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

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


а полное задание засекречино? smile.gif

добавленно
о задание появилось! smile.gif

А что означает <<поменять местами строку>>? превернуть?

Сообщение отредактировано: compiler -


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


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

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


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


Человек
*****

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

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


Цитата(1111 @ 30.10.2007 15:36) *
постовить строку на место другой
на место какой?


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

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


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


Пионер
**

Группа: Пользователи
Сообщений: 69
Пол: Мужской

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


A стабильно, точно так же как и вводил(а) не подойдет? в смысле


for i:=1 to 6 do
begin
for j:=1 to 9 do
write (mat [i, j], ' ');
writeLn;
end



Это я про вывод. Про строку, сейчас что нибудь придумаем.

Добавлено через 7 мин.
Я у тебя ошибку нашел, вот здесь:


for i:=1 to 6 do
for i:=1 to 9 do
if mat[i,j]>max then begin
maxj:=j;
max:=mat[i,j];
end;



Во втором цикле желательно бы использовать j. У меня еще вопрос, индекс строки это второй или первый? Т. е. сколько строк 6 или 9?

А integer тут при чем?

mat[i,j]:=integer (random(100))-50;



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


Гость






Цитата
А integer тут при чем?
При генерации случайных чисел без приведения к Integer-у при некоторых условиях можно получить RunTime Error... Поэтому использован (кстати, совершенно правильно) Integer...

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Пионер
**

Группа: Пользователи
Сообщений: 69
Пол: Мужской

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


volvo, спасибо, не знал
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

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


за ошибку спасибо а вывод исходной матрицы неработает.
6-строк 9-столбцов

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


Пионер
**

Группа: Пользователи
Сообщений: 69
Пол: Мужской

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


Ну тогда смотри:


Program matr;
var
mat:array[1..6,1..9] of integer;
i, j, nMax: byte;
max, item: integer;
BEGIN
randomize;
for i:=1 to 6 do {введем матрицу}
begin
for j:=1 to 9 do
begin
mat[i,j]:=integer (random(100))-50;
write(mat[i,j]:4,' ');
end;
writeln;
end;
{ищем максимальный, точнее его номер}
max:=mat[1,1];
nMax:=1;
for i:=1 to 6 do
for i:=1 to 9 do
if mat[i,j]>max
then
begin
nMax:=i;
max:=mat[i,j];
end;

{теперь меняем местами, если это первая строка, то меняем со второй, если какая либо другая, то с верхней}
if nMax=1
then
for j:=1 to 9 do
begin
item:=mat[nMax, j];
mat[nMax, j]:=mat[nMax+1, j];
mat[nMax+1, j]:=item
end
else
for j:=1 to 9 do
begin
item:=mat[nMax, j];
mat[nMax, j]:=mat[nMax-1, j];
mat[nMax-1, j]:=item
end;
{выведем массив}
for i:=1 to 6 do
begin
for j:=1 to 9 do
write (mat [i, j], ' ');
writeLn
end
END.



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


Гость






Цитата(KMA)
          begin
item:=mat[nMax, j];
mat[nMax, j]:=mat[nMax+1, j];
mat[nMax-1, j]:=item { <--- Здесь должен быть плюс... }
end
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Пионер
**

Группа: Пользователи
Сообщений: 69
Пол: Мужской

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


Единственное что, это надо сказать, что раз ты задаешь все однозначно (т. е. максимальный элемент 1), то тогда нужно пользовать ручным вводом (т. е. с клавиатуры), иначе может попасться два одинаковых элемента.

To volvo, я пока редактировал, ты уже успел отправить(у меня еще одна ошибка была)... Оперативно... спасибо что заметил.

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


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

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


всем большое спасибо
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

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


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

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

 





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