Такое задание которое нужно осуществить на Паскале: надо создать такую программу, которая генерировала бы годовой календарь по первому дню первого января, то есть первому дню первого января любого года по счету в неделе, например если 1 января в этом году будет во вторник, значит его позиция равна 2 и таким образом надо чтобы программа генерировала годовой календарь. Я вроде программу сделал, а почему то работает неверно выводит бесконечный одинарный столбец одного какого-нибудь числа. Я сделал так: разбил на подзадачи, тоесть для генерации месяца одна процедура, для отступов перед следующим месяцем - другая процедура. Подскажите как сделать такую программу, а если не лень или если такая программа у вас уже написана напишите ее сюда буду очень благодарен.
volvo
11.11.2006 20:52
Ты свою программу покажи сначала...
Алена
13.11.2006 16:32
type month = ( jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec ); week_day = ( sun, mon, tue, wed, thu, fri, sat );
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.
?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.