1 / 1 / 1
Регистрация: 21.11.2010
Сообщений: 8
1

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

12.12.2010, 22:25. Показов 3033. Ответов 1
Метки нет (Все метки)

Дан строковый массив, типа

Код
Text: array[0..N-1] of String =
    (('А все животные в нашем зоопарке живут дружно. А они'),
     ('любят выступать перед детьми, требуя за это только'),
     ('аплодисменты. Каждое воскресенье можно увидеть это шоу!'));
Сформировать новый массив , каждый элемент которого - предложения из первого массива.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.12.2010, 22:25
Ответы с готовыми решениями:

Создать новый массив, каждый элемент которого равен сумме соответствующих элементов двух исходных массивов
Создать новый массив, каждый элемент которого равен сумме соответствующих элементов двух исходных...

Сформировать одномерный массив, каждый элемент которого равен наибольшему по модулю элементу соответствующей строки
Дан двумерный массив размерностью n*m, заполненный целыми числами из файла. Сформировать одномерный...

Сформировать одномерный массив B,каждый элемент которого равен количеству отрицательных элементов меньших 5 по модулю
Дан двумерный массив A размером 4× 5, заполненный целыми числами.Требуется сформировать одномерный...

Массив: сформировать новый массив из элементов первого массива стоящих между min и max
сформировать новый массив из элементов первого массива стоящих между min и max. Помогите плеес. На...

1
13094 / 5875 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
12.12.2010, 23:02 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Выделять предложения из текста можно так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
procedure TForm1.Button1Click(Sender: TObject);
const
  N = 3;
  //Разделители предложений.
  D = ['.', '!', '?'];
  //Величина приращения длины динамического массива.
  Capacity = 10;
  //Исходный массив.
  ArrText : array[0..N-1] of String = (
    ('А все животные в нашем зоопарке живут дружно. А они '),
    ('любят выступать перед детьми, требуя за это только '),
    ('аплодисменты. Каждое воскресенье можно увидеть это шоу!')
  );
var
  S : String;
  Arr : array of String;
  i, j, Po1, Len : Integer;
begin
  //Исходный текст.
  S := '';
  for i := Low(ArrText) to High(ArrText) do begin
    S := S + ArrText[i];
  end;
  Len := Length(S);
 
  //Обработка текста.
  Po1 := 0;
  j := 0;
  for i := 1 to Length(S) do begin
    //Отслеживаем начало предложения.
    if (i = 1) or (S[i - 1] in D) then Po1 := i;
    //Отслеживаем конец предложения.
    if (i = Len) or (S[i] in D) then begin
      //Если требуется, увеличиваем длину массива.
      if j = Length(Arr) then SetLength(Arr, j + Capacity);
      //Добавляем предложение в массив.
      Arr[j] := Copy(S, Po1, i - Po1 + 1);
      //Индекс следующего элемента массива.
      j := j + 1;
    end;
  end;
 
  //Корректируем длину массива в соответствие с количеством
  //добавленных в него элементов.
  if j < Length(Arr) then SetLength(Arr, j);
 
  //Распечатываем содержимое массива в Мемо.
  for i := 0 to High(Arr) do begin
    Memo1.Lines.Add( Arr[i] );
  end;
 
  //Если массив больше не нужен, удаляем его из памяти.
  Finalize(Arr);
end;
Я там в исходный текст добавил пробелы в конце первых двух строк. В зависимости от исходных данных можно предусмотреть условия склейки исходного текста - где надо можно добавлять пробелы. Так же в результирующем массиве в начале предложений, можно, например, удалять ведущие пробелы.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.12.2010, 23:02
Помогаю со студенческими работами здесь

Сформировать второй массив, элементами которого будет разница пар первого массива
Подскажите пожалуйста как сделать вот такую задачку. Я создаю массив чисел с количеством элементов...

Сформировать из элементов матрицы массив, каждый элемент которого — количество элементов каждого четного столбца
Запрашивать размерность двумерного массива. Затем организовать заполнение двумерного массива целыми...

Получить одномерный массив [1..8], каждый элемент которого является первым элементом в соответствующем столбце исходного массива, большим по модулю 4
помогите пожайлуста решить задачу сформировать двухмерный массив (6*8) из целых случайных...

Построить массив, каждый элемент которого содержит наименьший по абсолютной велечине элемент строки матрицы
Я горю срочно нужно решить задачу помогите оч прошу! решается судьба моя ЗАДАЧА Дана...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru