Другие языки программирования и технологии

Задача Pascal , строки , помогите пожалуйста !!!

В общем задача , решить не могу , болел и пропустил три лекции одна из них по строкам ...помогите если не сложно , потому что мне не помог ни великий гугл ни учебник на тыс. страниц ((( "Определить найболее часто встречающуюся букву в конце слов и эти слова вывемти на печать ..." Помогите , а то у нас лектор дядя очень злой ,(((
Доброго времени суток.

Все достаточно просто. Объявляем массив

var A : array['a'..'z'] of Word;

Очищаем его

for ch:='a' to 'z' do a[ch] := 0;

Вводим строку с клавиатуры в переменную S.

ReadLn(S);

Чтобы не потерять последнее слово добавляем к ней пробел. S := S + ' эж

И начинаем выделять слова и подсчитывать их последние буквы.

while Pos(' ', S) > 0 do begin
S1 := Copy(S, 1, Pos(' ', S)-1); {выделяем первое слово}
Delete(S, 1, Pos(' ', S)); {и удаляем его из строки}
a[S1[Length(S1)]] := a[S1[Length(S1)]] + 1;
end;

Остается только найти элемент массива с наибольшим значением. Его индекс и будет искомой буквой.

Чтобы вывести на печать нужные слова, снова запускаем такой же цикл выделения слов и сравниваем последнюю букву слова с найденным символом. При совпадении - выводим на экран.

Можно не выделять слова, а просто просматривать строку и найдя пробел брать предшествующий ему символ.

for i:=1 to Length(S) do
if S[ i ] = ' ' then a[S[i-1]] := a[a[S[i-1]]] + 1;

Поскольку индексами массива являются латинские буквы, то, ессно, работать все это будет только с латиницей. Для кириллицы нужно немного доработать.

Удачи!
ВШ
Владимир Шуляковский
59 613
Лучший ответ
в каких словах, что буим сканировать? как вывести на печать, по отдельности или все сразу в кашу
Нутип того )
MA
Marik Akishev
113