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

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

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

 
 Ответить  Открыть новую тему 
> Программа на Turbo Pascal 7.0
сообщение
Сообщение #1





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

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


Помогите написать такую программу:

Поменять местами в матрице m[n,n] компоненты строки, содержащей максимум,
с компонентами столбца, содержащего минимум. Если максимумов и (или)
минимумов в матрице несколько, то взять строку и столбец последних
встреченных при переборе из максимумов и минимумов соответственно.

Это одна из подзадач в большой задаче. Остальные подзадачи вроде
сделал. Могу выложить задание полностью и исходник, который
запускается в Turbo Pascal 7.0

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


--------------------
Консультирую по командной строке MS-DOS 6.22 .
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Клавиатурный тиран
**

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

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


Осуществи поиск по строкам и столбцам. Найдешь элементы - сохрани содержимое соотв. строки или соотв. столбца. Все. Теперь можно заменять.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





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

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


Вот полное задание. 2-е подзадание вызывает трудности.
Изучаю паскаль недели три. В голове каша. Помогите, скоро сессия.
Надо сдать контрольную. Доработайте, пожалуйста, до конца программу,
сам не могу.

Добавлено через 2 мин.
Методом рабоче-крестьянской логики сделал (там в методичке есть пример) и
от себя кое-что добавил. Вот что получилось. Там где вопросы -должно быть
2-е подзадание:


Program zad_3;
Type matrix = Array [1..10, 1..10] Of Integer;
Var m: matrix;
n, k, l: Integer;
Procedure input_matrix (Var m: matrix; Var n: Integer);
Var a, b, p1, p2, i, j: Integer;
Begin
Write ('Введите размер квадратной матрицы n');
WriteLN (' не менее 2 и не более 10');
ReadLN (n);
If (n<2) Or (n>10) Then Begin
Write ('Вы ввели размер матрицы меньше 2 или');
Write (' больше 10, поэтому будет принят');
WriteLN (' максимальный размер n=10');
n:=10
End;
Write ('Введите левую a и правую b границы диапазона');
WriteLN (' значений компонент матрицы');
Write ('a='); ReadLN (a);
Write ('b='); ReadLN (b);
If a>b Then Begin
p1:=a; a:=b; b:=p1;
End;
If a=b
Then Begin
p1:=0; p2:=b;
End
Else If b=0
Then Begin
p1:=a; p2:=0;
End
Else Begin
p1:=b-a; p2:=a;
End;
Randomize;
For i:=1 To n Do
For j:=1 To n Do
m[i,j]:=random(p1+1)+p2;
End;
Procedure output_matrix (Var m: matrix; n: Integer);
Var i, j: Integer;
Begin
For i:=1 To n Do Begin
For j:=1 To n Do Write (m[i,j]: 4, ' ');
WriteLN;
End;
End;
Procedure search_min (Var m: matrix; n: Integer);
Var min, row_min, column_min, i, j: Integer;
Begin
min:=m[1,1]; row_min:=1; column_min:=1;
For i:=1 To n Do
For j:=1 To n Do
If min>=m[i,j] Then Begin
min:=m[i,j]; row_min:=i; column_min:=j;
End;
Write ('Минимальное значение ', min);
Write (' в строке ', row_min);
WriteLN (' в столбце ', column_min);
End;
Procedure search_max (Var m: matrix; n: Integer);
Var max, row_max, column_max, i, j: Integer;
Begin
max:=m[n,n]; row_max:=n; column_max:=n;
For i:=1 To n Do
For j:=1 To n Do
If max<=m[i,j] Then Begin
max:=m[i,j]; row_max:=i; column_max:=j;
End;
Write ('Максимальное значение ', max);
Write (' в строке ', row_max);
WriteLN (' в столбце ', column_max);
End;


Procedure alteration_matrix
???????????????????????????


Procedure secondary_diagonal (Var m: matrix;
n: Integer);
Var i: Integer;
v: Array [1..10] Of Integer;
Begin
WriteLN ('Массив:');
For i:=1 To n Do Begin
v[i]:=m[i,n+1-i]; Write (v[i], ' ');
End;
WriteLN;
End;
Procedure sum_secondary_diagonal (Var m: matrix;
n: Integer);
Var i, sum: Integer;
v: Array [1..10] Of Integer;
Begin
WriteLN ('Сумма компонент массива:');
sum:=0;
For i:=1 To n Do Begin
sum:=sum+m[i,n+1-i];
End;
WriteLN (sum);
End;
Begin
input_matrix (m, n);
output_matrix (m, n);
search_min (m, n);
search_max (m, n);
alteration_matrix (???????);
output_matrix (m, n);
secondary_diagonal (m, n);
sum_secondary_diagonal (m, n);
ReadLN;
End.

.


Прикрепленные файлы
Прикрепленный файл  Zadan3.rar ( 18.34 килобайт ) Кол-во скачиваний: 126


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


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


Перенести в задачи на заказ?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


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

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

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


Цитата(мисс_граффити @ 6.10.2008 19:09) *
Перенести в задачи на заказ?
Зачем же так? Человек просит помощи. Что-то пытается сделать сам..

Цитата(Unlegal @ 6.10.2008 11:10) *
Вот полное задание. 2-е подзадание вызывает трудности.
Честно пытался прочитать прикрепленный doc. Мой WordPad его не взял. Word'а у меня на ноуте нет - дороговато.. Может, все-таки потрудишься набрать пару строк пальчиками?..



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





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

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


Пальчиками не получится, а если и получится будет очень коряво.
Там в Word'е используетя редактор формул Microsoft Equation.
Но выход всегда есть. Прилагаю скриншот.


Эскизы прикрепленных изображений
Прикрепленное изображение

--------------------
Консультирую по командной строке MS-DOS 6.22 .
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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