Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2017, 16:20   #1
Jenee
Пользователь
 
Регистрация: 24.02.2017
Сообщений: 20
По умолчанию Помогите нарисовать дом в Паскале!

!Нужно использовать оператор цикла для рисования одинаковых частей!
мне нужна только картинка, которая находится во 2й четверти(деление на четверти должно быть)
спасибо заранее!
Изображения
Тип файла: png картинка.png (50.2 Кб, 145 просмотров)
Jenee вне форума Ответить с цитированием
Старый 05.04.2017, 16:26   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Вы не перепутали "помогите" и "сделайте за меня"?

Покажите свои наработки, конкретные вопросы и т.п.

Или в раздел Фриланс если вы не хотите ничего делать, а ищете кого-то, кто выполнит ваши задачи за вознаграждение.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 05.04.2017, 16:36   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Jenee Посмотреть сообщение
Нужно использовать оператор цикла для рисования одинаковых частей!
Если нужно - используйте.
Что не получается?

Цитата:
Сообщение от Jenee Посмотреть сообщение
мне нужна только картинка, которая находится во 2й четверти(деление на четверти должно быть)
так все картинки во всех четвертях одинаковы
а в остальных четвертях вашего рисунка что должно быть? пусто?
оператор цикла для рисования забора нужен?


ну и последнее.
Цитата:
Сообщение от Jenee Посмотреть сообщение
нарисовать дом в Паскале!
графика в разных Паскалях очень сильно отличается.
Поэтому обязательно указывайте, какой у Вас Паскаль.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.04.2017, 17:33   #4
Jenee
Пользователь
 
Регистрация: 24.02.2017
Сообщений: 20
По умолчанию

мне не понятен оператор цикла для одинаковых частей! к примеру:
...(идёт программа)
и вот нужны необходимые одинаковые детали
я не понимаю как работать с циклами для рисования! или как это делать через процедуру?

Паскаль АBC

Всё, что есть:
Код:
uses crt,graphABC;
begin
setwindowwidth(800);
setwindowheight(600);

line(0,300,800,300);
line(400,0,400,600);

rectangle(0,0,400,300);
floodfill(2,2,clcyan);

setpencolor(clgreen);
rectangle(100,70,300,230);
floodfill(101,71,clgreen);

setpencolor(clyellow); //нужно в цикле
rectangle(120,90,160,140);
floodfill(122,99,clyellow);
setpencolor(clgreen);
line(140,90,140,160);

setpencolor(clred); 
line(100,70,200,40);
line(200,40,300,70);
floodfill(121,66,clred);
setpencolor(clblack);
line(250,55,250,35);
line(250,35,270,35);
line(270,35,270,62);
floodfill(255,40,clblack);

setpencolor(clorange); //нужно в цикле
line(0,300,0,200);
line(0,200,15,180);
line(15,180,30,200);
line(30,200,30,300);
floodfill(10,196,clorange);

end.
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Вадим Мошев; 05.04.2017 в 21:52.
Jenee вне форума Ответить с цитированием
Старый 05.04.2017, 17:50   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Код:
procedure drawWindow(x, y: Integer);
begin
........
end;

for i := 1 to 3 do
begin
    drawWindow(i * 100, y);
end;
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 05.04.2017, 17:54   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Jenee Посмотреть сообщение
Паскаль АBC
нет!
у Вас Pascal ABC.NET (он существенно отличается от Pascal ABC)

Код:
uses graphABC;
var x : integer;
begin
setwindowwidth(800);
setwindowheight(600);

line(0,300,800,300);
line(400,0,400,600);

rectangle(0,0,400,300);
floodfill(2,2,clcyan);

setpencolor(clgreen);
rectangle(100,70,300,230);
floodfill(101,71,clgreen);

setpencolor(clyellow);
rectangle(120,90,160,140);
floodfill(122,99,clyellow);
setpencolor(clgreen);
line(140,90,140,160);

setpencolor(clred); //нужно в цикле
line(100,70,200,40);
line(200,40,300,70);
floodfill(121,66,clred);
setpencolor(clblack);
line(250,55,250,35);
line(250,35,270,35);
line(270,35,270,62);
floodfill(255,40,clblack);


setpencolor(clorange); //нужно в цикле
x:=0;
while x<(400-30) do begin
  line(x,300,x,200);
  line(x,200,x+15,180);
  line(x+15,180,x+30,200);
  line(x+30,200,x+30,300);
  floodfill(x+16,202,clorange);
  floodfill(x+16,252,clorange);
  x := x + 30;
end;  

end.

Последний раз редактировалось Вадим Мошев; 05.04.2017 в 21:52.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.04.2017, 18:05   #7
Jenee
Пользователь
 
Регистрация: 24.02.2017
Сообщений: 20
По умолчанию

не работает(
либо я не то делаю
Jenee вне форума Ответить с цитированием
Старый 06.04.2017, 00:03   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Jenee Посмотреть сообщение
не работает(
что не работает?
ошибка какая?
или как?


Цитата:
Сообщение от Jenee Посмотреть сообщение
либо я не то делаю
не исключено
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.04.2017, 12:28   #9
Jenee
Пользователь
 
Регистрация: 24.02.2017
Сообщений: 20
По умолчанию

Я пыталась сделать эту часть в цикле:
setpencolor(clyellow);
rectangle(120,90,160,140);
floodfill(122,99,clyellow);
setpencolor(clgreen);
line(140,90,140,160);

но ничего не получается!!! Прошу, помогите!
Jenee вне форума Ответить с цитированием
Старый 06.04.2017, 13:43   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ладно.
пробуйте:
Код:

uses graphABC;
var i, x, y : integer;
begin
setwindowwidth(800);
setwindowheight(600);

line(0,300,800,300);
line(400,0,400,600);

SetBrushColor(clcyan);
SetBrushStyle(bsSolid);
rectangle(0,0,400,300);

setpencolor(clgreen);
SetBrushColor(clgreen);
rectangle(100,70,300,230);


// окошки
setpencolor(clyellow);
SetBrushStyle(bsSolid);
SetBrushColor(clyellow);
x:=120; y:=80;
for i:=1 to 6 do begin
  rectangle(x,y,x+40,y+50);
  setpencolor(clgreen);
  line(x+20,y,x+20,y+70);
  x:= x+60;
  if i=3 then begin
    x:=120;  
    y:=y+60;
  end; 
end;  


setpencolor(clred); 
line(100,70,200,40);
line(200,40,300,70);
floodfill(121,66,clred);
setpencolor(clblack);
line(250,55,250,35);
line(250,35,270,35);
line(270,35,270,62);
floodfill(255,40,clblack);

// забор
setpencolor(clBlack); 
x:=0;
while x<(400-14) do begin
  line(x,300,x,230);
  line(x,230,x+12,200);
  line(x+12,200,x+24,230);
  line(x+24,230,x+24,300);
  floodfill(x+10,220,clorange);
  floodfill(x+9,265,clorange);
  x := x + 24;
end;  

// сотрём выступающую часть забора
SetBrushStyle(bsSolid);
SetBrushColor(clWhite);
rectangle(400,0, 800, 300);

end.

Последний раз редактировалось Serge_Bliznykov; 06.04.2017 в 14:28.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите нарисовать (sic!) калькулятор в Паскале Benny_Krik Паскаль, Turbo Pascal, PascalABC.NET 1 13.08.2016 00:35
нарисовать в паскале линию Proskurina Паскаль, Turbo Pascal, PascalABC.NET 2 09.10.2012 00:14
нарисовать дом в Паскале Leshiy1 Помощь студентам 8 26.09.2009 15:04
нарисовать машинку в паскале Эйфория Помощь студентам 9 06.05.2009 15:55