Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
 Аватар для ДимКо
4 / 4 / 2
Регистрация: 26.10.2012
Сообщений: 154

Рекурсивная процедура рисования фигур

07.01.2013, 13:44. Показов 4337. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется программа:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
uses
  graphABC;
var
  x0,y0,L: integer;
procedure Kvadrat(x0,y0,a,L: real; N: integer);
var
  x1,y1: real;
begin
  if N>0 then
  begin
    setpencolor(clTeal);  // цвет пера
    setpenwidth(3);       // толщина пера
    x1:=x0+L*cos(a);
    y1:=y0-L*sin(a);
    Line(round(x0),round(y0),round(x1),round(y1));
    Kvadrat(x1,y1,a+pi/2,L,N-1);       // функция для построения квадрата
  end
end;
begin
  setpencolor(clGreen);  // цвет пера
  setpenwidth(3);       // толщина пера
  x0:=300; y0:=300; L:=100;
  Kvadrat(x0,y0,0,L,4);  // x0, y0, угол, длина линии, число уровней
  Kvadrat(x0-25,y0-75,0,L/2,4);
  Kvadrat(x0+75,y0+25,0,L/2,4);
  Kvadrat(x0-25,y0+25,0,L/2,4);
  Kvadrat(x0+75,y0-75,0,L/2,4);
end.
Как ее можно реализовать одним вызовом процедуры Kvadrat? Т.е. мне нужно изменить саму процедуру.

Добавлено через 10 минут
В процедуре должная быть рекурсия, забыл добавить.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.01.2013, 13:44
Ответы с готовыми решениями:

Рекурсивная процедура выводит 3^n-1 звёздочек
Прошу помощи:help: Нужно написать рекурсивную процедуру, которая выводит 3^n-1 звёздочку для неотрицательного целого n.

Графика Pascal ABC: Процедура рисования треугольника
Сама процедура: procedure triangle(x1,y1,x2,y2:integer); begin line(x1,y2,x2,y2); line(x1,y2,round((x1+x2)/2),y1); ...

Рекурсия: перевод натурального числа из десятичной системы счисления в двоичную
Написать рекурсивную процедуру перевода натурального числа из десятичной системы счисления в двоичную.

2
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
07.01.2013, 14:23
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
uses graphABC;
var x,y,a: integer;
procedure Kvadrat(x,y,a,N:integer);
begin
setbrushstyle(bsClear);
setpencolor(clTeal);  // цвет пера
setpenwidth(3);       // толщина пера
rectangle(x-a,y-a,x+a,y+a);
if n>1 then
 begin
  Kvadrat(x-a,y-a,a div 2,n-1);
  Kvadrat(x+a,y-a,a div 2,n-1);
  Kvadrat(x+a,y+a,a div 2,n-1);
  Kvadrat(x-a,y+a,a div 2,n-1);
 end;
end;
begin
x:=windowwidth div 2;
y:=windowheight div 2;
a:=50;
Kvadrat(x,y,a,2);
end.
1
 Аватар для ДимКо
4 / 4 / 2
Регистрация: 26.10.2012
Сообщений: 154
08.01.2013, 14:05  [ТС]
Puporev, спасибо, я бы не сообразил))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.01.2013, 14:05
Помогаю со студенческими работами здесь

Рекурсия: формирование заданной последовательности строк
привет, помогите написать рекурсивную процедуру, формирующую последовательность строк A CCC DDDD и т.д. Всего 26 строк. у меня...

Рекурсивная процедура нахождения НОД
Это процедура нахождения НОД. Её надо сделать рекурсивной: procedure nod(m,n:integer; var a,b:integer); var x,o,e:integer; begin ...

Рекурсивная процедура нахождения факториала.
Задание Найти НОД максимального и минимального элементов массива.(есть!) Найдите факториал найденного значения НОД. (Нет) Uses...

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

Рекурсивная процедура. Перевести целое число из десятичной системы счисления в шестнадцатиричную
Написать рекурсивную процедуру, переводящую целое число из десятичной системы счисления в шестнадцатеричную


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru