21.10.2011, 16:15 | #1 (permalink) |
Новичок
Регистрация: 21.10.2011
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Нужна помощь написании программы-календаря
Хотя бы подскажите с чего начать например,или какие операторы вообще использовать.Хоть что-то заранее благодарна |
21.10.2011, 16:15 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Это схожие темы, в них вы можете поискать информативные ответы Нужна помощь в написании программы C++ Требуется помощь в написании программы на языке Turbo Pascal Нужна помощь по блок-схеме и в отладке программы Массивы. Нужна помощь в доработке программы. Нужна помощь в написании программы на С Нужна помощь в написании программы |
22.10.2011, 19:57 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Ну вот, сделал я программку - попробуйте разобраться:
Код:
Uses CRT; CONST Days_In_Month:Array[1..12] of ShortInt=(31,29,31,30,31,30,31,31,30,31,30,31); Days_Of_Week:Array[1..7] of String[2]=('Mo','Tu','We','Th','Fr','Sa','Su'); Months:Array[1..4] of String= (' January February March', ' April May June', ' July August September', ' October November December'); VAR Calend:Array[1..7,1..96] of ShortInt; D_new,D_old:ShortInt; i,j,m,k:Byte; BEGIN D_new:=6; For m:=1 to 12 do begin D_old:=D_new; For j:=(m-1)*8+1 to (m-1)*8+8 do For i:=1 to 7 do begin If ((((j-(m-1)*8)-1)*7+i-D_old)<0) or ((((j-(m-1)*8)-1)*7+i-D_old)>Days_In_Month[m]) then Calend[i,j]:=0 else Calend[i,j]:=((j-(m-1)*8)-1)*7+i-D_old; If Calend[i,j]=Days_In_Month[m] then D_new:=i; end; end; Clrscr; For k:=1 to 2 do begin Writeln(Months[k]); For i:=1 to 7 do begin Write(Days_Of_Week[i],' '); For j:=(k-1)*24+1 to (k-1)*24+24 do if Calend[i,j]=0 then write(' ') else write(Calend[i,j]:3); Writeln; end; Writeln; Writeln; end; Writeln('Press "Enter" to continue...'); Readln; Clrscr; For k:=3 to 4 do begin Writeln(Months[k]); For i:=1 to 7 do begin Write(Days_Of_Week[i],' '); For j:=(k-1)*24+1 to (k-1)*24+24 do if Calend[i,j]=0 then write(' ') else write(Calend[i,j]:3); Writeln; end; Writeln; Writeln; end; Readln; END. Вообще-то есть у меня и графический вариант программы-календаря, и он, конечно, выдает результат покрасивее: Но! 1. Эта программа универсальная, т.е. для любого года. 2. Писал я ее лет 10-12 назад, причем утром, находясь в состоянии жуткого бодуна после дружеской вечеринки, просто чтобы чем-то себя занять. Как результат - мне аж самому страшно, чего я там понакрутил. Потому предлагаю ограничиться более простым текстовым вариантом. |
22.10.2011, 20:06 | #5 (permalink) |
Хозяин Медной Горы
Регистрация: 01.08.2011
Адрес: Армавир
Сообщений: 12,159
Записей в дневнике: 8
Сказал(а) спасибо: 751
Поблагодарили 88 раз(а) в 27 сообщениях
Репутация: 57416
|
Были как-то у меня шрифты с поддержкой досовской кириллицы, можно было бы тогда и по-русски...
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
22.10.2011, 20:09 | #6 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
В тексте? Могу и по-русски, но просто избегаю с кириллицей заморачиваться без крайней нужды, потому как сам работаю с DOS-версией, а большинство "заказчиков" - с Windows, а там кодировка кириллицы другая. А латиница - она и в Африке латиница.
|
22.10.2011, 20:58 | #10 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|