Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2010, 16:07   #1
Ehha1234
Пользователь
 
Регистрация: 02.06.2010
Сообщений: 10
По умолчанию 3 условных оператора

Решила задачу вот условие:
Производительность каждой из трех поточных линий по фасовке маргарина составляет 15 упаковок в минуту. Первая проработала К1 ч, вторая - К2 ч, третья - КЗ ч. План суточного вьшуска продукции равен Пв(т). Масса пачки 400 г. Себестоимость 1560 руб./пачка. Определить суточную прибыль цеха, если известно, что при выполнении плана она составляет 38% себестоимости, при невыполнении уменьшается на 6% а при перевьшолнении равна 36% от плановой, плюс 72% от сверхплановой продукции

но последние два условия путаются местами, т.е. если получается число больше плана, а выдается, что не выполнен и расчитывает соответственно, помогите найти ошибку
Код:
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main ()
{ float vr1, vr2,prchas, vr3, plan, upmin, upvsegomin, linii, stoimost, ves,
pr1,pr2,pr3, itog, pribyl;
clrscr ();
upmin=15;
linii=3;
stoimost=1560;
ves=0.0004;
printf("\n Vvedite plan \n");
scanf("%f", &plan);
printf("\n Vvedite vremj linii 1\n");
scanf("%f", &vr1);
printf("\n Vvedite vremj linii 2\n");
scanf("%f", &vr2);
printf("\n Vvedite vremj linii 3\n");
scanf("%f", &vr3);
upvsegomin=linii*upmin;
prchas=upvsegomin*60;
pr1=prchas*vr1;
pr2=prchas*vr2;
pr3=prchas*vr3;
itog=pr1+pr2+pr3;
if (itog==plan)
{ pribyl=itog/(ves*stoimost*0.38);
printf ("\n Pribyl po planu %f", pribyl);}
if (itog>plan)
{ pribyl=itog/(ves*stoimost*0.36)+(itog-plan)/(ves*stoimost*0.72);
printf("\n Pribyl pri pererabotke %f", pribyl);}
if (itog<plan)
{ pribyl=itog/(ves*stoimost)-itog/(ves*stoimost*0.06);
printf("\n Pribyl plan ne vypolnen %f", pribyl); }
getch ();
}
Ehha1234 вне форума Ответить с цитированием
Старый 05.06.2010, 21:09   #2
flyb1z0n
 
Регистрация: 29.05.2010
Сообщений: 4
По умолчанию

Нашел кучу недочетов в вашей програмее например:
1-е
Код:
upvsegomin=linii*upmin;
prchas=upvsegomin*60;
pr1=prchas*vr1;
pr2=prchas*vr2;
pr3=prchas*vr3;
itog=pr1+pr2+pr3;
в upvsegomin, Вы записываете сколько производят в минуту все 3 линии, потом переводите в часы и умножаете на каждую линию..=> каждое pr1,pr2,pr3 получаеться в 3 раза больше!!!

2-е
Код:
itog==plan
числа с плавающей точкой так не сравнивают!!!!
т.к. если они равны то получится например 10.00000001>10.00000

3-е
Код:
if (itog<plan)
{ pribyl=itog/(ves*stoimost)-itog/(ves*stoimost*0.06);
printf("\n Pribyl plan ne vypolnen %f", pribyl); }
по условию:
при выполнении плана она составляет 38% себестоимости, при невыполнении уменьшается на 6% а при перевьшолнении
По моему мнению на 6% уменьшается прибыль которая могла быть возможна при выполнении плана.. а не вся себестоимость как у вас.
flyb1z0n вне форума Ответить с цитированием
Старый 05.06.2010, 21:11   #3
flyb1z0n
 
Регистрация: 29.05.2010
Сообщений: 4
По умолчанию

Вот напидал на скорую руку код.. может что-то не правильно - проверьте.. вроде бы работает:
Код:
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
#include<iostream.h>
void main ()
{ 
double vr1,vr2,prchas,vr3,plan,upmin, stoimost, ves,pr1,pr2,pr3, itog, pribyl;
system("cls");

upmin=15;
stoimost=1560;
ves=0.0004;

printf("\n Vvedite plan \n");
scanf("%lf", &plan);
printf("\n Vvedite vremj linii 1\n");
scanf("%lf", &vr1);
printf("\n Vvedite vremj linii 2\n");
scanf("%lf", &vr2);
printf("\n Vvedite vremj linii 3\n");
scanf("%lf", &vr3);


prchas=upmin*60;
pr1=prchas*vr1;
pr2=prchas*vr2;
pr3=prchas*vr3;
itog=(pr1+pr2+pr3)*ves;
printf("%f",itog);
printf("\n");
printf("%f",plan);

if (fabs(itog-plan)<0.0000000001)
{ 
	pribyl=((itog/ves)*stoimost*0.38);
	printf ("\n Pribyl po planu %f", pribyl);
}
else
{
if (itog>plan)
{
	pribyl=(itog/ves)*stoimost*0.36+((itog-plan)/ves)*stoimost*0.72;
	printf("\n Pribyl pri pererabotke %f", pribyl);
}

if (itog<plan)
{ 
	pribyl=(itog/ves)*stoimost*0.38-(itog/ves)*stoimost*0.06*0.38;
	printf("\n Pribyl plan ne vypolnen %f", pribyl); 
}
}

}
flyb1z0n вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перегрузка оператора << z3rg Общие вопросы C/C++ 18 02.03.2010 02:58
Проголосуем ? ) Delphi Coding Styles расположение begin относительно then в условных конструкциях Квэнди Свободное общение 34 15.09.2009 20:22
использование условного оператора в теле оператора цикла с условием машко Помощь студентам 2 21.06.2009 23:55
синтаксис оператора like Bezdar Microsoft Office Excel 2 26.03.2009 09:27
Перегрузка оператора + z3rg Общие вопросы C/C++ 1 22.03.2009 03:06