Паскаль авс используя дату текущего дня, вычислить следующую дату. сначала с инструкции case проверить ,является ли текущий день последним днём месяца.затем проверить, является ли текущий месяц днём декабрем: если нет, то номер месяца увеличить на 1,если да то номер года,а номер месяца оставить равен 1 (учесть возможность ввода високосного года(если год/4=0,то год високосный))

son9a son9a    3   24.06.2019 14:10    0

Ответы
saharok16 saharok16  20.07.2020 01:27
Var
  s,sd,sm,sy:string;
  d,m,y,err:integer;
begin
  Write('Введите текущую дату в формате дд/мм/ или дд.мм.: ');
  Readln(s);
  if Length(s)<>10 then Writeln('Неверный ввод')
  else begin
    sd:=s[1]+s[2]; Val(sd,d,err);
    sm:=s[4]+s[5]; Val(sm,m,err);
    sy:=Copy(s,7,4); Val(sy,y,err);
    if err>0 then Writeln('Неверный ввод')
    else begin
      if d<28 then d:=d+1
      else begin
        case m of
        1,3,5,7,8,10,12:
          if d<31 then d:=d+1
          else begin d:=1; m:=m+1 end;
        2:
          if (y mod 4)=0 then
            if d=28 then d:=29
            else begin d:=1; m:=3 end
          else begin d:=1; m:=3 end;
        else
          if d<30 then d:=d+1
          else begin d:=1; m:=m+1 end
        end
      end;
      if m>12 then begin m:=1; y:=y+1 end;
      Str(d,sd); if Length(sd)=1 then sd:='0'+sd;
      Str(m,sm); if Length(sm)=1 then sm:='0'+sm;
      Str(y,sy);
      s:=sd+'.'+sm+'.'+sy;
      Writeln('Завтра будет '+s)
    end
  end
end.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика