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

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

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

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

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

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

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

Викладач

Різник О. Я.

Львів 2020

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

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

package com.company;

public class Main {

public static void main(String[] args)

{

printOut result = new printOut();

result._print();

}

}

package com.company;

import java.util.Scanner;

public class getProgsSegmentCount

{

public int[] segments = new int[100];

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

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

public int i;

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

private int size = 100;

private int cnt;

private int j;

void _get ()

{

i=0;

while (size!=0)

{

System.out.println("Максимальна кількість сегментів = " + size);

System.out.print("Кількість сегментів програми №" + (i+1) + " = ");

if (sc.hasNextInt())

{

cnt = sc.nextInt();

if (cnt == 0) break;

else

{

if (cnt <= size)

{

progs[i]=cnt;

size-=cnt;

i++;

}

else

{

System.out.println();

cnt = 0;

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

}

}

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

}

}

}

public class printOut

{

private int i;

private segmentOrganizer SO = new segmentOrganizer();

public void _print()

{

SO.organize();

System.out.println("\nСписок сегментів і їх номерів програм");

for (i = 0; i < SO.i; i++)

{

System.out.printf("Сегмент №%3d - програма №%3d\n", i+1, SO.data.progs_numb[i]);;

}

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

}

}

public class segmentOrganizer {

public getProgsSegmentCount data = new getProgsSegmentCount();

//кількість сегментів для printOut

public int i;

private int k = 0;

private int size = 0;

public void organize() {

data._get();

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

i = 0;

while (size > 0)

{

if (data.progs[k] > 0)

{

data.segments[i] = 1;

data.progs_numb[i] = k+1;

data.progs[k]-=1;

size-=1;

i++;

}

else k++;

}

}

}

Результати: