Садржај
Увод
8. Систематизација
16. Завршни квиз

13.1. Листе

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

Можда се питаш зашто су нам потребне листе у програмирању? Већ следећи, једноставан пример ће ти дати неку идеју о томе. Претпоставимо да желимо да направимо пројекат у коме ће главни лик да наброји нека велика достигнућа човечанства. Скрипта главног лика би могла да изгледа овако:

../_images/IzgovoriDogadjajePoJedan.png

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


Употребом листе у пројекту, скрипта ће сигурно постати краћа. Још важније, тако направљен пројекат је погоднији за дорађивање, па га лакше можемо преправити и додати неку нову функционалност. Зато погледајмо како можемо да искористимо листу у овом задатку.


Прво треба да направимо листу. У групи блокова Променљиве постоји и дугме „Направи листу” (ако већ имаш неке променљиве у пројекту, ово дугме је испод блокова који управљају променљивама).

../_images/PravljenjeListe.png

Кликом на дугме „Направи листу” добијаш прозор – дијалог, у коме треба да задаш име листе. Слично као при прављењу променљиве, ако до овог прозора дођеш уређујући неки од ликова (десни дијалог), онда још треба да изабереш да ли ће листа бити доступна само том лику или свим ликовима (ако правиш листу док уређујеш позорницу, отвориће се леви дијалог и та листа ће бити доступна свим ликовима).

../_images/PravljenjeListe2.png

Назови листу „догађај” и кликни „У реду”. Испод дугмета „Направи листу” појавиће се блок који представља листу.

../_images/PravljenjeListe3.png

Знак ✓ (квачица) у пољу за потврду значи да је листа тренутно видљива на позорници.


Сада треба да попунимо листу. Мале листе је најлакше попуњавати директним уношењем елемената листе. То можеш да урадиш тако што кликнеш на знак плус у доњем левом углу прозора листе, а када се појави поље за елемент листе – упишеш текст у то поље. Величину прозора који приказује листу можеш да подесиш тако што повучеш знак = у доњем десном углу тог прозора. Понављањем овог поступка у листу се уноси један по један елемент.

../_images/PravljenjeListe4.png

Други начин да попуниш листу је погоднији када имамо велику листу. Можеш да направиш текстуални фајл „dogadjaji.txt” са следећим садржајем:

3400 пне. – Употреба писма
3000 пне. – Изградња велике пирамиде у Гизи (Кеопсова пирамида)
1215 – Први правни акт који ограничава власт владара
1450 – Прва штампарија
1769 – Прво возило на сопствени погон
1859 – Дарвинова књига "О пореклу врста"
1869 – Отварање Суецког канала за саобраћај
1882 – Прва хидроелектрана на свету
1895 – Откриће рендгенских зрака
1897 – Бежични пренос података
1928 – Откриће антибиотика
1946 – Први компјутер
1954 – Изграђена соларна ћелија
1957 – Лансирање Спутњика 1 (почетак свемирске ере)
1990 – Успостављање светске рачунарске мреже
2003 – Довршено мапирање људског генома

Када сачуваш фајл, десним кликом на назив листе отвара се мени од само две ставке: „увези” и „извези”. Изабери „увези” и затим кликни на раније припремљени фајл. Листа ће бити попуњена редовима из фајла.

../_images/AutomatskoPopunjavanjeListe.png

Јасно, кликом на ставку „извези” садржај листе се пребацује у фајл на твом рачунару (највероватније у фолдеру Downloads).


Пошто је формирање листе завршено, кликни на квачицу у пољу за потврду поред блока „догађај” да би листа постала невидљива.

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

../_images/IzgovoriDogadjajeLista.png

Да бисмо направили скрипту, потребно је да прво формирамо променљиву „и”. Ову променљиву користимо као редни број елемента у листи. За листу од 16 елемената променљива „и” ће редом добијати вредности од 1 до 16. Уместо „и” смо могли да употребимо и неко јасније име (нпр. „редни број”), али у програмирању је уобичајено да се за овакве, бројачке променљиве користе имена „и”, „ј”, „к”. Зато и убудуће, када у неком програму видиш променљиву „и”, очекуј да она има намену сличну овој.

У скрипти смо употребили и два најважнија блока из групе блокова који контролишу листе, а то су:

  • блок „елемент … из”, који нам омогућава да из дохватимо и употребимо елемент који нам треба

  • блок „дужина”, који нам говори дужину листе.

../_images/BlokoviListe.png

Осим ова два постоји још неколико блокова за баратање листама. На пример, наредна два блока омогућавају да из нашег програма сазнамо да ли се неки податак налази у листи (блок „да ли … садржи”) и на којој позицији је тај податак (блок „место од … у”). Ако податак није у листи, вредност другог блока је 0.

../_images/BlokoviListePretraga.png

Следећа два блока служе да из нашег програма прикажемо или сакријемо листу када је то потребно.

../_images/BlokoviListePrikaz.png

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

  • блок dodaj додаје задати податак (ствар) на крај листе,

  • блок izbaci избацује из листе елемент са наведене позиције (елементи испод избаченог се померају за једно место навише),

  • блок izbaci_sve избацује из листе све елементе (листа остаје празна),

  • блок ubaci убацује задати податак (ствар) на задато место (1) у листи, а елемент који је био на том месту и сви наредни елементи се померају за једно место наниже,

  • блок zameni на место задатог елемента (1) у листи уписује задати податак (ствар). Остали елементи се не померају.

Шта смо научили

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

Додатак

Погледај и пројекте, питања и вежбе о листама у нашем практикуму. Тако ћеш добити јаснију идеју о новим могућностима које се отварају пред тобом када користиш листе.

Петљин студио Листе на сајту Скреча садржи урађене пројекте за задатке сличне оним којима смо се овде бавили.

Провери своје знање пролазећи кроз наредна питања и вежбе.

(Created using Swinx, RunestoneComponents and PetljaDoc)
© 2022 Petlja
A- A+