穴埋めしてください!

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
トミー

穴埋めしてください!

#1

投稿記事 by トミー » 8年前

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>

void main(){
float wip[10],tp[10],ti[10],tpsum[10],wipsum[4];
long p[11][1001],
a[11][1001],a2[11][1001],a3[11][1001],
d2[11][1010],d[11][1001],d3[11][1001],
sowa[11],max;
int k,j,i,kn[100],kn2[100],kn3[100],n,m,x,y,z,q,kanban;

srand((unsigned)time(NULL));

printf("トヨタかんばん方式\n\n");
/*初期データおよび初期値の設定の開始*/
for(j=1;j<=3;++j){


tpsum[j]=0;
wipsum[j]=0;
}

//工程数mの設定
m=10;
//処理部品nの設定
n=1000;
/*ai[j],di[j],kni[j]  iがない場合:トヨタかんばん方式
i=2:CONWIP制御方式
i=3:入れ子型かんばん方式*/
/*a[j]:工程iでの部品jの処理開始時間*/

a[1][1] = 0;//1)第1工程の第1部品の処理開始時間の設定

/*d[j]:工程iでの部品jの処理完了時間*/
for(i=0;i<=9;i++){
d[j] = 0;//2)i工程0番目の処理完了時間の設定
p[j] = 0;//3)i工程0番目の処理開始時間の設定
}
/*kn:i+1工程からi工程へのかんばん枚数*/
/*かんばん枚数の設定*/
for (q = 1; q <= 1; q = q + 1) {

for (k = 0; k <= 10; k = k + 2) {
for (i = 1; i <= 9; i++) {

kn = k;
}

/*評価項目tpとwipの初期値の設定*/
tpsum[1] = 0;//トヨタかんばん方式
tpsum[2] = 0;//CONWIP制御方式
tpsum[3] = 0;//入れ子型かんばん方式

wipsum[1] = 0;//トヨタかんばん方式
wipsum[2] = 0;//CONWIP制御方式
wipsum[3] = 0;//入れ子型かんばん方式

for(z=1;z<=10;z++){
/*i工程での部品jの処理時間p[j]の設定:一様乱数or指数乱数*/
/*処理時間の設定*/
for(i=1;i<=m;++i){
for(j=1;j<=1000;++j){
p[j] = rand();//4)処理時間pに乱数値を入れる。
}
}


/*トヨタかんばん方式*/
for(i = 1; i <= m; ++i){//5)iは部品番号
for(j = 1; j <= m; ++j){//6)jは工程番号
kanban = i - j;//7)部品番号から各工程のかんばん枚数を引いた数をkanbanに代入

/*第1工程*/
if(j==1){
if(kanban<=0){//かんばんが発行されていない場合

a[j] = d[j][i-1];//工程jのi番目の処理開始時間
d[j] = a[j][i] + p[j][i];//工程jのi番目の処理完了時間
goto start1;
}
/*d[i][i-1]とa[2][i-kn[i]]の大小比較を行い処理開始時間、処理終了時間を決定する*/
if(d[j][i-1] >= a[j+1][kanban]){//8)後工程の処理開始時間より前工程の処理完了時間が大きい場合
a[j][i] = 0;//9)工程jのi番目の処理開始時間
d[j][i] = 0;//10)工程jのi番目の処理完了時間
goto start1;
}
//後工程の処理開始時間より前工程の処理完了時間が小さい場合
           ;//11)工程jのi番目の処理開始時間
           ;//12)工程jのi番目の処理完了時間
goto start1;
}

/*第2工程以降~最終の1つ前の工程まで*/
if(     ){//13)かんばんが発行されていない場合
max=    ;//14)ひとつ前の工程のi番目の処理完了時間をmaxに入れる
if(     ){//15後工程のi-1番目の処理完了時間より前工程のi番目の処理完了時間が大きい場合
;//16)工程jのi番目の処理開始時間
      ;//17)工程jのi番目の処理完了時間
goto start1;
}
      ;//18)工程jのi番目の処理開始時間
      ;//19)工程jのi番目の処理完了時間
goto start1;
}
/*20)かんばんが発行されている場合につき以下同様な決定処理をする*/
max=;//ひとつ前の工程のi番目の処理完了時間をmaxに入れる
if(   )      {//後工程のi-1番目の処理完了時間よりmaxが小さい場合
max=     ;//工程jのi-1番目の処理完了時間をmaxに入れる
}
if(   ){//ひとつ後の工程のkanban番目の処理完了時間よりmaxが大きい場合
a[j][i]= ; //工程jのi番目の処理開始時間
d[j][i]= ; //工程jのi番目の処理完了時間
goto start1;
}
a[j][i]= ; //工程jのi番目の処理開始時間
d[j][i]= ; //工程jのi番目の処理完了時間

start1:;
}
}//for(j)
/*21)最終工程*/
if( ){ //後工程のi-1番目の処理完了時間より前工程のi番目の処理完了時間が遅い場合
a[m][i]= ; //工程jのi番目の処理開始時間
d[m][i]= ; //工程jのi番目の処理完了時間
goto next;
}
a[m][i]= ; //工程jのi番目の処理開始時間
d[m][i]= ; //工程jのi番目の処理完了時間
next:
;

}//for(i)

/*システム性能の評価*/
ti[1]=    ;//22)全稼働時間の計算(全体の処理完了時間-全体の処理開始時間)…①


tp[1]=    ;//23)第1の評価値(処理部品÷生産期間)…③
sowa[1]=0;

for(i=;i<=;++i){
sowa[1]=  ;//24)全部品の総処理時間(全行程の個体ごとの処理完了時間-全行程の個体ごとの処理開始時間の総和)…④
}

wip[1]=(float)  ;//25)第2の評価値
tpsum[1] = tpsum[1] + tp[1];//⑥
wipsum[1] = wipsum[1] + wip[1];//⑦


}//for(z)

tpsum[1]=   ;//26)生産率(⑥÷工程数)
wipsum[1]=   ;//27)平均仕掛在庫量(⑦÷工程数)
/*結果の出力*/
printf("生産率TP[%d]=%f ",1,tpsum[1]);
printf("平均仕掛在庫量WIP[%d]=%f ",1,wipsum[1]);
printf("かんばん枚数kn[1]=%d kn[9]=%d\n",kn[1],kn[9]);

printf("\n");
}//for(k)
printf("\n");

}//for(q)
}

アバター
purin52002
記事: 235
登録日時: 8年前
連絡を取る:

Re: 穴埋めしてください!

#2

投稿記事 by purin52002 » 8年前

どこに穴があるかわかりませんでした^^;
c++初心者を自負しています。
質問者さんには今後私にプログラミングを教えてくれるようにやさしく丁寧に教えるつもりです。ぎぶあんどていく^p^
回答者さんには精一杯感謝します。ぎぶおんりー^p^

アイコス

Re: 穴埋めしてください!

#3

投稿記事 by アイコス » 8年前

仕様からして意味不明ですね。

「iがない場合:トヨタかんばん方式」って、iは宣言してあるじゃん? って思いましたし。

最初から何がしたいのかがよく分かりませんでした。

返信

“C言語何でも質問掲示板” へ戻る