Определить фирмы, в которых закупила компьютеры каждая организация — Pascal(Паскаль)

Организации, закупали компьютеры в фирмах «Вега», «Владос», «Техно» «Сити», «Санрайз», «Стиль». Определить фирмы, в которых закупила компьютеры каждая организация, фирмы, в которых купила компьютеры хотя бы одна организация, фирмы, в которых ни одна организация не купила компьютеры.

Program mn_1;

Uses Crt;

Type
  firma = set of 1 .. 6;
  f1 = array [0 .. 20] of firma;

const
  f: array [1 .. 6] of string[10] = ('Вега' ‚ 'Владос', 'Техно', 'Сити',
    'Санрайз', 'Стиль');

Var
  a: f1;
  n, i, j, otv: byte;
  per, ob: firma;

Begin
  ClrScr;
  Write('Количество организаций, закупавших компьютеры:');
  readln(n);
  For i := 1 to n do
  begin
    a[i] := [];
    for j := 1 to 6 do
    begin
      Write(i, 'я организация закупала компьютеры в фирме: ', f[j],
        ' (1-да ,0-нет)');
      readln(otv);
      if otv = 1 then
        a[i] := a[i] + [j];
    end;
  end;
  Writeln;
  per := [1 .. 6];
  For i := 1 to n do
    per := per * a[i];
  Writeln('Фирмы, в которых купила компьютеры каждая организация');
  For i := 1 to 6 do
    if i in per then
      Write(f[i]:10);
  ob := [];
  For i := 1 to n do
    ob := ob + a[i];
  Writeln;
  Writeln('Фирмы, в которых купила компьютеры хотя бы одна организация');
  For i := 1 to 6 do
    if i in ob then
      Write(f[i]:10);
  Writeln;
  Writeln('Фирмы, в которых не купила компьютеры ни одна организация');
  For i := 1 to 6 do
    if i in [1 .. 6] - ob then
      Write(f[i]:10);
  readln;

end.

Leave a Comment

+ 35 = 37