Есть ответ 👍

Нужно написать : адрес, запрашиваемый пользователем, обычно состоит из четырех частей, из которых первые три являются доменными именами различного уровня и разделены точками, а последняя отделена от них двоеточием и является портом, к которому обращается пользователь. например, при обращении пользователя к слово ru является доменным именем первого уровня, слово ifmo — доменным именем второго уровня, слово www — доменным именем третьего уровня, а 8080 является портом. вам необходимо по списку запросов пользователей в таком формате перечислить все различные порты, к которым обращались пользователи. формат входного файла в первой строке входного файла input.txt находится одно натуральное число n (1 ≤ n ≤ 100) — количество адресов в данном вам списке. в следующих n строках содержатся сами адреса в формате, описанном выше. все доменные имена всех уровней состоят только из строчных букв латинского алфавита, а порты — только из цифр. длина любого данного вам адреса не превышает 250 символов. формат выходного файла в первой строке выходного файла output.txt выведите одно целое число k — количество различных портов, к которым обращались пользователи. в следующих k строках выведите сами порты. каждый порт должен быть выведен ровно один раз в отдельной строке. порты могут быть выведены в любом порядке. пример входных и выходных данных input.txt 3 output.txt 2 65535 3389

172
238
Посмотреть ответы 3

Ответы на вопрос:

Nicolay93
4,6(21 оценок)

из олимпиады) простенькая вроде программулька

varn,i,k,j,f: integer; m: array [1..100] of string; p: array[1..100] of string; sl,por: string; b: boolean; f1,f2: text; beginassign(f1, 'input.txt'); reset(f1); readln(f1,n); for i: =1 to n doreadln(f1,m[i]); close (f1);

k: =0; for i: =1 to n do beginpor: =''; b: =false; sl: =m[i]; for j: =1 to length(sl) do beginif (ord(sl[j])> =48) and (ord(sl[j])< =57) thenpor: =por+sl[j]; end; for f: =1 to k do beginif por=p[f] thenb: =true; end; if b=false then begink: =k+1; p[k]: =por; end; end; assign(f2, 'output.txt'); rewrite(f2); writeln (f2,k); for i: =1 to k dowriteln (f2,p[i]); close (f2); end.


program_port;

var

n,c,i: integer; s,s1: string; a: array [1..1000] of string; b: boolean; begin assign(input,'input.txt'); reset(input); assign(output,'output.txt'); rewrite(output);   readln(input,n); b: =true; c: =0;   while n< > 0 do

begin readln(input,s);   while s[1]< > '.' do delete(s,1,1); delete(s,1,1);   s1: =copy(s,1,pos('.',s)-1);

for i: =1 to c doif a[i]=s1 then begin b: =false; break; end; if b then begin                inc(c);                 a[c]: =s1;                 end; b: =true; dec(n); end; writeln(output,c); for i: =1 to c do writeln(output,a[i]); close(input); close(output); end.


101-5 110-6 111-7 вот,их без решения даже можно

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS