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

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

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

> Изменение кода
ds2207
сообщение 28.12.2014 19:25
Сообщение #1


Новичок
*

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

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


Условие задачи: По введенной текущей дате (число, месяц и год), текущем дне недели, дате (число, месяц и год) своего рождения определить день недели своего рождения.

Код:

Код

   type
  tDate = record
    Day, Month, Year, DayOfWeek : Integer;
  end;
  
function Compare(Date1, Date2 : tDate) : Boolean;
begin
  Compare := ( Date1.Year = Date2.Year )
         and (Date1.Month = Date2.Month)
         and (  Date1.Day = Date2.Day  );
end;

procedure DecDay(var Date : tDate);
const
  Days : array [1..12] of Integer =
         (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
begin
  Dec(Date.Day);
  if Date.Day = 0 then
    begin
      Dec(Date.Month);
      if Date.Month = 0 then
        begin
          Dec(Date.Year);
          Date.Month := 12;
        end;
      if Date.Month <> 2 then
        Date.Day := Days[Date.Month]
      else if (Date.Year mod 100 = 0) and (Date.Year mod 400 = 0) then
        Date.Day := 29
      else if Date.Year mod 4 = 0 then
        Date.Day := 29
      else
        Date.Day := 28;
    end;
    
  Dec(Date.DayOfWeek);
  if Date.DayOfWeek = 0 then
    Date.DayOfWeek := 7;
end;

const
  Week : array [1..7] of String[15] = ('понедельник', 'вторник', 'среда',
                               'четверг', 'пятница', 'суббота', 'воскресенье');
var
  Current, Birth : tDate;
  i : Integer;
begin
  Write(' Введите день рождения: '); ReadLn(Birth.Day  );
  Write('Введите месяц рождения: '); ReadLn(Birth.Month);
  Write('  Введите год рождения: '); ReadLn(Birth.Year );
  
  Write('Введите сегодняшнее число: '); ReadLn(Current.Day  );
  Write('    Введите текущий месяц: '); ReadLn(Current.Month);
  Write('      Введите текущий год: '); ReadLn(Current.Year );
  
  for i := 1 to 7 do
    WriteLn(i, ' - ', Week[i]);
  Write('Введите номер сегодняшнего деня недели: '); ReadLn(Current.DayOfWeek);
  
  while Not Compare(Current, Birth) do
    begin
      //WriteLn(Current.Day, '.', Current.Month, '.', Current.Year, ' - ', Week[Current.DayOfWeek]);
      DecDay(Current);
    end;
    
  WriteLn('Ваш день рождения приходится на ', Week[Current.DayOfWeek]);
end.




Переделайте,пожалуйста код,чтобы в нём отсутствовали функции



.

Сообщение отредактировано: ds2207 - 28.12.2014 23:09
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



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