Доделать шахматную доску - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Всем привет!Нужна помошь в задание! «шахматная» доска, содержащая 25 параллелограммов и сформированная из 5 диагональных полос 2-х направлений (главная и побочная диагонали)

Решение задачи: «Доделать шахматную доску»

textual
Листинг программы
uses dos;
procedure intGraph;
begin
 asm
 mov AH,0
 mov AL,4
 int 10H
 end;
end;
 
procedure HorLine(clr:shortint;y,x1,x2:integer);
var
 i: integer;
begin
 for i:=x1 to x2 do
     begin
      asm
       mov al,clr
       mov cx,i
       mov dx,y
       mov ah,12
       int 10H
      end;
     end;
end;
 
var
  h, w, i, j, k, x, y : integer;
  delta : real;
 
const
  maxx = 320;
  maxy = 200;
begin
  intgraph;
 
  w := round(maxx / 7.5);
  h := maxy div 5;
  y := maxy - h;
 
  delta := (w div 2) / h;
  for i := 1 to 5 do
  begin
    x := i*(w div 2);
    for j := 1 to 5 do
    begin
      if odd(i+j) then
      begin
        for k := 0 to h - 1 do
        horline(7, y + k, trunc(x - k*delta), trunc(x - k*delta + w));
      end;
      x := x + w;
    end;
    y := y - h;
  end;
  readln;
end.

Объяснение кода листинга программы

  1. В начале кода используется директива uses, которая указывает на использование библиотеки Turbo Pascal.
  2. Затем идет объявление процедуры intGraph, которая не содержит параметров и выполняет команду int 10H - это встроенная команда в Turbo Pascal для выполнения операции int (интерпретация ввода-вывода) с числом 10H.
  3. После этого объявляется процедура HorLine, которая имеет три параметра: clr (цвет), y (строка), x1 и x2 (координаты). Внутри процедуры выполняется цикл for, который проходит по всем индексам от x1 до x2. Для каждого индекса вызывается ассемблерная вставка asm, которая выполняет команду mov al,clr (установка регистра al в цвет clr), mov cx,i (установка регистра cx в значение i), mov dx,y (установка регистра dx в значение y) и mov ah,12 (установка регистра ah в значение 12, что соответствует команде int 10H).
  4. Далее объявляются переменные h, w, i, j, k, x и y типа integer.
  5. Затем определяется константа maxx, которая равна 320, и константа maxy, которая равна 200.
  6. После этого вызывается процедура intGraph.
  7. Далее идет цикл for, который выполняется пять раз. На каждой итерации цикла выполняется следующая последовательность действий:
    • Переменная x устанавливается в значение i*(w div 2).
    • Если i и j нечетные, то выполняется горизонтальная линия на доске, начиная с координат (x, y + k) и заканчивая координатами (x + w, y + k + h). Здесь k - это значение, полученное из деления x на delta (см. ниже).
    • Значение x устанавливается в x + w.
    • Значение y устанавливается в y - h.
    • Затем вызывается процедура HorLine с параметрами 7, y + k и trunc(x - k*delta), trunc(x - k*delta + w).
    • После завершения цикла for вызывается функция readln.
  8. Конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5
Похожие ответы