янубтытруп
01.03.2023 22:19

(желательно на C++) Написать программу. У нас имеется социальная сеть, где записи о пользователях и отношения дружбы задаются в двух файлах. файл 1 (файл с анкетами) содержит идентификатор пользователя, Имя, Фамилию, дату рождения и имеет следующий вид:

id123; Егор Васильев; 11.05.2001 id354; Петр Васин; 13.06.2005 id923; Антон Кулаков; 05.01.1996

Файл 2 содержит записи отношений дружбы. В каждой строке на первом месте стоит идентификатор пользователя, далее через разделитель его друзья. Отношения дружбы однонаправленные (как в примере файла) пример

id123; id354 id354; id123; id923 id923; id354; id123

Функционал программы:

вывести Имена/фамилия всех пользователей и возраст (не дату рождения)
По запросу пользователя, который указывает двух пользователей соцсети (вводит фамилию), проверить возможность отправки письма от одного пользователя другому. если напрямую отправить нельзя, рассчитать последовательность отправки сообщений через цепочку знакомств (вывести данную последовательность).
Сообщения можно отправить только подтверждённым (взаимным) друзьям. Если при вводе фамилии есть несколько однофамильцев в базе, предложить выбрать из имеющихся.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
k03a12345
28.05.2023 02:20
Var
 A:array[1..4] of integer;
 i,j,R,P:integer;
function HOD(c,b:integer):integer;
 begin
  while c<>b do
   if c>b
     then
      c:=c-b
    else
     b:=b-c;
  HOD:=c;
 end;
function HOK(c,b, RR:integer):integer;
 begin
  if ((c mod b=0) or (b mod c=0)) and ((c div b > 1) or (b div c > 1))
   then
     begin
       if c>b
          then
           HoK:=c
         else
          HOK:=b;
     end
    else
     HOK:=(c*b) div RR;
 end;
begin
 A[1]:=36;
 A[2]:=54;
 A[3]:=18;
 A[4]:=15;
 P:=1;
 R:=HOD(A[1],A[2]);
 P:=HOK(A[1], A[2], R);
 for i:=3 to 4 do
  begin
   R:=HOD(R, A[i]);
   P:=HOK(P, A[i],R);
  end; writeln('HOK = ',P);
end.
0,0(0 оценок)
Ответ:
oleglebedev90
28.05.2023 02:20
Var
 A:array[1..4] of integer;
 i,j,R,P:integer;
function HOD(c,b:integer):integer;
 begin
  while c<>b do
   if c>b
     then
      c:=c-b
    else
     b:=b-c;
  HOD:=c;
 end;
function HOK(c,b, RR:integer):integer;
 begin
  if ((c mod b=0) or (b mod c=0)) and ((c div b > 1) or (b div c > 1))
   then
     begin
       if c>b
          then
           HoK:=c
         else
          HOK:=b;
     end
    else
     HOK:=(c*b) div RR;
 end;
begin
 A[1]:=36;
 A[2]:=54;
 A[3]:=18;
 A[4]:=15;
 P:=1;
 R:=HOD(A[1],A[2]);
 P:=HOK(A[1], A[2], R);
 for i:=3 to 4 do
  begin
   R:=HOD(R, A[i]);
   P:=HOK(P, A[i],R);
  end; writeln('HOK = ',P);
end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота