Вывести календарь на экран - Free Pascal

  1. Снова к вам! Задача: Вывод двенадцати месяцев на одном экране, начиная с заданного месяца. Получилось вот что:


textual

Код к задаче: «Вывести календарь на экран - Free Pascal»

uses Crt;
var
  a,y,m,d,i,j,k,t:integer;
  vg:boolean;
  dx,dy,ny:integer;
begin
  window(1,1,80,43);
  clrscr;
  write('Enter Month Year(01 2017):');readln(m,y);
  j:=m;
  dx:=1;
  dy:=2;
  repeat
    vg:=(y mod 4=0) and ((y mod 100<>0) or (y mod 400=0));
    a:=(14-j) div 12;
    k:=y-a;
    t:=j+12*a-2;
    d:=(7000+(1+k+k div 4-k div 100+k div 400+(31 * t) div 12)) mod 7;
    window(dx,dy,dx+20,dy+8);textbackground(LightBlue+j mod 2+2*ny);clrscr;
    textcolor(Yellow);
    if j<10 then write('0');write(j);textcolor(LightRed);writeln(' ',y);
    textcolor(lightgray);
    writeln(' Su Mo Tu We Th Fr Sa');
    if d>0 then gotoxy(d*3,3);
    if j in [1,3,5,7,8,10,12] then t:=31;
    if j in [4,6,9,11] then t:=30;
    if j=2 then if vg then t:=29 else t:=28;
    for i:=1 to t do write(i:3);
    j:=j+1;
    dx:=dx+23;
    if j=13 then begin j:=1;y:=y+1;ny:=1;dy:=dy+8;end;
    if dx>65 then begin dx:=1;dy:=dy+8;end;
  until j=m;
  readln;
end.

СДЕЛАЙТЕ РЕПОСТ

5   голосов, оценка 4.200 из 5



Похожие ответы
  1. Неудача с выполнением кода или я где-то затупил Вообще суть задания таково: Вводиться 14 натуральных чисел. Нужно вывести количество чисел равных 0 , 150, 1000 и 10000. И после этого программа вводить вопрос продолжить нажав на Y или закончить нажав на N.

  1. Пользователь вводит n чисел.Вывести количество введенных отрицательных ,равных 0 , и в диапазоне от 1 до 1024. После этого если вводится символ "J" или "L", случится выход из программы, или -- исполнение программы повторяется.

  1. В массив Team занесены названия 10 команд футбольного турнира. Введите с клавиатуры данные для массива итоговых результатов - Itog. Программа, обрабатывая массив Itog, выводит на экран команды-победителя и команды аутсайдера

  1. Дан массив NxN (N<=10), заполненный буквами. Вывести массив спиралью. Пример: Ввод a b c d e f g h i Вывод a b c h i d g f e

  1. Создать массив X[1..m]. Найти длину k и вывести на печать самую длинную "пилообразную" (зубьями вверх) последовательность идущих подряд чисел. X[ p+1]< X[ p+2 ]> X[ p+ +3 ]<. . .>X[ p+k ]. Еесть варианты? Заранее спасибо

  1. 1. Значение элементов в обратном направлении 2. Значение элементов с четными индексами 3. Значение элементов с нечетными индексами 4. Значение парных элементов массива 5. Значение нечетных элементов массива 6. Значения элементов массива> 50 7. Значение элементов массива <50

  1. Добрый вечеру форумчанам, ну в общем все в названии темы. Нужно вывести числа от 1 до 1300 по порядку. Чтобы потом их можно было бы скопировать. Но и еще если такое возможно, чтобы в начале каждого числа с новой строки была любой значек, и после числа любой другой значек Например: &1* &2* &3* &4* ... &1299* &1300* Заранее спасибо за помощь.Добавлено через 18 минут Нашел сам такой вариант

  1. С клавиатуры вводится строка, состоящая из цифр. Найти сумму этих цифр. Если в строке встречаются другие символы, необходимо вывести на экран сообщение: «Не является числом!» как это сделать?