Question

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 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);
}...

This is only a preview of the solution. Please use the purchase button to see the entire solution

Assisting Tutor

Related Homework Solutions

C++ Questions
Homework Solution
$15.00
Computer Science
Programming
Prime Numbers
Mathematics
Input
Output
Loops
Statements
Structures
Algorithms
Calendar
Leap Years
Reverse Digits
Functions
Coding Using Pipes
Homework Solution
$30.00
Computer Science
Programming
Algorithms
Pipes
File Management
Command Line
Communication
Utility Program
Display Results
Numbers
Input
Output
Characters
Errors
Death Ping Program
Homework Solution
$75.00
Programming
Computer Science
C#
Algorithms
Hacking
Virus
Router
IP Address
Death Ping
Network
Windows
Loops
Packages
Variables
Damage
Connectivity
An Electrodialysis Machine
Homework Solution
$15.00
Electrodialysis
Machine
Computer
Science
C-Family
Programming
Filter
Impurities
Water
Current
Experiment
Get help from a qualified tutor
Live Chats