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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2016, 21:39   #1
maxwelln1
Пользователь
 
Регистрация: 07.10.2016
Сообщений: 23
По умолчанию [PASCALABC.NET, Работа с файлами]: Не работает код.

6. Целочисленная матрица, в которой число строк n вдвое меньше числа столбцов, хранится в текстовом файле. Сохранить в этом файле матрицу порядка nxn, удалив последние n столбцов.
Код:
const fil = 'text.txt';
      tmp = 'temp.tmp';
var f, g: text;
    i, j, t, n: integer;
begin
  assign(f, fil);
  reset(f);
  n := 0;
  while not seekeoln(f) do
    begin
      read(t);
      inc(n)
    end;
  reset(f);
  n := n div 2;
  assign(g, tmp);
  rewrite(g);
  for i := 1 to n do
    begin
      for j := 1 to n do
        begin
          read(f, t);
          write(g, t, ' ')
        end;
      readln(f);
      writeln(g)
    end;
  close(f);
  close(g);
  erase(f);
  rename(g, fil)
end.
Вот есть код, но он почему-то на PASCALABC.NET не компилируется. НА FP не пробовал. Что надо изменить?
maxwelln1 вне форума Ответить с цитированием
Старый 02.11.2016, 15:43   #2
CMY_3
Пользователь
 
Регистрация: 24.02.2016
Сообщений: 38
По умолчанию

Цитата:
НА FP не пробовал.
типизированные константы объявлены неправильно, а в остальном код рабочий
CMY_3 вне форума Ответить с цитированием
Старый 02.11.2016, 16:09   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

CMY_3, тут в коде нет типизированных констант.
обычные константы есть, объявлены корректно.

Код на PASCALABC.NET компилируется, запускается и уходит в бесконечный цикл:
Цитата:
Код:
  while not seekeoln(f) do
    begin
      read(t);
      inc(n)
    end;
в условии цикла проверяется условие, связанное с файлом f,
а внутри цикла чтения файла нет.

предполагаю, что это цикл использовался для подсчёта n (количество чисел в первой строке исходного файла).

если исправить код на
Код:
while not seekeoln(f) do
    begin
      read(f, t);
      inc(n)
    end;
то код работает и что-то даже делает (переписывает исходный файл text.txt, уменьшая размер матрицы).
Насколько это делается правильно - не берусь судить.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.11.2016, 17:32   #4
maxwelln1
Пользователь
 
Регистрация: 07.10.2016
Сообщений: 23
По умолчанию

Да, все верно. Работает как положено. Спасибо!
maxwelln1 вне форума Ответить с цитированием
Старый 02.11.2016, 18:09   #5
CMY_3
Пользователь
 
Регистрация: 24.02.2016
Сообщений: 38
По умолчанию

Цитата:
тут в коде нет типизированных констант.
да, тут я спутался
CMY_3 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
код программы на языке PascalABC.NET и C# Namatrasnik Помощь студентам 0 04.06.2016 22:02
код программы на языке PascalABC.NET и C# Namatrasnik Помощь студентам 0 04.06.2016 21:59
[PascalABC.NET]задача с файлами destra1j Помощь студентам 1 17.05.2016 17:36
PascalABC.NET Курсовая работа Cepega654 Паскаль, Turbo Pascal, PascalABC.NET 0 31.03.2013 13:35
Портануть код с PascalABC.NET на Java ZoxWatt Помощь студентам 0 31.05.2012 14:52