Другие языки программирования и технологии
Помогите решить задание Pascal
Пожалуйста помогите решить. Дан текст и произвольная буква вывести на экран слова из текста начинающиеся на эту букву.
program tx;
var
txt: String;
ch, pch: char;
i: Integer;
pr: Boolean; { печатать ли слово }
begin
pr := False; { пока не печатать слово }
{текст}
txt := 'Дан текст и произвольная буква вывести на экран слова из текста начинающиеся на эту букву. ';
WriteLn('Дан текст: ', txt);
{символ}
Write('Введите 1 символ: '); ReadLn(ch);
ch := UpCase(ch); {в верхний регистр}
pch := ' '; {предыдущий символ пробел был}
for i := 1 to Length(txt) do
begin
{если ранее печаталось слово и встречен пробел, то не печатать}
if pr and (txt[ i ] = ' ') then
begin
pr := False;
write(' '); {печатаем пробел для отделения слов}
end;
{если предыдущий символ пробел, то возможно начало слова и надо сравнить с буквой нужной}
if (pch = ' ') and (UpCase(txt[ i ]) = ch) then pr := True; {можно печатать, нашли начало слова}
{если разрешено печатать, то выводим, конечно если это не знаки препинания}
if pr and (txt[ i ] <> '.') and (txt[ i ] <> '!') and (txt[ i ] <> '?') and (txt[ i ] <> ',') and (txt[ i ] <> ':')
and (txt[ i ] <> ';') then Write(txt[ i ]);
{запомним предыдущий символ}
pch := txt[ i ];
end;
end.
var
txt: String;
ch, pch: char;
i: Integer;
pr: Boolean; { печатать ли слово }
begin
pr := False; { пока не печатать слово }
{текст}
txt := 'Дан текст и произвольная буква вывести на экран слова из текста начинающиеся на эту букву. ';
WriteLn('Дан текст: ', txt);
{символ}
Write('Введите 1 символ: '); ReadLn(ch);
ch := UpCase(ch); {в верхний регистр}
pch := ' '; {предыдущий символ пробел был}
for i := 1 to Length(txt) do
begin
{если ранее печаталось слово и встречен пробел, то не печатать}
if pr and (txt[ i ] = ' ') then
begin
pr := False;
write(' '); {печатаем пробел для отделения слов}
end;
{если предыдущий символ пробел, то возможно начало слова и надо сравнить с буквой нужной}
if (pch = ' ') and (UpCase(txt[ i ]) = ch) then pr := True; {можно печатать, нашли начало слова}
{если разрешено печатать, то выводим, конечно если это не знаки препинания}
if pr and (txt[ i ] <> '.') and (txt[ i ] <> '!') and (txt[ i ] <> '?') and (txt[ i ] <> ',') and (txt[ i ] <> ':')
and (txt[ i ] <> ';') then Write(txt[ i ]);
{запомним предыдущий символ}
pch := txt[ i ];
end;
end.
Решил:
Введите текст:
Пожалуйста помогите решить. Дан текст и произвольная буква вывести на экран слова из текста начинающиеся на эту букву.
Введите букву:
о
Нет слов с буквы "о".
Введите текст:
Пожалуйста помогите решить. Дан текст и произвольная буква вывести на экран слова из текста начинающиеся на эту букву.
Введите букву:
п
Слова с буквы "п": помогите произвольная
Введите текст:
Пожалуйста помогите решить. Дан текст и произвольная буква вывести на экран слова из текста начинающиеся на эту букву.
Введите букву:
о
Нет слов с буквы "о".
Введите текст:
Пожалуйста помогите решить. Дан текст и произвольная буква вывести на экран слова из текста начинающиеся на эту букву.
Введите букву:
п
Слова с буквы "п": помогите произвольная
s.split( " " ).each do |w| if (w[1] == ch) print "#{ w }\n"; end;
Делишь строку на слова, потом сравниваешь slovo[1] с нужной буквой.
Похожие вопросы
- помогите решить задание на pascal ABC
- Помогите решить задание по HTML/CSS в Dreamweaver
- Помогите понять задание. Pascal ABC
- Пожалуйста помогите решить задачу Pascal
- Помогите решить задачу Pascal
- Помогите решить задачи Pascal
- Помогите решить задачу pascal. Двумерные массивы (подробно)
- Прошу помогите решить на Pascal
- Помогите решить задание по информатике. Нужно написать программу по заданию (см. внутри)
- помогите решить задание на С++