$$ \newcommand{\floor}[1]{\left\lfloor{#1}\right\rfloor} \newcommand{\ceil}[1]{\left\lceil{#1}\right\rceil} \renewcommand{\mod}{\,\mathrm{mod}\,} \renewcommand{\div}{\,\mathrm{div}\,} \newcommand{\metar}{\,\mathrm{m}} \newcommand{\cm}{\,\mathrm{cm}} \newcommand{\dm}{\,\mathrm{dm}} \newcommand{\litar}{\,\mathrm{l}} \newcommand{\km}{\,\mathrm{km}} \newcommand{\s}{\,\mathrm{s}} \newcommand{\h}{\,\mathrm{h}} \newcommand{\minut}{\,\mathrm{min}} \newcommand{\kmh}{\,\mathrm{\frac{km}{h}}} \newcommand{\ms}{\,\mathrm{\frac{m}{s}}} \newcommand{\mss}{\,\mathrm{\frac{m}{s^2}}} \newcommand{\mmin}{\,\mathrm{\frac{m}{min}}} \newcommand{\smin}{\,\mathrm{\frac{s}{min}}} $$

Prijavi problem


Obeleži sve kategorije koje odgovaraju problemu

Još detalja - opišite nam problem


Uspešno ste prijavili problem!
Status problema i sve dodatne informacije možete pratiti klikom na link.
Nažalost nismo trenutno u mogućnosti da obradimo vaš zahtev.
Molimo vas da pokušate kasnije.

Структуре података - додатни задаци за вежбу

Торке/Листе

Да ли је број био извучен?

Листа садржи бројеве извучене у лото извлачењу. Напиши програм који за дати број проверава да ли је био извучен.

Да ли је просек ближи најмањем или највећем елементу листе?

Напиши програм који за дату листу бројева одређује да ли је просек те листе ближи најмањем или највећем њеном елементу или је подједнако удаљен од њих.

Најјефтинији за динар

Дате су цене три производа. Ко купи сва три, најјефтинији ће добити за динар. Колико ће платити?

Један начин је да сортирамо листу од три цене тако да цене у листи буду уређене од најмање до највеће, а затим да први елемент листе (цену најјефтинијег производа) заменимо са 1 и на крају саберемо елементе листе. Нагласимо да, пошто желимо да променимо цену неког производа, морамо употребити листу, а не торку.

Рецимо и да смо задатак могли решити и без сортирања, тако што бисмо од укупне цене сва три производа одузели цену најјефтинијег производа, па добијени износ увећали за један динар.

Ниске

Дужа ниска

Напиши програм у којем се учитавају две ниске и исписује дужина дуже од њих.

Број самогласника

Напиши програм који учитава неки и затим пребројава колико у њему има самогласника (претпоставити да се текст састоји само од малих слова латинице).

Позив на број

Сваки корисник система обједињене наплате рачуна приликом уплате наводи позив на броју. Тај позив се састоји од цифара. Прве две цифре су ознака месеца за који се уплаћује, наредне четири ознака године, а наредних шест су идентификација корисника. На пример, 032018742562 значи да корисник са бројем 742562 уплаћује рачун за март 2018. године. Напиши програм који за унети позив на број исписује месец, годину и идентификацију корисника.

Декодирање студентског индекса

Сваки студент на факултету има свој број индекса. На пример, бројеви индекса су 123/2017, 421/2016 или 12/2015. Дефиниши функцију која за дати број индекса у облику ниске одређује редни број студента и годину његовог уписа (у облику бројева).

Сакривање слова

Напиши програм у којем се уноси реч од бар 5 слова и исписује се реч која се добија kада се њена прва два и последња два слова замене са __. Нпр, за унето petlja исписује се __tl__.

Нинџа-корњача

Нинџа-корњача се креће кроз лавиринт тако што слуша упутства на тајном језику. Горе се на том језику каже rif, доле el, лево oma, а десно lun. Напиши програм који помаже корњачи да пронађе излаз из лавиринта.

../_images/string_kornjaca_lavirint.png

Упутство за корњачу је:

Робот у лавиринту

Робот се у просторији креће на основу задатог упутства. Упутство је низ команди Горе, Доле, Лево и Десно (на пример, uputstvo = "Горе Лево Лево Десно Лево Доле Горе Доле Горе Десно Горе"). У сваком кораку он се помера за једно поље. Поља квадратног облика су поређана као поља на шаховској табли и свако поље има свој број врсте и колоне. Централно поље у просторији је обележено са (0, 0), и од њега бројеви врста и колона расту на доле и на десно, а опадају на горе и на лево (као што је приказано на слици). Одреди на ком пољу ће се налазити робот након извшавања команди.

../_images/grid_coordinates.png

Задатак можемо најлакше решити тако што одредимо колико пута се робот померио у сваком од четири смера. Број врсте у којој се налази на крају ће бити разлика између броја корака које је направио на доле и броја корака које је направио на горе, док ће број колоне бити разлика између броја корака које је направио на десно и броја корака које је направио на лево.

Исправе означене редове у наредном програму. Робот на крају завршава на пољу (-2, -1).

Скупови

Панграми

Панграми су реченице које садрже сва слова неке абецеде или азбуке. Пожељно је да панграми буду што краћи. Панграми се обично користе да би се приказали фонтови на рачунарима (јер корисник кроз веома кратак текст може видети како изгледају сва слова). Најчувенији панграм на енглеском језику је the quick brown fox jumps over the lazy dog. Неки од панграма на српском језику су и следеће реченице:

  • Фијуче ветар у шибљу, леди пасаже и куће иза њих и гунђа у оџацима.

  • Ниџо, чежњиво гледаш фотељу, а Ђура и Мика хоће позицију себи.

  • Дебљој згужвах смеђ филц — њен шкрт џепчић.

Напиши програм који за дату реченицу проверава да ли је панграм тако што исписује број различитих слова која се у њој јављају.

Дефинисаћемо скуп малих слова ћирилице и пронаћи ћемо пресек тог скупа и скупа слова која се јављају у реченици (у којој су помоћу метода lower() сва слова претворена у мала).

Речници

Испиши главни град

У речнику су задати главни градови неколико држава. Напиши програм који за унету државу исписује главни град или пријављује да град те државе није познат на основу података у речнику.

Петље

Сви префикси

Напиши програм који исписује све почетне делове речи која се уноси са улаза. На пример, ако је реч petlja, програм ипсисује p, затим pe, pet, petl, petlj и на крају petlja.

Сваки елемент листе у посебном реду

Направи листу која садржи имена твојих омиљених певача, певачица или група, а затим у петљи испиши њене елементе, сваки у посебном реду.

Просеци свих ученика

Дата је листа која за сваког ученика садржи име, презиме и листу оцена из програмирања. Напиши програм који исписује име и презиме сваког ученика, затим његов просек оцена, а затим и сваку оцену у посебном реду.