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

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

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

 
 Ответить  Открыть новую тему 
> Генерация календаря, нужно сгенирировать годовой календарь
Янычар
сообщение 11.11.2006 16:50
Сообщение #1


Пионер
**

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

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


Такое задание которое нужно осуществить на Паскале: надо создать такую программу, которая генерировала бы годовой календарь по первому дню первого января, то есть первому дню первого января любого года по счету в неделе, например если 1 января в этом году будет во вторник, значит его позиция равна 2 и таким образом надо чтобы программа генерировала годовой календарь. Я вроде программу сделал, а почему то работает неверно выводит бесконечный одинарный столбец одного какого-нибудь числа. Я сделал так: разбил на подзадачи, тоесть для генерации месяца одна процедура, для отступов перед следующим месяцем - другая процедура. Подскажите как сделать такую программу, а если не лень или если такая программа у вас уже написана напишите ее сюда буду очень благодарен.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 11.11.2006 16:52
Сообщение #2


Гость






Ты свою программу покажи сначала...
 К началу страницы 
+ Ответить 
Алена
сообщение 13.11.2006 12:32
Сообщение #3


Гость






type
month = (
jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec
);
week_day = (
sun, mon, tue, wed, thu, fri, sat
);

const
days: array[week_day] of string = (
'Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'
);
month_names: array[month] of string = (
'jan', 'feb', 'mar', 'apr', 'may', 'jun',
'jul', 'aug', 'sep', 'oct', 'nov', 'dec'
);
d_in_m: array[month] of integer = (
31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
);

procedure print_month(m: integer; first_day: week_day);
var
k, D: integer;
i: month;
w: week_day;
begin
i := jan; D := 0;
while i < month(pred(m)) do begin
inc(D, d_in_m[i]);
i := succ(i);
end;

writeln('month: ', month_names[i]);
for w := sun to sat do
write(days[w]:4);
writeln;


for k := 1 to (D + pred(1) + ord(first_day)) mod 7 do write('':4);
for k := 1 to d_in_m[month(pred(m))] do begin
write(k:4);
if week_day((D + pred(k) + ord(first_day)) mod 7) = sat then writeln;
end;
writeln;

end;

var
k, M, D: integer;
i: month;
w: week_day;

begin
repeat

for w := sun to sat do
write(ord(w):4, ':', days[w]);
writeln;
write('enter the Jan, 1st weekday: '); readln(D);

until D in [0 .. 6];

for k := 1 to 12 do
print_month(k, week_day(D));

end.
?
 К началу страницы 
+ Ответить 

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

 



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