Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
 Аватар для seosage
0 / 0 / 0
Регистрация: 25.10.2011
Сообщений: 70

Вывести все даты, встречающиеся в тексте. Строки

25.10.2011, 22:52. Показов 3322. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Объясните пожалуйста на словах, как реализовать след. программу...

Дана строка S, слова в которой разделены пробелами и знаками препинания. Вывести через запятую все даты, встречающиеся в тексте. Датами будем считать записи видов: дд/мм/гг, д/мм/гг, дд/мм/гггг, д/мм/гггг, которые соответствуют реально существующим датам.

Как найти в данной строке записи вида дд/мм/гг, д/мм/гг, дд/мм/гггг, д/мм/гггг, а потом вывести именно их на экран?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.10.2011, 22:52
Ответы с готовыми решениями:

Вывести строчные гласные буквы, встречающиеся в тексте
Доброго времени суток.Потребовалась ваша помощь. Задание: Составить программу печати по одному разу в алфавитном порядке всех строчных...

Вывести слова, встречающиеся в тексте по одному разу
1. Написать программу, которая вводит текст, состоящий из нескольких предложений, и выводит на экран только цитаты, то есть предложения,...

Заменить все прописные русские буквы, встречающиеся в тексте, строчными.
Пусть дан текст,за которым следует восклицательный знак.Замените все прописные русские буквы,встречающиеся в тексте,строчными. Примечание...

23
 Аватар для seosage
0 / 0 / 0
Регистрация: 25.10.2011
Сообщений: 70
03.11.2011, 19:20  [ТС]
Студворк — интернет-сервис помощи студентам
Mawrat, выше говорил, что мне нельзя использовать
Delphi
1
Continue
0
 Аватар для Mawrat
13117 / 5898 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
03.11.2011, 22:15
Continue в тех кодах можно заменять так:
Исходный код:
Delphi
1
2
3
4
begin
  if F then Continue;
  <Некоторый код.>
end; //Сюда "перепрыгивает" Continue.
Замена:
Delphi
1
2
3
4
5
begin
  if not F then begin
    <Некоторый код.>
  end;
end; //Сюда раньше перепрыгивал Continue.
0
 Аватар для seosage
0 / 0 / 0
Регистрация: 25.10.2011
Сообщений: 70
22.11.2011, 14:51  [ТС]
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
55
56
57
58
59
60
program Project2;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
const
  Razd = [' ', '.', ',', ':', ';', '!', '?', '-', #9, #10, #13];
  Dd = ['0'..'9'];
  Dsh = Dd + ['/'];
var
  S : String;
  i, Len, Pos1, j, P1, P2, CntP : Integer;
  F : Boolean;
begin
  Writeln('Vvedite Stroku');
  Readln(S);
  Len := Length(S);
 
  Pos1 := 0;
  F := False;
  j := 0;
  for i := 1 to Len do begin
    if (i = 1) or (S[i - 1] in Razd) then begin
      Pos1 := i;
      F := True;
      j := 0;
      CntP := 0;
      P1 := 0;
      P2 := 0;
    end;
    if not F then begin;
    Inc(j);
    end;
    if S[i] = '/' then begin
      Inc(CntP);
      case CntP of
        1 :
        begin
          P1 := j;
          if not (P1 in [2, 3]) then F := False;
        end;
        2 :
        begin
          P2 := j;
          if not ( (P2 - P1) in [2, 3] ) then F := False;
        end;
      else
        F := False;
      end;
      if not F then begin;
    end; end;
    if (i = Len) or (S[i + 1] in Razd) then begin
      if not ( (j - P2) in [2, 4] ) then begin
        F := False;
        Continue;
      end;
      write( Copy(S, Pos1, i - Pos1 + 1), ', ');
      readln
    end; end; end.
Блин, как без последнего Continue сделать? Не принимают с ним...
0
 Аватар для Mawrat
13117 / 5898 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
22.11.2011, 19:10
Без последнего Continue:
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
program Project1;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils,
  Windows;
 
(*
Строка для проверки:
10/X1/2011... 01/10/11XX, /10/11, 1/10/09, !? 102/10/11, 02/10/2009, ... 10/10/111, 4/10/2010 10/10/11112, 10/Y1/2011, 10/1/2011, 5/9/2011
*)
const
  //Множество разделителей слов.
  D = [' ', '.', ',', ':', ';', '!', '?', '-', #9, #10, #13];
  //Множество цифр
  Dd = ['0'..'9'];
  //Множество символов, участвующих в записи дат.
  Dsh = Dd + ['/'];
var
  S : String;
  i, Len, Pos1, j, P1, P2, CntP : Integer;
  F : Boolean;
begin
  //Переключение окна консоли на кодовую страницу CP1251 (Win-1251).
  //Если после переключения русские буквы показываются неверно,
  //следует открыть системное меню консольного окна - щелчком мыши в левом
  //верхнем углу окна консоли и выбрать:
  //Свойства - закладка "Шрифт" - выбрать шрифт: "Lucida Console".
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
 
  repeat
    Writeln('Задайте строку:');
    Readln(S);
 
    Writeln('Список найденных записей дат:');
    Len := Length(S);
    Pos1 := 0;  //Позиция начала шаблона.
    F := False; //Верность шаблона: True - верен, False - есть нарушения.
    j := 0;     //Счётчик позиций внутри шаблона.
    for i := 1 to Len do begin
      //Пропускаем разделители.
      if S[i] in D then Continue;
      //Отслеживаем начало шаблона.
      if (i = 1) or (S[i - 1] in D) then begin
        Pos1 := i;
        F := True;
        j := 0;
        CntP := 0;
        P1 := 0;
        P2 := 0;
      end;
      //Не выполняем обработку, если шаблон уже нарушен.
      if not F then Continue;
      //Счётчик позиций внутри шаблона.
      Inc(j);
      case S[i] of
        '/' :
        begin
          Inc(CntP);
          case CntP of
            1 :
            begin
              P1 := j;
              if not (P1 in [2, 3]) then F := False;
            end;
            2 :
            begin
              P2 := j;
              if not ( (P2 - P1) in [2, 3] ) then F := False;
            end;
            else
              F := False;
          end;
        end;
        '0'..'9' : ;
        else F := False;
      end;
      if not F then Continue;
      //Отслеживаем конец шаблона.
      if (i = Len) or (S[i + 1] in D) then begin
        if not ( (j - P2) in [2, 4] ) then
          F := False
        else begin
          //Распечатываем слово.
          Writeln( Copy(S, Pos1, i - Pos1 + 1) );
        end;
      end;
    end;
 
    Writeln('Повторить - Enter. Выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.11.2011, 19:10

Вывести в Memo все даты месяца по дням недели
Помогите пожалуйста создать программу которая будет выводить Memo все даты месяца по дням недели(пятница суббота и т.д.)

Вывести все символы, не встречающиеся в тексте
Здравствуйте.Нужна помощь, нужно написать на php это задание, я не знаю как, даже не представляю. помогите пожалуйста, срочно. Люди...

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

Вывести все символы встречающиеся в тексте 2 раза.
В файле f1 набран текст Вывести все символы встречающиеся в тексте 2раза программу оформить в виде процедуры результат записать в файл z3 ...

Вывести на экран все встречающиеся в тексте доменные имена
Дан текст. Вывести на экран все встречающиеся в данном тексте доменные имена (имена в формате www.xxx.xxx.ru , где x-любой символ...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru