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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2009, 22:41   #1
Saka
Пользователь
 
Регистрация: 04.12.2009
Сообщений: 83
По умолчанию не понятно почему прога закрывается

Программа закрывается сразу после включения проблемы не знаю помогите
Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

const
  n = 4;
var
  mas: array of array of byte;
  i, j,k, m: byte;

begin
  setlength(mas,n,n);
  randomize;
  for i := 0 to n-1 do
  begin
    for j := 0 to n-1 do
    begin
      mas[i, j]:= random(10);
      write(mas[i, j]:2)
    end;
    writeln;
  end;
  readln;
  SetLength(mas,n);
  m := mas[2, 1];
  for i := 1 to n do
    for j := 1 to i - 1 do if mas[i, j] > m then m := mas[i, j];
  writeln('Max = ', m);
  readln;
  end.
Saka вне форума Ответить с цитированием
Старый 21.12.2009, 22:49   #2
Serebro
FORTRAN programmer
Форумчанин
 
Регистрация: 08.12.2009
Сообщений: 153
По умолчанию

Определись: у тебя массив от 0 до n-1 или от 1 до n?

Последний раз редактировалось Serebro; 21.12.2009 в 23:13.
Serebro вне форума Ответить с цитированием
Старый 21.12.2009, 23:01   #3
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Цитата:
Сообщение от Saka Посмотреть сообщение
Программа закрывается сразу после включения проблемы не знаю помогите
Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

const
  n = 4;
var
  mas: array of array of byte;
  i, j,k, m: byte;

begin
  setlength(mas,n,n);
  randomize;
  for i := 0 to n-1 do
  begin
    for j := 0 to n-1 do
    begin
      mas[i, j]:= random(10);
      write(mas[i, j]:2)
    end;
    writeln;
  end;
  readln;
  SetLength(mas,n);
  m := mas[2, 1];
  for i := 1 to n do // Вот тут ошибка нужно 0 to n - 1 do
    for j := 1 to i - 1 do if mas[i, j] > m then m := mas[i, j];
  writeln('Max = ', m);
  readln;
  end.
P.S. Проверь личку
psycho-coder вне форума Ответить с цитированием
Старый 21.12.2009, 23:02   #4
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
По умолчанию

Код:
program Project2;

{$APPTYPE CONSOLE}
{$R+} {$Q+} // это никогда не помешает

uses
  SysUtils;

const
  n = 4;
var
  mas: array of array of byte;
  i, j,k, m: byte;

begin
  setlength(mas,n,n);
  randomize;
  for i := 0 to n-1 do
  begin
    for j := 0 to n-1 do
    begin
      mas[i, j]:= random(10);
      write(mas[i, j]:2)
    end;
    writeln;
  end;
  readln;
  SetLength(mas,n);
  m := mas[2, 1];
  for i := 0 to n - 1 do
    for j := 0 to i - 1 do if mas[i, j] > m then m := mas[i, j];
  writeln('Max = ', m);
  ReadLn;
  ReadLn;
  end.

Последний раз редактировалось Alex_FF; 21.12.2009 в 23:05.
Alex_FF вне форума Ответить с цитированием
Старый 21.12.2009, 23:03   #5
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

А зачем ДВА ReadLn? При трассировке, все ReadLn пролетают ))
psycho-coder вне форума Ответить с цитированием
Старый 21.12.2009, 23:06   #6
Saka
Пользователь
 
Регистрация: 04.12.2009
Сообщений: 83
По умолчанию

теперь прога не так работает. не по условию:Дана действительная квадратная матрица порядка n. Найти наибольшее из значений элементов , расположенных в заштрихованной части матрицы. заштрихованная часть- все элементы ниже главной диагонали
Saka вне форума Ответить с цитированием
Старый 21.12.2009, 23:12   #7
Serebro
FORTRAN programmer
Форумчанин
 
Регистрация: 08.12.2009
Сообщений: 153
По умолчанию

тогда
Код:
  for i := 1 to n - 1 do
    for j := 0 to i - 1 do if mas[i, j] > m then m := mas[i, j];
  writeln('Max = ', m);
Serebro вне форума Ответить с цитированием
Старый 21.12.2009, 23:24   #8
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
По умолчанию

вот это работает
Код:
{$APPTYPE CONSOLE}

{$R+} {$Q+}

uses
SysUtils;

const
  N = 4;
var
  mas: Array of Array of Byte;
  I, J, M: Byte;

begin
  SetLength(mas, N, N);
  Randomize;
  for I := 0 to N - 1 do
  begin
    for J := 0 to N - 1 do
    begin
      mas[I, J]:= Random(10);
      Write(mas[I, J]:2)
    end;
    WriteLn;
  end;
  M := mas[1, 0];
  for I := 1 to N - 1 do
    for J := 0 to I - 1 do
      if mas[I, J] > M then M := mas[I, J];
  WriteLn('Max = ', M);
  ReadLn;
  ReadLn;
end.

Последний раз редактировалось Alex_FF; 21.12.2009 в 23:28.
Alex_FF вне форума Ответить с цитированием
Старый 21.12.2009, 23:28   #9
Saka
Пользователь
 
Регистрация: 04.12.2009
Сообщений: 83
По умолчанию

Спасибо, но можно в коде еще учитывать сами элементы главной диагонали. и еще вопрос:что это значит
Код:
{$I+} {$R+} {$Q+}
Saka вне форума Ответить с цитированием
Старый 21.12.2009, 23:32   #10
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
По умолчанию

Цитата:
Сообщение от Saka Посмотреть сообщение
Спасибо, но можно в коде еще учитывать сами элементы главной диагонали. и еще вопрос:что это значит
Код:
{$I+} {$R+} {$Q+}
тогда напиши
Код:
  M := mas[0, 0];
  for I := 0 to N - 1 do
    for J := 0 to I do
      if mas[I, J] > M then M := mas[I, J];
Alex_FF вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите понять почему прога виснет Asira Помощь студентам 5 21.12.2009 22:57
не могу найти почему вылетает прога Андрей Куб Общие вопросы Delphi 19 28.04.2009 06:54
Delphi 7. Действия с матрицами. прога маленькая, но не понятно в чём баг. gonf Помощь студентам 3 24.04.2009 17:34
Теперь понятно почему мало пользуются поиском... Карась О форуме и сайтах клуба 9 03.03.2008 23:32