Определить, есть ли в классе человек, который побывал в гостях у всех - Turbo Pascal

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

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

Имеется список класса (все имена различны). Определить, есть ли в классе человек, который побывал в гостях у всех. (Для каждого ученика составить множество побывавших у него в гостях друзей, сам ученик в это множество не входит) Спасибо большое заранее:3
Ой, извиняюсь, забыл на вашем форуме поискать) Уже нашел такой же вопрос, на который был дан ответ. Спасибо большое, Puporev.
Листинг программы
  1. type imena=(lb,tn,ln,ks,ns,mr,jn);{перечислимый тип для создания множеств}
  2. mnz=set of imena; {тип множеств}
  3. const k=6;
  4. sp:array[0..k] of string=('Люба','Таня','Лена','Ксюша',
  5. 'Настя','Марина','Женя');{массив имен для ввода и вывода}
  6. var m:array[0..k] of mnz;{массив множеств}
  7. i:imena; {cчетчик перечислимого типа}
  8. j,v:byte; {счетчики целого типа}
  9. s:string;
  10. f:boolean; {переменая логического типа}
  11. begin
  12. {формируем множества}
  13. writeln('Перечислите кто побывал в гостях у данного ученика');
  14. for j:=0 to k do
  15. begin
  16. writeln(sp[j]);
  17. m[j]:=[];
  18. writeln('Выберите имена побывавших у него в гостях кроме ',sp[j]);
  19. writeln('0-Люба 1-Таня 2-Лена 3-Ксюша 4-Настя 5-Марина 6-Женя 7-выход');
  20. repeat
  21. readln(v);{выбираем из списка номер}
  22. if (v in [0..k])and(v<>j)
  23. then m[j]:=m[j]+[imena(v)];{из диапазона 0-6 и кроме себя}
  24. until v=7;{7 - выход от данного ученика}
  25. end;
  26. {выведнм на экран что получилось}
  27. writeln('Были в гостях у');
  28. for j:=0 to k do
  29. begin
  30. write(sp[j],'-> ');
  31. for i:=lb to jn do
  32. if i in m[j] then write(sp[ord(i)],' ');
  33. writeln;
  34. end;
  35. f:=false;{считаем что нет такого ученика, кто был у всех}
  36. i:=lb;{начнем с первого}
  37. while(i<=jn)and not f do{пока не последний или не нашли такого ученика}
  38. begin
  39. v:=0;{у скольких побывал}
  40. for j:=0 to k do
  41. if (j<>ord(i))and(i in m[j]) then v:=v+1;{считаем}
  42. if v=k then {если у всех кроме себя, да!}
  43. begin
  44. f:=true;
  45. s:=sp[ord(i)]; {запомним имя}
  46. end
  47. else inc(i);{иначе проверяем следующего}
  48. end;
  49. if f then write('Есть ученик, побывавший в гостях у всех это ',s)
  50. else write('Нет ученика, побывавшего в гостях у всех');
  51. readln
  52. end.
Вот этот код, только одна проблемка. Я ввожу номера гостей и могу вводить их бесконечно долго, программа дальше не переходит. Подскажите, пожалуйста, что тут такое?

Решение задачи: «Определить, есть ли в классе человек, который побывал в гостях у всех»

textual
Листинг программы
  1. writeln('0-Люба 1-Таня 2-Лена 3-Ксюша 4-Настя 5-Марина 6-Женя 7-выход');

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

{0-Люба 1-Таня 2-Лена 3-Ксюша 4-Настя 5-Марина 6-Женя 7-выход}

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


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

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

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

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

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

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