Помощь - Поиск - Пользователи - Календарь
Полная версия: Матрица из файла
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
setare
Здравствуйте! Не могли бы вы мне помочь решить одну простейшую задачку. Она тоже про матрицы. В текстовом файле есть квадратная матрица произвольного размера (массивами и строками пользоваться нельзя). Нужно найти сумму элементов на главн диоганали.
Проблема состоит в том, как можно считать числа с каждой строки: 1 число с первой, второе число со второй и тд.
setare
Матрица заполнена вещественными числами!
volvo
setare
Размерность матрицы известна?
setare
Она квадратичная!
setare
Размерность неизвестна! Она произвольная. В строке может быть млн. чисел, может быть меньше. Поэтому ни массивами ни строками пользоваться нельзя.
volvo
setare
Вот работающий код (проверен на матрице размера 3Х3)
Код

var
 f: text;
 a, sum: real;
 i, j: integer;
begin
 assign(f, 'data.txt');
 reset(f);
 i := 1; sum := 0;

 while not eof(f) do
   begin
     for j := 1 to pred(i) do
       read(f, a);
     read(f, a);
     sum := sum + a;
     while not seekeoln(f) do
       begin
         read(f, a);
       end;
     inc(i);
   end;
 writeln('s = ', sum:10:6);
 close(f);
end.

Пример входного файла:
Цитата
0.002 0.003 0.004
0.005 0.006 0.007
0.001 0.006 0.004
setare
Спасибо вам большое!
setare
Мой преподаватель, к сожалению, не говорил нам функцию pred(i), хотя я сама уже поняла что это такое. Не могли бы вы сказать на что ее можно заменить? Можно записать так: for i:=1 to k do
for j:=1 to k do
Просто когда я заменяю pred(i) на Max(i), то компилятор мне говорит, что надо поставить до скобок do. А это не правильно. Что делать?
volvo
setare
Pred(i) - это предыдущее значение для i
можно заменить на (i - 1)
smile.gif
setare
Спасибо!!!!!!!!! Вы мне очень очень помогли!!!!!!!!! :flowers: :flowers: :rose:
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.