Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 16.03.2017
Сообщений: 5
1

Возвращение строки

11.07.2017, 18:40. Показов 762. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно написать программу, которая
Формирует массив слов, начинающихся с заданного буквосочетания (подстроки); разделители ( "." "," "пробел")
Возвращает строку, в которой оставлены слова, начинающихся с заданного буквосочетания и длина которых меньше заданной.


Pascal
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
  Const
    delimiters = [ ' ' , '.' , ',']; 
    len=80; 
  Var
    in_file : text;
    pattern_word, 
    word_intext, 
    stroka :string[len];
    k, n, strokalength : word;
    file_name : string[20];
    i:integer;
  Begin
    Assign(in_file, '2.txt');
    Reset(in_file);
    n := 0;
    while not Eof(in_file) do
      begin
        Inc(n);
        ReadLn(in_file, stroka);
        strokalength := Length(stroka);
        k := 1;
        word_intext := '';
        while k <= strokalength do
          begin
            if (stroka[k] in delimiters) 
                or (k=strokalength) 
              then 
                begin 
                  if (k=strokalength)and not(stroka[k] in delimiters)
                    then for i:=1 to strokalength do 
                      word_intext := word_intext+stroka[k];
                      
                   if stroka[k] < word_intext
                     then 
                       begin
                         WriteLn(stroka);
                         writeln(word_intext);
 
                       end;
                  word_intext := '';
                end
                else 
                word_intext := word_intext+stroka[k];
            Inc(k);
          end 
      end; 
    Close(in_file);
  end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.07.2017, 18:40
Ответы с готовыми решениями:

Возвращение из процедуры-события к основной программе при выполнении определённого условия
Добрый вечер всем ещё не ушедшим спать. 10 класс, пишу научраб по теме создания дидактических...

Массив, имитирующий колоду карт. Тасовка. Возвращение, если идут подряд 3 карты одинаковой масти
Определить массив, имитирующий колоду карт. Написать процедуру и функцию, которая тасует карты и...

Возвращение строки 00 01 02
Дано целое число n. Определить функцию, которая возвращает строку &quot;00 01 02 03 04 … 0n&quot;. (defun...

Возвращение строки из функции
Есть код #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;ctime&gt; #include...

1
5079 / 2651 / 2349
Регистрация: 10.12.2014
Сообщений: 10,028
12.07.2017, 07:21 2
Во-первых, чтобы считать весь текст, не обязательно делать столько действий:
Pascal
1
2
3
4
begin
  var s := ReadAllText('2.txt');
  WriteLn(s);
end.
Во-вторых, чтобы разбить на массив слов, нужно только выполнить один оператор ToWords:
Pascal
1
2
3
4
5
begin
  var d := ' .,'#13#10.ToCharArray;
  var s := ReadAllText('2.txt').ToWords(d);
  s.Println;
end.
Ну и в-третьих, отбор таких слов можно сделать сразу после разбивания на слова:
Pascal
1
2
3
4
5
6
begin
  var pref := ReadLnString('С какого буквосочетания:');
  var d := ' .,'#13#10.ToCharArray;
  var s := ReadAllText('2.txt').ToWords(d).Where(word -> word.IndexOf(pref) = 0);
  s.Println;
end.
Программа готова!
И уложились всего в 4 строки…

А сейчас придёт volvo и переделает её в одну… ;–)

P.S. Длина меньше заданной — для самостоятельного закрепления материала!
Подсказка: для этого нужно поправить всего одно условие в операторе фильтрации.
1
12.07.2017, 07:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.07.2017, 07:21
Помогаю со студенческими работами здесь

Возвращение строки из функции
#include &lt;cstdio&gt; #include &lt;string.h&gt; void bin(char * r, unsigned int n) { for (int i = 128;...

Возвращение строки из функции
Не могу разобраться, почему возвращает кракозябру. Помогите пожалуйста найти ошибку. #include...

Возможно ли возвращение функцией двух значений? Именно возвращение, не ссылка или указатель
Нужна функция в которую забиваешь два числа и сначала она возвращает минимальное, после...

Возвращение каретки в начало строки
Ребятки, я в матлабе новичок, но свою программу почти дописал, много было вопросов, но тревожить...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru