Составить программу, используя величины множественного типа. Есть список имен кукол: «Барби», «Люси», «Катерина», «Светлана», «Марина», «Анжела».Имеется информация о том, куклы с какими именами есть у N девочек. Составить программу, которая выводит список кукол: а) имеющихся у каждой из девочек; б) имеющихся хотя бы у одной из девочек; в) которых нет ни у одной из девочек — Pascal(Паскаль)

{Составить программу, используя величины множественного типа.}
(* Есть список имен кукол: "Барби", "Люси", "Катерина", 
   "Светлана", "Марина", "Анжела".
   Имеется информация о том, куклы с какими именами есть
   у N девочек. Составить программу, которая выводит список кукол:
   а) имеющихся у каждой из девочек;
   б) имеющихся хотя бы у одной из девочек;
   в) которых нет ни у одной из девочек.
*)

Program Kukla;
Type Kuk = (Barbi, Lusi, Katerina, Svetlana, Marina, Angela);
     Kukl = Set Of Kuk;
Const Ku : Array[1..6] Of String[8] = 
      ('Барби', 'Люси', 'Катерина', 'Светлана', 'Марина', 'Анжела');
      Ku1 : Array[1..6] Of Kuk = 
      (Barbi, Lusi, Katerina, Svetlana, Marina, Angela);
      KK : Set Of Kuk = [Barbi, Lusi, Katerina, Svetlana, Marina, Angela];
Var A : Array [1..30]  Of Kukl;
    I, J, K, N, N1 : Integer;
    S : String[8];
    Per, Ob : Kukl;
Begin
   {Ввод данных}
   Write('Введите количество детей: ');
   ReadLn(N);
   For I := 1 To N Do
    Begin
      Write('Введите количество кукол у ', I, '-й девочки: ');
      ReadLn(N1);
      A[I] := [];
      For J := 1 To N1 Do
       Begin
	 Write(J, '-я кукла: ');
	 ReadLn(S);
	 For K := 1 To 6 Do
	   If S = Ku[K] Then Include(A[I], Ku1[K])
       End
    End;
    Per := KK;
    Ob := [];
    For I := 1 To N Do
     Begin
	Per := Per * A[I];
	Ob := Ob + A[I]
     End;
   {Куклы, которые есть у каждой девочки}
   WriteLn('Куклы, которые есть у каждой девочки:');
   For I := 1 To 6 Do
     If Ku1[I] In Per Then WriteLn(Ku[I]);
   {Куклы, которые есть хотя бы у одной девочки}
   WriteLn('Куклы, которые есть хотя бы у одной девочки:');
   For I := 1 To 6 Do
     If Ku1[I] In Ob Then WriteLn(Ku[I]);
   {Куклы, которых нет ни у одной девочки}
   WriteLn('Куклы, которых нет ни у одной девочки:');
   For I := 1 To 6 Do
     If Ku1[I] In KK - Ob Then WriteLn(Ku[I])
End.

Leave a Comment

41 − = 36