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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2010, 20:36   #1
Atoris
Пользователь
 
Регистрация: 10.10.2010
Сообщений: 32
По умолчанию Строковый массив. Delphi. Консольная.

Дан строковый массив. Сделать из этого массива новый массив , где каждый элемент является предложением из первоначального массива.

Вот мои наработки.. Не компилится . Помогите пожалуйста

Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

const
  N = 3;

var
  Text: array[0..N-1] of String =
    (('все животные в нашем зоопарке живут дружно. они'),
     ('любят выступать перед детьми, требуя за это только'),
     ('аплодисменты. Каждое воскресенье можно увидеть это шоу!'));

  NewText: array of String; // Новый массив предложений
  I, J, Z, M, K: Integer;
  G: Integer; // Количество слов в предложении
  D: Integer; // Счётчик точек
  T, W, Y: Integer; //
  A: array[1..10] of Integer; // Массив номеров строк текста , в которых есть ? ! .

begin
  // заполнение массива А
  D := 0;
  // Сканирование каждой строки
  for I := 0 to High(Text) do
    // Сканирование каждого символа
    for J := 1 to Length(Text[I]) do
      case (Text[I])[J] of
        '.', '!', '?' :
          begin
            inc(D);
            A[D] := I;
          end;
      end;

 // Разбивка на предложение и заполнение нового массива
  T := 0;
  for I := 0 to High(Text) do
    for J := 1 to Length(Text[I]) do
      case (Text[I])[J] of
        '.', '!', '?' :
          begin
            if I = 0 then
            begin
              inc(T);
              W := A[T];
              for Z := 1  to Pos((Text[W])[J] , (Text[W]))   do

              NewText[T] := NewText[T] + (Text[W])[Z]; // ОШИБКА! ПОЧЕМУ ? 

            end
            else
            begin
              inc(T);
              Y := T + 1;
              W := A[T];
              for Z := Pos((Text[W])[J] , (Text[W])) to Pos((Text[W])[J] , (Text[Y]))  do
                begin
                NewText[T] := NewText[T] + (Text[I])[Z];
                end;
            end


          end;

      end;



 

 //  for K := 0 to High(NewText) do
   //  WriteLn(NewText[K]);

  ReadLn;

end.
Atoris вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строки.Delphi.Консольная. Atoris Помощь студентам 2 29.11.2010 14:31
Строки.Delphi.Консольная. Atoris Помощь студентам 0 21.11.2010 01:21
Интеграл по методу 3/8. Задача. Delphi консольная. Atoris Помощь студентам 1 17.11.2010 09:22
Задача. Строки. Delphi консольная. Atoris Помощь студентам 4 16.11.2010 09:44
Консольная графика... Sota C++ Builder 3 01.04.2010 05:48