Сформировать новое множество, из которого выделить подмножество чисел, кратных 4 - Free Pascal

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

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

Даны три множества X1, X2, X3, содержащие целые числа из диапазона [1..100]. Сформировать новое множество Y = (X1*X2)*(X2+X3), из которого выделить подмножество чисел, кратных 4.
program pr12;
uses crt;
type Y = set of 1..100;
Procedure Proc1(X1, X2, X3: Y; var c: Y);
begin
c:=(X1*X2)*(X2+X3)
end;
var X1, X2, X3: Y;
    c: 1..100;
begin clrscr;
X1:= []; X2:= []; X3:= [];
write('Wwedide 1-oe mnojestwo ->');
while true do begin
    c:= readkey ; if c = 'z' then break else
        begin X1:= X1 + [c];
              write(c:3)
        end
end;
writeln;
write('Wwedite 2-oe mnojestwo ->');
while true do begin
    c:= readkey; if c = 'z' then break else
        begin X2:= X2 + [c];
              write(c:3)
        end
end;
write('Wwedite 3-e mnojestwo ->');
while true do begin
    c:= readkey; if c = 'z' then break else
        begin X3:= X3 + [c];
              write(c:3)
        end
end;
begin
Y4 := [];
  for i := 1 to 100 do
    if (i in R) and (i mod 4 = 0) then write(i:3); Y4 := Y4 + [ i ];
end;
writeln;
Proc1(X1, X2, X3);
write('Resultat:');
writeln;
write(Kratno 4:);
writeln;
readkey
end.
Наверное, чушь всякую написала..) помогите чем сможете, чтобы хотя бы запускалась

Решение задачи: «Сформировать новое множество, из которого выделить подмножество чисел, кратных 4»

textual
Листинг программы
program pr12;
uses crt;
 
type
  Item = 1 .. 100;
  ItemSet = set of Item;
 
procedure Enter(title : string; var s : ItemSet);
var V : Integer;
begin
  writeln('Wwedide ' + title + ' mnojestwo -> (0 to finish)');
  s := [];
  repeat
    readln(V);
    if V <> 0 then s := s + [V];
  until V = 0;
end;
procedure Print(s : ItemSet);
var i : item;
begin
  for i in s do
    write(i:4);
  writeln;
end;
 
Procedure Proc1(X1, X2, X3: ItemSet; var c : ItemSet);
begin
  c:=(X1*X2)*(X2+X3)
end;
 
var
  X1, X2, X3 : ItemSet;
  Y, Div4 : ItemSet;
  i : Item;
begin
  clrscr;
 
  Enter('1-oe', X1);
  Enter('2-oe', X2);
  Enter('3-e', X3);
 
  Proc1(X1, X2, X3, Y);
  write('Y = '); Print(Y);
 
  Div4 := [];
  for i in Item do if i mod 4 = 0 then Div4 := Div4 + [i];
  Div4 := Y * Div4;
  write('Result = '); Print(Div4);
end.

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

  1. Объявлены типы данных: Item (целое число от 1 до 100), ItemSet (множество из Item), а также переменные: X1, X2, X3 (множества), Y (множество), Div4 (множество).
  2. Задана процедура Enter, которая запрашивает у пользователя ввод чисел и добавляет их в указанное множество.
  3. Задана процедура Print, которая выводит на экран все числа из указанного множества.
  4. Задана процедура Proc1, которая выполняет следующие действия: а) X1 X2 (X2 + X3)
  5. В основной программе вызываются процедуры Enter и Proc1 для ввода и перемножения чисел, а затем выводится результат Y.
  6. Формируется новое множество Div4, в которое включаются только числа, кратные 4.
  7. Результат Y умножается на множество Div4 и выводится на экран.

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


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

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

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