Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача со строками!
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Pelemeshka
Ребят выручите пожалуйста решить мне одну задачу!!!
"Задан произвольный текст являющимся списком фамилий.
В каждой строке записана только одна фамилия и она является
первым словом в стороке. В Найти всех однофамильцев вывести
их список и указать кол-во групподнофамильцев и число
совпадений фамилий в группе. При отсутствии однофамильцев
вывести сообщение."

пример:
Петров А. И.
Иванов И.О.
Сидоров А.С.
Петров Е. П.
Иванов Б.Л.

итог:

Петров 2
Иванов 2
volvo
type
pdata = ^data;
data = record
s: string;
amount: integer;
end;

var
f: text;
s: string;
i, count: integer;
found: boolean;
arr: array[1 .. 200] of pdata;

begin
assign(f, '__fam.txt');
reset(f);

count := 0;
while not eof(f) do begin
readln(f, s);

s := copy(s, 1, pos(' ', s) - 1);
found := false;
for i := 1 to count do begin
if arr[i]^.s = s then begin
inc(arr[i]^.amount); found := true; break
end;
end;

if not found then begin
inc(count);
new(arr[count]);
arr[count]^.s := s; arr[count]^.amount := 1;
end;
end;

for i := 1 to count do
if arr[i]^.amount > 1 then
writeln(arr[i]^.s, ' - ', arr[i]^.amount);

close(f);
end.

Если будет более 200 разных фамилий, увеличь размерность массива Arr...

Кстати, не забудь по окончании работы еще сделать Dispose всем занятым элементам массива Arr, иначе это будет называться "утечка памяти", что не приветствуется...
Pelemeshka
Я думаю что ты мне написал правильную задачу , но пойми
меня: у нас Pascal вообще не было а что ты мне написал не пойму.
Например что за значок ^...
Пожалуйста если можно пришли мне на мыло написанную прогу (.ехе). yes2.gif

Ты не обижайся, что я тебя напрягаю но просто больше не к кому
обратиться а завтра надо сдать работу и получить новую.
volvo
Цитата
Пожалуйста если можно пришли мне на мыло написанную прогу (.ехе)
А загрузить Паскаль, нажать F9 и получить EXE-файл уже СЛИШКОМ сложно? dry.gif
Pelemeshka
да нет я нажимал. но там ошибка в этом месте:
inc(arr[i]^.amount); found := true; break
Ошибка: Field identifier expected.
А файл с фамилиями не надо заранее составлять.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.