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

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

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


Ответ
 
Опции темы
Старый 22.02.2021, 21:11   #1
Mini Ven
Новичок
Джуниор
 
Регистрация: 22.02.2021
Сообщений: 2
По умолчанию Pascal. Модуль программы и текстовый файл

Дали задание создать модуль и текстовый файл. Модуль написал, прогу для файла тоже, но не хочет работать. Уже не знаю, в чем может быть проблема, ибо с модулями и файлами по Паскалю конкретные проблемы, хоть читал, смотрел кучу всего и все равно мало что понимаю. Создается только пустой файл ввод и все, больше ничего не пашет. Две с половиной недели убил и не получается никак. Если можете, посмотрите, пожалуйста, коды и укажите на ошибки. По желанию, исправьте(что будет лучше, конечно же).

Код модуля:

Код:
unit Mod1RGZ;
interface
 
const
  N = 20;
 
type
  TMatrA = array[1..N] of real;
  TMatrB = array[1..N, 1..N] of real;
 
procedure Vvmtr(var matrB: TMatrB; k: integer; fin: text);
procedure VyvMatr(matrB: TMatrB; k: integer);
procedure sumdig(matrB: TMatrB; var s: real; k: integer);
function calc(a, c, x: real): real;
 
implementation
 
function calc(a, c, x: real): real;           //процедура
var y: real;
begin
  if x < (a - pi) then begin
    y := a + sin(x - 2.5);
  end
  else
  begin
    y := (c - x) / 2;
    calc := y;
  end;
  writeln('Y=',y);
end;
 
// Ввод матрицы
procedure Vvmtr(var matrB: TMatrB; k: integer; fin: text);
var
  i, j: integer;
begin
  for i := 1 to k do
    for j := 1 to k do read(matrB[i, j]);
end;
 
// Вывод матрицы
procedure VyvMatr(matrB: TMatrB; k: integer);
var
  i, j: integer;
begin
  writeln('Матрица');
  for i := 1 to k do
  begin
    for j := 1 to k do
      if i=j then
        writeln('[',matrB[i, j]:7:2, '] ')
      else
        writeln(matrB[i, j]:7:2, ' ');
    writeln;
  end;
end;
 
// Подсчет суммы элементов гл.диагонали 
procedure sumdig(matrB: TMatrB; var s: real; k: integer);
var
  i: integer;
begin
  for i:=1 to k do
    if matrB[i,i] < matrB[k-1, k-1] then 
      s:=s+matrB[i, i];
  writeln('сумма элементов главной диаг. = ', s);
end;
 
end.
Код программы:

Код:
program RGZProg;
//Подключение необходимых модулей
Uses Mod1RGZ;
 
var
  fIn, fOut: text;
  y: real; // будет хранить резлультат функции
  a, c, x: real; // Для уравнения
  mA: TMatrA; // matrix
  mB: TMatrB; // matrix2
  m: integer; // размерность
  s: real; // будет хранить сумму
 
begin
  // Получаем данные из файла
  assign(fIn, 'vvodzn.txt');
  reset(fIn);
  read(fIn, m, x, a, c);
 close(fIn);
 assign(fOut, 'vyvodzn.txt');
 rewrite(fout);
   y := calc(a, c, x);
  Vvmtr(mB, m, fin);
   writeln(fOut, 'y = ', y);
  sumdig(mB, s, m);
  close(fOut);
 
end.
Изображения
Тип файла: png Screenshot_1.png (42.9 Кб, 22 просмотров)

Последний раз редактировалось BDA; 23.02.2021 в 06:35.
Mini Ven вне форума Ответить с цитированием
Старый 23.02.2021, 06:41   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 5,865
По умолчанию

Код не запускал. Файл "ввод" нужно самому руками заполнить нужными данными, которые и считает программа. Вызов Vvmtr находится уже после закрытия fIn. А в самой процедуре Vvmtr переменная fin никак не задействуется. Процедура VyvMatr не используется. Процедура sumdig печатает результат на экран. Это из того, что бросилось в глаза.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 23.02.2021, 09:55   #3
Mini Ven
Новичок
Джуниор
 
Регистрация: 22.02.2021
Сообщений: 2
По умолчанию

BDA, , понял, спасибо
Mini Ven вне форума Ответить с цитированием
Ответ
Купить рекламу на форуме 20000 рублей в месяц

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Редактировать текстовый файл (Pascal) Amigo31 Помощь студентам 3 24.05.2016 15:57
Текстовый файл - PASCAL CHARM Помощь студентам 8 18.03.2013 15:41
текстовый файл.Pascal. xartion Помощь студентам 2 26.05.2009 21:31
pascal.Текстовый файл Mashul'ka Помощь студентам 1 14.05.2009 18:45


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