Обзор циклического кода на языке c++
После множества исследований в интернете и изучения различных исходных кодов. Я подумал о том, чтобы попробовать самому придумать способ написания циклического кода.
Я пытался, но получаю ошибки в определенной части моего вывода. Я не могу сгенерировать диаграмму Гейнта, а также, пожалуйста, может ли кто-нибудь объяснить мне, где я допустил ошибку в расчете моего алгоритма времени ожидания.
Может ли кто-нибудь специально объяснить мне, как я могу получить время ожидания каждого процесса и любезно исправить свой алгоритм .Пожалуйста, у меня есть искренняя просьба. Я сам учусь, и в принципе нет никого, кроме онлайн-статей или книг, которые помогли бы мне понять код. Итак, если вы исправите мою ошибку, пожалуйста, объясните мне вместе с исправлением. Я действительно хочу получить концепцию, потому что я не хочу повторять ту же ошибку снова. Спасибо.
вот мой код:-
#include<iostream> using namespace std; int main() { int k,j,q,i,n,ts,temp; int aw; float awt; int bt[10],wt[10],te[10],rt[10],at[10];j=0; //te array stores the number of times a process comes to CPU before completion //bt is my burst time store array //wt is my waiting time array //te keeps a count of the number of times a process enters the CPU before completion //at is the arrival time cout<<"Enter number of processes"<<endl; cin>>n; for(i=0;i<n;i++) { cout<<"Enter burst time"<<endl; cin>>bt[i]; cout<<"Enter arrival times"<<endl; cin>>at[i]; te[i] = 0; wt[i] = 0; } for(i=0;i<n;i++) { for(j = i+1;j<n;j++) { if(at[j]<at[i]) { temp = at[i]; at[i] = at[j]; at[j] = temp; if(at[j] ==at[i]) temp = bt[i]; bt[i] = bt[j]; bt[j] = temp; } } } cout<<"Enter time slice"<<endl; cin>>ts; cout<<"process:"<<endl; for(i=0;i<n;i++) { cout<<"\t"<<i+1<<endl; } cout<<"Burst time:"<<endl; for(i=0;i<n;i++) { cout<<" "<<bt[i]<<endl; rt[i] = bt[i]; } cout<<"arrival time:"<<endl; for(i=0;i<n;i++) { cout<<" "<<at[i]<<endl; } cout<<"Gaint chart"<<endl; while (j<=n) { j++; for(i = 0;i<n;i++) { if(rt[i] ==0) continue; if(rt[i]>=ts) { cout<<"\t"<<q<<i+1<<endl; q = q + ts; rt[i] = rt[i] - ts; te[i] = te[i] + 1; } else { cout<<" "<<q<<i+1<<endl; wt[i] = q-te[i]*ts; q = q +rt[i]; rt[i] = rt[i] - rt[i]; } } } awt = 0; cout<<"Process Waiting Time"<<endl; for(i =0;i<n;i++) { wt[i] = wt[i] - at[i]; cout<<" "<<i+1<<endl; cout<<wt[i]<<endl; awt = awt + wt[i]; } aw = awt; cout<<"Total waiting time"<<aw<<endl; cout<<"Average waiting time "<<awt/n<<endl; return 0; }