Добавил:
інстаграм _roman.kob, курсові роботи з тєрєхова в.в. для КІ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторна робота №3(1)

.docx
Скачиваний:
1
Добавлен:
31.05.2020
Размер:
400.13 Кб
Скачать

Технічний коледж

НУ "Львівська політехніка"

Лабораторна робота 3 З ОС

Студент групи 31КІ Мартинюк Р.

Викладач

Різник О. Я.

Львів 2020

Мета: створення алгоритму організації сторінок за квантом часу.

Код програми:

public class Main {

public static void main(String[] args)

{

printOut result = new printOut();

result._print();

}

}

public class getProgsSize

{

public int[] pages = new int[80];

public int[] progs = new int[80];

public int[] progs_numb = new int[80];

public int i;

public Scanner sc = new Scanner(System.in);

private int size = 80;

private int getted_pr_size;

private int j;

void _get ()

{

i=0;

while (size!=0)

{

System.out.println("Максимальний розмір = " + size);

System.out.print("Розмір програми №" + (i+1) + " = ");

if (sc.hasNextInt())

{

getted_pr_size = sc.nextInt();

if (getted_pr_size == 0) break;

else

{

if (getted_pr_size <= size)

{

progs[i]=getted_pr_size;

size-=getted_pr_size;

i++;

}

else

{

System.out.println();

getted_pr_size = 0;

System.out.println("Введений розмір програми завеликий - програма не поміститься у пам'ять\n");

}

}

} else System.out.println("Ви ввели не число");

System.out.println();

}

}

private void test_()

{

for (j=0;j<=i;j++) System.out.println (progs[j]);

}

}

public class pageOrganizer {

public getProgsSize data = new getProgsSize();

public int j;

public int k = 0;

private int i = 0;

private int size = 0;

public void organize() {

data._get();

for (j = 0; j < data.i; j++) size += data.progs[j];

while (size > 0)

{

if (data.progs[i] > 4) {

data.progs[i] -= 4;

size -= 4;

data.pages[k] = 4;

data.progs_numb[k] = i+1;

}

else

if

(data.progs[i] == 4)

{

data.pages[k] = 4;

data.progs[i] = 0;

data.progs_numb[k] = i+1;

size -= 4;

i++;

}

else

if

(data.progs[i] < 4)

{

data.pages[k] = data.progs[i];

data.progs_numb[k] = i+1;

size -= data.progs[i];

data.progs[i] = 0;

i++;

}

k++;

}

}

}

public class printOut

{

private int i;

private pageOrganizer PO = new pageOrganizer();

public void _print()

{

PO.organize();

for (i = 0; i < PO.k; i++)

{

System.out.printf("%2d) Программа №%2d | розмір сторінки = %d\n", i+1, PO.data.progs_numb[i], PO.data.pages[i]);;

}

System.out.println("Кількість сторінок = " + i + "\n" + "Кількість процесів = " + PO.data.progs_numb[i-1]);

}

}

Результат: