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

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

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

 
 Ответить  Открыть новую тему 
> Разрезать пиццу на N равных частей
сообщение
Сообщение #1


Гость






Нужно разрезать круговую пиццу заданного радиуса на n равных частей, делая прямолинейные разрезы.
Не могу понять где я ошибаюсь, и может кто то уже это реализовывал?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Привожу листинг своей программы
Код

uses Graph,crt;

var
  Gd, Gm : Integer;
  Radius : Integer;
  e,n,mx,my,i,j,a,dif : Integer;
  r:integer;

begin

  clrscr;
  writeln('vvedite n -');

  Gd := Detect;
  InitGraph(Gd, Gm, '');
  if GraphResult <> grOk then
    Halt(1);
  Readln(n);

  mx:=320;my:=240;
  Circle(mx,my,80);
  Circle(mx,my,1);

  a:=0;
  Setcolor(red);
  line(320,240,640*round((Sin(a)/(abs(Sin(a)+00000.1)))),round(320*((Sin(a) / (Cos(a)+0000000.1)))));
  a:=a+round((2*pi/n));
  line(320,240,640*round((Sin(a)/(abs(Sin(a)+00000.1)))),round(320*((Sin(a) / (Cos(a)+0000000.1)))));
  a:=a+round((2*pi/n));
  line(320,240,640*round((Sin(a)/(abs(Sin(a)+00000.1)))),round(320*((Sin(a) / (Cos(a)+0000000.1)))));
  a:=a+round((2*pi/n));
  line(320,240,640*round((Sin(a)/(abs(Sin(a)+00000.1)))),round(320*((Sin(a) / (Cos(a)+0000000.1)))));

  Readln;
  CloseGraph;
end.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Цитата(-Shurik- @ 24.05.2006 12:37)
Не могу понять где я ошибаюсь
Это - не линейный, а циклический алгоритм...
uses Graph,crt;

var
Gd, Gm : Integer;
Radius : Integer;
e,n,mx,my,i,j,a,dif : Integer;
r:integer;

begin

clrscr;
writeln('vvedite n -'); readln(n);


Gd := Detect;
InitGraph(Gd, Gm, '');
if GraphResult <> grOk then
Halt(1);

mx:=320;my:=240;
Circle(mx,my,80);
Circle(mx,my,1);

Setcolor(red);
for i := 1 to n do begin
line( mx, my, mx + trunc(80 * sin((i - 1) * (360 div n) / (180/Pi))),
my - trunc(80 * cos((i - 1) * (360 div n) / (180/Pi))) );
end;
Readln;
CloseGraph;
end.

(лишние переменные убери сам...)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Спасибо за задачу!! Очень удобная реализация
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Условия задачи изменились.. Нужно разрезать круговую пиццу на заданное количество кусков, делая n прямолинейных разрезов от края пиццы до края.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Погоди, так надо получить N кусков или N разрезов "от края до края"... Это далеко не одно и то же...

Представь N = 2... Что есть 2? 2 куска - один разрез хватит, 2 разреза - больше двух кусков...

Ты с заданием определись...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Цитата

Ты с заданием определись...

Я вчера сдал задачу уже.. Большое спасибо Volvo за поддержку!! good.gif
 К началу страницы 
+ Ответить 

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

 




- Текстовая версия 23.08.2017 22:43
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"