Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Паскаль
Регистрация

Восстановить пароль
Повторная активизация e-mail



Ответ
 
Опции темы
Старый 12.06.2017, 16:05   #1
Halikarnas
Пользователь
 
Регистрация: 19.03.2017
Сообщений: 12
Репутация: 10
По умолчанию В заданной строке текста найдите и выведите на экран все даты

В заданной строке текста найдите и выведите на экран все даты. Для даты можно указать свой или взять общепринятый формат, например, «число1.число2.число3», где (1 ≤ число1 ≤ 31), (1 ≤ число2 ≤ 12), (1 ≤ число3 ≤ 2100). Определите, есть даты корректными, например, 29.2.1999 или 31.6.2000 – некорректные даты.
Halikarnas вне форума   Ответить с цитированием
Старый 12.06.2017, 16:31   #2
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 16,821
Репутация: 5909
По умолчанию

покажите свои наработки, конкретные вопросы и т.п.

Или в раздел Фриланс если вы не хотите ничего делать, а ищете кого-то, кто выполнит ваши задачи за вознаграждение.
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар на форуме   Ответить с цитированием
Старый 15.06.2017, 09:02   #3
newerow1989
Я самый любопытный
Профессионал
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Адрес: RU, Алтайский край, Красногорский р-н, с. Балыкса, ул. Центральная Сообщений: 7,541 Репутация: 37104
Сообщений: 1,613
Репутация: 1463

skype: newerow1989
По умолчанию

Код:

const
  MonthDays: array [1..12] of Word =
    (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

function IsLeapYear(Year: Word): Boolean;
begin
  Result := (Year mod 4 = 0) and ((Year mod 100 <> 0) or (Year mod 400 = 0));
end;

function TryEncodeDate(Year, Month, Day: Word): Boolean;
var
  DayTable: Word;
begin
  Result := False;
  DayTable := MonthDays[Month];
  if (Month = 2) and IsLeapYear(Year) then
    DayTable:=29;
  if (Year >= 1) and (Year <= 9999) and (Month >= 1) and (Month <= 12) and
    (Day >= 1) and (Day <= DayTable) then
    Result := True;
end;

var i,k,d,m,y:integer;
    s,s1,s2:string;
begin
   Write('s = '); Readln(s);
   i:=0;
   Repeat
      Inc(i);
      If (s[i]>='0') and (s[i]<='9') then
      begin
         s1:='';
         Repeat
            s1:=s1+s[i];
            Inc(i);
            If i>Length(s) then
               Break;
            If not ((s[i]>='0') and (s[i]<='9') or (s[i]='.')) then
               Break;
         Until false;
         { число }
         k:=Pos('.',s1);
         If k>0 then
         begin
            s2:=Copy(s1,1,k-1);
            Delete(s1,1,k);
         end else
            s2:=s1;
         d:=StrToInt(s2);
         { месяц }
         k:=Pos('.',s1);
         If k>0 then
         begin
            s2:=Copy(s1,1,k-1);
            Delete(s1,1,k);
         end else
            s2:=s1;
         m:=StrToInt(s2);
         { год }
         k:=Pos('.',s1);
         If k>0 then
         begin
            s2:=Copy(s1,1,k-1);
            Delete(s1,1,k);
         end else
            s2:=s1;
         y:=StrToInt(s2);
         Write(d,'.',m,'.',y,' - ');
         If TryEncodeDate(y,m,d) then
            Writeln('yes') else
            Writeln('no!!!')
      end;
   Until i>=Length(s);
   Writeln;
   Writeln;
   Readln;
end.

__________________
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.narod.ru
[Паскаль] [Delphi]

Последний раз редактировалось newerow1989; 15.06.2017 в 09:06.
newerow1989 вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В заданной строке текста выведите самое короткое (длинное) слово. Учтите, что таких слов может быть несколько. Удалите (удвойте) эти слова.(PascalABCNET) FlayGlam Помощь студентам 0 03.12.2016 10:58
Постройте и выведите на экран бинарное дерево. Найдите произведение элементов дерева, находящихся на уровне u merick Visual C++ 0 09.04.2016 09:39
решите в каждой строке матрицы максимальной и минимальный элементы и поменяйте их местами.выведите матрицу на экран покемон21 Паскаль 1 24.12.2013 10:30
С++ Выведите на экран все символы, встречающиеся в строке, без пробела. alex1994max Помощь студентам 1 09.07.2013 13:25
В заданной строке удалить все лишние пробелы(Delphi) darko666 Помощь студентам 2 10.12.2011 22:36




09:04.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru