Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
bagira_svs
0 / 0 / 1
Регистрация: 08.10.2012
Сообщений: 57
1

Нарисовать круги и квадраты

15.10.2012, 09:00. Просмотров 1989. Ответов 5
Метки нет (Все метки)

Построить изображение, используя оператор цикла:
0
Изображения
Тип файла: jpg рис1.jpg (5.6 Кб, 8 просмотров)
Тип файла: jpg рис2.jpg (3.4 Кб, 3 просмотров)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2012, 09:00
Ответы с готовыми решениями:

Нарисовать Круги
Люди выручите пожалуйста! Мне нужно нарисовать Круги чтоб они были на одинаковом расстояние и...

Графика в паскале. Нарисовать круги разного цвета
Построить 7 кругов разного цвета радиусом 30 пикселей. координаты центров: Х 112 140 189 54 ...

Нарисовать вложенные квадраты в цикле
Выручите пожалуйста с программой мне надо сделать Через Turbo Pascal как на рисунке только...

Нарисовать флаг, нарисовать график y=ctg x Нарисовать анимацию
Дело таково у меня сейчас практика, где я очень не успиваю сделать все свои задания... Большая...

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

5
bagira_svs
0 / 0 / 1
Регистрация: 08.10.2012
Сообщений: 57
15.10.2012, 09:46  [ТС] 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Первое изображение у меня получилась вот так (правда без цикла):
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Program Pr;
    Uses Graph;
    Var
 Dr , Reg : integer;
BEGIN
Dr:=0; Initgraph(Dr, Reg,   '');
Begin
Circle (150, 150, 30) ;
Circle (200, 150, 30) ;
Circle (250, 150, 30) ;
Circle (300, 150, 30) ;
Circle (350, 150, 30) ;
End;
Readln;
END.
Помогите со вторым изображением разобраться.
0
Kodzaev
3013 / 1901 / 1647
Регистрация: 30.04.2011
Сообщений: 3,054
15.10.2012, 10:16 3
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Первое изображение с циклом
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Uses graph;
Var
 x,i,d,r: Integer;
BEGIN
d:=Detect;
InitGraph(d,r,' ');
x:=150;
For i:=1 to 5 do
begin
  Circle(x,150,30);
  x:=x+50;
end;
Readln;
CloseGraph;
END.
1
bagira_svs
0 / 0 / 1
Регистрация: 08.10.2012
Сообщений: 57
15.10.2012, 10:25  [ТС] 4
Спасибо, помогите со вторым, пожалуйста.
0
Puporev
Модератор
58513 / 44436 / 30684
Регистрация: 18.05.2008
Сообщений: 106,453
15.10.2012, 10:28 5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Круги
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
uses graph;
var x,y,r,i:integer;
begin
initgraph(x,y,'');
r:=getmaxX div 16;{радиус круга}
x:=getmaxX div 2-3*r;{левый рруг}
y:=getmaxY div 2;{горизонталь}
for i:=1 to 5 do
 begin
  circle(x,y,r);
  x:=x+2*r-20;{смещаем круги на 2r-20}
 end;
readln
end.
Квадраты
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
uses graph;
var x,y,a,i:integer;
begin
initgraph(x,y,'');
setbkcolor(15);
a:=getmaxX div 16;{сторона квадрата}
x:=getmaxX div 2-3*a;{левый квадрат}
y:=getmaxY div 2;{горизонталь}
for i:=1 to 6 do
 begin
   setcolor(8);
   rectangle(x,y-a div 2,x+a,y+a div 2);
   if i mod 2=0 then {если четный квадрат, закращиваем}
    begin
     setfillstyle(1,8);
     floodfill(x+5,y,8);
    end;
  x:=x+a;{смещаем квадраты на а и меняем цвет}
 end;
readln
end.
1
Yurek
180 / 178 / 23
Регистрация: 29.08.2012
Сообщений: 489
15.10.2012, 11:41 6
Если усвоите общий принцип, то обе эти задачи не вызовут более вопросов.
Цикл используется для совергения однообразных повторяемых действий - в данном случае для приращения координаты расположения очередного элемента. Задача проста в том плане, что приращение постоянно по величине и зависит только от номера элемента. Уважаемый форумчанин Kodzaev фактически упростил Ваш список из 5-ти Circle до простого цикла, используя номер элемента (через индекс i) для наращивания координаты x.
Методически верно было бы давать Вам задачу с сотней-другой окружностей - это сразу отбило бы у Вас охоту множить строки Circle. Хотя на практике для 5-ти окружностей может быть эффективней и Ваш вариант. Ваше сознание должно научиться улавливать в задаче рутину, которую необходимо устранить, Вы должны, увидев условия, сразу продумать "А что будет, если элементов будет миллион, радиус их произволен, так же как и координата центра первой окружности и так далее..." "Заказчик" может постоянно менять условия задачи. Вы, как программист, должны упростить себе работу по адаптиции программы к новым условиям.
Конкрентно в этой задаче, можно было бы на основе радиуса окружности получать координаты x, y первой окружности, допуская, что она чертиться так, что её край совпадает с линиями x=0 и y=0 (возможно к величине радиуса придётся добавить 1 чтобы край окружности не ушёл за пределы - x=0, y=0). Можно было бы добавить задание шага между центрами окружностей и их количество. Кстати, можно обойтись без индекса i, используя просто наращивание координаты как отсчёт. Но если вводить в задачу задание количества элементов, то индекс поможет в огранизации цикла.
Надеюсь что-то из написанного пойдёт на пользу...
0
15.10.2012, 11:41
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2012, 11:41

Круги в квадрате
Доброго вреемени суток.Помогите сделать рисунок. Нужно нарисовать квадрат со стороной 400.Потом...

Графика (окна и круги).
Помогите,пожалуйста доделать программу. Я написал прогу, которая строит два прямоугольных окна с...

Построить круги и закрасить
дано последовательность из 40 натуральных чисел х1, у1, r1 .... x10, и y10, r 10. Каждая тройка...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.