- •Описание структуры предприятия
- •Общая информация о предприятии
- •Организационная структура предприятия
- •Нормативно-правовое обеспечение безопасности производственной деятельности
- •Иерархическая структура нормативно-правовых актов и порядок их принятия.
- •Состав нормативно-правовых актов, обязательных к исполнению при реализации проектируемой продукции, их характеристики.
- •Техническое нормирование и стандартизация безопасности
- •2.4 Производственные документы в системе управления трудоохранной деятельностью
- •Расчет прибыли и цены на программное средство
- •Исходные данные
- •Определение объема пс вт На основании информации о функциях разрабатываемого пс по каталогу функций определяется объем функций (таблица 1).
- •Общий объем пс рассчитывается по формуле
- •В связи с достаточно быстрым изменением вт рекомендуется определить скорректированный объем функций по формуле
- •Расчет трудоемкости выполняемой работы
- •Расчет основной заработной платы
- •Расчет дополнительной заработной платы
- •Расчет отчислений в Фонд социальной защиты населения
- •Расчет отчислений по обязательному страхованию от несчастных случаев на производстве и профессиональных заболеваний
- •Расчет расходов на материалы
- •Расчет расходов на оплату машинного времени
- •Расчет экономического эффекта от применения пс у пользователя
- •Расчет объема работ
- •Расчет капитальных затрат
- •Расчет экономии основных видов ресурсов в связи с использованием нового пс
- •Расчет экономического эффекта
- •4.5 Вывод
- •Приложение а
- •Исходные данные для расчета
- •ПриложениеБ
- •Данные расчета экономического эффекта
- •Приложение в
- •Приложение в
Приложение в
(справочное)
Скриншоты
После старта появится главное окно программы (рисунок 1).
Рисунок 1 – Главное окно программы
Для начала нужно установить количество уравнений и количество неизвестных и нажать кнопку "Установить". Эти величины будут равны (рисунок 2).
Рисунок 2 - Ввод количества уравнений и неизвестных
Затем необходимо заполнить 2 таблицы: таблицу коэффициентов и таблицу свободных членов (рисунок 3).
Рисунок 3 – Заполнение массива
Для того, чтобы очистить таблицы, можно воспользоваться кнопкой "Очистить" (рисунок 4).
Рисунок 4 – Применение кнопки «Очистить»
Чтобы выполнить быстрое заполнение таблиц, можно воспользоваться кнопкой "Из файла".
Она позволяет загрузить коэффициенты уравнений из *.txt файла с определенной структурой.
После нажатия кнопки появится окно выбора файла (рисунок 5).
Рисунок 5 – Окно выбора файла
После заполнения таблиц коэффициентами нужно выбрать метод решения: метод Гаусса, метод Краммера либо сравнение методов.
Затем нажать кнопку "Решить уравнение". (рисунок 6, рисунок 7, рисунок 8)
Рисунок 6 – Решение систем линейных алгебраических уравнений
Рисунок 7 – Решение систем линейных алгебраических уравнений
Рисунок 8 - Решение систем линейных алгебраических уравнений
Для получения справки нужно воспользоваться пунктом главного меню Справка > Справка.
Для просмотра информации о программе нужно воспользоваться пунктом главного меню Справка > О программе (рисунок 9).
Рисунок 9 – Вызов справки
Для выхода из программы нужно воспользоваться пунктом главного меню Файл > Выход (рисунок 10).
Рисунок 10 – Выход из программы
Приложение в
(справочное)
Исходный код
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Grids, Menus;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
RadioGroup1: TRadioGroup;
CheckBox1: TCheckBox;
Button1: TButton;
Memo1: TMemo;
GroupBox1: TGroupBox;
Button2: TButton;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
Button3: TButton;
StringGrid2: TStringGrid;
Button4: TButton;
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
n : integer;//количество уравнений и коэффициентов
a : array[1..100, 1..100] of real;
b, x : array[1..100] of real;
implementation
{$R *.dfm}
procedure gaus;
const Eps=1e-9;
var i, j, m, k, l, j1 : Integer;
v, s : Real;
log : boolean;
c : array[1..100, 1..100] of real;
h : array[1..100] of real;
begin
n := StrToInt(Form1.Edit1.Text);
for i := 1 to n do
for j := 1 to n do
a[i, j] := StrToInt(Form1.StringGrid1.Cells[j, i]);
for i := 1 to n do
b[i] := StrToInt(Form1.StringGrid2.Cells[0, i]);
for k:=1 to n-1 do
Begin
// проверка элемента A[k,k] на равенство 0
if ABS(A[k,k])<Eps then
begin
Log:=True;
for m:=k+1 to n do
if (abs(A[m,k])>Eps)and Log then begin
// перестановка k-ой и m-ой строки матрицы А
for l:=1 to n do begin
v:=A[k,l]; A[k,l]:=A[m,l]; A[m,l]:=V end;
// перестановка элементов вектора В
V:=B[k];B[k]:=B[m];B[m]:=V;
Log:=False; end;
end; {if ABS(A[k,k])<eps}
// формирование матрицы А треугольного вида
H[k]:=B[k]/A[k,k];
For i:=k+1 to n do
begin
B[i]:=B[i]-A[i,k]*H[k];
For j1:=k to n do begin
J:=N-J1+K;
C[k,j]:=A[k,j]/A[k,k];
A[i,j]:=A[i,j]-A[i,k]*C[k,j]; end;
end;
End;{for k:=1 to n1 do}
// получения вектора Х через обратный ход
X[n]:=B[n]/A[n,n];
m:=n-1;
Repeat
S:=0;
For l:=m to n-1 do
S:=S+C[m,l+1]*X[l+1];
X[m]:=H[m]-S;
m:=m-1
Until m=0;
// печать вектора Х
Form1.Memo1.Clear;
Form1.Memo1.Lines.Add('Метод Гаусса');
for i:=1 to n do
Form1.Memo1.Lines.Add(FloatTostr(X[i])); end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9', #8]) then Abort; end;
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9', #8]) then Abort; end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if (Edit1.Text <> '') and (Edit2.Text <> '') and (StrToInt(Edit1.Text) >= 1) and (StrToInt(Edit2.Text) >= 1) then
begin
StringGrid1.RowCount := StrToInt(Edit1.Text) + 1;
StringGrid1.ColCount := StrToInt(Edit2.Text) + 1;
StringGrid2.RowCount := StrToInt(Edit1.Text) + 1; end
else ShowMessage('Ошибка'); end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if RadioGroup1.ItemIndex <> -1 then
begin
case RadioGroup1.ItemIndex of
0 : ShowMessage('1');
1 : ShowMessage('1');
2 : gaus;
3 : ShowMessage('сравнение'); end;
if CheckBox1.Checked then Button2.Enabled := True; end
else ShowMessage('Выберите тип решения');
end; procedure TForm1.Button4Click(Sender: TObject);
var i, j : integer; begin for i := 1 to StringGrid1.ColCount do
for j := 1 to StringGrid1.RowCount do
begin StringGrid1.Cells[i, j] := '';
StringGrid2.Cells[0, i] := '';
end; Memo1.Clear; end; end.