From 9cb6a26884c8729a882988f70123adb003b382cd Mon Sep 17 00:00:00 2001 From: 100yo Date: Sat, 14 Oct 2023 00:46:44 +0300 Subject: [PATCH] Add Lab 01 assignments --- .../lab/01-ip-validator/README.md | 26 +++++++++++++ 01-intro-to-java/lab/02-jump-game/README.md | 26 +++++++++++++ .../lab/03-broken-keyboard/README.md | 36 ++++++++++++++++++ 01-intro-to-java/lecture/images/jump-game.jpg | Bin 0 -> 53603 bytes 4 files changed, 88 insertions(+) create mode 100644 01-intro-to-java/lab/01-ip-validator/README.md create mode 100644 01-intro-to-java/lab/02-jump-game/README.md create mode 100644 01-intro-to-java/lab/03-broken-keyboard/README.md create mode 100644 01-intro-to-java/lecture/images/jump-game.jpg diff --git a/01-intro-to-java/lab/01-ip-validator/README.md b/01-intro-to-java/lab/01-ip-validator/README.md new file mode 100644 index 00000000..0ee99c9f --- /dev/null +++ b/01-intro-to-java/lab/01-ip-validator/README.md @@ -0,0 +1,26 @@ +## Валидация на IPv4 адрес 🌐 + +### Условие + +*IP* (*Internet Protocol*) е протокол на мрежовия слой в [OSI модела](https://en.wikipedia.org/wiki/OSI_model) и е в основата на целия Интернет. Различните устройства в мрежата се характеризират с различни IP адреси, благодарение на които те се идентифицират и могат да си комуникират. IP адресите биват два вида: [IPv4](https://en.wikipedia.org/wiki/Internet_Protocol_version_4) и [IPv6](https://en.wikipedia.org/wiki/IPv6). Днес ще се фокусираме върху IPv4 адресите. Един валиден IPv4 адрес има следния формат: `x1.x2.x3.x4`, където `xi` се нарича *октет*, `0 <= xi <= 255` и `xi`не съдържа водещи нули. + +Създайте публичен клас `IPValidator` с метод + +```java +public static boolean validateIPv4Address(String str) +``` + +който по даден низ `str` връща `true`, ако `str` e валиден IPv4 адрес, и `false` иначе. + +### Примери + +| Извикване | Резултат | +| :------------------------------------ | :------- | +| `validateIPv4Address("192.168.1.1")` | `true` | +| `validateIPv4Address("192.168.1.0")` | `true` | +| `validateIPv4Address("192.168.1.00")` | `false` | +| `validateIPv4Address("192.168@1.1")` | `false` | + +### :warning: Забележки + +- Използването на структури от данни, различни от масив, **не е позволено**. Задачата трябва да се реши с помощта на знанията от първата лекция от курса. diff --git a/01-intro-to-java/lab/02-jump-game/README.md b/01-intro-to-java/lab/02-jump-game/README.md new file mode 100644 index 00000000..0935edb2 --- /dev/null +++ b/01-intro-to-java/lab/02-jump-game/README.md @@ -0,0 +1,26 @@ +## Скок-подскок :runner: + +### Условие + +Играта `скок-подскок` се играе по следния начин: на земята имате нарисуванa последователност от квадратчета (с дължина поне едно) с неотрицателни числа в тях. Стъпвате на първото квадратче и можете да минете толкова квадратчета напред, колко е числото, върху което в момента сте стъпили. Например, ако пише числото 3, можете да направите 0, 1, 2 или 3 крачки напред. Печелите играта, ако успеете след достатъчен брой ходове от този вид да стъпите на последното квадратче. + +Създайте публичен клас `JumpGame` с метод + +```java +public static boolean canWin(int[] array) +``` + +който по даден масив `array` определя дали можете да спечелите. + +### Примери + +Jump Game + +| Извикване | Резултат | +| :--------------------------------- | :------- | +| `canWin(new int[]{2, 3, 1, 1, 0})` | `true` | +| `canWin(new int[]{3, 2, 1, 0, 0})` | `false` | + +### :warning: Забележки + +- Използването на структури от данни, различни от масив, **не е позволено**. Задачата трябва да се реши с помощта на знанията от първата лекция от курса. diff --git a/01-intro-to-java/lab/03-broken-keyboard/README.md b/01-intro-to-java/lab/03-broken-keyboard/README.md new file mode 100644 index 00000000..4fcbcd66 --- /dev/null +++ b/01-intro-to-java/lab/03-broken-keyboard/README.md @@ -0,0 +1,36 @@ +## Счупената клавиатура ⌨️ ❌ + +### Условие + +Сашко си купил нова механична клавиатура, но, за съжаление, още на първия ден от използването ѝ, разлял вода върху нея. + +Оказало се, че след инцидента някои клавиши от клавиатурата не работят. + +На Сашко му се налага да изпрати важно съобщение до приятел, но не може да напише някои думи. + +Създайте публичен клас `BrokenKeyboard` с метод: + +```java +public int calculateFullyTypedWords(String message, String brokenKeys); +``` + +който за всяко изречение (```message```), което Сашко иска да изпрати, пресмята колко от думите на съобщението могат да се напишат, без да се използват изредените счупени клавиши(```brokenKeys```). + +### !!! ВАЖНО +- За дума приемаме последователност от символи (n > 0), като разделител в съобщението е интервал (`' '`) +- Табулациите не се считат за думи +- За улеснение ще приемем, че клавиатурата съдържа само малки латински букви, цифри и специални символи + +### Примери + +| Извикване | Резултат | +| :-------------------------------------------------------------------- | :------- | +| `calculateFullyTypedWords("i love mjt", "qsf3o")` | `2` | +| `calculateFullyTypedWords("secret message info ", "sms")` | `1` | +| `calculateFullyTypedWords("dve po 2 4isto novi beli kecove", "o2sf")` | `2` | +| `calculateFullyTypedWords(" ", "asd")` | `0` | +| `calculateFullyTypedWords(" - 1 @ - 4", "s")` | `5` | + +### :warning: Забележки + +- Използването на структури от данни, различни от масив, **не е позволено**. Задачата трябва да се реши с помощта на знанията от първата лекция от курса. diff --git a/01-intro-to-java/lecture/images/jump-game.jpg b/01-intro-to-java/lecture/images/jump-game.jpg new file mode 100644 index 0000000000000000000000000000000000000000..20933b4d0293258cbb2565cc69b731678db710e1 GIT binary patch literal 53603 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