You are on page 1of 7

Задачи од колоквиуми 2021/2022 (page 1 of 3) https://ispiti.finki.ukim.mk/mod/quiz/attempt.php?attempt=290277&cm...

Dashboard / My courses / Нп-2021/2022/Z-39_30729 / General / Задачи од колоквиуми 2021/2022

1 of 7 13/02/2022, 22:30
Задачи од колоквиуми 2021/2022 (page 1 of 3) https://ispiti.finki.ukim.mk/mod/quiz/attempt.php?attempt=290277&cm...

Question 1

Incorrect

Marked out of 1.00

Да се имплементира класата LineProcessor со единствен метод:

• void readLines (InputStream is, OutputStream os, char c) којшто од влезен поток ќе ги прочита сите стрингови (секој од нив
во нов ред), а на излезен поток ќе ја испечати линијата/стрингот којшто го содржи карактерот c најмногу пати. Доколку има
повеќе такви линии да се испечати последната. Да се игнорира големината на буквите

Задачата мора да ги помине сите тест примери за да се продолжи на главниот дел од испитот.
For example:

Input Result

FINKI Naaaaapredno programiraaaanje


Napredno programiranje
Naaaaapredno programiraaaanje
Javaaa

Naaapredno zadaca
programiraanje
zadaca

Answer: (penalty regime: 0 %)

Reset answer

1 package baki;
2 ▼ public class LineProcessorTest {
3 ▼ public static void main(String[] args) {
4 LineProcessor lineProcessor = new LineProcessor();
5
6 ▼ try {
7 lineProcessor.readLines(System.in, System.out, 'a');
8 ▼ } catch (IOException e) {
9 e.printStackTrace();
10 }
11 }
12
13 }
14

Precheck Check

Syntax Error(s)

2 of 7 13/02/2022, 22:30
Задачи од колоквиуми 2021/2022 (page 1 of 3) https://ispiti.finki.ukim.mk/mod/quiz/attempt.php?attempt=290277&cm...

LineProcessorTest.java:4: error: cannot find symbol


LineProcessor lineProcessor = new LineProcessor();
^
symbol: class LineProcessor
location: class LineProcessorTest
LineProcessorTest.java:4: error: cannot find symbol
LineProcessor lineProcessor = new LineProcessor();
^
symbol: class LineProcessor
location: class LineProcessorTest
LineProcessorTest.java:8: error: cannot find symbol
} catch (IOException e) {
^
symbol: class IOException
location: class LineProcessorTest
3 errors

3 of 7 13/02/2022, 22:30
Задачи од колоквиуми 2021/2022 (page 1 of 3) https://ispiti.finki.ukim.mk/mod/quiz/attempt.php?attempt=290277&cm...

Question 2

Not complete

Marked out of 1.00

Потребно е да се развие апликација за чување на информации за месечните сметки на корисниците на еден мобилен оператор.
Мобилниот оператор нуди 2 типа на пакети на своите корисници: S и M пакет. Во пакетот S корисникот во рамки на еден месец
има бесплати 100 минути разговор, 50 СМС пораки и 5 GB интернет, додека пак во пакетот M корисникот има бесплатни 150
минути, 60 СМС пораки и 10 GB интернет. Основната цена на пакетот S е 500 денари, додека пак основната цена на пакетот M е
750 денари.

Во операторот работат претставници за продажба (sales reps) коишто се одговорни за клиентите кои тие ги вовеле во
операторот и соодветно добиваат одредена провизија (commision) за секоја месечна сметка на своите клиенти.
За таа цел дефинирајте класа MobileOperatorсо следните методи:

• Конструктор без аргументи MobileOperator()


• Метод void readSalesRepData (InputStream is) - метод за вчитување на месечните извештаии за клиентите на sales reps. Во
секој ред се дадени информациите за еден sales rep во следниот формат: salesRepID [customerBill1] [customerBill2] …
[customeBillrN]. Форматот на информациите за секој сметка е следен: customerID package_type count_of_minutes count_of_SMS
count_of_data_in_GB, каде што package_type е еден карактер S или М што го означува типот на пакетот. Бројот на потрошени
минути и пораки е цел број, додека бројот на потрошен интернет може да биде и децимален број. Сите информации во
рамки на една линија се одделени со празно место.
◦ ID на еден sales rep содржи точно 3 знаци (сите се цифри), додека пак ID на клиент содржи точно 7 знаци (сите се цифри).
Да се фрли исклучот од тип InvalidIdException доколку некој клиенt или sales rep имаат невалиден ID. Доколку станува
збор за клиент, сметката на тој клиент да се игнорира. Доколку станува збор за sales rep да се игнорира целиот негов
извештај. Да се испечати порака при фаќање на исклучокот. Форматот на пораките е во вториот и третиот тест пример.
• методот void printSalesReport (OutputStream os) - методот за печатење на извештаите за sales representatives. Извештајот за
еден sales rep e во следниот формат ID number_of_bills min_bill average_bill max_bill total_commission. Под bill се
подразбира износот на сметката на некој клиент.
◦ На сликата подолу е дадено колку чини секоја услуга над бесплатните услуги. Сметката на даден клиент се пресметува така
што се собира основната цена на пакетот со дополнителните трошоци направени како резултат на надминување на
бесплатните минути/пораки/GB интернет.
◦ Еден sales rep добива провизија 4% од сметката на корисник на пакет M и 7% од сметката на корисник на пакет S.
◦ Извештаите да бидат испечатени сортирани во опаѓачки редослед според провизијата на sales rep-от.

For example:

Input Result

475 4642771 M 248 90 14.94 2281930 S 139 48 6.19 4040003 M 189 100 ---- READING OF THE SALES REPORTS ----
11.90 5064198 M 159 78 9.32 ---- PRINTING FINAL REPORTS FOR SALES
REPRESENTATIVES ----
475 Count: 4 Min: 724.75 Average: 1011.89 Max:
1360.80 Commission: 183.64

4777887 4642771 M 248 90 14.94 2281930 S 139 48 6.19 4040003 M 189 ---- READING OF THE SALES REPORTS ----
100 11.90 5064198 M 159 78 9.32 4777887 is not a valid sales rep ID
---- PRINTING FINAL REPORTS FOR SALES
REPRESENTATIVES ----

475 4642771 M 248 90 14.94 22819AAA30 S 139 48 6.19 4040003 M 189 ---- READING OF THE SALES REPORTS ----
100 11.90 5064198 M 159 78 9.32 22819AAA30 is not a valid user ID
---- PRINTING FINAL REPORTS FOR SALES
REPRESENTATIVES ----
475 Count: 3 Min: 858.00 Average: 1107.60 Max:
1360.80 Commission: 132.91

4 of 7 13/02/2022, 22:30
Задачи од колоквиуми 2021/2022 (page 1 of 3) https://ispiti.finki.ukim.mk/mod/quiz/attempt.php?attempt=290277&cm...

Answer: (penalty regime: 0 %)

Reset answer

1 ▼ public class MobileOperatorTest {


2 ▼ public static void main(String[] args) {
3 MobileOperator mobileOperator = new MobileOperator();
4 System.out.println("---- READING OF THE SALES REPORTS ----");
5 mobileOperator.readSalesRepData(System.in);
6 System.out.println("---- PRINTING FINAL REPORTS FOR SALES REPRESENTATIVES ----");
7 mobileOperator.printSalesReport(System.out);
8 }
9 }

Precheck Check

5 of 7 13/02/2022, 22:30
Задачи од колоквиуми 2021/2022 (page 1 of 3) https://ispiti.finki.ukim.mk/mod/quiz/attempt.php?attempt=290277&cm...

Question 3

Not complete

Marked out of 1.00

Потребно е да се развие генерички систем за статистичка обработка на броеви.


За да се обработат броевите ќе се користи генеричкиот интерфејс NumberProcessor. Овој интерфејс има само еден метод со
потпис: R compute(ArrayList<T> numbers), каде што R е типот на резултатот од методот, a numbers e листа од броеви (било каков
тип на броеви).
Дадена е класата Numbers во која ќе се чуваат листа од било какви броеви. За класата да се дефинираат соодветните генерички
параметри, да се имплементира конструктор Numbers(ArrayList<T> elements), како и да се комплетира имплементацијата на
методот process кој како аргумент прима објект од типот NumberProcessor.

Дополнително, во главната програма потребно е да се имплементираат четири конкретни обработувачи на броеви


NumberProcessor (со помош на ламбда изрази или анонимни класи). Овие имплементации ќе ги користат објекти од
класата Numbers за обработување на своите елементи:
1. Процесор кој ќе врати колку броеви се негативни
2. Процесор којшто ќе врати дескриптивни статистики (count, min, average, max) за броевите
3. Процесор којшто ќе ги врати броевите сортирани во растечки редослед.
4. Процесор којшто ќе ја пресмета медијаната на броевите (елементот на средина во сортирана листа доколку листата има
непарен број на елементи, а во спротивно просекот на двата средни елементи, доколку листата има парен број на
елементи).

For example:

Input Result

5 RESULTS FROM THE FIRST NUMBER PROCESSOR


1 1
2 RESULTS FROM THE SECOND NUMBER PROCESSOR
3 Count: 5 Min: -10.00 Average: 0.00 Max: 4.00
4 RESULTS FROM THE THIRD NUMBER PROCESSOR
-10 [-15.6, -10.1, 23.5, 77.7, 88.1]
5 RESULTS FROM THE FOURTH NUMBER PROCESSOR
23.5 23.5
-15.6
-10.1
77.7
88.1

Answer: (penalty regime: 0 %)

Reset answer

1 ▼ import java.util.*;
2 import java.util.stream.Collectors;
3
4 ▼ interface NumberProcessor???{
5 R compute(ArrayList??? numbers);
6 }
7
8 ▼ class Numbers??? {
9 //TODO add fields
10
11 //TODO constructor
12
13 ▼ void process(NumberProcessor??? processor) {
14 System.out.println(processor.compute(...));
15 }
16 }
17
18 ▼ public class NumberProcessorTest<T extends Number> {
19
20 ▼ public static void main(String[] args) {
21 
22 ArrayList<Integer> integerArrayList = new ArrayList<>();

6 of 7 13/02/2022, 22:30
Задачи од колоквиуми 2021/2022 (page 1 of 3) https://ispiti.finki.ukim.mk/mod/quiz/attempt.php?attempt=290277&cm...

Check

◄ Announcements

Jump to...

Дополнителна задача од втор колоквиум ►

7 of 7 13/02/2022, 22:30

You might also like