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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2010, 22:09   #1
GoodTimes
 
Регистрация: 10.05.2010
Сообщений: 5
По умолчанию Тривиальное затруднение

Здравствуйте, уважаемые.
Долгими ночами сидел, делал рутину, все прекрасно, все работает, но столкнулся с проблемой, в принципе элементарной, которую не могу пока решить, ибо мои знания языка очень поверхностны.
Суть проблемы: провести и вывести на экран все те же расчеты, только если параметр rs будет составлять 90, 92, 94...108, 110% от введенного.
Если кто-то найдет время уделить внимание моей проблемке, то буду крайне признателен, заранее благодарю.
Весь код в аттаче.


Код:
#include<iostream>
#include<cmath>
#include <conio.h>
using namespace::std;
double square(double x,double y);
//peremennie - visota i shirina;
double max(double t, double p);
//sravnenije dvyh;
double rozr(double p, double f, double pt, double p0, double t, int z);
//fynkc resscheta lroz та broz
//p – koeff. zapasa moshnosti;
//f – koeff formi;
//pt – moshnost rasseivanija;
//p0 – ydelnaja moshnost rasseivanija;
//t – shirina/dlina rezistora (po vozmojnosti izgotovlenija) 
//z – peremennaja dlja izmenenija shemi rasschetov

int main()
{
cout<<" R vvoditsa v kiloomah \n Moshnost rasseivanija v milivattah \n Gamma v % \n Najmite lybyjy knopky dlja nachala rasschetov \n"<<endl;
    getch ();
double rsopt,rs,R[5],Rsum=0,IRsum=0;
//rsopt - optimalnoe sopr kvadrata rez. plenki;
//rs - ydelnoe sopr rez plenki;
//R[5] – znachenija sopr rezistorov;
//Rsum – symma soprotivlenij;
//IRsum – symma 1/R;
double l,b,Kf[5],Kp,S[5],So=0,YR;
//l – dlina rezistora;
//b – shirina rezistora;
//Kf[5] – koeff formi vseh rezistorov; 
//Kp – koeff zapasa moshnosti 
//S[5] – ploshadi rezistorov; 
//So – obshaja ploshadj;
//YR - otnositelnaja pogreshnostj izgotovlenija;
double broz[5],bteh=0.8,lroz[5],lteh=0.8;
//broz[5] – rasschetnaja shirina rezistorov;
//lroz[5] – rasschetnaja dlina;   
double P[5],P0;
//P[5] – massiv moshnostej rasseivanija;
//P0 – ydelnaja moshnost rasseivanija;


//vvedenije soprotivlenija i moshnosti
for (int i=0; i<5; i++) 
{
    strongcat:
cout<<"vvedite sopr. "<<i+1<<"-go rezistora:"<<endl;
cin>>R[i]; 

if (R[i]<0.05 || R[i]>1000)

{
cout<<"dopystimoe znachenie 0.05 - 1000 kiloom"<<endl;
goto strongcat;              
}

cout<<"vvedite moshnost rasseivanija dlja "<<i+1<<"-go rezistora:"<<endl;
cin>>P[i];
}

//rasschet opt sopr kvadrata plenki
for(int i=0; i<5; i++)
{
Rsum=Rsum+R[i];
IRsum=IRsum+1/R[i];
}
rsopt=sqrt(Rsum/IRsum);
cout<<"optimalnoe soprotivlenie kvadrata rezistivnoj plenki - "<<rsopt<<endl;
//-------------------------------------------------------------------------------------------------------------
//novie dannie na osnove rachetov
cout<<"vvedite tablichnoe soprotivlenije, bijajshee k rasschetam:"<<endl;
cin>>rs;
cout<<"po rezyltatam vvedite ydelnyjy moshnostj rasseivanija Po:"<<endl;
cin>>P0;
cout<<"vvedite otnositlenyjy pogreshnostj izgotovlenija plenochnogo rezistora:"<<endl;
cin>>YR;

//rasschet koeff formi i zapasa moshnosti
for (int i=0; i<5;i++)
{
Kf[i]=R[i]/rs;
cout<<"koeff formi "<<i+1<<"-go rezistora: "<<Kf[i]<<endl;
}  
Kp=1+YR/50;
cout<<"koeff zapasa moshnosti rezistotrov: "<<Kp<<endl;


//rasschet geometricheskih parametrov
for(int i=0; i<5; i++)
{
if(Kf[i]>=1)

{
int z=1;
lroz[i]=rozr(Kp,Kf[i],P[i],P0,bteh,z);
broz[i]=lroz[i]/Kf[i];

}


if(Kf[i]<1)

{
int z=2;
broz[i]=rozr(Kp,Kf[i],P[i],P0,lteh,z);
lroz[i]=broz[i]*Kf[i];

}
b=0.01+floor(broz[i]*100)/100;
cout<<"shirina "<<i+1<<"-go rezistora: "<<b<<" mm"<<endl;	
     l= floor(lroz[i]*100)/100;
     cout<<"dlina "<<i+1<<"-go rezistora: "<<l<<" mm"<<endl;
S[i]=square(l,b);
cout<<"ploshadj "<<i+1<<"-go rezistora: "<<S[i]<<" mm2"<<endl;
So=So+S[i];
}
//-------------------------------------------------------------------------------------------------------------
double minS = S[0];
double maxS = 0;
int nn,mm;
for (int i=0; i<5;i++)
{
	if (S[i]<minS)
		{
			minS = S[i];
			nn = i;
		}
	if (S[i] >maxS)
		{maxS = S[i], mm=i;}
}



cout<<"Nomer elementa s min. ploshadjy: "<<nn+1<<"\n"<<"Nomer elementa s max. ploshadjy: "<<mm+1<<endl;

cout<<"obshaja ploschadj rezistorov = "<<So<<endl;
getch ();
return 0;
}




//dop fynkcii

//ploshadj rezistora
double square(double x, double y)
{
double z=x*y;
return z;
}



//maximum
double max(double t, double p)
{
double m;
m=t;
if(m<p)
	m=p;
return m;
}




//rasschet l, b
double rozr(double p, double f, double pt, double p0, double t, int z) 
{
double dp,dr,r;
//dp –  bp <> lp;
//dr –  lроз <> bроз;
//r -  bроз <> lроз;
if (z==1)
{
dp=sqrt((p*pt)/(p0*f));
dr=max(t,dp);
r=dr*f;
}

else
{
dp=sqrt((p*pt*f)/p0);
dr=max(t,dp);
r=dr/f;
}
return r;
}
Вложения
Тип файла: txt my.txt (4.1 Кб, 155 просмотров)

Последний раз редактировалось GoodTimes; 10.05.2010 в 22:19.
GoodTimes вне форума Ответить с цитированием
Старый 10.05.2010, 22:26   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

В коде не стал смотреть, но если я правильно понял формулировку, то
Код:
for (rs = 90; rs <= 110; rs += 2)
   {
   //...
   }
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 10.05.2010, 22:28   #3
GoodTimes
 
Регистрация: 10.05.2010
Сообщений: 5
По умолчанию

rs вводится с клавиатуры, конкретное значение и участвует в расчетах в нескольких местах, не счетчик цикла.
Возможно, я не совсем так выразился, уж простите. До начала работы части расчетов вводится значение rs, проводятся расчеты, выводятся результаты, потом нужно провести все те же расчеты и вывести их, если rs будет осставлять 0.9 от введенного, потом 0.92, 0.94 и так до 1.1

Последний раз редактировалось GoodTimes; 10.05.2010 в 22:35.
GoodTimes вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
2 задачи - на массив и на матрицу... вызывает затруднение способ их решения. liker_47 Паскаль, Turbo Pascal, PascalABC.NET 5 23.12.2008 14:00
Задачи вызывают затруднение... матрица и сумма ряда. GorNikSar Паскаль, Turbo Pascal, PascalABC.NET 2 21.12.2008 12:51
Задачи вызывают затруднение... матрица и сумма ряда. GorNikSar Помощь студентам 2 19.12.2008 07:11