Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.11.2010, 18:41
Аватар для Tensh
Tensh Tensh вне форума
Прохожий
 
Регистрация: 28.11.2010
Адрес: Москва
Сообщения: 5
Репутация: 10
По умолчанию Подсобите с написанием программы

Есть задание:
Цитата:
Написать программу, которая инвертирует слова строки, оставляя порядок слов прежним.
Я только только начал изучать этот язык и ещё не совсем всё понимаю.
Нужно сделать программу используя такие функции как Copy, Pos, Insert и т.д.
Но вот как их объединить не понятно.
Заранее спасибо.
Ответить с цитированием
  #2  
Старый 29.11.2010, 18:47
Кодер Кодер вне форума
Активный
 
Регистрация: 25.02.2008
Сообщения: 395
Репутация: -599
По умолчанию

Поподробнее пожалуйста, транслит нужно?
Ответить с цитированием
  #3  
Старый 29.11.2010, 20:06
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Да не. просто инвертация строки.
Собственно, что надо:
1. Надо разбить строку на слова.
2. Каждое слово инвертировать (написать буквы в обратном порядке).

Для первого надо спользовать функции Pos и Copy.
второе пишется примерно так:
Код:
function InvertString(S : String) : String;
var
  I : Integer;
begin
  Result := '';
  For I := Length(S) Downto 1 Do 
    Result := Result + S[i];
end;
Ответить с цитированием
  #4  
Старый 01.12.2010, 02:57
ЖабаДушитКота ЖабаДушитКота вне форума
Прохожий
 
Регистрация: 01.12.2010
Сообщения: 9
Репутация: 16
По умолчанию

Ээ.. Вот так? Прошу прощения за небольшой плагиат

Код:
function InvertWord(s: ShortString): String;
var
  I : Integer;
begin
  Result := '';
  For I := Length(S) Downto 1 Do
    Result := Result + S[i];
end;

function InvertString(s: String): String;
var
  b: Byte;
begin
  Result:='';
  b:=Pos(' ',s);
  While b<>0 do begin
    Result:=Result+InvertWord(Copy(s,1,b-1))+' ';
    If b=Length(s) then exit;
    s:=Copy(s,b+1,Length(s));
    b:=Pos(' ',s);
  end;
  Result:=Result+InvertWord(s);
end;

Работает вне зависимости от наличия пробелов в начале или конце строки.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:56.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025