Dj Serena Dez
Eternal Poster
- Joined
- Jun 7, 2016
- Posts
- 690
- Reaction
- 214
- Points
- 289
#include <stdio.h>
#include <stdlib.h>
#include<iostream>
using namespace std;
#define MAX 100
#define MAX_PROCESS 100
typedef struct
{
int pid;
int arrival_time;
int burst_time;
int waiting_time;
int turnaround_time;
int current_time;
} Process1;
void print_table(Process1 p[], int n);
void print_gantt_chart1(Process1 p[], int n);
void print_table(Process1 p[], int n)
{
int i;
puts("+-----+--------------+---------------------------+-----------------+");
puts("| PID | Arrival Time | Burst Time | Waiting Time | Turnaround Time |");
puts("+-----+--------------+------------+--------------+-----------------+");
for(i=0; i<n; i++) {
printf("| %2d | %2d | %2d | %2d | %2d |\n"
, p.pid, p.arrival_time, p.burst_time, p.waiting_time, p.turnaround_time );
puts("+-----+--------------+------------+--------------+-----------------+");
}
}
void print_gantt_chart1(Process1 p[], int n)
{
int i, j;
// print top bar
printf(" ");
for(i=0; i<n; i++) {
for(j=0; j<p.burst_time; j++) printf("--");
printf(" ");
}
printf("\n|");
// printing process id in the middle
for(i=0; i<n; i++) {
for(j=0; j<p.burst_time - 1; j++) printf(" ");
printf("P%d", p.pid);
for(j=0; j<p.burst_time - 1; j++) printf(" ");
printf("|");
}
printf("\n ");
// printing bottom bar
for(i=0; i<n; i++) {
for(j=0; j<p.burst_time; j++) printf("--");
printf(" ");
}
printf("\n");
// printing the time line
printf("0");
for(i=0; i<n; i++) {
for(j=0; j<p.burst_time; j++) printf(" ");
if(p.turnaround_time > 9) printf("\b"); // backspace : remove 1 space
printf("%d", p.turnaround_time);
}
printf("\n");
}
typedef struct Job {
unsigned int id;
unsigned int arrivaltime;
unsigned int bursttime;
unsigned int currenttime;
bool done;
} Job;
unsigned int time_width = 3;
int total_burst_time = 0;
int jobsN;
Job jobs[100];
void printGCStart() {
unsigned int i;
printf(" --");
for (i = 1; i < total_burst_time ; i++) {
printf("---");
}
printf("\n|");
}
void printGCEnd() {
unsigned int i;
printf("\n");
for (i = 0; i < total_burst_time ; i++) {
printf("|--");
}
printf("|\n");
for (i = 0; i <= total_burst_time ; i++) {
printf("%-*u", time_width, i);
}
printf("\n\n");
}
void scheduleFCFS() {
unsigned int i, x, time = 0;
float y,
avg_waiting_time5 = 0.0,
avg_turnaround_time5 = 0.0;
printf("First Come First Serve Scheduling:\n");
printGCStart();
for (i = 0; i < jobsN; i++) {
x = jobs.bursttime * time_width;
printf("%*u", x - (x/2), jobs.id);
printf("%*c", x/2, '|' );
y = (float)(time - jobs.arrivaltime) / jobsN;
avg_waiting_time5 += y;
avg_turnaround_time5 += y + (jobs.bursttime / jobsN);
time += jobs.bursttime;
}
printGCEnd();
printf("Average Waiting Time: %f\n", avg_waiting_time5);
printf("Average Turnaround Time: %f\n", avg_turnaround_time5);
}
int main()
{
main:
{
Process1 p[MAX];
int i, j, n;
int sum_waiting_time=0, sum_turnaround_time=0;
printf("Enter total number of process: ");
scanf("%d", &n);
printf("Enter Arrival time for each process:\n");
for(i=0; i<n; i++) {
p.pid = i+1;
printf("P[%d] : ", i+1);
scanf("%d", &p.arrival_time);
p.waiting_time = p.turnaround_time = 0;
}
printf("Enter burst time for each process:\n");
for(i=0; i<n; i++) {
p.pid = i+1;
printf("P[%d] : ", i+1);
scanf("%d", &p.burst_time);
p.waiting_time = p.turnaround_time = 0;
}
// calculate waiting time and turnaround time
p[0].turnaround_time = p[0].burst_time;
for(i=1; i<n; i++) {
p.waiting_time = p[i-1].waiting_time + p[i-1].burst_time;
p.turnaround_time = p.waiting_time + p.burst_time;
}
// calculate sum of waiting time and sum of turnaround time
for(i=0; i<n; i++) {
sum_waiting_time += p.waiting_time;
sum_turnaround_time += p.turnaround_time;
}
// print table
puts(""); // Empty line
print_table(p, n);
puts(""); // Empty Line
printf("Total Waiting Time : %-2d\n", sum_waiting_time);
printf("Average Waiting Time : %-2.2lf\n", (double)sum_waiting_time / (double) n);
printf("Total Turnaround Time : %-2d\n", sum_turnaround_time);
printf("Average Turnaround Time : %-2.2lf\n", (double)sum_turnaround_time / (double) n);
// print Gantt chart
puts(""); // Empty line
puts(" GANTT CHART ");
puts(" *********** ");
print_gantt_chart1(p, n);
}
return 0;
}
•••••••••••••••••••••••••••••••••••••••••••••••••••
mga master paki check naman po yung code hindi ko maayos huhuhu mali yung nagiging computation niya sa waiting time ginawa ko na lahat pero ganun pa rin mga master pa help T-T
#include <stdlib.h>
#include<iostream>
using namespace std;
#define MAX 100
#define MAX_PROCESS 100
typedef struct
{
int pid;
int arrival_time;
int burst_time;
int waiting_time;
int turnaround_time;
int current_time;
} Process1;
void print_table(Process1 p[], int n);
void print_gantt_chart1(Process1 p[], int n);
void print_table(Process1 p[], int n)
{
int i;
puts("+-----+--------------+---------------------------+-----------------+");
puts("| PID | Arrival Time | Burst Time | Waiting Time | Turnaround Time |");
puts("+-----+--------------+------------+--------------+-----------------+");
for(i=0; i<n; i++) {
printf("| %2d | %2d | %2d | %2d | %2d |\n"
, p.pid, p.arrival_time, p.burst_time, p.waiting_time, p.turnaround_time );
puts("+-----+--------------+------------+--------------+-----------------+");
}
}
void print_gantt_chart1(Process1 p[], int n)
{
int i, j;
// print top bar
printf(" ");
for(i=0; i<n; i++) {
for(j=0; j<p.burst_time; j++) printf("--");
printf(" ");
}
printf("\n|");
// printing process id in the middle
for(i=0; i<n; i++) {
for(j=0; j<p.burst_time - 1; j++) printf(" ");
printf("P%d", p.pid);
for(j=0; j<p.burst_time - 1; j++) printf(" ");
printf("|");
}
printf("\n ");
// printing bottom bar
for(i=0; i<n; i++) {
for(j=0; j<p.burst_time; j++) printf("--");
printf(" ");
}
printf("\n");
// printing the time line
printf("0");
for(i=0; i<n; i++) {
for(j=0; j<p.burst_time; j++) printf(" ");
if(p.turnaround_time > 9) printf("\b"); // backspace : remove 1 space
printf("%d", p.turnaround_time);
}
printf("\n");
}
typedef struct Job {
unsigned int id;
unsigned int arrivaltime;
unsigned int bursttime;
unsigned int currenttime;
bool done;
} Job;
unsigned int time_width = 3;
int total_burst_time = 0;
int jobsN;
Job jobs[100];
void printGCStart() {
unsigned int i;
printf(" --");
for (i = 1; i < total_burst_time ; i++) {
printf("---");
}
printf("\n|");
}
void printGCEnd() {
unsigned int i;
printf("\n");
for (i = 0; i < total_burst_time ; i++) {
printf("|--");
}
printf("|\n");
for (i = 0; i <= total_burst_time ; i++) {
printf("%-*u", time_width, i);
}
printf("\n\n");
}
void scheduleFCFS() {
unsigned int i, x, time = 0;
float y,
avg_waiting_time5 = 0.0,
avg_turnaround_time5 = 0.0;
printf("First Come First Serve Scheduling:\n");
printGCStart();
for (i = 0; i < jobsN; i++) {
x = jobs.bursttime * time_width;
printf("%*u", x - (x/2), jobs.id);
printf("%*c", x/2, '|' );
y = (float)(time - jobs.arrivaltime) / jobsN;
avg_waiting_time5 += y;
avg_turnaround_time5 += y + (jobs.bursttime / jobsN);
time += jobs.bursttime;
}
printGCEnd();
printf("Average Waiting Time: %f\n", avg_waiting_time5);
printf("Average Turnaround Time: %f\n", avg_turnaround_time5);
}
int main()
{
main:
{
Process1 p[MAX];
int i, j, n;
int sum_waiting_time=0, sum_turnaround_time=0;
printf("Enter total number of process: ");
scanf("%d", &n);
printf("Enter Arrival time for each process:\n");
for(i=0; i<n; i++) {
p.pid = i+1;
printf("P[%d] : ", i+1);
scanf("%d", &p.arrival_time);
p.waiting_time = p.turnaround_time = 0;
}
printf("Enter burst time for each process:\n");
for(i=0; i<n; i++) {
p.pid = i+1;
printf("P[%d] : ", i+1);
scanf("%d", &p.burst_time);
p.waiting_time = p.turnaround_time = 0;
}
// calculate waiting time and turnaround time
p[0].turnaround_time = p[0].burst_time;
for(i=1; i<n; i++) {
p.waiting_time = p[i-1].waiting_time + p[i-1].burst_time;
p.turnaround_time = p.waiting_time + p.burst_time;
}
// calculate sum of waiting time and sum of turnaround time
for(i=0; i<n; i++) {
sum_waiting_time += p.waiting_time;
sum_turnaround_time += p.turnaround_time;
}
// print table
puts(""); // Empty line
print_table(p, n);
puts(""); // Empty Line
printf("Total Waiting Time : %-2d\n", sum_waiting_time);
printf("Average Waiting Time : %-2.2lf\n", (double)sum_waiting_time / (double) n);
printf("Total Turnaround Time : %-2d\n", sum_turnaround_time);
printf("Average Turnaround Time : %-2.2lf\n", (double)sum_turnaround_time / (double) n);
// print Gantt chart
puts(""); // Empty line
puts(" GANTT CHART ");
puts(" *********** ");
print_gantt_chart1(p, n);
}
return 0;
}
•••••••••••••••••••••••••••••••••••••••••••••••••••
mga master paki check naman po yung code hindi ko maayos huhuhu mali yung nagiging computation niya sa waiting time ginawa ko na lahat pero ganun pa rin mga master pa help T-T