Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

Чемпионы рейтинга экспертов в этой рассылке

Влaдимир
Статус: 9-й класс
Рейтинг: 219
∙ повысить рейтинг >>
Тимошенко Дмитрий
Статус: Студент
Рейтинг: 128
∙ повысить рейтинг >>
Spirit87
Статус: 3-й класс
Рейтинг: 27
∙ повысить рейтинг >>

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 1368
от 13.05.2009, 17:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 438, Экспертов: 47
В номере:Вопросов: 3, Ответов: 4

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>

Вопрос № 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)). Дополнительный массив не используйте.
Отправлен: 07.05.2009, 18:38
Вопрос задала: Хачатрян Гаянэ (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: hаcpaka
Здравствуйте, Хачатрян Гаянэ!
Для первой задачи - в приложении готовое решение. Чтобы найти наименьшее общее кратное необходимо сначала найти наибольший общий делитель.
Используются функции следующим образом:
наибольшее_общее_кратное := NOK(6,3);
вместо "наибольшее_общее_кратное" должно быть корректное имя переменной, естественно.
В общем - смотрите сами - код элементарен, если что непонятно - не стесняйтесь, спрашивайте.
С уважением, hacpaka
P.S. Навроде где-то в закромах и что-то похожее на вторую задачу было, так что если вспомню - выложу.

Приложение:

Ответ отправил: hаcpaka (статус: 2-й класс)
Ответ отправлен: 07.05.2009, 22:59

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 248814 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Отвечает: Бизин Михаил Анатольевич
    Здравствуйте, Хачатрян Гаянэ!
    По второй задаче:

    Приложение:

    Ответ отправил: Бизин Михаил Анатольевич (статус: 6-й класс)
    Ответ отправлен: 08.05.2009, 07:43

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 248821 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 166.760
    Плиз!!! Помогитте решить задачку. Проверить, является ли четырехугольник со сторонами a,b,c,d ромбом. Зарание спасибо.

    Приложение:

    Отправлен: 08.05.2009, 06:20
    Вопрос задал: Васильев Евгений (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 1)

    Отвечает: Spirit87
    Здравствуйте, Васильев Евгений !
    Предыдущий ответ не совсем верен. Ромб по определению четырех угольник с одинаковыми сторонами, т.е.

    Приложение:

    Ответ отправил: Spirit87 (статус: 3-й класс)
    Ответ отправлен: 08.05.2009, 08:50

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 248823 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 166.789
    Уважаемые эксперты! Горит курсовая работа а я никак не могу справиться с графикой. Помогите пожалуйста! Вот текст задания: "Дана прямоугольная область. Внутри области расположены прямые линии. Каждая линия характеризуется точкой вращения, цветом, направлением и скоростью вращения. Линия не должна выходить за пределы области. Предусмотреть добавление и удаление линий, изменение скорости и направления вращения, цвета линий без остановки вращения"...буду очень признателен за помощь...
    Отправлен: 08.05.2009, 16:17
    Вопрос задал: Puma666 (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 4)

    Отвечает: Genia007
    Здравствуйте, Puma666!
    Предлагаю свой вариант решения данной задачи.
    Вращение линий происходит относительно своего центра.
    Код:
    unit Unit1;

    interface

    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls, ExtCtrls, ComCtrls;

    type
    TForm1 = class(TForm)
    Panel1: TPanel;
    PaintBox1: TPaintBox;
    Button1: TButton;
    Timer1: TTimer;
    TrackBar1: TTrackBar;
    ColorBox1: TColorBox;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure TrackBar1Change(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;

    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 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5
    Комментарий оценки:
    Спасибо вам огромное! Ваше помощь была просто неоценима! Это какраз то что мне нужно! Еще раз спасибо огромное!


    Вы имеете возможность оценить этот выпуск рассылки.
    Нам очень важно Ваше мнение!
    Оценить этот выпуск рассылки >>

    Отправить вопрос экспертам этой рассылки

    Приложение (если необходимо):

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

    Обратите внимание!
    Вопрос будет отправлен всем экспертам данной рассылки!

    Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
    экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


    Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
    Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RusFAQ.ru, Россия, Москва.
    Авторское право: ООО "Мастер-Эксперт Про"
    Техподдержка портала, тел.: +7 (926) 535-23-31
    Хостинг: "Московский хостер"
    Поддержка: "Московский дизайнер"
    Авторские права | Реклама на портале

    ∙ Версия системы: 5.13 от 01.12.2008

    Яндекс Rambler's Top100
    RusFAQ.ru | MosHoster.ru | MosDesigner.ru
    RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

    В избранное