![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
murphy |
![]() ![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 98 Пол: Мужской Репутация: ![]() ![]() ![]() |
Такая задача:
дана дата dd.month.yyyy и день недели определить дату и день недели через опр. кол-во дней дату я определил а с днем ничего в голову не лезет а завтра здавать Код program vp7_cale; uses crt, strings; const mname : array [1..12] of string [9] =('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September','October', 'November', 'December'); dname : array [1..7] of string [9] =('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'); type md = array [1..12] of byte; procedure SetNumberOfDaysInMonth(y: word; var ar: md); var i:byte; begin for i:= 1 to 12 do case i of 1, 3, 5, 7, 8, 10, 12: ar[i]:=31; 2: if y mod 4 = 0 then ar[i]:= 29 else ar[i]:=28; 4, 6, 9, 11: ar[i]:= 30; end; end; Function GetDayNum(d:string):byte; var i:byte; begin i:=0; repeat inc(i) until ( copy(d, 1, 3) = copy(dname[i], 1, 3) ) or (i>=7); GetDayNum:=i; end; Function GetMonthNum(m:string):byte; var i:byte; begin i:=0; repeat inc(i) until ( copy(m, 1, 3) = copy(mname[i], 1, 3) ) or (i>=12); GetMonthNum:=i; end; var kold: md; dd, dd1, mm, mm1, dday, dday1, i: byte; yyyy, yyyy1,nnmove, nmove: word; month, day: string[9]; tmp: string; begin ClrScr; textcolor(red); writeln(' -= TIME MACHINE by murphy=-'); textcolor(lightgreen); writeln('Please enter the today date:'); write(' day of month: '); textcolor(lightgray); readln(dd); textcolor(lightgreen); write(' month: '); textcolor(lightgray); readln(tmp); month:=tmp; textcolor(lightgreen); write(' year: '); textcolor(lightgray); readln(yyyy); textcolor(lightgreen); write(' day of week: '); textcolor(lightgray); readln(day); SetNumberOfDaysInMonth(yyyy, kold); writeln; dday:=GetDayNum(day); mm:=GetMonthNum(month); textcolor(green); writeln('You have chosen:'); writeln(dd,'.', mm,'.', yyyy); textcolor(lightgreen); writeln; write('Enter number of days you want to move on: '); textcolor(lightgray); readln(nmove); nnmove:=nmove; if nmove + dd <= kold[mm] then begin dd1:=nmove + dd; mm1:=mm; yyyy1:=yyyy; end else begin dd1:=dd; mm1:=mm; yyyy1:=yyyy; nmove:= nmove - (kold[mm1]-dd); inc(mm1); if mm1=13 then begin mm1:=1; inc(yyyy1); SetNumberOfDaysInMonth(yyyy, kold); end; while nmove>=kold[mm1] do begin dec(nmove, kold[mm1]); inc(mm1); if mm1=13 then begin mm1:=1; inc(yyyy1); SetNumberOfDaysInMonth(yyyy, kold); end; end; dd1:=nmove+1; end; nnmove:=7-dday+1; dday1:=nnmove mod 7; write(dday1, ' '); writeln(dd1,'.', mm1,'.', yyyy1); readln; end. З.Ы. может еще посоветуете как лучше дату определить -------------------- collect the infotrons and find Exit
|
![]() ![]() |
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Задача сто процентов решелась такаяже, ищи.
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Частный случай этой задачи рассматривался здесь: http://forum.pascalnet.ru/index.php?showt...indpost&p=28882 Частный - потому что начальная и конечная дата должны быть в одном и том же году...
|
![]() ![]() |
![]() |
Текстовая версия | 21.07.2025 10:06 |