Несоответствие типов в программе и модуле при использовании множеств - Free Pascal
Формулировка задачи:
Нужно было написать программу, которая выбирает определенные числа из множества Х в множество Y (нечетные или делящиеся на 17) . Ввод и вывод происходит в главной программе.
Обработка множеств происходит в модуле "module12":
При вызове процедуры "proc1" из модуля в главной программе паскаль выдает: "Error 26: type mismatch", ссылаясь на переменную Y.
-Если при объявлении глобальных переменных перед Y убрать "var", то ошибки нет, но мне нужно вывести значение из процедуры.
-Если скопировать процедуру из модуля в основную программу, то всё работает, но мне нужно оформить процедуру в отдельном модуле.
uses crt, module12; type m = set of byte; var X, Y:m; ... begin ((ввод множества X)); proc1(X,Y); ((вывод множества Y)); end.
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.
Решение задачи: «Несоответствие типов в программе и модуле при использовании множеств»
textual
Листинг программы
type m = set of byte;
Объяснение кода листинга программы
В данном коде объявлен новый тип данных m
, который является множеством (set) байтовых значений.
Это можно представить в виде списка с номером 1:
- Тип данных
m
объявлен как множество байтовых значений. В дальнейшем в коде будет использоваться этот тип данных для работы с множествами. Однако, для полного понимания необходимо знать контекст использования этого типа данных, который не представлен в данном фрагменте кода.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д