Несоответствие типов в программе и модуле при использовании множеств - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Нужно было написать программу, которая выбирает определенные числа из множества Х в множество Y (нечетные или делящиеся на 17) . Ввод и вывод происходит в главной программе.
uses crt, module12;
type m = set of byte;
var X, Y:m; ...
 
begin
((ввод множества X));
proc1(X,Y);
((вывод множества Y));
end.
Обработка множеств происходит в модуле "module12":
unit module12;
 
 interface
  type m= set of byte;
  procedure proc1(X:m; var Y:m);
   var i:byte;
 
 implementation
  procedure proc1;
   begin
    for i:=1 to 255 do
     if (i in X) and ((i mod 2<>0) or (i mod 17=0)) then
      include(Y,i);
   end;
end.
При вызове процедуры "proc1" из модуля в главной программе паскаль выдает: "Error 26: type mismatch", ссылаясь на переменную Y. -Если при объявлении глобальных переменных перед Y убрать "var", то ошибки нет, но мне нужно вывести значение из процедуры. -Если скопировать процедуру из модуля в основную программу, то всё работает, но мне нужно оформить процедуру в отдельном модуле.

Решение задачи: «Несоответствие типов в программе и модуле при использовании множеств»

textual
Листинг программы
type m = set of byte;

Объяснение кода листинга программы

В данном коде объявлен новый тип данных m, который является множеством (set) байтовых значений. Это можно представить в виде списка с номером 1:

  1. Тип данных m объявлен как множество байтовых значений. В дальнейшем в коде будет использоваться этот тип данных для работы с множествами. Однако, для полного понимания необходимо знать контекст использования этого типа данных, который не представлен в данном фрагменте кода.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы