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

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

25.10.2011, 22:52. Показов 3315. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru