Функция обработки списков

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

Ответить
assari
Сообщения: 3
Зарегистрирован: 09 апр 2008, 17:11

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

p.s. даже пробный код Вам предложить, к сожалению, не могу, знаю только как реализовать функцию для обработки строк, но это врядли нужно здесь писать. Как это сделать в динамическом списке не знаю.
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

s[1]=s[length(s)]
Если для s такое равенство выполняется, то s начинается и кончается на одну и ту же букву.
Если s содержит в себе несколько слов - надо ее разбить на слова (раздел Алгоритмы, соответствующая тема).
Как список организоывать - ваше дело, либо массивом, либо динамически.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
assari
Сообщения: 3
Зарегистрирован: 09 апр 2008, 17:11

А вот скажите, например, СurrRec1^.Name - это элемент списка (слово). Как для него реализовать проверку ?
BBB
Сообщения: 1298
Зарегистрирован: 27 дек 2005, 13:37

assari писал(а):А вот скажите, например, СurrRec1^.Name - это элемент списка (слово). Как для него реализовать проверку ?

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

Для отдельной строки это будет выглядеть:

Код: Выделить всё

function PervAndPoslRavny (st : string) : boolean;
begin
  if (Length (st)) = 0 then begin
   { будем считать, что такая строка не подходит }
    PervAndPoslRavny := FASLE;
  end
  else  begin
    PervAndPoslRavny := (st [1] = st [Length (st)]);
  end;
end;
Для СurrRec1^.Name надо будет сделать вызов:
PervAndPoslRavny (СurrRec1^.Name)
Ответить