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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.07.2013, 19:25   #11
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Мда..

1) Код на форуме оформляется специальным тегом (кнопочка с #)
2) Очень сложно сохранить картинку и залить её сюда?
3)
Код:
for i:=1 to m do
begin
for j:=1 to n do
begin
Обычно 1-ый цикл до N, 2-ой цикл до M.
4)
Код:
begin
a[i,j]:=random(20);
write(a[i,j]:4);
end;
writeln;
end;
writeln;
Последний WriteLn наигран

Теперь по существу :
1)
Код:
a[i,j]:=random(20);
противоречит условию, что
Цитата:
матрицу и ее размерность должен задать пользователь
2) Складывается ощущение что Вы скопипастили чужой код похожей задачи. (заюзал поиск.. и надо же! мои догадки подтвердились)

Исходя из пункта №2, мне расхотелось Вам помогать..
Poma][a вне форума Ответить с цитированием
Старый 12.07.2013, 19:42   #12
Тамерлан Абилов
Пользователь
 
Регистрация: 03.03.2013
Сообщений: 70
По умолчанию

когда в цикле все проверяешь.просто дай ещё условие если
Код:
i<>j
.думаю тоже самое что и найти макс элемент но добавив это условие туда получается ваше решение
Тамерлан Абилов вне форума Ответить с цитированием
Старый 12.07.2013, 23:27   #13
Razdolbai
Новичок
Джуниор
 
Регистрация: 12.11.2012
Сообщений: 20
По умолчанию

Код:
uses crt;
const nmax=20;
var a:array[1..nmax,1..nmax] of integer;
    n,i,j:byte;
    mx:integer;
begin
randomize;
repeat
write('Размер матрицы до ',nmax,' n=');
read(n);
until n in [1..nmax];
writeln('Исходная матрица:');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=random(20);
    write(a[i,j]:4);
    if(i=1)and(j=2)then mx:=a[i,j]
    else if(j<>i)and(a[i,j]>mx) then mx:=a[i,j];
   end;
  writeln;
 end;
writeln('Максимум матрицы без главно диагонали=',mx);
end.
да так и сделал))

Последний раз редактировалось Stilet; 14.07.2013 в 12:19.
Razdolbai вне форума Ответить с цитированием
Старый 14.07.2013, 03:00   #14
Golden_RUS
Пользователь
 
Регистрация: 23.01.2013
Сообщений: 34
По умолчанию

Код:
uses crt;
const nmax=20;
var a:array[1..nmax,1..nmax] of integer;
    m,n,i,j,max:integer;
begin
clrscr;
randomize;
repeat
write('Количество строк до ',nmax,' m=');
readln(m);
until m in [1..nmax];
repeat
write('Количество столбцов до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходная матрица:');
for i:=1 to m do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=random(100);
    write(a[i,j]:4);
   end;
  writeln;
 end;
writeln;
for i:= 1 to n do
for j:=1 to n do
max:= a[1, 2];
for i:=1 to n do
for j:=1 to n do
if i <> j then
if a[i,j] > max then
max:= a[i,j];
writeln('Max:', max); 
readln
end.
За основу взял твой код.
ps Задачка школьная?
Golden_RUS вне форума Ответить с цитированием
Старый 14.07.2013, 11:39   #15
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
for i:=1 to m do
begin
for j:=1 to n do
begin
a[i,j]:=random(100);
write(a[i,j]:4);
end;
writeln;
end;
Согласно заданию, исходная матрица должна быть введена!

Цитата:
for i:= 1 to n do
for j:=1 to n do
max:= a[1, 2];
Что это? зачем нам N^2 рза присваивать одной переменной одно и тоже значение?
И почему именно a[1, 2]? Что мешаем мне задать матрицу 1 на 1?

И еще :
Вы используете N и M, потом же Вы выбрасываете M и используете только N, в чем смысл?
Poma][a вне форума Ответить с цитированием
Старый 14.07.2013, 14:32   #16
Golden_RUS
Пользователь
 
Регистрация: 23.01.2013
Сообщений: 34
По умолчанию

Цитата:
Согласно заданию, исходная матрица должна быть введена!
Меняем random на readln
Цитата:
Что это? зачем нам N^2 рза присваивать одной переменной одно и тоже значение?
И почему именно a[1, 2]? Что мешаем мне задать матрицу 1 на 1?
Потому что a[1,1] элемент главной диагонали,а первой элемент вне главной это именно 1,2
Цитата:
Вы используете N и M, потом же Вы выбрасываете M и используете только N, в чем смысл?
Я же написал,то что использовал его код с 1 страницы,а m n не заметил так как писал ночью.
Цитата:
Вы
можно на ты.
Golden_RUS вне форума Ответить с цитированием
Старый 14.07.2013, 14:36   #17
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Меняем random на readln
Лучше на Read и убираем Randomize
Цитата:
Потому что a[1,1] элемент главной диагонали,а первой элемент вне главной это именно 1,2
Ага. Это я упустил из виду.. Но, наверное, лучше всё-таки не инициализировать так.. (Например N = 1 M = 10) а делать просто max := - MaxInt (и вовсе необязательно делать это в цикле)

Цитата:
Я же написал,то что использовал его код с 1 страницы,а m n не заметил так как писал ночью.
Не-не-не. К Вам претензий нет. Я лишь указал на ошибки (недочеты)
Цитата:
можно на ты
Хорошо
Poma][a вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль. Матрица NxN -> текстовый файл -> Матрица NxN - найти max по диагоналям -> типизированный файл Лунатик13 Помощь студентам 1 20.02.2012 15:54
Матрица Александр1993 Помощь студентам 0 22.06.2011 21:30
Непонятки с DirectX (матрица поворота, камера, матрица проекции) ROD Общие вопросы C/C++ 2 17.09.2010 17:00
TurboPascal: граф, матрица смежности и матрица инцидентности. ulala Помощь студентам 0 02.12.2009 10:11