![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() |
Студент*21в. |
![]() ![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 37 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
Здравствуйте все!
Нашел одну незамысловатую програмку и что-то не пойму в ней пару вещей. Вот она: var
IsCorrectDate:boolean;
d,m,y:integer;
Procedure InputDate(var d,m,y:integer;var correctly:boolean);
begin
write('Введите дату в формате ДД ММ ГГГГ:');
readln(d,m,y);
correctly:=(d>=1)and(d<=31)and(m>=1)and(m<=12)and(y>=1582)and(y<=4903)
end;
procedure WriteDay(d,m,y:integer);
const
Days_of_week:array[0..6]of string[11]=(' воскресенье ',' понедедельник',
' вторник ',' среда ',' четверг ',' пятница ',' суббота ');
var
c,w:integer;
begin
if m<3 then
begin
m:=m+10;
y:=y-1
end
else
m:=m-2;
c:=y div 100;
y:=y mod 100;
w:=abs(trunc(2.6*m-0.2)+d+y div 4+y+c div 4-2*c)mod 7;
writeln(Days_of_week[w])
end;
begin
repeat
InputDate(d,m,y, IsCorrectDate);
if IsCorrectDate then
WriteDay(d,m,y)
until not IsCorrectDate
end.
По описанию программа вычисляет день недели по заданой дате. Так и есть, но почему-то не правильно. Слизал с бесплатного ресурса, встречались опечатки. Может кто-нибудь заметит где неточность. И второй вопрос по теории. Не пойму как связаны переменные "IsCorrectDate" и "correcctly" , ну то есть по какому правилу компилятор определяет что "correctly" это "IsCorrectDate"? Помогите пожалуйста разобраться. Сообщение отредактировано: volvo - 17.03.2009 18:58 |
![]() ![]() |
![]() |
Текстовая версия | 28.07.2025 11:03 |