Задача №1
1. Формулировка задачи
Технологическая линия производительностью 3 изд./с непрерывно работает в течении смены. Длительность смены 8 часов. Количество брака находится в диапазоне от 0 до 7%. При работе без брака прибыль составляет 38% от стоимости. При выпуске брака до 3% прибыль снижается на 0.2% с каждой бракованной единицы. Если кол-во бракованных изделий больше 3% прибыль уменьшается на 0.5% с каждой бракованной единицы. Рассчитать кол-во выпущенных изделий в смену, прибыль и потери за счет брака в каждом случае если цена одного изделия известна.
2. Формирование математической модели
2.1 Исходные данные (основные)
V = 3 изд./с – скорость производства;
t = 8 ч – длительность смены;
B = 0…7% – изменяемый процент брака;
P = 38% – процент прибыли без брака;
= 0.2% – процентное снижение прибыли при браке до 3%;
= 0.5% – процентное снижение прибыли при браке свыше 3%;
C = ˽ ˽ ˽ . ˽ ˽ руб/шт − фиксированная цена изделия.
Исходные данные (вспомогательные)
k = 3600 – коэффициент перевода секунды в часы;
2.2 Расчетные зависимости
– кол–во выпущенных изделий за смену;
; ; – прибыль без брака;
= ; – потери за счет брака;
; ; – прибыль с учетом брака.
3. Выбор метода решения
Для решения данной задачи будем использовать основной и дополнительный алгоритм функции.
4. Создание алгоритма
1) Основной
2
3
4
2) Дополнительные
А )
3
Б )
4
В)
3
5. Таблица обозначений
Обозначение в алгоритме |
1 |
V |
t |
B |
P |
|
|
С |
k |
m |
i |
n |
l |
j |
e |
h |
Обозначение в программе |
2 |
v |
t |
B |
P |
P1 |
P2 |
C |
k |
m |
i |
n |
l |
j |
e |
h |
6. Текст программы
1)Вариант 1:
// Задача по расчету линии технологического производства//
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
int z;
const double k=3600.0;
void vvod_dannih (double &P, double &P1,double &P2,double &v,double &t,double &B,double &C);
double raschet (double &P, double &P1,double &P2,double &v,double &t,double &B,double &C);
void vivod_dannih (double &P,double &B,double &t);
int _tmain(int argc, _TCHAR* argv[])
{
double i,j,h,l,m,n,e;
setlocale(LC_ALL,"");
vvod_dannih(i,j,h,l,m,n,e);
raschet(i,j,h,l,m,n,e);
vivod_dannih(i,n,m);
return 0;
}
void vvod_dannih (double &P, double &P1,double &P2,double &v,double &t,double &B,double &C)
{
cout<<"Уважаемый пользователь, введите пожалуйста значения необходимые для решения данной задачи\n";
cout<<"Введите время работы одной смены: ";
cin>>t;
cout<<"\n";
cout<<"Введите скорость производства технологической линии: ";
cin>>v;
cout<<"\n";
cout<<"Введите процент брака на производстве: ";
cin>>B;
cout<<"\n";
if (B!=0&&B<3)
{
cout<<"Введите процент снижения прибыли при браке до 3 процентов: ";
cin>>P1;
cout<<"\n";
}
else
{
cout<<"Введите процент снижения прибыли при браке свыше 3 процентов: ";
cin>>P2;
cout<<"\n";
}
cout<<"Введите процент прибыли от общей суммы продаж выпущенного товара: ";
cin>>P;
cout<<"\n";
cout<<"Введите цену за единицу выпущенной продукции: ";
cin>>C;
cout<<"\n\n";
}
double raschet (double &P, double &P1,double &P2,double &v,double &t,double &B,double &C)
{
P=P/100;
P1=P1/100;
P2=P2/100;
t=v*t*k;
v=t*C*P;
if(B==0)
{
P=0;
}
else
{
if (B<3&&B!=0)
{
P=v*P1*C;
}
else
{
P=v*P2*C;
}
}
B=v-P;
return 0;
}
void vivod_dannih (double &P,double &B,double &t)
{
cout<<"Выполнение задачи было успешно завершено\n";
cout<<"Полученные значения: \n";
cout<<"1)Количество выпущенных изделий за смену: "<<t<<"\n";
cout<<"2)Потери за счет брака: "<<P<<"\n";
cout<<"3)Прибыль производства с учетом брака: "<<B<<"\n";
getch();
}