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

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

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

> Программа на Turbo Pascal 7.0
Unlegal
сообщение 4.10.2008 16:01
Сообщение #1





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

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


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

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

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

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


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


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

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

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


Осуществи поиск по строкам и столбцам. Найдешь элементы - сохрани содержимое соотв. строки или соотв. столбца. Все. Теперь можно заменять.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Unlegal
сообщение 6.10.2008 11:10
Сообщение #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 килобайт ) Кол-во скачиваний: 176


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


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

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

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


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


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


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

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

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


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

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



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





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

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


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


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

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

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

 



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