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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2010, 17:37   #1
kami46
Пользователь
 
Регистрация: 30.10.2010
Сообщений: 10
По умолчанию Delphi: строки

Задание примерно такое: вводятся слова через запятую, после последнего слова точка. программа должна вывести эти слова в обратном порядке.

Первую часть программы смог написать, в ней формируется одномерный массив, каждый из элементов которого - отдельное слово (индексы соответствуют порядку слов при вводе):
Код:
procedure TForm1.btn1Click(Sender: TObject);
var s : string;
    i,j : byte;
    a : array [1..30] of string;

begin
   s := Edt1.text;
  Edt2.text := '';


    j := 1;
    for i := 1 to length(s) do

      if (s[i] <> ',') and  not ((s[i] >= '0') and (s[i] <= '9')) and (s[i]<>'.') then

          a[j] := a[j] + s[i]

      else  if (s[i] = ' ') and (a[j] <> '') then inc(j);
Как представить массив строкой и вывести каждый элемент начиная с последнего и до первого через запятую не знаю, помогите пожалуйста =(
kami46 вне форума Ответить с цитированием
Старый 17.12.2010, 17:59   #2
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Код:
var s : string;
    i,j : byte;
    a : array [1..30] of string;

begin
   s := Edit1.text;
  Edit2.text := '';
  j := 1;
  for i := 1 to length(s) do
  Begin
  if (s[i] <> ',') and  not ((s[i] >= '0') and (s[i] <= '9')) and (s[i]<>'.') then
  a[j] := a[j] + s[i]
  else
  if (s[i] = ',') then inc(j)
  End;
  For i:=j downto 1 do
  Begin
    Edit2.Text:=Edit2.Text+A[i]+' '
  End;
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 17.12.2010, 18:21   #3
kami46
Пользователь
 
Регистрация: 30.10.2010
Сообщений: 10
По умолчанию

Цитата:
Сообщение от GetMax Посмотреть сообщение
Код:
var s : string;
    i,j : byte;
    a : array [1..30] of string;

begin
   s := Edit1.text;
  Edit2.text := '';
  j := 1;
  for i := 1 to length(s) do
  Begin
  if (s[i] <> ',') and  not ((s[i] >= '0') and (s[i] <= '9')) and (s[i]<>'.') then
  a[j] := a[j] + s[i]
  else
  if (s[i] = ',') then inc(j)
  End;
  For i:=j downto 1 do
  Begin
    Edit2.Text:=Edit2.Text+A[i]+' '
  End;
Слова выводятся в том же порядке, что и задаются, а нужно наоборот
Разобрался в чем косяк, спасибо за помощь!
kami46 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
строки в delphi STIFLER32 Помощь студентам 6 27.03.2010 13:44
Строки в Delphi 534 Помощь студентам 22 24.02.2010 00:57
Строки Delphi Дешук Елена Помощь студентам 2 30.12.2009 16:39
delphi строки motaro Общие вопросы Delphi 5 21.08.2009 18:45
Delphi. Строки. inmate Помощь студентам 2 19.05.2008 18:14