Создание программного модуля «Расчет значений параметров и построение прямой призмы

Содержание

СОДЕРЖАНИЕ

1.Постановка задачи.

2.Выбор среды программирования.

3.Построение математической модели.

4.Блок-схемы алгоритмов

5.Программный код.

6. Руководство к программе

7.Использованная литература.

Постановка задачи

Ввести высоту прямой призмы, а также стороны, углы и высоту равнобокой трапеции, лежащей в основании. Вычислить неизвестные углы и стороны, площади полной и боковой поверхности, радиус вписанной окружности, если она существует.

Программа должна включать в себя следующие возможности:

Задание начальных параметров;

Расчет и просмотр значений;

Построение фигуры мгновенно и в режиме анимации;

Получение справочных сведений.

Ввести указанные в задании параметры геометрической фигуры. Вместо некоторых из них можно вводить 0, тогда размер считается неизвестным. Проверить, корректна ли введенная информация, достаточно ли введено данных. Вычислить указанные в задании параметры геометрической фигуры.

Построить изображение рассчитанной фигуры, произвести дополнительные построения описанные и вписанные окружности, высоты. Подписать основные точки. Если необходимо добавить комментарии. Построение изображения должно проводится в двух режимах: мгновенно и по точкам в режиме анимации. Предоставить пользователю выбор режима и цвет линий изображения.

Выбор среды программирования.

С появлением и развитием операционных систем Microsoft Windows (3.1, 3.11, 95, 98, 2000), пришедших на смену DOS, значение Turbo Pascal как среды программирования резко снизилось. В настоящее время эта среда практически не применяется и используется для внесения коррективов в ранее созданные и до сих пор работающие программы и базы данных и/или в низкоресурсных компьютерах устаревших моделей.

Значение самого языка Turbo Pascal, напротив, не уменьшилось, т. к. на смену вышеназванным DOS-средствам одноименного названия пришло новое, еще более мощное и более удобное средство программирования среда Delphi (Делфи или Дельфи), основой которого является по-прежнему Turbo Pascal и который выступает теперь под названием Object Pascal.

Построеие математической модели

Пусть H высота призмы, a большее основание, b меньшее, h высота трапеции, с боковая сторона, alpha угол при основании а, beta угол при основании b, r радиус вписанной окружности, S1 боковая поверхность, S2 полная поверхность.

Рассмотрение ситуаций неполноты данных.

1)Известна высота призмы, основания и высота трапеции. Тогда для определения углов при основаниях воспользуемся следующими формулами:

tg α1 = 2h/(a-b)(1)

α1 = arctg(2h/(a-b))(2)

В градусах α = 180α1/п(3)

β= 180-α (4)

2) Известны основания трапеции и угол при одном из оснований.

Находим угол при другом основании через формулу(4) либо α = 180- β (5)

Находим высоту h = (a-b)/2 (6) * tg α, где α в градусах.

Для перевода в радианы воспользуемся формулой α1=π α/180 (7)

3)если дано большее основание, высота и угол при основании, то можем определить второе основание по формуле:

b=2h/tgα1, где α1 в градусах, для перевода в радианы воспользуемся формулой (7)

4)если выполняется условие a+b=2h, то в трапецию можно вписать окружность.

Её радиус R определяется по формуле R=h/2.

Боковая сторона определяется по формуле c=h/sinα

Условиями некорректных данных будут следующие факты:

1)Введенные значения углов пи основании не равны в сумме 180

2)Введены длины оснований, высота, углы, при этом не выполняется соотношение tgα1=2h/(a-b), где α1 острый угол при основании в радианах, с учётом погрешности вычисления, т.е. tgα1-2h/(a-b)

Выдержка из текста

begin

if alfa0 then

begin

bbeta:=true;

balfa:=true;

alfa1:=pi*alfa/180;

beta:=180-alfa;

bbeta1:=true;

beta1:=pi*beta/180;

end;

if beta0{ and balfa=False} then

begin

balfa:=true;

bbeta:=true;

beta1:=pi*beta/180;

alfa:=180-beta;

balfa1:=true;

alfa1:=pi*alfa/180;

end;

end;

procedure Tform1.Control;

begin

error:=false;

balfa1:=false;

bbeta1:=false;

balfa:=false;

bbeta:=false;

ba:=false;

bb:=false;

bc:=false;

bh:=false;

bh1:=false;

br:=false;

bs1:=false;

bs2:=false;

if h0 then

bh:=true;

if h10 then

bh1:=true;

if s10 then

bs1:=true;

if s20 then

bs2:=true;

if a0 then

ba:=true;

if b0 then

bb:=true;

if c0 then

bc:=true;

if r0 then

br:=true;

radials;

if balfa and bbeta then

if (alfa+beta)180 then

begin

showmessage(‘Error 1: angles fractured.’);

error:=true;

end;

{ if balfa then begin

str:=floattostr(alfa1); check for radian translation

showmessage(str);

end; }

if balfa and ba and bb and bh then

if not(abs(tan(alfa1)-2*h/(a-b))

Список использованной литературы

1.Атанасян Л.С. Геометрия 9-11, , 1994г., «Просвещение», 400 с.

2.Фаронов В.В., «Программирование для ВУЗов» 2003 год, 640 стр.

3.Шестаков А.П., Семакин Е.Г., «Основы алгоритмизации и программирования для среднего профессионального образования»,ИЦ Академия, 400 стр.

Похожие записи