Расчет диаметра поддерживающего катка, в зависимости от общего количества поддерживающих катков и базы трактора
Математическая модель, алгоритмизация вычислительных процессов. Идентификаторы, разработка интерфейса пользователя. Структура программного приложения: статусная строка, создание анимации, динамически подключаемые библиотеки. Разработка справочной системы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 06.12.2013 |
Размер файла | 2,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ
БЕЛОРУССКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Курсовая работа
по дисциплине: «информатика»
Тема: Расчет диаметра поддерживающего катка, в зависимости от общего количества поддерживающих катков и базы трактора
РЕФЕРАТ
ПОДДЕРЖИВАЮЩИЙ КАТОК ГУСЕНИЧНОГО ТРАКТОРА, БАЗА ТРАКТОРА, DELPHI, СПРАВКА
Программа расчета диаметра поддерживающего катка гусеничного трактора. Расчет значения ведется в зависимости от общего количества поддерживающих катков и базы трактора. Дополнительными параметрами являются: момент сопротивления проворачиванию уплотнений, шаг гусеницы, вес единицы длины гусеницы, коэффициент трения гусеницы о ролик, коэффициент сопротивления вращению катка.
Программа разработана в среде Delphi. К программе прилагается справка.
ВВЕДЕНИЕ
В современном мире с высоким уровнем развития науки и техники идет повсеместное использование ЭВМ. С ее помощью успешно решаются технические задачи: от стадии проектирования и разработки до создания действующих образцов и их практического использования. ЭВМ позволяет проводить компьютерное моделирование и расчет, что снижает экономические, материальные и временные затраты, повышает точность и качество совершенной работы.
Целью данной работы является закрепление и развитие навыков программирования, полученных во время изучения дисциплины «Информатика», развить умение творческого решения практических инженерных задач.
Задача курсовой работы - создание законченного программного приложения прикладного технического характера, выполненного по индивидуальному заданию.
В данной работе необходимо рассчитать требуемый диаметр поддерживающего катка, в зависимости от общего количества поддерживающих катков и базы трактора. Катки являются элементом ходовой части трактора, которая должна обеспечивать поддержку верхней ветви гусеницы трактора. При этом поддерживающий каток должен иметь достаточные запас прочности, высокую износостойкость и долговечность и малую массу, быть простым и удобным в обслуживании.
1. МАТЕМАТИЧЕСКАЯ МОДЕЛЬ
Необходимо рассчитать требуемый диаметр поддерживающего катка Dp, в зависимости от общего количества поддерживающих катков z и базы трактора L.
Расчет значения ведется по формуле:
,
где Dp - требуемый диаметр поддерживающего катка, м;
z- общее количество поддерживающих катков;
L- база трактора, м;
My- момент сопротивления проворачиванию уплотнений, Нм;
tg- шаг гусеницы, м;
qg- вес единицы длины гусеницы, Н;
- коэффициент трения гусеницы о ролик;
- коэффициент сопротивления вращению катка;
Расположение поддерживающих катков на гусенице трактора показано на рисунке [1]:
Рисунок 1
Сводные данные по расчетным параметрам примем для модели гусеничного трактора «Беларус 2102», изображение которого показано на рисунке [2]:
Рисунок 2 - Трактор “Беларус 2102”.
Строение поддерживающего катка изображено на рисунке [3]:
Рисунок 3 - Строение поддерживающего катка: 1 - ступица катка, 2 - кронштейн, 3 - резинометаллическое торцовое уплотнение, 4 - корпус уплотнения, 5 - ось, 6 - резиновый бандаж, 7 - крышка
Сводные данные по расчетным параметрам представлены в таблице [1].
Примем коэффициент сопротивления вращению катка для летних условий эксплуатации, который равен 0,01...0,02.
Таблица 1 - Сводные данные по расчетным параметрам
Обозначение в формуле |
Диапазон изменения |
Примечание |
|
z |
1..10 |
Варьируемая величина |
|
L |
2..2,5 |
Варьируемая величина |
|
My |
1,5..5,5 |
Постоянная величина |
|
tg |
0,125 |
Постоянная величина |
|
qg |
100..800 |
Постоянная величина |
|
µ |
0,15 |
Постоянная величина |
|
f |
0,01..0,02 |
Постоянная величина |
2. АЛГОРИТМИЗАЦИЯ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ
Блок-схема алгоритма решения математической модели представлена на рисунке [4]:
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Рисунок 4 - Блок-схема алгоритма решения математической модели
3. ТАБЛИЦА ИДЕНТИФИКАТОРОВ
Таблица идентификаторов, используемых в программе, представлена в таблице [2]:
Таблица 2 - Идентификаторы используемые в программе
Переменная в формуле |
Обозначение в программе |
Тип данных |
Область Видимости |
Пояснение |
|
- |
zMin |
Вещественный |
Глобальная |
Минимальное количетво поддерживающих катков |
|
- |
zMax |
Вещественный |
Глобальная |
Максимальное количетво поддерживающих катков |
|
- |
LMin |
Вещественный |
Глобальная |
Начальное значение базы трактора |
|
- |
LMax |
Вещественный |
Глобальная |
Конечное значение базы трактора |
|
-M |
My |
Вещественный |
Глобальная |
Момент сопротивления проворачиванию уплотнений |
|
- |
tg |
Вещественный |
Глобальная |
Шаг гусеницы |
|
fп |
f |
Вещественный |
Глобальная |
Коэффициент сопротивления |
|
- |
v |
Целый |
Глобальная |
Количество расчётных точек |
|
_ |
u |
Целый |
Глобальная |
Текущее значение веса подрессоренных частей трактора |
|
- |
i |
Целый |
Локальная |
Параметр цикла |
|
- |
j |
Целый |
Локальная |
Параметр цикла |
|
- |
Fw |
Текстовый файл |
Локальная |
Файловая переменная для записи |
|
- |
Fr |
Текстовый файл |
Локальная |
Файловая переменная для записи |
|
- |
FrPY |
Текстовый файл |
Локальная |
Файловая переменная для записи |
4. РАЗРАБОТКА ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ
При запуске программы появляется главное окно, представленное на рисунке [5]:
Рисунок 5 - Главное окно программы
Для ввода исходных данных существует три блока: Общее количество катков, База трактора и Дополнительные параметры. Для проведения расчетов необходимо нажать кнопку Расчет. Если требуется выполнить дополнительные вычисления, то можно воспользоваться калькулятором, который вызывается нажатием кнопки Калькулятор. Для вызова справки существует кнопка Справка.
Программа содержит падающее меню (рисунок 6) и контекстное меню (рисунок 7), из которых можно выполнить основные действия с программой.
а) б) в)
Рисунок 6 - Главное падающее меню программы: а) меню файл; б) меню расчет; в) меню справка
Рисунок 7 - Контекстное меню программы
Для удобства пользователя программой существует статусная строка, в которую выводится справочная информация о любом объекте формы, к которому подводится курсор.
После выполнения расчетов результаты отображаются на новой форме в виде таблицы (рисунок 8).
Рисунок 8 - Результаты расчета
На данной форме имеются кнопки позволяющие провести постобработку полученных результатов. Можно сохранить результаты в MS Excel, MS Word. Есть возможность показать графические зависимости. Возможен вызов Справки при нажатии на соответствующую кнопку. Так же есть контекстное меню (рисунок 9), из которого можно выполнить основные действия с программой.
Рисунок 9 - Контекстное меню окна «Результаты расчета»
При нажатии на кнопку Графики загружается новая форма (рисунок 10), на которой представлены графические зависимости требуемого диаметра катка трактора: от общего количества поддерживающих катков; от базы трактора. Также предусмотрена возможность построения трехмерного графика - зависимость диаметра катка трактора при одновременном изменении сразу двух параметров: базы трактора и общего количества поддерживающих катков.
Рисунок 10 - Окно представления графических зависимостей
Если необходимо получить информацию о программном продукте, то следует выбрать пункт меню О программе на главной форме (рисунок 11).
Рисунок 11 - Окно «О программе»
На данной форме находятся краткие сведения о программе, авторе и анимация, схематически отображающая описываемую задачу.
5. СТРУКТУРА ПРОГРАММНОГО ПРИЛОЖЕНИЯ
5.1 Падающее и контекстное меню
Большинство программ содержат меню, так как именно оно дает наиболее удобный и быстрый доступ к основным функциям программы.
Существует несколько различных типов меню. В программе использовались два типа меню: падающее (см. рисунок 6) и контекстное (см. рисунок 7).
Каждый раздел меню снабжен соответствующей пиктограммой. Некоторые пункты меню соответствуют кнопкам на форме.
5.2 Статусная строка
Статусная строка представляет собой панель, отображающую полосу состояния в стиле Windows. Она создается с использованием компонента StatusBar. Используется для вывода подсказок к каждому элементу программы.
Подсказки для каждого компонента, задаваемые свойством Hint выводятся в статусную строку при наведении курсора на конкретный объект.
Применение статусной строки выгодно облегчает работу с программой, если нет желания вызывать файл справки, но требуется получить информацию об объекте.
5.3 Обработка исключительных ситуаций
Некоторые пользователи программы по своей невнимательности допускают ошибки ещё на начальном этапе работы с программой, при вводе данных. Чтобы избежать таких недоразумений в программе используется система защиты от ввода и использования некорректно введенных данных.
На первом этапе осуществляется блокирование ввода заранее неверной информации в labeledEdit. Это осуществляется путем создания двух процедур:
1. Первая процедура позволяет вводить только вещественный тип данных, т.е. блокируется ввод всех символов, кроме цифр и запятой.2. Вторая процедура позволяет вводить только целый тип данных, т.е. блокируется ввод всех символов, кроме цифр (см. Приложение, с.26-30).
На втором этапе осуществляется контроль данных при помощи обработки исключительных ситуаций. При введении неверной информации программа автоматически выдаёт сообщение об ошибке и выделяет объект, в который были введены неверные данные (см. Приложение, с с.26-30).
В случае возникновения ошибки будет выдано соответствующее сообщение, при этом будет установлен фокус в тот LabeledEdit, где находятся некорректные данные.
Необходимо учитывать, что, например, введенные данные не приводят к возникновению исключительной ситуации, но тем не менее, препятствуют нормальной работе приложения. Для исключения подобных ситуаций на третьем этапе обработки данных в программе введена дополнительная обработка корректности введенных данных (см. Приложение, с.26-30).
В случае неправильного ввода данных будет выдано соответствующее сообщение, при этом будет установлен фокус в тот LabeledEdit, где находятся некорректные данные.
5.4 Построение графических зависимостей
Для подтверждения расчетных данных в программе используется построение графиков. Если расчётные данные совпадают с результатами на графической зависимости, то можно сделать вывод, что программа написана верно, без искажения реальных фактов (см. Приложение, с.32-33).
5.5 Создание анимации
В данной курсовой работе анимация предоставляет минимальную информацию о создателе программы и схематически показывает исследуемый объект (Приложение, с.34-35).
Вызов внешнего приложения
Для уточнения полученных результатов или для каких-то предварительных расчетов можно воспользоваться системным калькулятором Windows.
В программе есть такая возможность (Приложение, с.29).
Данная процедура позволяет вызывать внешнее приложение из программного продукта, не закрывая программу.
Преимущество этой функции в том, что не надо прописывать калькулятор в программном коде, т.к. он есть в любой версии операционной системы Windows.
5.6 Динамически подключаемые библиотеки
Динамически подключаемые библиотеки (DLL - Dynamic Link Library) являются ключевым компонентом при написании любого современного приложения Windows.
Они представляют собой программные модули, содержащие процедуры и функции, данные или ресурсы, которые могут совместно использоваться несколькими различными приложениями Windows.
Одно из основных и, пожалуй, главных назначений библиотек DLL - позволить загружать процедуры и функции в память только в случае необходимости во время выполнения приложения, а не компилировать их в само приложение и таким образом загружать в память всякий раз при запуске, независимо от того понадобятся они либо нет.
Кроме того, несколько приложений могут использовать одни и те же процедуры и функции, хранящиеся в DLL, одновременно.
И самое главное, библиотеки DLL являются универсальными относительно языка программирования. Текст библиотеки представлен в приложении, с.35.
6. РАЗРАБОТКА СПРАВОЧНОЙ СИСТЕМЫ
Файл справочной системы был создан при помощи Help&Manual версии 5.
Итоговый файл справки и файл содержания располагаются в подпапке Hlp папки с программой. Вызвать файл справки можно, нажав клавишу F1, соответствующую кнопку на форме либо соответствующий пункт в падающем и контекстном меню.
Для каждой формы есть своя страница файла справки.
На каждом диалоговом окне есть кнопка Справка, на которой пишется программный текст вызова справки конкретного раздела, который представлен в приложении, с.33.
Разработанная справочная система представлена на рисунках, приведенных ниже (рисунок 12,13,14.15,16):
Рисунок 12 - Справка
Рисунок 13 - Справка «О программе»
Рисунок 14 - Справка «Главная форма»
Рисунок 15 - Справка «Форма с результатами расчетов»
Рисунок 16 - Справка «Форма с графическими зависимостями»
7. РАСЧЁТ КОНТРОЛЬНОГО ПРИМЕРА
Исходные данные для расчета:
Трактор «Беларус 2102»
- момент сопротивления проворачиванию уплотнений
(=3.5 Н*м);
- шаг гусеницы; (0,125 м);
z- число поддерживающих катков (на одной стороне) (z=1-5);
- вес единицы длины гусеницы(100 H);
L - база трактора; (2,1-2,5 м)
µ - коэффициент трения гусеницы о ролик (µ = 0,15);
f - коэффициент сопротивлению вращению катка (f =0,02).
Таблица 3 - Результаты требуемого диаметра катка, м
L\z |
1.00 |
2.00 |
3.00 |
4.00 |
5.00 |
|
2.10 м |
0.0801 |
0.0962 |
0.1122 |
0.1282 |
0.1442 |
|
2.14 м |
0.0785 |
0.0942 |
0.1099 |
0.1255 |
0.1412 |
|
2.19 м |
0.0769 |
0.0922 |
0.1076 |
0.1230 |
0.1384 |
|
2.23 м |
0.0753 |
0.0904 |
0.1055 |
0.1206 |
0.1356 |
|
2.28 м |
0.0739 |
0.0886 |
0.1034 |
0.1182 |
0.1330 |
|
2.32 м |
0.0725 |
0.0870 |
0.1014 |
0.1159 |
0.1304 |
|
2.37 м |
0.0711 |
0.0853 |
0.0995 |
0.1138 |
0.1280 |
|
2.41 м |
0.0698 |
0.0837 |
0.0977 |
0.1117 |
0.1256 |
|
2.46 м |
0.0685 |
0.0822 |
0.0959 |
0.1096 |
0.1233 |
|
2.50 м |
0.0673 |
0.0808 |
0.0942 |
0.1077 |
0.1212 |
Рисунок 17 - Зависимость требуемого диаметра катка от базы трактора
Рисунок 18 - Зависимость требуемого диаметра катка от общего количества катков
Рисунок 19 -Трехмерная зависимость
идентификатор алгоритмизация библиотека интерфейс
Таким образом, был проведен расчет диаметра поддерживающего катка гусеничного трактора в зависимости от общего количества поддерживающих катков и базы трактора. Результаты были представлены в виде таблицы и графиков.
Проведенный расчет подтверждает возможность использования данного программного продукта для решения поставленной задачи.
ЗАКЛЮЧЕНИЕ
В результате проделанной работы было получено законченное программное приложение технического характера, с помощью которого можно рассчитать требуемый диаметр поддерживающего катка трактора.
Данную программу можно в дальнейшем использовать при проектировании поддерживающих катков. Меняя параметры трактора, можно подобрать наиболее подходящий под данную модель трактора поддерживающий каток или найти компромиссное решение.
Был произведен расчет диаметра поддерживающего катка гусеничного трактора БЕЛАРУС 2102, который прямо пропорционально увеличивается с увеличением количества поддерживающих катков от 1 до 5 и уменьшается с увеличением базы трактора от 2,1м до 2,5м. При количестве поддерживающих катков равному 3 и базе трактора равной 2,1м получаем диаметр поддерживающего катка равный 0,1122м, что подтверждает возможность прикладного использования программы.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Тракторы. Проектирование, конструирование и расчет / Под общ. ред. И.П. Ксеневича. - М.: Машиностроение, 1991. - 418 с.
2. Барский И.Б. Конструирование и расчет тракторов. Третье издание. - М.: Машиностроение, 1980. - 367 с.
3. Методическое пособие по выполнению курсовой работы по дисциплине «Информатика» для студентов специальностей «Тракторостроение», «Многоцелевые гусеничные и колесные машины», «Городской электрический транспорт». В.В. Равино, Ю.Е. Атаманов
ПРИЛОЖЕНИЕ
Текст программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, Buttons, Menus, ExtCtrls ,ComObj, Math;
type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
LabeledEdit1: TLabeledEdit;
LabeledEdit2: TLabeledEdit;
LabeledEdit3: TLabeledEdit;
LabeledEdit4: TLabeledEdit;
LabeledEdit5: TLabeledEdit;
LabeledEdit6: TLabeledEdit;
LabeledEdit7: TLabeledEdit;
LabeledEdit8: TLabeledEdit;
LabeledEdit9: TLabeledEdit;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
PopupMenu1: TPopupMenu;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
StatusBar1: TStatusBar;
N14: TMenuItem;
LabeledEdit10: TLabeledEdit;
LabeledEdit11: TLabeledEdit;
Label3: TLabel;
Label1: TLabel;
PopupMenu2: TPopupMenu;
N13: TMenuItem;
N15: TMenuItem;
BitBtn5: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure ShowHint(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure N14Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure N12Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
zMin,zMax,LMin,LMax,My,tg,qg,m,f:Real;
v,u:Integer;
Fr,Fw,FrPY:TextFile;
implementation
uses Unit2, Unit4;
{$R *.dfm}
Type massive1=array[1..100] of real;
Type massive2=array[1..100,1..100] of real;
procedure Diametr(zMin,zMax,LMin,LMax,My,tg,qg,m,f:real;v,u:integer;var Dp,DpZ,DpL:massive2;var DpVer,DpGor,zMass,LMass:massive1); external
'DLL\Traktor.dll';
procedure TForm1.FormCreate(Sender: TObject);
begin
BorderIcons:=BorderIcons-
[biSystemMenu];
DecimalSeparator:='.';
Application.OnHint:=ShowHint;
AssignFile(Fr, 'Данные.txt');
Reset(Fr);
ReadLn(Fr, zMin);
ReadLn(Fr, zMax);
ReadLn(Fr, v);
ReadLn(Fr, LMin);
ReadLn(Fr, LMax);
ReadLn(Fr, u);
ReadLn(Fr, My);
ReadLn(Fr, tg);
ReadLn(Fr, qg);
ReadLn(Fr, m);
ReadLn(Fr, f);
CloseFile(Fr);
Form1.LabeledEdit1.Text:=FloatToStr(zMin);
Form1.LabeledEdit2.Text:=FloatToStr(zMax);
Form1.LabeledEdit3.Text:=IntToStr(v);
Form1.LabeledEdit4.Text:=FloatToStr(LMin);
Form1.LabeledEdit5.Text:=FloatToStr(LMax);
Form1.LabeledEdit6.Text:=IntToStr(u);
Form1.LabeledEdit7.Text:=FloatToStr(My);
Form1.LabeledEdit8.Text:=FloatToStr(tg);
Form1.LabeledEdit9.Text:=FloatToStr(qg);
Form1.LabeledEdit10.Text:=FloatToStr(m);
Form1.LabeledEdit11.Text:=FloatToStr(f);
end;
procedure TForm1.ShowHint(Sender: TObject);
begin
Form1.StatusBar1.SimpleText:=Application.Hint;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var Dp,DpZ,DpL:massive2;
DpVer,DpGor,zMass,LMass:massive1;
i,j:Integer;
begin
try
zMin:=StrToFloat(Form1.LabeledEdit1.Text);
except
on EConvertError Do
begin
MessageDlg('Неправильно введено начальное значение количества катков',
mtWarning,[mbOK],0);
Form1.LabeledEdit1.SetFocus;
Exit;
end;
end;
try
zMax:=StrToFloat(Form1.LabeledEdit2.Text);
except
on EConvertError Do
begin
MessageDlg('Неправильно введено конечное значение количества катков',
mtWarning,[mbOK],0);
Form1.LabeledEdit2.SetFocus;
Exit;
end;
end;
try
v:=StrToInt(Form1.LabeledEdit3.Text);
except
on EConvertError Do
begin
MessageDlg('Неправильно введено количество расчётных точек',
mtWarning,[mbOK],0);
Form1.LabeledEdit3.SetFocus;
Exit;
end;
end;
try
LMin:=StrToFloat(Form1.LabeledEdit4.Text);
except
on EConvertError Do
begin
MessageDlg('Неправильно введено начальное значение базы трактора',
mtWarning,[mbOK],0);
Form1.LabeledEdit4.SetFocus;
Exit;
end;
end;
try
LMax:=StrToFloat(Form1.LabeledEdit5.Text);
except
on EConvertError Do
begin
MessageDlg('Неправильно конечное конечное значение базы трактора',
mtWarning,[mbOK],0);
Form1.LabeledEdit5.SetFocus;
Exit;
end;
end;
try
u:=StrToInt(Form1.LabeledEdit6.Text);
except
on EConvertError Do
begin
MessageDlg('Неправильно введено количество расчётных точек',
mtWarning,[mbOK],0);
Form1.LabeledEdit6.SetFocus;
Exit;
end;
end;
try
My:=StrToFloat(Form1.LabeledEdit7.Text);
except
on EConvertError Do
begin
MessageDlg('Неправильно введено значение момента сопротивления',
mtWarning,[mbOK],0);
Form1.LabeledEdit7.SetFocus;
Exit;
end;
end;
try
tg:=StrToFloat(Form1.LabeledEdit8.Text);
except
on EConvertError Do
begin
MessageDlg('Неправильно введено значение шага гусеницы',
mtWarning,[mbOK],0);
Form1.LabeledEdit8.SetFocus;
Exit;
end;
end;
try
qg:=StrToFloat(Form1.LabeledEdit9.Text);
except
on EConvertError Do
begin
MessageDlg('Неправильно введено значение веса гусеницы',
mtWarning,[mbOK],0);
Form1.LabeledEdit9.SetFocus;
Exit;
end;
end;
try
m:=StrToFloat(Form1.LabeledEdit10.Text);
except
on EConvertError Do
begin
MessageDlg('Неправильно введено значение коэффициента трения',
mtWarning,[mbOK],0);
Form1.LabeledEdit10.SetFocus;
Exit;
end;
end;
try
f:=StrToFloat(Form1.LabeledEdit11.Text);
except
on EConvertError Do
begin
MessageDlg('Неправильно введено значение коэффициента сопротивления',
mtWarning,[mbOK],0);
Form1.LabeledEdit11.SetFocus;
Exit;
end;
end;
if (zMin<1) or (zMin>9) then
begin
MessageDlg('Неправильно введено начальное значение количества катков',
mtWarning,[mbOK],0);
Form1.LabeledEdit1.SetFocus;
Exit;
end;
if (zMax<2) or (zMax>10) then
begin
MessageDlg('Неправильно введено конечное значение количества катков',
mtWarning,[mbOK],0);
Form1.LabeledEdit2.SetFocus;
Exit;
end;
if (LMin<2) then
begin
MessageDlg('Неправильно введено начальное значение базы трактора',
mtWarning,[mbOK],0);
Form1.LabeledEdit4.SetFocus;
Exit;
end;
if (LMax<2.1) or (LMax>2.5) then
begin
MessageDlg('Неправильно конечное конечное значение базы трактора',
mtWarning,[mbOK],0);
Form1.LabeledEdit5.SetFocus;
Exit;
end;
if (My<1.5) or (My>5.5) then
begin
MessageDlg('Неправильно введено значение момента сопротивления',
mtWarning,[mbOK],0);
Form1.LabeledEdit7.SetFocus;
Exit;
end;
if (tg<0.124) or (tg>0.126) then
begin
MessageDlg('Неправильно введено значение шага гусеницы',
mtWarning,[mbOK],0);
Form1.LabeledEdit8.SetFocus;
Exit;
end;
if (qg<50) or (qg>800) then
begin
MessageDlg('Неправильно введено значение веса гусеницу',
mtWarning,[mbOK],0);
Form1.LabeledEdit9.SetFocus;
Exit;
end;
if (m<0.14) or (m>0.16) then
begin
MessageDlg('Неправильно введено значение коэффициента трения',
mtWarning,[mbOK],0);
Form1.LabeledEdit10.SetFocus;
Exit;
end;
if (f<0.01) or (f>0.03) then
begin
MessageDlg('Неправильно введено значение коэффициента сопротивления',
mtWarning,[mbOK],0);
Form1.LabeledEdit11.SetFocus;
Exit;
end;
if (v<1) or (v>1000000) then
begin
MessageDlg('количество расчётных точек',
mtWarning,[mbOK],0);
Form1.LabeledEdit3.SetFocus;
Exit;
end;
if (u<1) or (u>10000000) then
begin
MessageDlg('количество расчётных точек',
mtWarning,[mbOK],0);
Form1.LabeledEdit6.SetFocus;
Exit;
end;
if m=f then
begin
MessageDlg('Неправильно введены данные',mtWarning,[mbOK],0);
Form1.LabeledEdit10.SetFocus;
Form1.LabeledEdit11.SetFocus;
Exit;
end;
Diametr(zMin,zMax,LMin,LMax,My,tg,qg,m,f,v,u,Dp,DpZ,DpL,DpVer,DpGor,zMass,LMass);
Form2.StringGrid1.ColCount:=v+1;
Form2.StringGrid1.RowCount:=u+1;
for i:=1 to v do
begin
for j:=1 to u do
begin
Form2.StringGrid1.Cells[i,j]:=FloatToStrF(Dp[i,j],ffFixed,8,4);
Form2.StringGrid1.Cells[i,0]:=FloatToStrF(DpVer[i],ffFixed,3,2);
Form2.StringGrid1.Cells[0,j]:=FloatToStrF(DpGor[j],ffFixed,3,2)+' м';
end;
end;
Form2.ShowModal;
end;
procedure TForm1.N14Click(Sender: TObject);
begin
AssignFile(FrPY, 'По умолчанию.txt');
begin
Reset(FrPY);
ReadLn(FrPY,zMin);
ReadLn(FrPY,zMax);
ReadLn(FrPY,v);
ReadLn(FrPY,LMin);
ReadLn(FrPY,LMax);
ReadLn(FrPY,u);
ReadLn(FrPY,My);
ReadLn(FrPY,tg);
ReadLn(FrPY,qg);
ReadLn(FrPY,m);
ReadLn(FrPY,f);
CloseFile(FrPY);
Form1.LabeledEdit1.Text:=FloatToStr(zMin);
Form1.LabeledEdit2.Text:=FloatToStr(zMax);
Form1.LabeledEdit3.Text:=IntToStr(v);
Form1.LabeledEdit4.Text:=FloatToStr(LMin);
Form1.LabeledEdit5.Text:=FloatToStr(LMax);
Form1.LabeledEdit6.Text:=IntToStr(u);
Form1.LabeledEdit7.Text:=FloatToStr(My);
Form1.LabeledEdit8.Text:=FloatToStr(tg);
Form1.LabeledEdit9.Text:=FloatToStr(qg);
Form1.LabeledEdit10.Text:=FloatToStr(m);
Form1.LabeledEdit11.Text:=FloatToStr(f);
end;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
WinExec ('Calc\calc.exe', SW_RESTORE);
end;
procedure TForm1.N6Click(Sender: TObject);
begin
Form1.BitBtn2.Click;
end;
procedure TForm1.N10Click(Sender: TObject);
begin
Form1.BitBtn2.Click;
end;
procedure TForm1.BitBtn4Click(Sender: TObject);
begin
try
zMin:=StrToFloat(Form1.LabeledEdit1.Text);
except
on EConvertError Do
begin
MessageDlg('Некорректно введены данные',
mtWarning,[mbOK],0);
Form1.LabeledEdit1.SetFocus;
Exit;
end;
end;
try
zMax:=StrToFloat(Form1.LabeledEdit2.Text);
except
on EConvertError Do
begin
MessageDlg('Некорректно введены данные',
mtWarning,[mbOK],0);
Form1.LabeledEdit2.SetFocus;
Exit;
end;
end;
try
v:=StrToInt(Form1.LabeledEdit3.Text);
except
on EConvertError Do
begin
MessageDlg('Некорректно введены данные',
mtWarning,[mbOK],0);
Form1.LabeledEdit3.SetFocus;
Exit;
end;
end;
try
LMin:=StrToFloat(Form1.LabeledEdit4.Text);
except
on EConvertError Do
begin
MessageDlg('Некорректно введены данные',
mtWarning,[mbOK],0);
Form1.LabeledEdit4.SetFocus;
Exit;
end;
end;
try
LMax:=StrToFloat(Form1.LabeledEdit5.Text);
except
on EConvertError Do
begin
MessageDlg('Некорректно введены данные',
mtWarning,[mbOK],0);
Form1.LabeledEdit5.SetFocus;
Exit;
end;
end;
try
u:=StrToInt(Form1.LabeledEdit6.Text);
except
on EConvertError Do
begin
MessageDlg('Некорректно введены данные',
mtWarning,[mbOK],0);
Form1.LabeledEdit6.SetFocus;
Exit;
end;
end;
try
My:=StrToFloat(Form1.LabeledEdit7.Text);
except
on EConvertError Do
begin
MessageDlg('Некорректно введены данные',
mtWarning,[mbOK],0);
Form1.LabeledEdit7.SetFocus;
Exit;
end;
end;
try
tg:=StrToFloat(Form1.LabeledEdit8.Text);
except
on EConvertError Do
begin
MessageDlg('Некорректно введены данные',
mtWarning,[mbOK],0);
Form1.LabeledEdit8.SetFocus;
Exit;
end;
end;
try
qg:=StrToFloat(Form1.LabeledEdit9.Text);
except
on EConvertError Do
begin
MessageDlg('Некорректно введены данные',
mtWarning,[mbOK],0);
Form1.LabeledEdit9.SetFocus;
Exit;
end;
end;
try
m:=StrToFloat(Form1.LabeledEdit9.Text);
except
on EConvertError Do
begin
MessageDlg('Некорректно введены данные',
mtWarning,[mbOK],0);
Form1.LabeledEdit9.SetFocus;
Exit;
end;
end;
try
f:=StrToFloat(Form1.LabeledEdit9.Text);
except
on EConvertError Do
begin
MessageDlg('Некорректно введены данные',
mtWarning,[mbOK],0);
Form1.LabeledEdit9.SetFocus;
Exit;
end;
end;
AssignFile(Fw, 'Данные.txt');
ReWrite(Fw);
WriteLn(Fw,StrToFloat(Form1.LabeledEdit1.Text));
WriteLn(Fw,StrToFloat(Form1.LabeledEdit2.Text));
WriteLn(Fw,StrToInt(Form1.LabeledEdit3.Text));
WriteLn(Fw,StrToFloat(Form1.LabeledEdit4.Text));
WriteLn(Fw,StrToFloat(Form1.LabeledEdit5.Text));
WriteLn(Fw,StrToInt(Form1.LabeledEdit6.Text));
WriteLn(Fw,StrToFloat(Form1.LabeledEdit7.Text));
WriteLn(Fw,StrToFloat(Form1.LabeledEdit8.Text));
WriteLn(Fw,StrToFloat(Form1.LabeledEdit9.Text));
WriteLn(Fw,StrToFloat(Form1.LabeledEdit10.Text));
WriteLn(Fw,StrToFloat(Form1.LabeledEdit11.Text));
CloseFile(Fw);
Close;
end;
procedure TForm1.N4Click(Sender: TObject);
begin
Form1.BitBtn4.Click;
end;
procedure TForm1.N9Click(Sender: TObject);
begin
Form1.BitBtn1.Click;
end;
procedure TForm1.N5Click(Sender: TObject);
begin
Form1.BitBtn1.Click;
end;
procedure TForm1.N13Click(Sender: TObject);
begin
Form1.N14.Click;
end;
procedure TForm1.N12Click(Sender: TObject);
begin
Form1.BitBtn4.Click;
end;
procedure TForm1.N8Click(Sender: TObject);
begin
Form4.ShowModal;
end;
procedure TForm1.BitBtn5Click(Sender: TObject);
begin
Form4.ShowModal;
end;
procedure TForm1.N7Click(Sender: TObject);
begin
WinHelp(Handle,'Help.hlp',sw_restore,1);
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
WinHelp(Handle,'Help.hlp',sw_restore,2);
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Grids ,ComObj, Menus, ComCtrls, Math;
type
TForm2 = class(TForm)
GroupBox1: TGroupBox;
StringGrid1: TStringGrid;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn6: TBitBtn;
SaveDialog1: TSaveDialog;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
MSWord1: TMenuItem;
MSExcel1: TMenuItem;
N4: TMenuItem;
PrintDialog1: TPrintDialog;
Label1: TLabel;
SaveDialog2: TSaveDialog;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure MSWord1Click(Sender: TObject);
procedure MSExcel1Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
zMin,zMax,LMin,LMax,My,tg,qg,m,f:Real;
v,u:Integer;
Fr,Fw,FrPY:TextFile;
implementation
uses Unit1, Unit3;
{$R *.dfm}
Type massive1=array[1..100] of real;
Type massive2=array[1..100,1..100] of real;
procedure Diametr(zMin,zMax,LMin,LMax,My,tg,qg,m,f:real;v,u:integer;var Dp,DpZ,DpL:massive2;var DpVer,DpGor,zMass,LMass:massive1); external
'DLL\Traktor.dll';
procedure TForm2.BitBtn1Click(Sender: TObject);
begin
Close;
end;
procedure TForm2.BitBtn4Click(Sender: TObject);
var i,j:integer;
Dp,DpZ,DpL:massive2;
DpVer,DpGor,LMass,zMass:massive1;
begin
zMin:=StrToFloat(Form1.LabeledEdit1.Text);
zMax:=StrToFloat(Form1.LabeledEdit2.Text);
v:=50;
LMin:=StrToFloat(Form1.LabeledEdit4.Text);
LMax:=StrToFloat(Form1.LabeledEdit5.Text);
u:=50;
My:=StrToFloat(Form1.LabeledEdit7.Text);
tg:=StrToFloat(Form1.LabeledEdit8.Text);
qg:=StrToFloat(Form1.LabeledEdit9.Text);
m:=StrToFloat(Form1.LabeledEdit10.Text);
f:=StrToFloat(Form1.LabeledEdit11.Text);
Diametr(zMin,zMax,LMin,LMax,My,tg,qg,m,f,v,u,Dp,DpZ,DpL,DpVer,DpGor,zMass,LMass);
for i:=1 to v do
begin
for j:=1 to u do
begin
Form3.Series7.AddXYZ(DpVer[i],Dp[i,j],DpGor[j]);
Form3.Series4.AddXY(DpVer[i],DpL[i,1]);
Form3.Series5.AddXY(DpVer[i],DpL[i,2]);
Form3.Series6.AddXY(DpVer[i],DpL[i,3]);
Form3.Series1.AddXY(DpGor[j],DpZ[1,j]);
Form3.Series2.AddXY(DpGor[j],DpZ[2,j]);
Form3.Series3.AddXY(DpGor[j],DpZ[3,j]);
end;
end;
Form3.Series1.Title:='Знач. кол-ва катков: '+FloatToStr(zMass[1]);
Form3.Series2.Title:='Знач. кол-ва катков: '+FloatToStr(zMass[2]);
Form3.Series3.Title:='Знач. кол-ва катков: '+FloatToStr(zMass[3]);
Form3.Series4.Title:='Знач. базы трактора: '+FloatToStr(LMass[1])+' м';
Form3.Series5.Title:='Знач. базы трактора: '+FloatToStr(LMass[2])+' м';
Form3.Series6.Title:='Знач. базы трактора: '+FloatToStr(LMass[3])+' м';
Form3.ShowModal;
end;
procedure TForm2.N1Click(Sender: TObject);
begin
Form2.BitBtn1.Click;
end;
procedure TForm2.N2Click(Sender: TObject);
begin
Form2.BitBtn4.Click;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
BorderIcons:=BorderIcons-
[biSystemMenu];
with StringGrid1 do
begin
Cells[0,0]:='L\z'
end;
end;
procedure TForm2.BitBtn2Click(Sender: TObject);
var WordApp,NewDoc,WordTable:OLEVariant;
iRows,iCols,iGridRows,jGridCols:integer;
begin
if Form2.SaveDialog1.Execute=false then exit;
try
WordApp:=CreateOleObject('Word.Application');
except
Exit
end;
NewDoc:=WordApp.Documents.Add;
iCols:=Stringgrid1.ColCount;
iRows:=Stringgrid1.RowCount;
WordTable:=NewDoc.Tables.Add(WordApp.Selection.Range,iRows,iCols);
WordTable.Range.Font.Size:=8;
for iGridRows:=1 to iRows do
for jGridCols:=1 to iCols do
WordTable.Cell(iGridRows,jGridCols).Range.Text:=Form2.Stringgrid1.Cells[jGridCols-1,iGridRows-1];
WordApp.ActiveDocument.SaveAs(Form2.SaveDialog1.FileName);
WordApp.Quit;
WordApp:=Unassigned;
NewDoc:=Unassigned;
WordTable:=Unassigned;
end;
procedure TForm2.BitBtn3Click(Sender: TObject);
var XLApp,sheet,colum:variant;
i,j:integer;
begin
if Form2.SaveDialog2.Execute=false then exit;
try
XLApp:=CreateOleObject('Excel.Application');
except
Exit
end;
XLApp.Workbooks.Add(-4167);
XLApp.Workbooks[1].WorkSheets[1].Name:='Результат';
Colum:=XLApp.Workbooks[1].WorkSheets['Результат'].Columns;
v:=StrToInt(Form1.LabeledEdit3.Text);
u:=StrToInt(Form1.LabeledEdit6.Text);
for i:=1 to v+1 do
Colum:=XLApp.Workbooks[1].WorkSheets['Результат'].Rows;
Colum.columns[1].Font.Bold:=true;
Colum.Rows[1].Font.Bold:=true;
Colum.Rows[1].Font.italic:=true;
Colum.Rows[2].Font.Bold:=true;
Sheet:=XLApp.Workbooks[1].WorkSheets['Результат'];
for i:=0 to v do
for j:=0 to u do
sheet.Cells[j+2,i+1]:=Form2.Stringgrid1.Cells[i,j];
sheet.Cells[1,2]:='Требуемый диаметр поддерживающего катка, м.';
XLApp.ActiveWorkbook.SaveAs(Form2.SaveDialog2.FileName);
XLApp.Quit;
end;
procedure TForm2.MSWord1Click(Sender: TObject);
begin
Form2.BitBtn2.Click;
end;
procedure TForm2.MSExcel1Click(Sender: TObject);
begin
Form2.BitBtn3.Click;
end;
procedure TForm2.BitBtn6Click(Sender: TObject);
begin
WinHelp(Handle,'Help.hlp',sw_restore,3);
end;
end.
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, TeeSurfa, TeEngine, Series, ExtCtrls,
TeeProcs, Chart, ComCtrls, Menus, ComObj, TeeTools, TeeComma;
type
TForm3 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
Chart3: TChart;
Series7: TSurfaceSeries;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
Chart1: TChart;
Series1: TLineSeries;
Series2: TLineSeries;
Series3: TLineSeries;
Chart2: TChart;
Series4: TLineSeries;
Series5: TLineSeries;
Series6: TLineSeries;
ChartTool1: TRotateTool;
TeeCommander1: TTeeCommander;
TeeCommander2: TTeeCommander;
TeeCommander3: TTeeCommander;
procedure BitBtn1Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm3.BitBtn1Click(Sender: TObject);
begin
Form3.Series1.Clear;
Form3.Series2.Clear;
Form3.Series3.Clear;
Form3.Series4.Clear;
Form3.Series5.Clear;
Form3.Series6.Clear;
Form3.Series7.Clear;
Close;
end;
procedure TForm3.N1Click(Sender: TObject);
begin
Form3.BitBtn1.Click;
end;
procedure TForm3.FormCreate(Sender: TObject);
begin
BorderIcons:=BorderIcons-
[biSystemMenu];
end;
procedure TForm3.BitBtn2Click(Sender: TObject);
begin
WinHelp(Handle,'Help.hlp',sw_restore,4);
end;
end.
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, Math, Menus;
type
TForm4 = class(TForm)
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Image1: TImage;
Timer1: TTimer;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
procedure BitBtn1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ShowHint(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
uses Unit1;
Const
R1=40;
R2=30;
R3=6;
VD=150;
D=80;
R=140;
var a,XN,XN1,YN,YN1,f:variant;
Procedure Koleso;
begin
with Form4.Image1.Canvas do
Begin
ellipse(f-2*R1-R,VD,f-R,VD-2*R1);
ellipse(f+D-R,VD,2*R1+f+D-R,VD-2*R1);
ellipse(f+30-R,VD-2*R1+20,f+50-R,VD-2*R1);
rectangle(f-R1-R,VD+1,2*R1+f-R1+D-R,VD-1);
rectangle(f-R1-R,VD-2*R1,2*R1+f-R1+D-R,VD+2-2*R1);
end;
end;
Procedure clear;
begin
Form4.Image1.canvas.Rectangle(0,0,Form4.Image1.Width,Form4.Image1.Height);
end;
Procedure road;
Begin
with Form4.image1.Canvas do
Begin
pen.Width:=4;
moveto(0,VD+3);
lineto(Form4.Image1.Width,VD+3);
pen.Width:=2;
end;
end;
{$R *.dfm}
procedure TForm4.BitBtn1Click(Sender: TObject);
begin
Close;
end;
procedure TForm4.Timer1Timer(Sender: TObject);
begin
clear;
road;
Koleso;
XN:=R2*cos(f*Pi/180);
YN:=R2*sin(f*Pi/180);
YN1:=R3*sin(a*Pi/180);
XN1:=R3*cos(a*Pi/180);
a:=a+30;
f:=f+10;
if f=1200 then f:=0;
end;
procedure TForm4.FormCreate(Sender: TObject);
begin
Application.OnHint:=ShowHint;
f:=0;
end;
procedure TForm4.ShowHint(Sender: TObject);
begin
Form1.StatusBar1.SimpleText:=Application.Hint;
end;
procedure TForm4.BitBtn2Click(Sender: TObject);
begin
WinHelp(Handle,'Help.hlp',sw_restore,5);
end;
procedure TForm4.N1Click(Sender: TObject);
begin
BitBtn1.Click;
end;
procedure TForm4.N2Click(Sender: TObject);
begin
BitBtn2.Click;
end;
end.
library Traktor; /DLL библиотека
uses
SysUtils,
Classes;
Type massive1=array[1..100] of real;
Type massive2=array[1..100,1..100] of real;
procedure Diametr(zMin,zMax,LMin,LMax,My,tg,qg,m,f:real;v,u:integer;var Dp,DpZ,DpL:massive2;var DpVer,DpGor,zMass,LMass:massive1);
var dz,dL,z,L,dz1,dL1:real;
i,j:integer;
begin
dz:=(zMax-zMin)/(v-1);
dL:=(LMax-LMin)/(u-1);
z:=zMin;
for i:=1 to v do
begin
DpVer[i]:=z;
L:=LMin;
for j:=1 to u do
begin
DpGor[j]:=L;
Dp[i,j]:=(2*My*tg*(2+0.5*z))/(qg*L*(m-f));
L:=L+dL;
end;
z:=z+dz;
end;
dz1:=(zMax-zMin)/2;
z:=zMin;
for i:=1 to 3 do
begin
L:=LMin;
for j:=1 to u do
begin
zMass[i]:=z;
DpZ[i,j]:=(2*My*tg*(2+0.5*z))/(qg*L*(m-f));
L:=L+dL;
end;
z:=z+dz1;
end;
dL1:=(LMax-LMin)/2;
z:=zMin;
for i:=1 to v do
begin
L:=LMin;
for j:=1 to 3 do
begin
LMass[j]:=L;
DpL[i,j]:=(2*My*tg*(2+0.5*z))/(qg*L*(m-f));
L:=L+dL1;
end;
z:=z+dz;
end;
end;
exports Diametr;
{$R *.res}
begin
end.
Размещено на Allbest.ru
Подобные документы
Алгоритмизация вычислительных процессов. Разработка интерфейса пользователя программы. Создание программного кода, анимации, справочной системы. Разработка программы для вычисления коэффициента мощности выпрямителя. Вывод графического изображения.
курсовая работа [1,9 M], добавлен 28.04.2014Рассмотрение инфологической и даталогической модели базы данных кинотеатров города. Разработка базы данных в программе MS Access. Описание структуры приложения и интерфейса пользователя. Изучение SQL-запросов на вывод информации о кинотеатре и о фильме.
курсовая работа [1,1 M], добавлен 04.09.2014Создание Win-приложения для библиотеки, которое позволяло бы осуществлять операции выдачи и сдачи книг в соответствии со сроками. Выбор программных и технических средств реализации проекта. Разработка интерфейса системы, описание реализованных классов.
курсовая работа [3,1 M], добавлен 14.08.2015Создание тестирующих и игровых программ. Степень сложности и художественного оформления интерфейса пользователя. Создание справочной системы. Корректное отображение символов. Создание системы управления базами данных в среде Delphi и таблиц базы данных.
методичка [1,0 M], добавлен 24.10.2012Структура и компоненты Delphi 7, их функциональные особенности и назначение. Системная информация утилиты настройки BDE. Свойства полей базы данных и ее главные объекты. Разработка и содержание руководства пользователя. Требования к надежности программы.
курсовая работа [1,6 M], добавлен 10.05.2016Моделирование предметной области. Состав программного модуля. Разработка логической структуры единой базы данных банковской информационной системы "БИС". Создание экранных форм для ввода и корректировки информации. Разработка интерфейса пользователя.
курсовая работа [1,8 M], добавлен 17.05.2016Понятие, законодательное регулирование и виды электронных подписей. Разработка структурной схемы приложения и базы данных. Создание диаграммы прецедентов и классов. Проектирование интерфейса программы. Анализ руководства пользователя web-приложения.
дипломная работа [869,8 K], добавлен 12.08.2017Создание программного приложения для осуществления основных функций по заказу мебели, регистрации клиентов, сотрудничеству с поставщиками. Разработка интерфейса прикладной программы. Логическое проектирование базы данных и SQL-скрипт генерации таблиц.
курсовая работа [2,4 M], добавлен 11.02.2013Описание разрабатываемой программы с точки зрения пользователя и программиста. Поэтапная разработка программной системы. Создание базы данных в Access. Разработка структуры классов. Создание структуры для хранения данных. Проектирование интерфейса.
курсовая работа [1,4 M], добавлен 07.08.2013Формирование входных и выходных данных, SQL–скрипт генерации таблиц базы данных. Создание интерфейса программного приложения и проектирование форм базы данных. Требования к аппаратно–программному обеспечению. Инструкции по установке и эксплуатации.
курсовая работа [1,6 M], добавлен 08.02.2013