Calc3D_by_Risen/calculating.c

50 lines
2.3 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "calculating.h"
// Функция cost_prise
double cost_prise(double p, double t, double h, double md, double d, double st, double mk, double am, double post, int x) {
p = fabs(p); // номинальная мощность принтера (insignet int 0-5000)
t = fabs(t); // время печати, в минутах (insignet int)
h = fabs(h); // тариф электроэнергии, руб. (double)
md = fabs(md); // вес детали, гр. (double)
d = (d < 1) ? 1 : fabs(d); // коэффициент выбраковки (double)
st = fabs(st); // стоимость катушки, руб (double 0-10000)
mk = fabs(mk); // вес катушки, гр. (1- 10000)
am = fabs(am); // амортизация, руб. (double)
post = fabs(post); // постобработка, руб. (double)
x = abs(x); // количество экземпляров, шт. (insignet int)
double result = ((p / 1000) * (t / 60) * h + (md * d * (st / mk)) + (am + post)) * x;
return round(result * 100) / 100; // округление до 2 знаков после запятой
}
// Функция calculating
double calculating(double cost, double mod, double marg) {
mod = fabs(mod); // моделирование
double margin = fabs(marg); // процент наценки
double result = (margin / 100 * cost + cost) + mod;
return round(result * 100) / 100; // округление до 2 знаков после запятой
}
// Функция amortization
double amortization(double a, double t, double spi, int year) {
// количество минут в году
double minutes_in_year = 525600;
// Если СПИ установлен на 0, то присваеваем 1 (год)
double year_norm;
if (spi == 0) {
year_norm = 100 / 1;
} else {
year_norm = 100 / spi;
}
//Считаем годовую амортизацию
double year_am = a * year_norm / 100;
//Считаем амортизацию за минуту и умножаем на время печати
double am_per_minute = year_am / minutes_in_year * (t*60);
return am_per_minute; // округление до 2 знаков после запятой
}