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


Program textus;
Uses CRT;
const
z = ['a'];
Var text, s1 : string;
i: byte;
BEGIN
Write ('Введите текст: ');
Readln (text);
For i:=1 To length(text) Do
If text[i] In z Then
begin
highvideo;
TextColor(4);
write(text[i]);
end
else
begin
TextColor(7);
write(text[i]);
end;
Readkey;
END.


Заранее спасибо!
-Volvo-
Сначала пройти по тексту от конца к началу, и найти (и запомнить) позицию последнего разделителя (что там ты считаешь словом? Чем слова разделяются? Только пробелами? Значит, пробела), а уж потом - идти от начала, и "если буква - та, что нужна И позиция больше, чем позиция последнего разделителя", то выделять красным.
Sav93
О, Боже...наверное займусь этим уже завтра, а то сегодня голова не варит) Даже не могу осознать что ты написал...Но спасибо и на этом.
volvo
Что ж тут сложного?

     Readln (text); { Читаешь строку }

p := 0; i := length(text);
repeat
{ если буква - разделитель (я проверяю только на пробелы,
надо - добавь другие символы), то запомнить, где она находится }
if text[i] in [' '] then p := i
else dec(i);
until (p > 0) or (i = 0);
{ Из этого цикла только 2 выхода: если дошли до начала строки и i = 0,
или если нашли последний разделитель, и p <> 0 }

{ Сначала печатаем все, что было перед последним словом }
for i := 1 to p do write(text[i]);

{ а теперь - в последнем слове проверяем наличие нужного символа }
for i := p + 1 to length(text) do
begin
if text[i] in z then
begin
highvideo; textcolor(red);
end
else
begin
normvideo; textcolor(lightgray);
end;
write(text[i]);
end;

В конце программы не забудь установить серый цвет для вывода... Это правило хорошего тона...
Sav93
Ага...спасибо...все понял, я просто както и не подумал про repeat, все думал как бы через for найти последнее слово. Спасибо большое!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.