Друзья, решить эти две по программированию в pascal abc. нужно, буду вам признателен.если что, я написал подпрограмму для рисования одного домика, а как делать их интервале я без понятия, если честно.вот она: program smr1; uses graphabc; var n: integer; procedure domik; beginrectangle(20,30,60,60); circle(40,22,4); fillrect(30,40,50,50); rectangle(30,40,50,50); line(40,40,40,50); line(30,45,50,45); line(20,30,40,15); line(40,15,60,30); end; begin{а здесь должны быть вот эти интервалы от 1 до 10, пока я не достиг понимания, как их писать, }end.я много , , надо.
Объяснение:
1) Нужно нарисовать N домиков. Для этого смещаемся по горизонтали и рисуем. Можно смещаться по вертикали, тогда к Y -кам добавлять нужно число.
Program smr1;
uses graphABC;
var i,N:Integer;
procedure domik(k:integer);
begin
rectangle(20+k*45,30,60+k*45,60);
circle(40+k*45,22,4);
rectangle(30+k*45,40,50+k*45,50);
SetBrushColor(clBlue);
fillrect(30+k*45,40,50+k*45,50);
SetBrushColor(clWhite);
line(40+k*45,40,40+k*45,50);
line(30+k*45,45,50+k*45,45);
line(20+k*45,30,40+k*45,15);
line(40+k*45,15,60+k*45,30);
end;
begin
{а здесь должны быть вот эти интервалы от 1 до 10, пока я не достиг понимания, как их писать
n:=Random(1,10); // случайным образом определяем кол-во домиков
for i:=1 to n do domik(i-1);
end.
2)
var n,k: integer;
f: text;
Xk:real;
begin
write('Введите N=');
readln(N);
assign(f, 'h.txt');
rewrite(f);
for k:=1 to N do
begin
Xk:=(k-0.1)/(power(k,3)+abs(tan(2*k)));
writeln(f, Xk);
end;
close(f);
end.