Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 22.05.2020, 20:22   #1
MaidDragon
 
Регистрация: 14.05.2020
Сообщений: 8
Восклицание Не работает код

Код:
program project1;
 
const
  n = 10;
 
type
  Tmas = ^TTmas;
  TTmas = array[1..1] of integer;
  Tmatr = ^TTmatr;
  TTmatr = array[1..1] of Tmas;
var
  a: Tmatr;
  max, min, i, j: integer;
  x: integer;
begin
  randomize;
  getmem(a, sizeof(TTmas) * n * 2);
  for i := 1 to n do
    getmem(a^[i], sizeof(integer) * n);
  writeln(' Ishodnaya matrica:');
  for i := 1 to n do
  begin
    for j := 1 to n do
    begin
      a^[i]^[j] := random(n);
      Write(a^[i]^[j]: 4);
      if max > a^[i]^[j] then
        max := a^[i]^[j];
      if min < a^[i]^[j] then
        min := a^[i]^[j];
    end;
    writeln;
  end;
  max := a^[1]^[1];
  min := a^[1]^[1];
  for i := 1 to n do
  begin
    for j := 1 to n do
    begin
      if max < a^[i]^[j] then
        max := a^[i]^[j];
      if min > a^[i]^[j] then
        min := a^[i]^[j];
    end;
  end;
  writeln('Max: ', max);
  writeln('Min: ', min);
  writeln('Srednee arifm: ',(max+min)/2);
  for i := 1 to n do
    freemem(a^[i], sizeof(integer) * n);
 
  freemem(a, sizeof(TTmas) * n * 2); 
  Write('Press Enter...');
  readln;
end.
Turbo Pascal
Не работает , ошибка 201 и говорят есть ещё косяки, но какие не понял
Делал по задаче: В динамической памяти задана действительная матрица размера n&m.
Найти среднее арифметическое наибольшего и наименьшего значений ее
элементов.
MaidDragon вне форума Ответить с цитированием
Старый 23.05.2020, 01:53   #2
netpolice
Форумчанин
 
Аватар для netpolice
 
Регистрация: 14.02.2013
Сообщений: 222
По умолчанию

Жесть... Давно в Паскале не писал, но как по мне память ты начал терять здесь

Код:
TTmas = array[1..1] of integer;
...
TTmatr = array[1..1] of Tmas;
Вот ни разу у них размер не integer и не Tmas, соответственно обращение a^[i]^[j] (а так можно в Паскале? ) это пальцем в кучу.

А почему еще на 2? getmem(a, sizeof(TTmas) * n * 2);

А почему int? getmem(a^[i], sizeof(integer) * n);

Еще раз перечитайте тему про указатели.
netpolice вне форума Ответить с цитированием
Старый 23.05.2020, 12:25   #3
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 2,400
По умолчанию

...

Последний раз редактировалось digitalis; 23.05.2020 в 12:34. Причина: удаление
digitalis вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
QUdpSocket работает только при локальном IP. Не работает если указан динамичесский айпи kook163 Qt и кроссплатформенное программирование С/С++ 5 09.05.2018 23:40
Не работает анимация. Механизм работает лишь при изменения числа в едит1. Студент ММИ Помощь студентам 1 18.05.2015 08:39
Программа на Visual C# работает при запуске руками, но не работает при попытки автоматического запуска Bug$ Помощь студентам 18 21.10.2013 16:22
не работает relese версия проги и debug работает тока на моем компе D][mon C# (си шарп) 2 04.05.2012 20:21
Почему программа на С++ не работает с локальным описанием массива, но работает с глобальным? >>STINGER<< Помощь студентам 4 08.03.2011 10:56


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS