Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Кирпичная стена.Графика

Автор: Pacman 19.03.2009 23:32

Помогите пожалуйста,нужна программа в Паскале,которая будет рисовать кирпичную стену,длину стороны кирпича нужно вводить с клавиатуры.
Заранее спасибо.

Автор: amega 20.03.2009 0:39

один из вариантов это написать процедуру которая получает три параметра , координаты вершины примаугольника, длину и висоту, и потом в основной програме вызивать в цикле ее.

Автор: Unconnected 20.03.2009 1:39

Кирпичные стены тоже разные бываютsmile.gif Можно рисовать кирпич под кирпичом, а можно со смещением в полкирпича.. Ну если допустить, что тебе нужен первый вариант, то можно написать процедуру, входными параметрами которой будут необходимые координаты верхнего левого края кирпича и его стороны. Далее рисуем в ряд кирпич за кирпичом определённое количество раз (по ширине экрана, наверное) и переходим на следующий ряд. Координата y (которая как входной параметр процедуры) при этом увеличивается на высоту кирпича..

Автор: Айра 20.03.2009 5:34

А у меня вот такой вариант, линиями:

uses wincrt,graph;
var height,width,x,y,gd,gr,err,i: integer;
x0,y0,xN,yN: integer;
begin
gd:=detect;
gr:=VGAHi;
InitGraph(gd,gr,'');
if err <> grOk then
begin
writeln('не удалось инициализировать Graph');
exit;
end;
writeln('введите координаты верхнего левого угла стены: ');
readln(x0,y0);
writeln('введите координаты правого нижнего угла стены: ');
readln(xN,yN);
write('введите высоту кирпичика: ');
readln(height);
write('введите ширину кирпичика: ');
readln(width);
setcolor(5);
x:=x0;
y:=y0;
while y<=yN do
begin
line(x,y,xN,y);
y:=y+height;
end;
x:=x0;
y:=y0;
for i:=1 to 2 do
begin
while y<=yN do
begin
while x<=xN do
begin
line(x,y,x,y+height);
x:=x+width;
end;
y:=y+2*height;
x:=x0;
end;
x0:=x0+width div 2;
x:=x0;
y:=y0+height;
end;
readln;
closegraph;
end.

Автор: АЗАЗА 10.03.2017 15:04

почему она не работает в абс паскаль?

Автор: Федосеев Павел 10.03.2017 15:53

В PascalABC другие процедуры рисования, другой модуль графики. Почитайте справку по ABC и замените процедуры на соответствующие.

Автор: Гость 10.03.2017 16:08

вы можете подсказать как ее изменить?

Автор: Федосеев Павел 10.03.2017 16:41

Скорее нет, чем да. Я не знаком с ABC.
Вы можете сделать это самостоятельно. Т.к. рисование линий просто имеет лишь отличия в названиях.
Перечень графических примитивов TurboPascal можно посмотреть в справке http://pascal.net.ru/Index, инициализацию графики выполнить по примерам из ABC, и подключить соответствующие модули (graphABC).

Автор: how long does it take for viagra 21.12.2021 3:26

cialis prix conseille