Вопрос № 166717: Помогите пожалуйста! Нужно написать программы в Delphi: 1. Даны натуральные числа m и n. Найти их наименьшее общее кратное. 2. Транспонируйте произвольный двумерный массив (т.е. “переверните” его вокруг главной диагонали: Ановый(i,j)=Aстары...
Вопрос № 166760: Плиз!!! Помогитте решить задачку. Проверить, является ли четырехугольник со сторонами a,b,c,d ромбом. Зарание спасибо....Вопрос
№ 166789: Уважаемые эксперты! Горит курсовая работа а я никак не могу справиться с графикой. Помогите пожалуйста! Вот текст задания: "Дана прямоугольная область. Внутри области расположены прямые линии. Каждая линия характеризуется точкой вращения, цвето...
Вопрос № 166.717
Помогите пожалуйста! Нужно написать программы в Delphi: 1. Даны натуральные числа m и n. Найти их наименьшее общее кратное.
2. Транспонируйте произвольный двумерный массив (т.е. “переверните” его вокруг главной диагонали: Ановый(i,j)=Aстарый(j,i)). Дополнительный массив не используйте.
Отвечает: hаcpaka
Здравствуйте, Хачатрян Гаянэ! Для первой задачи - в приложении готовое решение. Чтобы найти наименьшее общее кратное необходимо сначала найти наибольший общий делитель. Используются функции следующим образом: наибольшее_общее_кратное := NOK(6,3); вместо "наибольшее_общее_кратное" должно быть корректное имя переменной, естественно. В общем - смотрите сами - код элементарен, если что непонятно - не стесняйтесь, спрашивайте. С уважением, hacpaka P.S. Навроде где-то в закромах
и что-то похожее на вторую задачу было, так что если вспомню - выложу.
Приложение:
Ответ отправил: hаcpaka (статус: 2-й класс)
Ответ отправлен: 07.05.2009, 22:59
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 248814 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает: Бизин Михаил Анатольевич
Здравствуйте, Хачатрян Гаянэ! По второй задаче:
Отвечает: Spirit87
Здравствуйте, Васильев Евгений ! Предыдущий ответ не совсем верен. Ромб по определению четырех угольник с одинаковыми сторонами, т.е.
Приложение:
Ответ отправил: Spirit87 (статус: 3-й класс)
Ответ отправлен: 08.05.2009, 08:50
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 248823 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 166.789
Уважаемые эксперты! Горит курсовая работа а я никак не могу справиться с графикой. Помогите пожалуйста! Вот текст задания: "Дана прямоугольная область. Внутри области расположены прямые линии. Каждая линия характеризуется точкой вращения, цветом, направлением и скоростью вращения. Линия не должна выходить за пределы области. Предусмотреть добавление и удаление линий, изменение скорости и направления вращения, цвета линий без остановки вращения"...буду очень признателен за помощь...
Отправлен: 08.05.2009, 16:17
Вопрос задал: Puma666 (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: Genia007
Здравствуйте, Puma666! Предлагаю свой вариант решения данной задачи. Вращение линий происходит относительно своего центра.
var Form1: TForm1; naprv: boolean; kolvo, s, fi: word; a: array of array of integer;
implementation
{$R *.dfm}
procedure DrawFigura(Center: TPoint; dl: word; napr: boolean); { Рисование линии Center - центр фигуры;
Pos - точка, лежащая на внешнем радиусе; }
function ArcTan2(Y, X: Extended): Extended; asm FLD Y FLD X FPATAN FWAIT end;
const Rad = Pi / 180; var a: Double; begin {начальный угол:} a := (ArcTan2(Center.y, dl - Center.x) * (180 / Pi)) + fi; {рисуем линию} a := a + 90; {увеличиваем угол} if napr then begin Form1.PaintBox1.Canvas.MoveTo((Trunc(Cos(a * Rad) *
-dl) + Center.x), (Trunc(Sin(a * Rad) * -dl) + Center.Y)); Form1.PaintBox1.Canvas.LineTo(Trunc(Cos(a * Rad) * dl) + Center.x, Trunc(Sin(a * Rad) * dl) + Center.y); end else begin Form1.PaintBox1.Canvas.MoveTo((Trunc(Sin(a * Rad) * -dl) + Center.x), (Trunc(Cos(a * Rad) * -dl) + Center.Y)); Form1.PaintBox1.Canvas.LineTo(Trunc(Sin(a * Rad) * dl) + Center.x, Trunc(Cos(a * Rad) * dl) + Center.y); end; end;
procedure TForm1.Button1Click(Sender: TObject); begin
naprv:= true; end;
procedure TForm1.Button2Click(Sender: TObject); begin naprv:= false; end;
procedure TForm1.Button3Click(Sender: TObject); begin inc(kolvo); Setlength(a, kolvo); Setlength(a[kolvo - 1], 3); a[kolvo - 1, 0]:= random(375); a[kolvo - 1, 1]:= random(255); if 187 < a[kolvo - 1, 0] then begin s:= random(375 - a[kolvo - 1, 0]); if s = 0 then s:=
374 - a[kolvo - 1, 0]; end else begin s:= random(a[kolvo - 1, 0]); if s = 0 then s:= a[kolvo - 1, 0] - 1; end; if 127 < s then begin s:= random(255 - s); if s = 0 then s:= 254 - s; end else if (s > 255 - a[kolvo - 1, 1]) then begin s:= random(255 - a[kolvo - 1, 1]); if s = 0 then s:= 254 - a[kolvo - 1, 1]; end else if s
> a[kolvo - 1, 1] then s:= a[kolvo - 1, 1] - 1; a[kolvo - 1, 2]:= s; end;
procedure TForm1.Button4Click(Sender: TObject); begin if kolvo = 1 then exit; dec(kolvo); Setlength(a, kolvo); end;
procedure TForm1.FormCreate(Sender: TObject); begin fi:= 0; naprv:= true; kolvo:= 1; randomize; Setlength(a, 1); Setlength(a[0], 3); Setlength(a[1], 3); a[0, 0]:= random(375); a
[0, 1]:= random(255); if 187 < a[0, 0] then begin s:= random(375 - a[0, 0]); if s = 0 then s:= 374 - a[0, 0]; end else begin s:= random(a[0,0]); if s = 0 then s:= a[0, 0] - 1; end; if 127 < s then begin s:= random(255 - s); if s = 0 then s:= 254 - s; end else if s > a[0, 1] then begin s:= random(a[0, 1]); if s = 0
then s:= a[0, 1] - 1; end else if s > a[0, 1] then s:= a[0, 1] - 1; a[0, 2]:= s; end;
procedure TForm1.Timer1Timer(Sender: TObject); var i: word; begin if fi = 360 then fi:= 0; PaintBox1.Repaint; PaintBox1.Canvas.Pen.Color:= colorbox1.Selected; for I := 0 to kolvo - 1 do begin DrawFigura(Point(a[i, 0], a[i, 1]), a[i, 2], naprv); end; inc(fi,
10); end;
procedure TForm1.TrackBar1Change(Sender: TObject); begin timer1.Interval:= trackbar1.Position; end;
end.
весь проект здесь --------- Помогли тебе, помоги и ты.
Ответ отправил: Genia007 (статус: Студент)
Ответ отправлен: 10.05.2009, 20:08
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 248923 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5 Комментарий оценки: Спасибо вам огромное! Ваше помощь была просто неоценима! Это какраз то что мне нужно! Еще раз спасибо огромное!
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.