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

RFpro.ru: Программирование на языке Pascal


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

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

Лучшие эксперты данной рассылки

Орловский Дмитрий
Статус: Профессор
Рейтинг: 3265
∙ повысить рейтинг »
Boriss
Статус: Академик
Рейтинг: 2587
∙ повысить рейтинг »
Абаянцев Юрий Леонидович aka Ayl
Статус: Профессионал
Рейтинг: 2207
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Pascal (Паскаль)

Номер выпуска:1150
Дата выхода:18.12.2010, 19:00
Администратор рассылки:Boriss (Академик)
Подписчиков / экспертов:188 / 173
Вопросов / ответов:1 / 1

Вопрос № 181318: Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос: Построить фигуру Лиссажу путем генерации сигналов y=sinx и y=cosx по ортогональным осям. Вычисления производить путем поперменной генерации сигналов конечно-разностным методом ...



Вопрос № 181318:

Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос: Построить фигуру Лиссажу путем генерации сигналов y=sinx и y=cosx по ортогональным осям. Вычисления производить путем поперменной генерации сигналов конечно-разностным методом в интервале изменения аргумента 0...2pi. Обеспечить ошибку относительно системных функций e=10^(-5).Вывод информации графический с текстовым контролем ошибок.
Программу выполнить на turbo pascal.

Заранее спасибо!

Отправлен: 13.12.2010, 18:43
Вопрос задал: Посетитель - 351641 (Посетитель)
Всего ответов: 1
Страница вопроса »


Отвечает Сергей Бендер (Практикант) :
Здравствуйте, Посетитель - 351641!

Ну что ж! Раз в таком виде устраивает, то вот программа с пояснениями. Отмечу лишь, что: а) это называется конечно-разностной экстраполяцией; б) вполне можно было построить конечно-разностные формулы и для различных частот по синусу и косинусу; несложно.

Код:

uses graph,crt;

const e=1e-5; {Погрешность}

var i,j:integer;
x0,y0,kx,ky:real; {Парамметры преобразования в экранные координаты}
dt,alfa,S1,S2,h1,h2:real; {Параметры фигуры и разностной схемы}
n:integer; {Разбиение временного интервала}
dS:double; {Отклонение конечно=разностного решения от точного}

begin

i:=0; j:=0;
initgraph(i,j,' ');

x0:=-1.2; {Размер выводимой координатной плоскости }
kx:=640/2.4; {по X: от -1,2 до 1,2}

y0:=-1.2; {Размер выводимой координатной плоскости }
ky:=480/2.4; {по X: от -1,2 до 1,2}

n:=1000;
dt:=2*pi/n;
alfa:=2*pi/2;

{Белым цветом выводится фигура по точным значениями}
setcolor(15);
{Начальная позиция (0;1)}
moveto(round(-x0*kx),480-round((1-y0)*ky));
for i:=1 to n do
lineto(round((sin(alfa*i*dt)-x0)*kx),480-round((cos(alfa*i*dt)-y0)*ky));


h1:=cos(alfa*dt); h2:=sin(alfa*dt);
S1:=0; S2:=1;
{Жёлтым цветом выводятся конечно-разностные значения}
setcolor(14);
moveto(round(-x0*kx),480-round((1-y0)*ky));
dS:=0;
for i:=1 to n do
begin
S1:=S1*h1 + S2*h2;
S2:=S2*h1 - S1*h2;
lineto(round((S1-x0)*kx),480-round((S2-y0)*ky ));
{Расхождение между конечно-разностным и точным значением }
dS:=sqrt(sqr(S1-sin(alfa*i*dt)) + sqr(S2-cos(alfa*i*dt)));
if dS>e
then begin
{Присваиваются точные значения}
S1:=sin(alfa*i*dt);
S2:=cos(alfa*i*dt);
{Начинается рисование с нвой позиции}
moveto(round((S1-x0)*kx),480-round((S2-y0)*ky));
end;
end;

readkey;
closegraph;
end.

Ответ отправил: Сергей Бендер (Практикант)
Ответ отправлен: 18.12.2010, 11:09
Номер ответа: 264873

Оценка ответа: 5

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


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

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

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

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

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

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

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


    © 2001-2010, Портал RFPRO.RU, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.25 от 13.12.2010

    В избранное