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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2007, 20:15   #1
And1mx
Новичок
Джуниор
 
Регистрация: 05.04.2007
Сообщений: 2
По умолчанию Помогите с программой(Pascal)

Помогите мне описать работу программы! Ну там если можно то мне нужно написать комменты к строчкам программы!

Вот задание к программе:

Дана действительная квадратная матрица порядка N(n- нечетное). Все элементы матрицы различны. Найти наибольший элемент среди стоящих на главной и побочной диагоналях и поменять его местами с элементом, стоящим на пересечении этих диагоналей.

Вот сама программа:

const
nmax = 101;

var
a: array[1..nmax, 1..nmax] of longint;
n, i, j, maxi, maxj, v : longint;

begin
repeat
write('Введите нечётное n < ', nmax, ': ');
readln(n);
if not odd(n) then
writeln('n должно быть нечётно');
if n > nmax then
writeln('n должно быть меньше ', nmax);
until (odd(n) and (n < nmax));
writeln('Ввод матрици');
for i:=1 to n do
for j:=1 to n do begin
write('a[', i, ',', j, '] = ');
readln(a[i, j]);
end;

maxi := 1;
maxj := 1;
for i:=1 to n do
begin
if a[i,i]>a[maxi,maxj] then
begin maxi:=i;
maxj:=i;
end;
if a[i,n-i+1]>a[maxi,maxj] then
begin maxi:=i;
maxj:=n-i+1;
end;
end;

v := a[maxi, maxj];
a[maxi, maxj] := a[(n + 1) div 2, (n + 1) div 2];
a[(n + 1) div 2, (n + 1) div 2] := v;

writeln('После обработки матрица принела следующий вид:');
for i:=1 to n do begin
for j:=1 to n do
write(a[i, j], ' ');
writeln;
end;
end.

Помогите плизз! Очень нужно!
And1mx вне форума Ответить с цитированием
Старый 05.04.2007, 21:36   #2
merax
Форумчанин
 
Регистрация: 27.12.2006
Сообщений: 955
По умолчанию

Ну и что тут сложного, книжку не открывали? А следовало бы. Хотя бы ради интереса!

\\ Предупреждение. Посылы "читать книжку" не приветствуются. AVer

Последний раз редактировалось AVer; 05.04.2007 в 21:44.
merax вне форума Ответить с цитированием
Старый 05.04.2007, 21:43   #3
AVer
Андрей
Форумчанин
 
Аватар для AVer
 
Регистрация: 21.11.2006
Сообщений: 457
По умолчанию

Все достаточно просто. Вот пример комментариев:

Код:
const 
nmax = 101;   \\ Макс. размер

var
a: array[1..nmax, 1..nmax] of longint;    \\ Матрица
n, i, j, maxi, maxj, v : longint;   \\ Необходимые переменные

begin
repeat    \\ Повторять следующее:
write('Введите нечётное n < ', nmax, ': ');
readln(n);    \\ Ввод n
if not odd(n) then     \\ Если n четное, то
writeln('n должно быть нечётно');     \\ Вывод сообщения
if n > nmax then     \\ Если n больше макс. значения, то
writeln('n должно быть меньше ', nmax);   \\ Вывод сообщения
until (odd(n) and (n < nmax));  Пока не n - нечетное и меньше макс значения
writeln('Ввод матрицы');
for i:=1 to n do     \\ Цикл строк
for j:=1 to n do begin    \\ Цикл столбцов
write('a[', i, ',', j, '] = ');
readln(a[i, j]);   \\ Ввод соответствующего элемента
end;

maxi := 1;
maxj := 1;
for i:=1 to n do     \\ Цикл диагонали
begin
if a[i,i]>a[maxi,maxj] then   \\ Если элемент главной диагонали меньше минимального
begin maxi:=i;   \\ Он считается минимальным 
maxj:=i;    \\ Он считается минимальным 
end;
if a[i,n-i+1]>a[maxi,maxj] then  \\ Если элемент побочной диагонали меньше минимального
begin maxi:=i;    \\ Он считается минимальным 
maxj:=n-i+1;    \\ Он считается минимальным 
end;
end; 

v := a[maxi, maxj];    \\ Сохраняем минимальное значение
a[maxi, maxj] := a[(n + 1) div 2, (n + 1) div 2];    \\ Вместо него пишем значение центра
a[(n + 1) div 2, (n + 1) div 2] := v;  \\ В центр пишем мин. значение

writeln('После обработки матрица приняла следующий вид:');
for i:=1 to n do begin    \\ Цикл строк
for j:=1 to n do     \\ Цикл столбцов
write(a[i, j], ' ');   \\ Вывод соответствующего элемента
writeln;
end;
end.
ICQ: 5311314
[SIGPIC][/SIGPIC]
AVer вне форума Ответить с цитированием
Старый 05.04.2007, 21:52   #4
And1mx
Новичок
Джуниор
 
Регистрация: 05.04.2007
Сообщений: 2
По умолчанию

Спасибо огромное! Выручил
And1mx вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с программой ПлЗ. Manoff Общие вопросы Delphi 1 25.02.2008 04:41
Помогите с программой! MAKEDON Общие вопросы Delphi 3 27.12.2007 13:46
Помогите с программой asale Общие вопросы Delphi 2 11.02.2007 20:06