Нужно написать программу...
Задание:
Адрес, запрашиваемый пользователем, обычно состоит из четырех частей, из которых первые три являются доменными именами различного уровня и разделены точками, а последняя отделена от них двоеточием и является портом, к которому обращается пользователь. Например, при обращении пользователя к www.ifmo.ru:8080 слово ru является доменным именем первого уровня, слово ifmo — доменным именем второго уровня, слово www — доменным именем третьего уровня, а 8080 является портом.
Вам необходимо по списку запросов пользователей в таком формате перечислить все различные порты, к которым обращались пользователи.
Формат входного файла
В первой строке входного файла input.txt находится одно натуральное число n (1 ≤ n ≤ 100) — количество адресов в данном вам списке. В следующих n строках содержатся сами адреса в формате, описанном выше.
Все доменные имена всех уровней состоят только из строчных букв латинского алфавита, а порты — только из цифр. Длина любого данного вам адреса не превышает 250 символов.
Формат выходного файла
В первой строке выходного файла output.txt выведите одно целое число k — количество различных портов, к которым обращались пользователи. В следующих k строках выведите сами порты. Каждый порт должен быть выведен ровно один раз в отдельной строке. Порты могут быть выведены в любом порядке.
Пример входных и выходных данных
input.txt
3
www.ifmo.pl:3389
www.ya.pl:65535
www.ifmo.kz:3389
output.txt
2
65535
3389
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 do
IF 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.
