システム工学(ファジーなんちゃら)-20100629

「システム工学(ファジーなんちゃら)-20100629」の編集履歴(バックアップ)一覧はこちら

システム工学(ファジーなんちゃら)-20100629」(2010/06/29 (火) 05:02:32) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

<p>#include &lt;stdio.h&gt;<br /> #include &lt;stdlib.h&gt;</p> <p>double f(double c){<br />  if((0&lt;=c)&amp;&amp;(c&lt;=50)){<br />   return 1.0/50*c;}<br />  else if(50&lt;c){<br />   return 1.0;}<br />  return -1.0;<br /> }<br /> double g(double c){<br />  if((0&lt;=c)&amp;&amp;(c&lt;=20)){<br />   return 1.0;}<br />  else if((20&lt;c)&amp;&amp;(c&lt;=40)){<br />   return -1.0/20*c+2.0;}<br />  else if(40&lt;c){<br />   return 0.0;}<br />  return -1.0;<br /> }<br /> double p(double x){<br />  if((0&lt;=x)&amp;&amp;(x&lt;=20)){<br />   return 0.0;}<br />  else if((20&lt;x)&amp;&amp;(x&lt;=40)){<br />   return 1.0/20*x-1.0;}<br />  else if((40&lt;x)&amp;&amp;(x&lt;=60)){<br />   return -1.0/20*x+3.0;}<br />  else if(60&lt;x){<br />   return 0.0;}<br />  return -1.0;<br /> }<br /> double q(double x){<br />  if((0&lt;=x)&amp;&amp;(x&lt;=40)){<br />   return 0.0;}<br />  else if((40&lt;x)&amp;&amp;(x&lt;=60)){<br />   return 1.0/20*x-2.0;}<br />  else if((60&lt;x)&amp;&amp;(x&lt;=80)){<br />   return -1.0/20*x+4.0;}<br />  else if(80&lt;x){<br />   return 0.0;}<br />  return -1.0;<br /> }<br /> double min(double a,double b){<br />  if(a&lt;=b){return a;}<br />  else if(b&lt;a){return b;}<br />  return -1;<br /> }<br /> double max(double a,double b){<br />  if(a&lt;=b){return b;}<br />  else if(b&lt;a){return a;}<br />  return -1;<br /> }<br /> double s(double c,double x){<br />  return max(min(f(c),p(x)),min(g(c),q(x)));<br /> }<br /> double ans(double w,double st,double en,double c){<br />  double i=st,s1=0.0,s2=0.0;<br />  while(i&lt;=en){<br />   s1=s1+s(c,i);<br />   i=i+w;<br />  }<br />  i=st;<br />  while(i&lt;=en){<br />   s2=s2+(i*s(c,i));<br />   i=i+w;<br />  }<br />  return s2/s1;<br /> }<br /> int main(void) {<br />  double c,w;<br />  printf("c=");<br />  scanf("%lf", &amp;c);<br />  printf("w=");<br />  scanf("%lf", &amp;w);<br />  printf("ans=%lf", ans(w,0,100,c));<br />  return 0;<br /> }</p>
<p>#include &lt;stdio.h&gt;<br /> #include &lt;stdlib.h&gt;</p> <p>double f(double c){<br />  if((0&lt;=c)&amp;&amp;(c&lt;=50)){<br />   return 1.0/50*c;}<br />  else if(50&lt;c){<br />   return 1.0;}<br />  return -1.0;<br /> }<br /> double g(double c){<br />  if((0&lt;=c)&amp;&amp;(c&lt;=20)){<br />   return 1.0;}<br />  else if((20&lt;c)&amp;&amp;(c&lt;=40)){<br />   return -1.0/20*c+2.0;}<br />  else if(40&lt;c){<br />   return 0.0;}<br />  return -1.0;<br /> }<br /> double p(double x){<br />  if((0&lt;=x)&amp;&amp;(x&lt;=20)){<br />   return 0.0;}<br />  else if((20&lt;x)&amp;&amp;(x&lt;=40)){<br />   return 1.0/20*x-1.0;}<br />  else if((40&lt;x)&amp;&amp;(x&lt;=60)){<br />   return -1.0/20*x+3.0;}<br />  else if(60&lt;x){<br />   return 0.0;}<br />  return -1.0;<br /> }<br /> double q(double x){<br />  if((0&lt;=x)&amp;&amp;(x&lt;=40)){<br />   return 0.0;}<br />  else if((40&lt;x)&amp;&amp;(x&lt;=60)){<br />   return 1.0/20*x-2.0;}<br />  else if((60&lt;x)&amp;&amp;(x&lt;=80)){<br />   return -1.0/20*x+4.0;}<br />  else if(80&lt;x){<br />   return 0.0;}<br />  return -1.0;<br /> }<br /> double min(double a,double b){<br />  if(a&lt;=b){return a;}<br />  else if(b&lt;a){return b;}<br />  return -1;<br /> }<br /> double max(double a,double b){<br />  if(a&lt;=b){return b;}<br />  else if(b&lt;a){return a;}<br />  return -1;<br /> }<br /> double s(double c,double x){<br />  return max(min(f(c),p(x)),min(g(c),q(x)));<br /> }<br /> double ans(double w,double st,double en,double c){<br />  double i=st,s1=0.0,s2=0.0;<br />  while(i&lt;=en){<br />   s1=s1+s(c,i);<br />   i=i+w;<br />  }<br />  i=st;<br />  while(i&lt;=en){<br />   s2=s2+(i*s(c,i));<br />   i=i+w;<br />  }<br />  return s2/s1;<br /> }<br /> int main(void) {<br />  double c,w;<br />  printf("c=");<br />  scanf("%lf", &amp;c);<br />  printf("w=");<br />  scanf("%lf", &amp;w);<br />  printf("ans=%lf", ans(w,0,100,c));<br />  return 0;<br /> }</p> <p>/********************************************/</p> <p>c=30<br /> w=10<br /> ans=49.615385</p> <p>c=43<br /> w=10<br /> ans=40.000000</p> <p>/********************************************/</p>

表示オプション

横に並べて表示:
変化行の前後のみ表示: