Skip to content

Commit 7da5e93

Browse files
committed
updates on Christmas Hat and Letters
1 parent 13fa72a commit 7da5e93

File tree

4 files changed

+6
-6
lines changed

4 files changed

+6
-6
lines changed
6.8 KB
Loading
6.1 KB
Loading
7.92 KB
Loading

chapter-08-exam-preparation-part-2.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@
355355

356356
### Тестване в Judge системата
357357

358-
Тествайте решението си тук: [https://judge.softuni.bg/Contests/Practice/Index/517#4](https://judge.softuni.bg/Contests/Practice/Index/517#4).
358+
Тествайте решението си тук: [https://judge.softuni.bg/Contests/Practice/Index/1371#4](https://judge.softuni.bg/Contests/Practice/Index/1371#4).
359359

360360

361361
## Задача: комбинации от букви
@@ -389,24 +389,24 @@
389389

390390
### Насоки и подсказки
391391

392-
За последната задача имаме по условие входни данни на **3 реда**, които са представени от по един символ от **ASCII таблицата** ([http://www.asciitable.com/](http://www.asciitable.com/)). Бихме могли да използваме вече **дефинирана функция** в езика C++, като преобразуваме входните данни в тип данни **`char`** по следния начин:
392+
За последната задача имаме по условие входни данни на **3 реда**, които са представени от по един символ от **ASCII таблицата** ([http://www.asciitable.com/](http://www.asciitable.com/)). Бихме могли да използваме **cin** в езика C++, като преобразуваме входните данни в типa данни **`char`** по следния начин:
393393

394-
![](/assets/old-images/chapter-8-2-images/06.Letters-01.png)
394+
![](assets/chapter-8-2-images/06.Letters-01.png)
395395

396396
Нека помислим как бихме могли да стигнем до **крайния резултат**. В случай че условието на задачата e да се принтират всички от началния до крайния символ (с пропускане на определена буква), как бихме постъпили?
397397

398398
Най-лесният и удачен начин е да използваме **цикъл**, като преминем през **всички символи** и принтираме тези, които са **различни** от **буквата**, която трябва да пропуснем. Едно от предимствата на езика C++, е че имаме възможност да използваме различен тип данни за циклична променлива:
399399

400-
![](/assets/old-images/chapter-8-2-images/06.Letters-02.png)
400+
![](assets/chapter-8-2-images/06.Letters-02.png)
401401

402402
Резултатът от изпълнението на кода е всички букви от **а** до **z** включително, принтирани на един ред и разделени с интервал. Това прилича ли на крайния резултат от нашата задача? Трябва да измислим **начин**, по който да се принтират по **3 символа**, както е по условие, вместо по **1**. Изпълнението на програмата много прилича на игрална машина. Там най-често печелим, ако успеем да наредим няколко еднакви символа. Да речем, че на машината имаме места за три символа. Когато **спрем** на даден **символ** на първото място, на останалите две места **продължават** да се изреждат символи от всички възможни. В нашия случай **всички възможни** са буквите от началната до крайната такава, зададена от потребителя, а решението на нашата програма е идентично на начина, по който работи игралната машина.
403403

404404
Използваме **цикъл**, който минава през **всички символи** от началната до крайната буква включително. На **всяка итерация** на **първия** цикъл пускаме **втори** със същите параметри (но **само ако** буквата на първия цикъл е валидна, т.е. не съвпада с тази, която трябва да изключим по условие). На всяка итерация на **втория** цикъл пускаме още **един** със **същите параметри** и същата **проверка**. По този начин ще имаме три вложени цикъла, като в тялото на **последния** ще принтираме символите.
405405

406-
![](/assets/old-images/chapter-8-2-images/06.Letters-03.png)
406+
![](assets/chapter-8-2-images/06.Letters-03.png)
407407

408408
Нека не забравяме, че се изисква от нас да принтираме и **общия брой валидни комбинации**, които сме намерили, както и че те трябва да се принтират на **същия ред**, разделени с интервал.
409409

410410
### Тестване в Judge системата
411411

412-
Тествайте решението си тук: [https://judge.softuni.bg/Contests/Practice/Index/517#5](https://judge.softuni.bg/Contests/Practice/Index/517#5).
412+
Тествайте решението си тук: [https://judge.softuni.bg/Contests/Practice/Index/1371#5](https://judge.softuni.bg/Contests/Practice/Index/1371#5).

0 commit comments

Comments
 (0)