pascalabcnet/bin/Lib/DMZadan.pas
Mikhalkovich Stanislav e603b1fd6d Mikhalkovich в Copyright
Заготовка для школьного плагина образцов кода
2019-07-28 23:53:15 +03:00

1636 lines
35 KiB
ObjectPascal
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Copyright (c) Ivan Bondarev, Stanislav Mikhalkovich (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
unit DMZadan;
interface
procedure a1;
procedure a2;
procedure a3;
procedure a4;
procedure a5;
procedure a6;
procedure c1;
procedure c2;
procedure c3;
procedure c4;
procedure c5;
procedure c6;
procedure c7;
procedure c8;
procedure c9;
procedure c10;
procedure c11;
procedure c12;
procedure c13;
procedure c14;
procedure c15;
procedure c16;
procedure c17;
procedure c18;
procedure c19;
procedure c20;
procedure c21;
procedure c22;
procedure c23;
procedure c24;
procedure c25;
procedure c26;
procedure cc1;
procedure cc2;
procedure cc3;
procedure cc4;
procedure cc5;
procedure cc6;
procedure cc7;
procedure cc8;
procedure cc9;
procedure cc10;
procedure cc11;
procedure cc12;
procedure cc13;
procedure cc14;
procedure cc15;
procedure cc16;
procedure p1;
procedure p2;
procedure p3;
procedure p4;
procedure pp1;
procedure pp2;
procedure pp3;
procedure pp4;
procedure pp5;
procedure pp6;
procedure pp7;
procedure pp8;
procedure pp9;
procedure pp10;
procedure pp11;
procedure pp12;
procedure pp13;
procedure pp14;
procedure pp15;
procedure pp16;
procedure pp17;
procedure pp18;
procedure pp19;
procedure examen1;
procedure examen2;
procedure examen3;
procedure examen4;
procedure examen5;
procedure examen6;
procedure examen7;
procedure examen8;
procedure examen9;
procedure examen10;
///--
procedure __InitModule__;
///--
procedure __FinalizeModule__;
implementation
uses DMTaskMaker,DrawManField;
procedure rect(a1,a2: integer);
begin
DoPenDown;
DoOnVector(a2,0);
DoOnVector(0,a1);
DoOnVector(-a2,0);
DoOnVector(0,-a1);
DoPenUp;
end;
procedure kDoOnVector(a: integer);
begin
DoPenDown;
DoOnVector(a,0);
DoOnVector(0,a);
DoOnVector(-a,0);
DoOnVector(0,-a);
DoPenUp;
end;
procedure oct;
begin
DoPenDown;
DoOnVector(1,0);
DoOnVector(1,1);
DoOnVector(0,1);
DoOnVector(-1,1);
DoOnVector(-1,0);
DoOnVector(-1,-1);
DoOnVector(0,-1);
DoOnVector(1,-1);
DoPenUp;
end;
procedure oct1(a: integer);
begin
DoPenDown;
DoOnVector(a,0);DoOnVector(1,1);
DoOnVector(0,a);DoOnVector(-1,1);
DoOnVector(-a,0);DoOnVector(-1,-1);
DoOnVector(0,-a);DoOnVector(1,-1);
DoPenUp;
end;
procedure oct2(a: integer);
begin
DoPenDown;
DoOnVector(1,0);DoOnVector(a,a);
DoOnVector(0,1);DoOnVector(-a,a);
DoOnVector(-1,0);DoOnVector(-a,-a);
DoOnVector(0,-1);DoOnVector(a,-a);
DoPenUp;
end;
procedure parket1;
begin
DoPenDown;
DoOnVector(2,2);DoOnVector(1,-1);
DoOnVector(-2,-2);DoOnVector(-1,1);
DoPenUp;
end;
procedure line(a,b: integer);
begin
DoPenDown;
DoOnVector(a,b);
DoOnVector(-a,-b);
DoPenUp;
end;
procedure kvDoOnVector(a,b,c: integer);
begin
kDoOnVector(a);
DoOnVector(b,c);
end;
procedure tri(a,b: integer);
begin
DoPenDown;
DoOnVector(a,0);
DoOnVector(-a,b);
DoOnVector(0,-b);
DoPenUp;
end;
procedure center;
begin
DoToPoint(15,10);
end;
procedure StandardField;
begin
TaskText('Задание StandardField. Стандартное поле');
Field(30,20);
end;
procedure a1;
begin
TaskText('Задание a1. Начертить, используя команды ToPoint(2,3) и OnVector(1,2)');
Field(5,6);
DoToPoint(2,3);
DoPenDown;
DoOnVector(1,2);
end;
procedure a2;
var x0,y0: integer;
begin
TaskText('Задание a2. Использовать четыре раза команду ToPoint(5,4)и команды OnVector');
Field(9,7);
x0:=5;
y0:=4;
DoToPoint(x0,y0);
DoPenDown;
DoOnVector(3,1);
DoToPoint(x0,y0);
DoOnVector(2,-3);
DoToPoint(x0,y0);
DoPenDown;
DoOnVector(-4,2);
DoToPoint(x0,y0);
DoPenDown;
DoOnVector(-2,-2);
end;
procedure a3;
begin
TaskText('Задание a3. Начертите указанные линии');
Field(11,6);
DoToPoint(2,1);
DoPenDown; DoOnVector(4,0);
DoPenUp;
DoToPoint(3,2);
DoPenDown; DoOnVector(0,3);
DoPenUp;
DoToPoint(4,4);
DoPenDown; DoOnVector(5,-1);
DoPenUp;
end;
procedure a4;
begin
TaskText('Задание a4. Начертить квадраты');
Field(9,7);
DoToPoint(3,1);
kDoOnVector(1);
DoToPoint(5,3);
kDoOnVector(3);
DoToPoint(1,3);
kDoOnVector(2);
end;
procedure a5;
begin
TaskText('Задание a5. Начертить несколько прямоугольников');
Field(8,8);
DoToPoint(4,1);rect(2,3);
DoToPoint(1,1);rect(5,1);
DoToPoint(3,4);rect(3,4);
end;
procedure a6;
begin
TaskText('Задание a6. Начертить цифры');
Field(11,6);
DoToPoint(2,2);
DoOnVector(0,1);DoPenDown;DoOnVector(1,1);DoOnVector(0,-2);DoPenUp;
DoOnVector(1,0);
DoOnVector(0,2);DoPenDown;DoOnVector(1,0);DoOnVector(0,-1);DoOnVector(-1,-1);DoOnVector(1,0);DoPenUp;
DoOnVector(1,0);
DoOnVector(0,2);DoPenDown;DoOnVector(1,0);DoOnVector(-1,-1);DoOnVector(1,0);DoOnVector(-1,-1);DoPenUp;DoOnVector(1,0);
DoOnVector(1,0);
DoOnVector(0,2);DoPenDown;DoOnVector(0,-1);DoOnVector(1,0);DoOnVector(0,-1);DoOnVector(0,2);DoPenUp;
DoOnVector(1,0);
end;
procedure c1;
var i: integer;
begin
TaskText('Задание c1. Начертить, используя цикл');
Field(17,5);
DoToPoint(1,3);
DoPenDown;
for i:=1 to 15 do
begin
DoOnVector(0,-1);
DoOnVector(1,1);
end;
DoPenUp;
end;
procedure c2;
var i: integer;
begin
TaskText('Задание c2. Начертить, используя цикл');
Field(22,5);
DoToPoint(1,3);
DoPenDown;
for i:=1 to 10 do
begin
DoOnVector(1,-1);
DoOnVector(1,1);
end;
DoPenUp;
end;
procedure c3;
var i: integer;
begin
TaskText('Задание c3. Начертить, используя цикл');
Field(18,7);
DoToPoint(2,5);
for i:=1 to 15 do
begin
line(0,-3);
DoOnVector(1,0);
end
end;
procedure c4;
var i: integer;
begin
TaskText('Задание c4. Начертить, используя цикл');
Field(21,5);
DoToPoint(1,2);
for i:=1 to 10 do
kvDoOnVector(1,2,0);
end;
procedure c5;
var i: integer;
begin
TaskText('Задание c5. Начертить, используя цикл');
Field(12,12);
DoToPoint(1,11);
for i:=1 to 10 do
begin
DoPenDown;
DoOnVector(1,0);
DoOnVector(-1,-1);
DoOnVector(0,1);
DoPenUp;
DoOnVector(1,-1);
end
end;
procedure c6;
var i: integer;
begin
TaskText('Задание c6. Начертить, используя цикл');
Field(13,14);
DoToPoint(1,3);
for i:=1 to 6 do
begin
DoPenDown;
DoOnVector(1,0);
DoOnVector(0,-2);
DoOnVector(-1,0);
DoOnVector(0,2);
DoPenUp;
DoOnVector(2,2)
end
end;
procedure c7;
var i: integer;
begin
TaskText('Задание c7. Начертить, используя цикл');
Field(30,20);
DoToPoint(2,1);
for i:=1 to 10 do
kvDoOnVector(5,2,1);
end;
procedure c8;
var i: integer;
begin
TaskText('Задание c8. Начертить, используя цикл');
Field(29,5);
DoToPoint(2,1);
DoPenDown;
for i:=1 to 9 do
begin
oct;
DoOnVector(3,0);
end
end;
procedure c9;
var i: integer;
begin
TaskText('Задание c9. Начертить, используя циклы');
Field(25,14);
DoToPoint(2,12);
DoPenDown;
for i:=1 to 10 do
begin
DoOnVector(1,0);
DoOnVector(0,-1);
end;
DoOnVector(1,0);
for i:=1 to 10 do
begin
DoOnVector(0,1);
DoOnVector(1,0);
end;
DoPenUp;
end;
procedure c10;
var i: integer;
begin
TaskText('Задание c10. Начертить, используя цикл');
Field(14,12);
DoToPoint(2,1);
DoPenDown;
for i:=1 to 10 do
begin
DoOnVector(0,i);
DoOnVector(1,-i);
end;
DoPenUp;
end;
procedure c11;
var i: integer;
begin
TaskText('Задание c11. Начертить, используя цикл');
Field(14,12);
DoToPoint(2,1);
for i:=1 to 10 do
begin
DoPenDown;
DoOnVector(0,i);
DoPenUp;
DoOnVector(1,-i);
end;
end;
procedure c12;
var i: integer;
begin
TaskText('Задание c12. Начертить, используя цикл');
Field(14,12);
DoToPoint(2,10);
for i:=1 to 10 do
begin
DoPenDown;
DoOnVector(i,0);
DoPenUp;
DoOnVector(-i,-1);
end;
end;
procedure c13;
var i: integer;
begin
TaskText('Задание c13. Начертите, используя цикл');
Field(25,10);
DoToPoint(2,2);
DoPenDown;
for i:=1 to 6 do
begin
DoOnVector(0,i);
DoOnVector(i,-i);
end;
DoPenUp;
end;
procedure c14;
var i: integer;
begin
TaskText('Задание c14. Начертить, используя цикл');
Field(14,12);
DoToPoint(2,1);
for i:=1 to 10 do
kDoOnVector(i);
end;
procedure c15;
var i: integer;
begin
TaskText('Задание c15. Начертить, используя цикл');
Field(30,11);
DoToPoint(1,2);
for i:=1 to 7 do
kvDoOnVector(i,i,0);
end;
procedure c16;
var i: integer;
begin
TaskText('Задание c16. Начертить, используя цикл');
Field(30,17);
DoToPoint(1,2);
for i:=1 to 14 do
begin
DoPenDown;
DoOnVector(2*i,0);
DoPenUp;
DoOnVector(-2*i,1);
end;
end;
procedure c17;
var i: integer;
begin
TaskText('Задание c17. Начертить, используя цикл');
Field(30,17);
DoToPoint(1,2);
for i:=0 to 13 do
begin
DoPenDown;
DoOnVector(2*i+1,0);
DoPenUp;
DoOnVector(-(2*i+1),1);
end;
end;
procedure c18;
var i: integer;
begin
TaskText('Задание c18. Начертить, используя цикл');
Field(12,19);
DoToPoint(2,9);
for i:=1 to 9 do
begin
DoPenDown;
DoOnVector(0,2*i-1);
DoPenUp;
DoOnVector(1,-2*i);
end;
end;
procedure c19;
var i: integer;
begin
TaskText('Задание c19. Начертить, используя цикл');
Field(12,20);
DoToPoint(10,10);
DoPenDown;
for i:=0 to 16 do
line(-8,8-i);
DoPenUp;
end;
procedure c20;
var i: integer;
begin
TaskText('Задание c20. Начертить, используя цикл');
Field(10,10);
DoToPoint(2,2);
for i:=0 to 6 do
begin
line(i,6-i);
DoOnVector(0,1);
end;
end;
procedure c21;
var i: integer;
begin
TaskText('Задание c21. Начертить, используя цикл');
Field(13,18);
DoToPoint(1,1);DoPenDown;
for i:=0 to 8 do
line(10,2*i);
DoPenUp;
end;
procedure c22;
var i: integer;
begin
TaskText('Задание c22. Начертить, используя цикл');
Field(19,19);
DoToPoint(1,1);
DoPenDown;
for i:=0 to 16 do
begin
DoOnVector(i,16-i);
DoToPoint(1,1);
end;
DoPenUp;
end;
procedure c23;
var i: integer;
begin
TaskText('Задание c23. Начертить, используя цикл');
Field(20,14);
DoToPoint(1,7);
DoPenDown;
for i:=1 to 6 do
begin
DoOnVector(1,i);
DoOnVector(0,-2*i);
DoOnVector(1,i);
DoOnVector(1,0);
end;
DoPenUp;
end;
procedure c24;
var i: integer;
begin
TaskText('Задание c24. Начертить, используя цикл');
Field(19,17);
DoToPoint(9,8);
DoPenDown;
for i:=1 to 7 do
begin
kDoOnVector(2*i-1);
DoOnVector(-1,-1);
end;
DoPenUp;
end;
procedure c25;
var i,k: integer;
begin
TaskText('Задание c25. Начертить, используя цикл');
Field(14,14);
DoToPoint(1,7);
k:=1;
DoPenDown;
for i:=1 to 12 do
begin
DoOnVector(1,i*k);
k:=-k;
end;
DoPenUp;
end;
procedure c26;
var i: integer;
begin
TaskText('Задание c26. Начертить график параболы');
Field(26,6);
DoPenDown;
for i:=1 to 5 do
DoToPoint(i*i,i);
end;
procedure cc1;
var i,j: integer;
begin
TaskText('Задание cc1. Начертить, используя вложенные циклы');
Field(22,6);
DoToPoint(1,1);DoPenDown;
for i:=1 to 4 do
begin
for j:=1 to 5 do
begin
DoOnVector(1,i);
DoOnVector(0,-i);
end;
end;
DoPenUp;
end;
procedure cc2;
var i,j: integer;
begin
TaskText('Задание cc2. Начертить, используя вложенные циклы');
Field(22,6);
DoToPoint(1,1);DoPenDown;
for i:=1 to 5 do
begin
for j:=1 to 4 do
begin
DoOnVector(1,j);
DoOnVector(0,-j);
end;
end;
DoPenUp;
end;
procedure cc3;
var i,j: integer;
begin
TaskText('Задание cc3. Начертить, используя вложенные циклы');
Field(30,9);
DoToPoint(1,1);DoPenDown;
for i:=1 to 7 do
begin
for j:=1 to i do
begin
DoOnVector(1,j);
DoOnVector(0,-j);
end;
end;
DoPenUp;
end;
procedure cc4;
var i,j: integer;
begin
TaskText('Задание cc4. Начертить, используя вложенные циклы');
Field(30,9);
DoToPoint(1,1);
for i:=1 to 7 do
begin
for j:=1 to i do
begin
DoPenDown;
DoOnVector(0,i);
DoPenUp;
DoOnVector(1,-i);
end;
end;
end;
procedure cc5;
var i,j: integer;
begin
TaskText('Задание cc5. Начертить, используя вложенные циклы');
Field(16,8);
DoToPoint(1,1);
DoPenDown;
for j:=1 to 5 do
begin
for i:=0 to 6 do
begin
DoPenDown;
DoOnVector(2,i);
DoPenUp;
DoOnVector(-2,-i);
end;
DoOnVector(3,0);
end;
DoPenUp;
end;
procedure cc6;
var i,j: integer;
begin
TaskText('Задание cc6. Начертить, используя вложенные циклы');
Field(16,8);
DoToPoint(1,1);
DoPenDown;
for j:=1 to 5 do
begin
for i:=j to 6 do
begin
DoPenDown;
DoOnVector(2,i);
DoPenUp;
DoOnVector(-2,-i);
end;
DoOnVector(3,0);
end;
DoPenUp;
end;
procedure cc7;
var i,j: integer;
begin
TaskText('Задание cc7. Начертить, используя вложенные циклы');
Field(16,11);
DoToPoint(1,1);
DoPenDown;
for j:=1 to 5 do
begin
for i:=j to 2*j-1 do
begin
DoPenDown;
DoOnVector(2,i);
DoPenUp;
DoOnVector(-2,-i);
end;
DoOnVector(3,0);
end;
DoPenUp;
end;
procedure cc8;
var i,j: integer;
begin
TaskText('Задание cc8. Начертить, используя вложенные циклы');
Field(21,7);
DoToPoint(1,1);
DoPenDown;
for j:=1 to 5 do
begin
for i:=0 to 5 do
begin
DoPenDown;
DoOnVector(j,i);
DoPenUp;
DoOnVector(-j,-i);
end;
DoOnVector(j+1,0);
end;
DoPenUp;
end;
procedure cc9;
var i,j: integer;
begin
TaskText('Задание cc9. Начертить, используя вложенные циклы');
Field(18,18);
for i:=0 to 3 do
begin
DoToPoint(1,1);
DoPenDown;
for j:=1 to 5 do
DoOnVector(j,6-j-i);
DoPenUp;
end
end;
procedure cc10;
var i,j: integer;
begin
TaskText('Задание cc10. Начертить, используя вложенные циклы');
Field(15,11);
DoToPoint(2,1);
for j:=0 to 4 do
begin
for i:=0 to 10 do
begin
DoPenDown;
DoOnVector(1,1);
DoOnVector(0,-1);
DoPenUp;
end;
DoOnVector(-11,2);
end;
end;
procedure cc11;
var i,j: integer;
begin
TaskText('Задание cc11. Начертить, используя вложенные циклы');
Field(27,22);
DoToPoint(2,21);
for j:=1 to 7 do
begin
for i:=1 to 8 do
begin
DoPenDown;
DoOnVector(2,0);
DoOnVector(-1,-2);
DoOnVector(-1,2);
DoPenUp;
DoOnVector(3,0);
end;
DoOnVector(-3*8,-3);
end
end;
procedure cc12;
var i,j: integer;
begin
TaskText('Задание cc12. Начертить, используя вложенные циклы');
Field(13,11);
DoToPoint(2,1);
for j:=0 to 4 do
begin
for i:=0 to j do
begin
DoPenDown;
DoOnVector(1,1);
DoOnVector(0,-1);
DoPenUp;
end;
DoOnVector(-j-1,2);
end;
end;
procedure cc13;
var i,j: integer;
begin
TaskText('Задание cc13. Начертить, используя вложенные циклы');
Field(13,11);
DoToPoint(2,1);
for j:=0 to 4 do
begin
for i:=0 to 2*j do
begin
DoPenDown;
DoOnVector(1,1);
DoOnVector(0,-1);
DoPenUp;
end;
DoOnVector(-2*j-1,2);
end;
end;
procedure cc14;
var i,j: integer;
begin
TaskText('Задание cc14. Начертить, используя вложенные циклы');
Field(11,11);
DoToPoint(1,2);
for j:=0 to 4 do
begin
for i:=0 to 2*j do
begin
DoPenDown;
DoOnVector(1,0);
DoOnVector(0,-1);
DoPenUp;
end;
DoOnVector(-2*j-1,2*j+3);
end;
end;
procedure cc15;
var n,i,j: integer;
begin
TaskText('Задание cc15. Начертить, используя вложенные циклы');
Field(11,9);
n:=8;
for j:=0 to n do
begin
for i:=0 to n do
begin
DoToPoint(0,i);
DoPenDown;
DoToPoint(10,j);
DoPenUp;
end;
end;
end;
procedure cc16;
var n,i,j: integer;
begin
TaskText('Задание cc16. Начертить, используя вложенные циклы');
Field(11,9);
n:=8;
for j:=0 to n div 2 do
begin
for i:=0 to n div 2-1 do
begin
DoToPoint(0,2*i+1);
DoPenDown;
DoToPoint(10,2*j);
DoPenUp;
end;
end;
end;
procedure p1;
begin
TaskText('Задание p1. Начертить цифры почтового индекса, составив для каждой процедуру');
Field(23,6);
DoToPoint(2,2);
DoPenDown;DoOnVector(1,0);DoOnVector(0,2);DoOnVector(-1,0);DoOnVector(0,-2);DoPenUp;DoOnVector(1,0);
DoOnVector(1,0);
DoOnVector(0,1);DoPenDown;DoOnVector(1,1);DoOnVector(0,-2);DoPenUp;
DoOnVector(1,0);
DoOnVector(0,2);DoPenDown;DoOnVector(1,0);DoOnVector(0,-1);DoOnVector(-1,-1);DoOnVector(1,0);DoPenUp;
DoOnVector(1,0);
DoOnVector(0,2);DoPenDown;DoOnVector(1,0);DoOnVector(-1,-1);DoOnVector(1,0);DoOnVector(-1,-1);DoPenUp;DoOnVector(1,0);
DoOnVector(1,0);
DoOnVector(0,2);DoPenDown;DoOnVector(0,-1);DoOnVector(1,0);DoOnVector(0,-1);DoOnVector(0,2);DoPenUp;
DoOnVector(1,0);
DoOnVector(1,0);DoPenDown;DoOnVector(-1,0);DoOnVector(0,-1);DoOnVector(1,0);DoOnVector(0,-1);DoOnVector(-1,0);DoPenUp;DoOnVector(1,2);
DoOnVector(1,0);
DoOnVector(1,0);DoPenDown;DoOnVector(-1,-1);DoOnVector(0,-1);DoOnVector(1,0);DoOnVector(0,1);DoOnVector(-1,0);DoOnVector(1,1);DoPenUp;
DoOnVector(1,0);
DoPenDown;DoOnVector(1,0);DoOnVector(-1,-1);DoOnVector(0,-1);DoPenUp;DoOnVector(1,2);
DoOnVector(1,0);
DoPenDown;DoOnVector(1,0);DoOnVector(0,-2);DoOnVector(-1,0);DoOnVector(0,2);DoOnVector(0,-1);DoOnVector(1,0);DoPenUp;DoOnVector(0,1);
DoOnVector(1,0);
DoOnVector(1,-1);DoPenDown;DoOnVector(-1,0);DoOnVector(0,1);DoOnVector(1,0);DoOnVector(0,-1);DoOnVector(-1,-1);DoPenUp;
end;
procedure p2;
procedure okno(a,b: integer);
begin
rect(b,a);
DoOnVector(1,1);
rect(b-2,a div 2-1);
rect(b-2,a div 2-1);
DoOnVector(a div 2,0);
rect(b-2-a div 2,a div 2-1);
DoOnVector(0,b-1-a div 2);
rect(a div 2-1,a div 2-1)
end;
begin
TaskText('Задание p2. Составить процедуру Win и начертить три окна');
Field(38,16);
DoToPoint(3,2);okno(9,12);
DoToPoint(15,2);okno(9,12);
DoToPoint(26,2);okno(9,12);
end;
procedure p3;
procedure okno(a,b: integer);
begin
rect(b,a);
DoOnVector(1,1);
rect(b-2,a div 2-1);
rect(b-2,a div 2-1);
DoOnVector(a div 2,0);
rect(b-2-a div 2,a div 2-1);
DoOnVector(0,b-1-a div 2);
rect(a div 2-1,a div 2-1)
end;
begin
TaskText('Задание p3. Составить процедуру SmallHouse и начертить два дома. Использовать процедуру Win');
Field(72,40);
DoToPoint(4,4);rect(22,30);
DoToPoint(8,9);okno(9,12);
DoToPoint(21,9);okno(9,12);
DoToPoint(4,26);
DoPenDown;DoOnVector(15,8);DoOnVector(15,-8);
DoPenUp;
DoToPoint(38,4);rect(22,30);
DoToPoint(42,9);okno(9,12);
DoToPoint(55,9);okno(9,12);
DoToPoint(38,26);
DoPenDown;DoOnVector(15,8);DoOnVector(15,-8);
DoPenUp;
end;
procedure p4;
procedure okno1(a,b: integer);
begin
rect(b,a);
DoOnVector(1,1);
rect(b-2,a div 2-1);
rect(b-2,a div 2-1);
DoOnVector(a div 2,0);
rect(b-2-a div 2,a div 2-1);
DoOnVector(0,b-1-a div 2);
rect(a div 2-1,a div 2-1);
DoOnVector(a div 2,a div 2);
DoOnVector(-a,-b);
end;
procedure dom3;
begin
DoOnVector(0,6);okno1(9,12);
DoOnVector(12,0);okno1(9,12);
DoOnVector(-12,16);okno1(9,12);
DoOnVector(12,0);okno1(9,12);
DoOnVector(-12,16);okno1(9,12);
DoOnVector(12,0);okno1(9,12);
end;
begin
TaskText('Задание p4. Составить процедуру BigHouse и начертить два дома. Использовать процедуру Win');
Field(83,70);
DoToPoint(4,4);rect(56,33);
DoToPoint(2,60);rect(2,37);
DoToPoint(10,4);dom3;
DoToPoint(46,4);rect(56,33);
DoToPoint(44,60);rect(2,37);
DoToPoint(52,4);dom3;
end;
procedure pp1;
begin
TaskText('Задание pp1. Начертить квадраты, составив процедуру Square(a)');
Field(16,11);
DoToPoint(2,1); kDoOnVector(1);
DoToPoint(8,8); kDoOnVector(2);
DoToPoint(3,4); kDoOnVector(3);
DoToPoint(10,2); kDoOnVector(4);
end;
procedure pp2;
var i: integer;
begin
TaskText('Задание pp2. Начертить, используя процедуру Square(a)');
Field(21,10);
DoToPoint(2,1);
for i:=1 to 8 do
kDoOnVector(i);
DoToPoint(18,8);
for i:=1 to 8 do
begin
kDoOnVector(i);
DoOnVector(-1,-1);
end;
end;
procedure pp3;
var i: integer;
begin
TaskText('Задание pp3. Начертить, используя процедуру Square(a)');
Field(30,16);
DoToPoint(1,1);
for i:=1 to 7 do
begin
kDoOnVector(i);
DoOnVector(i,1);
end;
end;
procedure pp4;
var i: integer;
begin
TaskText('Задание pp4. Начертить, используя процедуру Square(a)');
Field(30,20);
DoToPoint(14,9);
for i:=1 to 8 do
begin
kDoOnVector(2*i-1);
DoOnVector(-1,-1)
end;
end;
procedure pp5;
begin
TaskText('Задание pp5. Начертить, составив процедуру Rect(w,h), где w - ширина, а h - высота прямоугольника');
Field(18,12);
DoToPoint(2,1);rect(2,5);
DoToPoint(12,3);rect(3,4);
DoToPoint(4,6);rect(4,3);
DoToPoint(9,4);rect(5,1);
end;
procedure pp6;
var i: integer;
begin
TaskText('Задание pp6. Начертить, используя процедуру Rect(w,h)');
Field(16,16);
DoToPoint(2,2);
for i:=1 to 12 do
begin
rect(i,1);
DoOnVector(1,0);
end
end;
procedure pp7;
var i: integer;
begin
TaskText('Задание pp7. Начертить, используя процедуру Rect(w,h)');
Field(30,9);
DoToPoint(1,1);
for i:=1 to 7 do
begin
rect(8-i,i);
DoOnVector(i,0);
end
end;
procedure pp8;
procedure elka(aa: integer);
var i: integer;
begin
DoPenDown;
DoOnVector(0,aa+1);
for i:=1 to aa do
begin
line(-1,-1);
line(1,-1);
DoOnVector(0,-1);
end;
DoOnVector(0,-1);
end;
var j: integer;
begin
TaskText('Задание pp8. Начертить, составив процедуру Fir(h), где h - высота елки');
Field(28,14);
DoToPoint(2,1);
for j:=1 to 9 do
begin
elka(2+j);
DoOnVector(3,0);
end
end;
procedure pp9;
procedure tri1(d: integer);
begin
DoPenDown;
DoOnVector(-d,-d);
DoOnVector(2*d,0);
DoOnVector(-d,d);
DoPenUp;
end;
var j: integer;
begin
TaskText('Задание pp9. Начертить, составив процедуру Tri(h), где h - высота треугольника. Рисование треугольника начинать с верхней точки');
Field(14,17);
DoToPoint(7,16);
for j:=1 to 5 do
begin
tri1(j);
DoOnVector(0,-j);
end
end;
procedure pp10;
procedure tri1(d: integer);
begin
DoPenDown;
DoOnVector(-d,-d);
DoOnVector(2*d,0);
DoOnVector(-d,d);
DoPenUp;
end;
procedure elka1(dd: integer);
var j: integer;
begin
for j:=1 to dd do
begin
tri1(j);
DoOnVector(0,-j);
end
end;
begin
TaskText('Задание pp10. Используя процедуру Tri(a), составьте процедуру Fir1(n), где n - количество прямоугольников, образующих елку');
Field(30,17);
DoToPoint(5,11);
elka1(4);
DoToPoint(16,16);
elka1(5);
DoToPoint(26,7);
elka1(3);
end;
procedure pp11;
begin
TaskText('Задание pp11. Начертить, составив процедуру Triangle(a,b), где a и b - длины горизонтального и вертикального катетов');
Field(26,11);
DoToPoint(2,2);tri(3,5);DoToPoint(7,2);tri(2,7);DoToPoint(11,2);tri(4,3);DoToPoint(17,2);tri(7,4);
end;
procedure pp12;
begin
TaskText('Задание pp12. Начертить, используя процедуру Triangle(a,b) с a=+3,-3; b=+5,-5');
Field(21,9);
DoToPoint(2,2); tri(3,5);
DoOnVector(8,0); tri(-3,5);
DoOnVector(1,5); tri(3,-5);
DoOnVector(8,0); tri(-3,-5);
end;
procedure pp13;
procedure sn(x,y: integer);
begin
DoPenDown;
DoOnVector(x,3*y);
DoOnVector(0,-y);
DoOnVector(x,y);
DoOnVector(-x,-2*y);
DoOnVector(2*x,y);
DoOnVector(-x,-y);
DoOnVector(x,0);
DoOnVector(-3*x,-y);
DoPenUp;
end;
begin
TaskText('Задание pp13. Начертить, составив процедуру рисования лепестка. Использовать идею зеркального отражения');
Field(19,11);
DoToPoint(5,6);sn(1,1);sn(1,-1);sn(-1,1);sn(-1,-1);
DoToPoint(14,6);sn(1,1);
DoOnVector(-1,0);sn(-1,1);
DoOnVector(0,-1);sn(-1,-1);
DoOnVector(1,0);sn(1,-1);
end;
procedure pp14;
procedure horiz(w,h: integer);
var i: integer;
begin
for i:=1 to h do
rect(i,w);
end;
begin
TaskText('Задание pp14. Начертить, составив процедуру Horiz(w,h), где w - ширина, а h - высота заштрихованного прямоугольника');
Field(17,13);
DoToPoint(2,2); horiz(8,5);
DoToPoint(12,4); horiz(3,4);
DoToPoint(5,8); horiz(5,3);
end;
procedure pp15;
procedure vert(w,h: integer);
var i: integer;
begin
for i:=1 to w do
rect(h,i);
end;
begin
TaskText('Задание pp15. Начертить, составив процедуру Vert(w,h), где w - ширина, а h - высота заштрихованного прямоугольника');
Field(17,13);
DoToPoint(2,2); vert(8,5);
DoToPoint(12,4); vert(3,4);
DoToPoint(5,8); vert(5,3);
end;
procedure pp16;
procedure setka(aa,bb: integer);
var i: integer;
begin
for i:=0 to aa do
begin
line(bb,0);
DoOnVector(0,1);
end;
DoOnVector(0,-aa-1);
for i:=0 to bb do
begin
line(0,aa);
DoOnVector(1,0);
end;
end;
begin
TaskText('Задание pp16. Начертить, составив процедуру Setka(w,h), где w - ширина, а h - высота заштрихованного прямоугольника');
Field(21,15);
DoToPoint(1,1);setka(5,7);
DoToPoint(2,7);setka(3,8);
DoToPoint(9,2);setka(2,4);
DoToPoint(12,6);setka(8,8);
end;
procedure pp17;
procedure spir(a: integer);
var i,j: integer;
begin
DoPenDown;
i:=1;
for j:=1 to a do
begin
DoOnVector(i,0);
DoOnVector(0,i);
i:=i+1;
DoOnVector(-i,0);
DoOnVector(0,-i);
i:=i+1;
end;
DoPenUp;
end;
begin
TaskText('Задание pp17. Начертить, составив процедуру Spir(n), где n - количество витков спирали. Рисование спирали начинать из ее центра');
Field(26,14);
DoToPoint(7,7); spir(5);
DoToPoint(20,6); spir(4);
end;
procedure pp18;
begin
TaskText('Задание pp18. Начертить цифры почтового индекса, составив процедуру Digit(n). Использовать процедуры из задания DMp1');
Field(23,12);
DoToPoint(2,2);
DoOnVector(1,1);DoPenDown;DoOnVector(-1,0);DoOnVector(0,1);DoOnVector(1,0);DoOnVector(0,-1);DoOnVector(-1,-1);DoPenUp;DoOnVector(1,2);
DoOnVector(1,0);
DoPenDown;DoOnVector(1,0);DoOnVector(0,-2);DoOnVector(-1,0);DoOnVector(0,2);DoOnVector(0,-1);DoOnVector(1,0);DoPenUp;DoOnVector(0,1);
DoOnVector(1,0);
DoPenDown;DoOnVector(1,0);DoOnVector(-1,-1);DoOnVector(0,-1);DoPenUp;DoOnVector(1,2);
DoOnVector(1,0);
DoOnVector(1,0);DoPenDown;DoOnVector(-1,-1);DoOnVector(0,-1);DoOnVector(1,0);DoOnVector(0,1);DoOnVector(-1,0);DoOnVector(1,1);DoPenUp;
DoOnVector(1,0);
DoOnVector(1,0);DoPenDown;DoOnVector(-1,0);DoOnVector(0,-1);DoOnVector(1,0);DoOnVector(0,-1);DoOnVector(-1,0);DoPenUp;DoOnVector(1,0);
DoOnVector(1,0);
DoOnVector(0,2);DoPenDown;DoOnVector(0,-1);DoOnVector(1,0);DoOnVector(0,-1);DoOnVector(0,2);DoPenUp;
DoOnVector(1,0);
DoPenDown;DoOnVector(1,0);DoOnVector(-1,-1);DoOnVector(1,0);DoOnVector(-1,-1);DoPenUp;DoOnVector(1,0);
DoOnVector(1,0);
DoOnVector(0,2);DoPenDown;DoOnVector(1,0);DoOnVector(0,-1);DoOnVector(-1,-1);DoOnVector(1,0);DoPenUp;DoOnVector(0,2);
DoOnVector(1,0);
DoOnVector(0,-1);DoPenDown;DoOnVector(1,1);DoOnVector(0,-2);DoPenUp;
DoOnVector(1,0);
DoPenDown;DoOnVector(0,2);DoOnVector(1,0);DoOnVector(0,-2);DoOnVector(-1,0);DoPenUp;
DoToPoint(2,6);
DoPenDown;DoOnVector(1,1);DoOnVector(0,-2);DoPenUp;
DoOnVector(1,2);
DoPenDown;DoOnVector(1,0);DoOnVector(-1,-1);DoOnVector(1,0);DoOnVector(-1,-1);DoPenUp;DoOnVector(1,0);
DoOnVector(1,0);
DoOnVector(1,2);DoPenDown;DoOnVector(-1,0);DoOnVector(0,-1);DoOnVector(1,0);DoOnVector(0,-1);DoOnVector(-1,0);DoPenUp;DoOnVector(1,0);
DoOnVector(1,2);
DoPenDown;DoOnVector(1,0);DoOnVector(-1,-1);DoOnVector(0,-1);DoPenUp;DoOnVector(1,2);
DoOnVector(1,-2);
DoOnVector(1,1);DoPenDown;DoOnVector(-1,0);DoOnVector(0,1);DoOnVector(1,0);DoOnVector(0,-1);DoOnVector(-1,-1);DoPenUp;DoOnVector(1,2);
DoToPoint(2,10);
DoOnVector(0,-2);
DoPenDown;DoOnVector(0,2);DoOnVector(1,0);DoOnVector(0,-2);DoOnVector(-1,0);DoPenUp;
DoOnVector(2,2);
DoPenDown;DoOnVector(1,0);DoOnVector(0,-1);DoOnVector(-1,-1);DoOnVector(1,0);DoPenUp;DoOnVector(0,2);
DoOnVector(1,-2);
DoOnVector(0,2);DoPenDown;DoOnVector(0,-1);DoOnVector(1,0);DoOnVector(0,-1);DoOnVector(0,2);DoPenUp;
DoOnVector(1,0);
DoOnVector(1,0);DoPenDown;DoOnVector(-1,-1);DoOnVector(0,-1);DoOnVector(1,0);DoOnVector(0,1);DoOnVector(-1,0);DoOnVector(1,1);DoPenUp;
DoOnVector(1,0);
DoPenDown;DoOnVector(1,0);DoOnVector(0,-2);DoOnVector(-1,0);DoOnVector(0,2);DoOnVector(0,-1);DoOnVector(1,0);DoPenUp;DoOnVector(0,1);
end;
procedure pp19;
procedure rect1(a1,b1: integer);
begin
rect(b1,a1);
end;
procedure win(a,b,w: integer);
var b2: integer;
begin
b2:=b-a-w;
rect1(2*a+3*w,b+2*w);
DoOnVector(w,w);
rect1(a,b);
DoOnVector(a+w,0);
rect1(a,b2);
DoOnVector(0,b2+w);
rect1(a,a);
DoOnVector(-a-2*w,-b2-2*w);
end;
begin
TaskText('Задание pp19. Начертить, составив процедуру Win(a,b,w), где a,b - размеры большего стекла, w - ширина рамы');
Field(36,21);
DoToPoint(2,2);
win(3,10,1);
DoToPoint(13,2);
win(3,13,2);
DoToPoint(27,2);
win(2,7,1);
end;
procedure examen1;
var i: integer;
begin
TaskText('Задание examen1. Начертить, используя процедуру с параметром Triangle(a)');
Field(28,10);
DoToPoint(1,2);
for i:=1 to 6 do
begin
tri(i,i);
DoOnVector(i+1,0);
end
end;
procedure examen2;
procedure gaz(n: integer);
var j: integer;
begin
for j:=1 to n do
begin
DoPenDown;
DoOnVector(2,0);
DoOnVector(-1,1);
DoOnVector(-1,-1);
DoOnVector(2,0);
DoPenUp;
end;
end;
var i: integer;
begin
TaskText('Задание examen2. Начертить, используя процедуру с параметром Gazon(n)');
Field(31,17);
for i:=1 to 7 do
begin
DoToPoint(1,2*i);
gaz(2*i);
end
end;
procedure examen3;
var i: integer;
begin
TaskText('Задание examen3. Начертить, используя процедуру с параметром Stolb(h)');
Field(20,20);
DoToPoint(1,1);
for i:=1 to 9 do
begin
rect(2*i,1);
DoOnVector(2,0);
end
end;
procedure examen4;
procedure ttt(i: integer);
begin
DoPenDown;
DoOnVector(i,i);
DoOnVector(-2*i,0);
DoOnVector(i,-i);
DoPenUp;
end;
var j: integer;
begin
TaskText('Задание examen4. Начертить, используя процедуру с параметром Tri(a)');
Field(30,18);
DoToPoint(15,1);
for j:=1 to 8 do
begin
ttt(j);
DoOnVector(0,1);
end
end;
procedure examen5;
procedure zab(n: integer);
var i: integer;
begin
for i:=1 to n do
begin
DoPenDown;
DoOnVector(0,2);
DoOnVector(0,-2);
DoPenUp;
DoOnVector(1,0);
end;
end;
begin
TaskText('Задание examen5. Начертить, используя процедуру с параметром Palki(n)');
Field(23,14);
DoToPoint(2,2);
zab(10);
DoToPoint(2,6);
zab(15);
DoToPoint(2,10);
zab(20);
end;
procedure examen6;
var i: integer;
begin
TaskText('Задание examen6. Начертить, используя процедуру с параметрами Rect(a,b)');
Field(30,10);
DoToPoint(2,2);
for i:=1 to 6 do
begin
rect(7-i,i);
DoOnVector(i+1,0);
end
end;
procedure examen7;
procedure zab1(n: integer);
var i: integer;
begin
for i:=1 to n do
begin
DoPenDown;
DoOnVector(0,2);
DoOnVector(1,1);
DoOnVector(1,-1);
DoOnVector(0,-2);
DoPenUp;
DoOnVector(1,0);
end;
end;
begin
TaskText('Задание examen7. Начертить, используя процедуру с параметром Zabor(n)');
Field(27,19);
DoToPoint(2,2); zab1(5);
DoToPoint(2,6); zab1(6);
DoToPoint(2,10); zab1(7);
DoToPoint(2,14); zab1(8);
end;
procedure examen8;
procedure veer1(n: integer);
var i: integer;
begin
for i:=0 to n do
begin
DoPenDown;
DoOnVector(i,n-i);
DoOnVector(-i,-n+i);
DoPenUp;
end;
end;
begin
TaskText('Задание examen8. Начертить, используя процедуру с параметром Veer(n)');
Field(20,12);
DoToPoint(2,2);
veer1(6);
DoToPoint(10,2);
veer1(8);
end;
procedure examen9;
procedure row(n: integer);
var i: integer;
begin
for i:=1 to n do
begin
kDoOnVector(1);
DoOnVector(2,0);
end;
end;
begin
TaskText('Задание examen9. Начертить, используя процедуру row(n)');
Field(27,11);
DoToPoint(2,2); row(6);
DoToPoint(2,4); row(8);
DoToPoint(2,6); row(10);
DoToPoint(2,8); row(12);
end;
procedure examen10;
procedure vert(w,h: integer);
var i: integer;
begin
for i:=1 to w do
rect(h,i);
end;
begin
TaskText('Задание examen10. Начертить, составив процедуру Vert(w,h), где w - высота, h - ширина');
Field(17,13);
DoToPoint(2,2); vert(6,4);
DoToPoint(12,4); vert(3,5);
DoToPoint(4,8); vert(5,2);
end;
procedure zzz;
begin
Field(10,2);
TaskText('Задание c1. Закрасить помеченные клетки');
end;
var __initialized := false;
var __finalized := false;
procedure __InitModule__;
begin
if not __initialized then
begin
__initialized := true;
DrawManField.__InitModule__;
DMTaskMaker.__InitModule__;
end;
end;
procedure __FinalizeModule__;
begin
if not __finalized then
begin
__finalized := true;
DrawManField.__FinalizeModule__;
DMTaskMaker.__FinalizeModule__;
end;
end;
initialization
finalization
end.