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

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

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

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

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

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

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

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

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

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


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

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

5   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы