1. Заголовок или название темы должно быть информативным ! 2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code]. 3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК ! 4.НЕ используйте форум для личного общения! 5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
Цель задачи: Вводим дату и программа показывает день недели., помогите найти ошибку
Program Days; Var IsCorrectDate: Boolean; d,m,y: Integer;
Procedure InputDate(var d,m,y: Integer; var Correctly: Boolean); begin Write('Vvedite datu v formate DD MM GGGG: '); 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] = ('Voscresenye','Ponedelnik','Vtornik','Sreda','Chetverg','Pyatnica', 'Subbota'); 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.