QuestionQuestion

Convert the following Matlab code to C. The output must be identical.

box_title='Enter no. of Tasks';
entries={'No. of Tasks'};
h=inputdlg(entries,box_title);
Tasks=str2num(h{1});
A=zeros(Tasks,5);

box_title='Enter Task parameters';
entries={'releaseT','period','executeT','deadline'};

for loops=1:Tasks
    h=inputdlg(entries,box_title);
    release=str2num(h{1});
    period=str2num(h{2});
    executeT=str2num(h{3});
    deadline=str2num(h{4});
   
   A(loops,1)=release;
   A(loops,2)=period;
   A(loops,3)=executeT;
   A(loops,4)=deadline;
   A(loops,5)=1;
   A(loops,6)=executeT;
   A(loops,7)=loops;
end
clc;
disp('::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::');

T=0;
B=A;
D=A;
Lcm=1;
for i=1:Tasks
    Lcm=lcm(A(i,2),Lcm);
end

DispV2=[];
T=0;
disp('LCM');
disp(Lcm)
D=sortrows(D,[4]);
E=D;
ind=0;
while(T<Lcm)
    ind=ind+1;
   
    disp('++++++++++++++++++++++++++++++++++++++++++++++');
   
    if(1)
      
       disp(D);
      
       for k=1:Tasks
            if(D(k,4)<=T)
                DispV2(ind,1)=ind;
                DispV2(ind,2)=T;
                DispV2(ind,4)=D(k,7);
                DispV2(ind,5)=D(k,5);
                DispV2(ind,6)=5;
               
                DispV2(ind,3)=T;
                disp(' misses deadline');
               
                D(k,1)=D(k,1)+D(k,2);
                D(k,4)=D(k,4)+D(k,2);
                D(k,6)=D(k,3);
                D(k,5)=D(k,5)+1;
                ind=ind+1;
                disp(D);
               
               
            end
         
       end
   
      
    end
      
    Rj=0;
    for k=1:Tasks
       if(D(k,1)<=T)
            Rj=k;
            break;
       end
    end
   
    if(Rj==0)
       DispV2(ind,1)=ind;
       DispV2(ind,2)=T;
      
       DispV2(ind,4)=0;
       DispV2(ind,5)=0
       DispV2(ind,6)=0;
       T=T+1;
       DispV2(ind,3)=T;
       disp(T);
       disp('manish');
       continue;
    end
      
    minR=9999;
    if(Rj>1)
      
       for k=1:Rj-1
            if(D(k,1)< minR)
                   minR=D(k,1);
                   minRI=k;
            end
            
       end
    else
       minR=D(1,1);
       minRI=1;
    end
    if((((T+D(Rj,6))<=minR)&&((T+D(Rj,6))<=D(Rj,4)))||(Rj==1&&(T+D(Rj,6))<=D(Rj,4)))
         DispV2(ind,1)=ind;
         DispV2(ind,2)=T;
         DispV2(ind,4)=D(Rj,7);
         DispV2(ind,5)=D(Rj,5);
         DispV2(ind,6)=10;
       disp('T==');
         disp(T);
       disp('TasksR no');
       disp(D(Rj,7));
       disp('Jobno:');
       disp(D(Rj,5));
       T=T+D(Rj,6);
       D(Rj,1)=D(Rj,1)+D(Rj,2);
       D(Rj,6)=D(Rj,3);
       D(Rj,4)=D(Rj,4)+D(Rj,2);
       D(Rj,5)=D(Rj,5)+1;
      
      
       DispV2(ind,3)=T;
       flDg=0;
       P=T;
      
    elseif((T+D(Rj,6))>D(Rj,4)&& ~((T+D(Rj,6))<minR))
      
      
       DispV2(ind,1)=ind;
       DispV2(ind,2)=T;
       DispV2(ind,4)=D(Rj,7);
       DispV2(ind,5)=D(Rj,5);
       DispV2(ind,6)=5;
       T=D(k,4);
       DispV2(ind,3)=T;
      
       D(Rj,1)=D(Rj,1)+D(Rj,2);
       D(Rj,6)=D(Rj,3);
       D(Rj,4)=D(Rj,4)+D(Rj,2);
       D(Rj,5)=D(Rj,5)+1;
    else
       disp('T==');
       disp(T);
       disp('TDsksRTYT no');
       disp(D(Rj,7));
       disp('Jobno');
       disp(D(Rj,5));
       DispV2(ind,1)=ind;
       DispV2(ind,2)=T;
         DispV2(ind,4)=D(Rj,7);
         DispV2(ind,5)=D(Rj,5);
         DispV2(ind,6)=2;
         if(D(Rj,4)~=D(minRI,4))
             D(Rj,6)=D(Rj,3)-(minR-T);
             T=T+D(Rj,3)-D(Rj,6);
         else
             D(Rj,6)=D(Rj,3);
             T=T+D(Rj,6);
             D(Rj,1)=D(Rj,1)+D(Rj,2);
             D(Rj,4)=D(Rj,4)+D(Rj,2);
             D(Rj,5)=D(Rj,5)+1;
             DispV2(ind,6)=10;
         end
      
      
         DispV2(ind,3)=T;
      
      
    end
   
end

clc;
while(1)
    k = menu('Select','RM','Exit');
      
    if(k==1)
       clc;
       disp('                   Tasks Details            ');
       disp('    R    P    E    D    J    Er    T                                       ');
       disp(E);
       disp('    0<=>IDEAL 2<=>Partial_Execution 5<=>MISS   10<=>Complete ');   
       disp('                     RM');                                                               
       disp('                                                    ');
       disp('             TIME');
       disp('    S.NO FROM    TO TASK JOB_NO STATUS');
       disp('                                    ');
       disp(DispV2);
       disp('Press any key to continue: ');
       pause;
       clc;
    end
    if(k==2)
       disp('THANKS, Sir: For your valuable time');
      
       pause;
       clc;
       break;
    end
   
end

Solution PreviewSolution Preview

This material may consist of step-by-step explanations on how to solve a problem or examples of proper writing, including the use of citations, references, bibliographies, and formatting. This material is made available for the sole purpose of studying and learning - misuse is strictly forbidden.

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

#define COLCOUNT 7


// set matrix a to matrix b
void equal(int **a, int **b, int r)
{
int i, j;
for (i = 0; i < r; i++)
{
for (j = 0; j < COLCOUNT; j++)
{
a[i][j] = b[i][j];
}
}
}

//least common multiplier
int lcm(int x, int y)
{
int a, b, tmp;
a = x;
b = y;
tmp = 1;
while (b != 0)
{
tmp = b;
b = a % b;
a = tmp;
}
return x * y / tmp;
}

//boubble sort ascending
void sortrows(int **a, int c, int r)
{
int i, j, k;
int * tmp;
int noswap = 0;
//tmp = malloc(4 * sizeof(int));

j = r - 1;
while (noswap == 0)
{
noswap = 1;
for (i = 0; i < j; i++)
{
if (a[i][c] > a[i + 1][c])
{
noswap = 0;
tmp = a[i];
a[i] = a[i + 1];
a[i + 1] = tmp;
}
}
j--;
}
//free(tmp);
}...
$20.00 for this solution

PayPal, G Pay, ApplePay, Amazon Pay, and all major credit cards accepted.

Find A Tutor

View available C-Family Programming Tutors

Get College Homework Help.

Are you sure you don't want to upload any files?

Fast tutor response requires as much info as possible.

Decision:
Upload a file
Continue without uploading

SUBMIT YOUR HOMEWORK
We couldn't find that subject.
Please select the best match from the list below.

We'll send you an email right away. If it's not in your inbox, check your spam folder.

  • 1
  • 2
  • 3
Live Chats