zadach368.PAS

{* Задача 368 *}

Unit ZADACH368;
Interface
Implementation
Begin
 writeln('Вычислить произведение матрицы на вектор.');
End.

Program pas13683;
Uses crt; {* Вызов внешних функций *}
Const {* Константы *}
  n = 5;
Type {* Типы переменных *}
  x = Array[1..n] Of real;
  y = Array[1..n, 1..n] Of real;
  z = Array[1..n] Of real;
Var {* Необходимые переменные *}
  i                : integer;
  j                : integer;
  f1               : text;
  f2               : text;
  a                : x;
  c                : x;
  b                : y;
Procedure pro(a : x;
b                : y;
c                : x);
Var {* Объявление переменных *}
  i : integer;
  j : integer;
Begin
  For i := 1 To n Do {* Цикл для i => [1 .. n] *}
  Begin
    c[i] := 0;
    For j := 1 To n Do {* Цикл для j => [1 .. n] *}
      c[i] := c[i] + b[i, j] * a[j];
    writeln(f2, c[i] : 5:1);
    writeln(c[i] : 5:1);
  End;
  
End;
Begin
  clrscr; {* Очищаем экран *}
  assign(f1, 'd:/top.txt'); {* Связывание f1 с файлом 'd:/top.txt' *}
  assign(f2, 'rez.txt'); {* Подключение к файлу 'rez.txt' через переменную f2 *}
  reset(f1); {* Подготовка переменной f1 для чтения из файла *}
  rewrite(f2); {* Запись в файл через переменную f2 *}
  For i := 1 To n Do {* Переменная i увеличивается с 1 до n *}
  Begin
    For j := 1 To n Do {* Увеличиваем j от 1 до n с шагом 1 *}
      read(f1, b[i, j]);
    readln(f1);
  End;
  For i := 1 To n Do {* Переменная i увеличивается с 1 до n *}
  Begin
    write('a[', i, ']=');
    readln(a[i]);
  End;
  pro(a, b, c);
  close(f1); {* Закрыть файл f1 *}
  close(f2); {* Закрытие файла *}
End.