Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  dsghsh
Language: PASCAL
Code:
program HelloWorld;
uses crt;
type tovar=(vd,km,mg,nb,pl,ft);{перечислимый тип для создания множеств}
     mnz=set of tovar;
const nn=6;
      sp:array[0..nn-1] of string=('видеокамера','компьютер','магнитофон',{список товаров}
                                   'ноутбук','плеер','фотоаппарат');
var m:array[1..nn] of mnz;{массив множеств-магазинов}
    res:mnz;{множество для результата}
    j:tovar;{переменная-счетчик перечислимого типа}
    i,k,p:byte;
begin
clrscr;
writeln('Перечислите какие товары есть в магазине:');
for i:=1 to nn do
 begin
  writeln('Магазин ',i);
  m[i]:=[];
  writeln('0-видеокамера 1-компьютер 2-магнитофон 3-ноутбук 4-плеер');
  writeln('5-фотоаппарат 6-выход');
  repeat
   readln(k);
   if k in [0..5] then m[i]:=m[i]+[tovar(k)];
  until k=6;
 end;
writeln('Имеются в каждом магазине');
res:=[];
for j:=vd to ft do
 begin
  k:=0;
  for i:=1 to nn do
  if j in m[i] then k:=k+1;
  if k=nn then res:=res+[j];{если есть во всех}
 end;
if res=[] then writeln('Таких товаров нет')
else
 for j:=vd to ft do
 if j in res then write(sp[ord(j)],' ');
writeln;
writeln('Есть хотя бы в одном магазине:');
res:=[];
for j:=vd to ft do
 begin
  for i:=1 to nn do
  if j in m[i] then res:=res+[j];{если есть хоть в одном}
 end;
for j:=vd to ft do
if j in res then write(sp[ord(j)],' ');
writeln;
writeln('Нет ни в одном магазине:');
res:=[];
for j:=vd to ft do
 begin
  k:=0;
  for i:=1 to nn do
  if not(j in m[i]) then k:=k+1;
  if k=nn then res:=res+[j];{если нет ни в одном}
 end;
if res=[] then writeln('Таких товаров нет')
else
 for j:=vd to ft do
 if j in res then write(sp[ord(j)],' ');
readln
end.          
Comments: