IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Окружности на Паскале
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 8
Пол: Женский

Репутация: -  0  +


Помогите, пожалуйста, написать программу: пользователь вводит с клавиатуры число окружностей. Программа рисует данное число окружностей
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Изменить "магические константы" в параметрах Random на функции, определяющие максимально возможные координаты для установленного у тебя граф. режима. То есть, если сделать так:

   readln(n);
for i := 1 to n do
begin
R := random(90) + 10;
circle(random(getmaxx - 2*R) + R, random(getmaxy - 2*R) + R, R);
end;
, то окружности в принципе не смогут вылезти за пределы экрана: если радиус окружности = R, то координата X должна лежать в диапазоне R .. (getmaxx - R), чтобы окружность не вылезла из границ экрана (бррр... ужас, представил себе окружность, которая торчит из монитора)... Аналогично и для Y-координаты.

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

Сообщение отредактировано: IUnknown -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 8
Пол: Женский

Репутация: -  0  +


Цитата(IUnknown @ 1.06.2011 14:14) *

Изменить "магические константы" в параметрах Random на функции, определяющие максимально возможные координаты для установленного у тебя граф. режима. То есть, если сделать так:

   readln(n);
for i := 1 to n do
begin
R := random(90) + 10;
circle(random(getmaxx - 2*R) + R, random(getmaxy - 2*R) + R, R);
end;
, то окружности в принципе не смогут вылезти за пределы экрана: если радиус окружности = R, то координата X должна лежать в диапазоне R .. (getmaxx - R), чтобы окружность не вылезла из границ экрана (бррр... ужас, представил себе окружность, которая торчит из монитора)... Аналогично и для Y-координаты.

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

нет что то все равно не работает.
Вот полный текст задания:
В текстовом режиме ввести число окружностей и их радиус. Перейти в графический режим работы с драйвером EGA, что соответствует константе 3, с режимом работы EGALo, что соответствует константе 0 (на экране при таком режиме 640Х200 точек), вывести окружности на экран, меняя цвет прорисовки каждой. Окружности должны полностью располагаться на экране.
и вот что у меня написано
Program x1;
uses crt, graph;
const

var
driver, mode: integer;
x, y: integer;
r , k, i, n: integer;
begin
writeln ('VVeDITe r');
readln®;
writeln ('vvedite n ');
readln(n);
begin
driver:=3;
mode:=0;
initgraph (driver, mode, '' );
begin

randomize;
for i:=1 to n do
begin
rectangle(0,0,637,198);
setviewport (0, 0, 637, 198, clipon);

x:= random(getmaxx -2*r )+r;
y:= random(getmaxy - 2*r )+r;
setbkcolor(green);
setcolor (succ(random(16)));
circle(x, y, r);
end;
readln;
end;
end;
end.
В чем ошибка (он не все окружности на экран выводит)

Добавлено через 5 мин.
да еще они все теперь разного радиуса
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 10.09.2025 13:02
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name