Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2010, 19:35   #1
nolx
Пользователь
 
Регистрация: 29.03.2010
Сообщений: 21
По умолчанию Завтра надо пож!

Дана последовательность от 2 до 30 слов в каждом из которых от 2 до 10 латинских букв;
между соседними словами пробел,за последнем точка.
Вывести все слова последовательности, отличных от последнего слова;предворительно преобразовав по след правилу:
удалить из слова все предыдушие вхождения последней буквы!

РЕШИТЕ ПОЖАЛУЙСТА на ПАСКАЛЕ НАДО ЗАВТРА СДАТЬ!!!
nolx вне форума Ответить с цитированием
Старый 31.05.2010, 20:18   #2
Poltev86
Пользователь
 
Аватар для Poltev86
 
Регистрация: 15.05.2010
Сообщений: 31
По умолчанию

Задания очень простые))))))) найдите время почитать умные книжки...иначе дальше сложнее учиться будет...
Poltev86 вне форума Ответить с цитированием
Старый 31.05.2010, 20:20   #3
nolx
Пользователь
 
Регистрация: 29.03.2010
Сообщений: 21
По умолчанию

ну решите плиз я сделал но не могу последние сделать задание!(((
nolx вне форума Ответить с цитированием
Старый 31.05.2010, 20:26   #4
nolx
Пользователь
 
Регистрация: 29.03.2010
Сообщений: 21
По умолчанию

Вывести все слова последовательности, отличных от последнего слова;предворительно преобразовав по след правилу:
удалить из слова все предыдушие вхождения последней буквы!
можно написать хоть эту!!! а там я разберусь!
nolx вне форума Ответить с цитированием
Старый 31.05.2010, 21:39   #5
Z1000000
Форумчанин
 
Регистрация: 04.05.2010
Сообщений: 495
По умолчанию

Код:
program lab;
var
 aStr : String;
 i,indexPrev : Integer;
 LastWord,CurWord : String;

function DeleteRepSym(aStr:String):String;
var
 LastSym : Char;
 NewWord : String;
 i : Integer;
begin
NewWord := '';
LastSym := aStr[Length(aStr)];
for i:=1 to Length(aStr)-1 do
 if aStr[i] <> LastSym then NewWord := NewWord + aStr[i];
DeleteRepSym := NewWord + LastSym;
end;

begin
 readln(aStr);
 LastWord := '';
 for i:=Length(aStr)-1 downto 1 do
  begin
  if aStr[i] <> ' ' then LastWord := aStr[i] + LastWord
  else begin IndexPrev := i; break; end;
  end;
 LastWord := DeleteRepSym(LastWord);

 writeln ('Вывод: ');
 CurWord := '';
 for i:= 1 to indexPrev do
  begin
  if aStr[i] = ' ' then
   begin
   if CurWord <> '' then
    begin
    CurWord:= DeleteRepSym(CurWord);
    if CurWord <> LastWord then writeln (CurWord);
    CurWord := '';
    end
   end
  else
   begin
   CurWord := CurWord + aStr[i];
   end;
  end;
writeln (LastWord);
end.
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948
Z1000000 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можете помочь плз, до завтра надо! shelovek Помощь студентам 6 23.12.2009 22:27