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

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

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

> Вычисление даты, задача на вычисление конечной даты
NightPaladin
сообщение 27.11.2004 16:47
Сообщение #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 - 27.11.2004 16:53


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

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


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

 



- Текстовая версия 18.07.2025 2:46
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"