Проверить, что требование о выкупе было сделано с использованием конкретной газеты - PascalABC.NET
Формулировка задачи:
Требование о выкупе было склеено из вырезанных из газеты отдельных слов. Как проверить, что требование о выкупе (представленное в виде строки) было сделано с использованием конкретной газеты (строки)?
Решение задачи: «Проверить, что требование о выкупе было сделано с использованием конкретной газеты»
textual
Листинг программы
var
buyout, newspaper : String;
words : array of String;
oneWord : String;
p, i : Integer;
wordFind : Boolean;
begin
//Write('Требование о выкупе: '); ReadLn(buyout);
buyout := 'за вашего птенчика хотим один миллион';
//Write('Газета: '); ReadLn(newspaper);
newspaper := 'в прошлом году за нашу компанию майкрософт давала' +
' один с половиной миллион долларов, а мы хотим им птенчика вашего.';
newspaper := newspaper.Replace('.', '');
newspaper := newspaper.Replace(',', '');
words := newspaper.ToWords;
foreach oneWord in buyout.ToWords do
begin
p := words.Length;
wordFind := False;
while (p > 0) and Not wordFind do
begin
p -= 1;
wordFind := words[p] = oneWord;
end;
if wordFind then
begin
for i := p to words.Length-2 do
words[i] := words[i+1];
SetLength(words, words.Length-1);
end
else
begin
WriteLn('Ответ отрицательный!');
Exit;
end;
end;
WriteLn('Ответ положительный!');
end.
Объяснение кода листинга программы
- Объявлены переменные: buyout, newspaper (строки), words (массив строк), oneWord (строка), p, i (целые числа), wordFind (булево).
- Переменная buyout инициализируется значением 'за вашего птенчика хотим один миллион'.
- Переменная newspaper инициализируется значением 'в прошлом году за нашу компанию майкрософт давала один с половиной миллион долларов, а мы хотим им птенчика вашего.'.
- Значение переменной newspaper заменяется на 'в прошлом году за нашу компанию майкрософт давала' + ' один с половиной миллион долларов, а мы хотим им птенчика вашего.'.
- Значение переменной newspaper заменяется на 'в прошлом году за нашу компанию майкрософт давала' + ' один с половиной миллион долларов, а мы хотим им птенчика вашего.'.
- Переменная words инициализируется значением текущего содержимого переменной newspaper.
- Для каждого слова в переменной buyout выполняется поиск в переменной words.
- Если слово найдено, выполняется перестановка элементов в переменной words, чтобы слово было в конце.
- Если слово не найдено, выводится сообщение 'Ответ отрицательный!' и выполняется выход из программы.
- Выводится сообщение 'Ответ положительный!'.