IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Вычисление даты, задача на вычисление конечной даты
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 67
Пол: Мужской

Репутация: -  0  +


Надо учитывать только то, что месяцы по 30 и 31 дню, высокосным годом и 29 днями февраля.
У Васи Пупкина неожиданно сломался компьютер. Из-за отсутствия нужных материалов на ремонт понадобится N дней. Определите дату окончания ремонта, если известно, что компьютер сломался в текущем году, и ремонт должен закончиться тоже в этом году.
Известна дата поломки в формате ДД.ММ и количество дней ремонта N.
Получить дату окончания ремонта в формате: ДД.ММ.
Пример:
Входные данные: Выходные данные:

01.06 30 01.07



Вот мои наброски она вечно касячит, т.е найдётся такое число при котором она выдаст не тот ответ - помогите пожалуйста
Код

program asd;
Uses
Crt;
const
n = 100;
m = 1000;
var
mas: array[1..n] of String;
mas2: array[1..m] of Integer;
date: String;
count,w,q,e,r,day,k,i: Integer;
pr,od: byte;

begin
ClrScr;
 WriteLn('Input date:');
 Readln(date);
 WriteLn('Input day:');
 Readln(day);

 For count:= 1 to Length(date) do
  mas[count]:=Copy(date,count,1);

     mas[1]:=mas[1]+mas[2];
     For count:= 2 to Length(date) do
     mas[count]:=  mas[count+1];
     Val(mas[1],q,w);
     mas2[1]:=q;

     mas[3]:=mas[3]+mas[4];
     For count:=4 to Length(date)-1 do
     mas[count]:=mas[count+1];
     Val(mas[3],e,r);
     mas2[2]:= e;

  Case e of
   1,3,5,7,9,11: k:=31;
   4,6,8,10,12: k:=30;
   2: k:=30;
  end;

  If day+q > k then
     begin
      i:=(day+q) div k;
      mas2[2]:=e+i;
      day:=day-(k-q);
      If
      For count:= e+1 to mas2[2] do
       begin
        If NOT Odd(count) = true then day:=day - 30;
        Writeln(day);
        If Odd(count) = true then day:= day - 31;
       end;
     For count:=1 to pr do
       day:= day-30;
     For count:=1 to od do
       day:= day-31;
        end;{
   else
      day:=day+q;

If day = 0 then day:=1;
Writeln(day,'.',mas2[2]);}
ReadKey;
end.

Все исходники должны помещаться в теги [ CODE] [ /CODE]

Сообщение отредактировано: volvo -


--------------------
На горе лежит дискета
У неё испорчен boot
Через дырочку в конверте
Её вирусы грызут
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 8.09.2025 22:02
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name