Несоответствие типов в программе и модуле при использовании множеств - 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
объявлен как множество байтовых значений. В дальнейшем в коде будет использоваться этот тип данных для работы с множествами. Однако, для полного понимания необходимо знать контекст использования этого типа данных, который не представлен в данном фрагменте кода.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д