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

Здравствуйте напишите простую прогу на паскале пожалуйста. задание внутри

текст задан строкой var St: string напечатать текст, составленный из последних литер всех слов
Islam Shasalimov
Islam Shasalimov
604
Доброго времени суток.

Подход Александра Рыбакова нормальный, но вдруг разделителей несколько? Допустим вы ввели пробел в качестве разделителя, а в предложении есть причастный оборот. Что, будем выводить запятую? Или пользователь по ошибке ввел подряд два (или даже больше) разделителя? Так что не все так просто.

Предлагаемая программка свободна от такого эффекта, поскольку оперирует несколькими разделителями слов. Правда, все они должны быть определены до этапа компиляции. Ну и по объему чуть больше.. .

program WordFromLastChar;
uses Crt;
const
WordDelim : set of Char = [' ',',','.']; {разделители слов: пробел, запятая и точка. можно добавить и другие символы}

var
s, s1,s2 : String;
j : Integer;

begin
ClrScr;
Write('Введите предложение: ');
ReadLn(s);

s1 := '';
s2 := '';
j := 1;
while j <= Length(s) do begin
if not (s[j] in WordDelim) then s1 := s1 + s[j]; {накапливаем, если не разделитель}
if (s[j] in WordDelim) or (j = Length(s)) then {разделитель или последний символ}
if (s1 <> '') then begin {слово не пустое}
s2 := s2 + s1[Length(s1)]; {накапливаем последние символы выделенных слов}
s1 := ''; {очищаем накопитель}
end;
Inc(j);
end;

WriteLn(s2); {выводим результат}
ReadLn;
end.

Удачи!
***амиго*** In Uralsk
***амиго*** In Uralsk
59 612
Лучший ответ
сам пиши.
вопервых неясно чем разделены слова. Если просто пробелами, то просто, если не просто, то соответственно не просто.
в цикле перебираешь строку как массив St, начиная со второго элемента. В элементе 0 находится длина строки, но её можно получить соответствующей функцией.
проверяешь элемент на разделитель, если разделитель, проверяешь предыдущий элемент если не разделитель - печатаешь его. проверку на разделитель можно оформить в виде функции.
Да там все просто на самом деле. Просто раздражают такие, напиши им. Нет бы книжку взять, или тогда уж оплатить
Программа может выглядеть так:

var str: string;
ch: char;
i: integer;

begin
writeln('Введите текст и разделяющий символ: ');
readln(str,ch);
for i:=1 to length(str) do
if (str=ch) then write(str[i-1]);
readln;
end.

Смысл в том, что текст у нас должен представлять набор слов, разделенных определенным символом (пробелом или чем-то еще) , сначала мы вводим наш текст, потом вводим символ - разделитель. Далее в цикле перебираем символы всей строки, если текущий символ равен разделяющему символу, то печатаем предыдущий символ. Вот так вот. Удачи.
R.
Rafa .
1 006
Ужос! ! Мы это в 10 классе проходили.. . Нет в мире проги отвратительней чем паскаль!!!