Алгоритамски начин размишљања¶
Живимо окружени рачунарима.
Сакривени су у нашим мобилним уређајима, сатовима, телевизорима, кухињским апаратима, аутомобилима, лифтовима. Олакшавају нам послове, а учење чине занимљивијим. Захваљујући рачунарима, слободно размењујемо информације и брзо им приступамо.
Често се чини да су рачунари паметни. Морамо да те разочарамо – рачунари, још увек, не могу самостално да мисле! Рачунари су машине које следе упутства (наредбе) и тако обављају различите задатке.
Наредбе рачунарима пишу људи, мали и велики програмери. Скупови наредби које рачунар извршава називају се програми.
Да би рачунар могао да ти помогне да брже и лакше обављаш неки посао, мораш да га за то „обучиш“ - програмираш. Процес програмирања састоји се из две фазе:
Прво, мораш добро да разумеш проблем који желиш да решиш. Мораш да га анализираш, а затим рашчланиш на мање, теби познате проблеме, за које већ имаш решења. На тај начин, уз помоћ сопствених знања и искустава, лако ћеш осмислити упутство за његово решавање;
Друго, језиком који рачунар разуме, мораш да му саопштиш како да решава проблем.
Истина је да проблеми умеју да делују нерешиво, попут магије.
Ксенија је споменула реч алгоритам. Алгоритам је низ корака који воде до решења неког проблема. Иако је деловало да Ксенија има пуно среће, у ствари се радило о врло прецизном низу корака које је она следила како би победила.
- Алгоритам А
- Објашњавајући како побеђује, Ксенија је рекла да, у првом кругу, Мита узима две коцкице. Да ли би Ксенија победила да је Мита, уместо две, узео само једну коцкицу? Покушај да замислиш такву ситуацију и поново реши овај задатак.
- Алгоритам B
- Имаш одлично запажање и начин размишљања програмера!
Q-1: Који алгоритам је Ксенија примењивала?
Примећујеш да је, у Ксенијином алгоритму, природа корака различита.
Неки кораци се извршавају по редоследу како су наведени (У чинију ставити 17 коцкица и поводац; Узети прву коцкицу);
Неки кораци зависе од одређеног услова (Ако противник узме 1 коцкицу, узети 3 коцкице, …);
Неки кораци се понављају (кораци 3, 4 и 5 понављају се 4 пута),
Ток алгоритма је делом линијски (корак по корак), делом условљен (од потеза противника зависи Ксенијин потез) и цикличан (неки кораци се понављају).
Да би Ксенијин алгоритам разумео и рачунар, мораш да му га објасниш користећи неки од програмских језика.
Програмски језици углавном су текстуални. То значи да програмер пише наредбе у специфичном облику енглеског језика. На пример, ако користиш Пајтон (енгл. Python), наредба да рачунар на екрану испише „Узимам једну коцкицу.“ изгледа овако:
print (‘Uzimam jednu kockicu.’)
.
Почетницима, текстуални програмски језици често делују сложено. Зато су осмишљени визуелни програмски језици. Они ти омогућавају да програмираш без куцања наредби, спајањем графичких блокова. Ух, и ово делује компликовано!
Да бисмо те уверили у једноставност визуелног програмирања показаћемо ти како у програмском језику Скреч (енг. Scratch) изгледа исписивање реченице „Узимам једну коцкицу.“
Када рачунар извши ову наредбу, на екрану ће се појавити:
Симпатично, зар не?
Знамо да немаш програмерско искуство у Скречу. Ипак, верујемо да ћеш моћи да одговориш на следећа питања.
- Кораке 1 и 2
- Браво! За тебе је програмирање заиста једноставно!
- Кораке 1 и 3
- Хм. Шта се дешава у трећем кораку алгоритма? Размисли.
- Кораке 2 и 3
- Хм. Шта се дешава у трећем кораку алгоритма? Размисли.
Q-2: На које кораке Ксенијиног алгоритма се односи следећи низ наредби?
- Корак 3
- Само полако! Размисли опет.
- Корак 4
- Само полако! Размисли опет.
- Корак 5
- Браво! Већ препознајемо будућег програмера!
Q-3: Ова наредба делује сложеније. На који корак Ксенијиног алгоритма се она односи?
Програмирање треба да посматраш као нову врсту писања. Када овладаш техникама и логиком програмирања, моћи ћеш да „пишеш“ нове врсте „текста“ - интерактивне приче, игре, анимације и симулације.
Рачунар је предвидљива машина. Радиће баш оно што му кажеш. Твој програм извршаваће се на потпуно исти начин на различитим рачунарима.
Покушај да даш неко упутство другарицама и друговима. Видећеш да ће свако од њих, иако су добили прецизна упутства, задатак урадити на свој начин. На људе утичу њихове емоције, предзнање, искуство и још много чинилаца.
Лепота програмирања лежи у могућности да машташ и, кроз стварање програма, оствариш своје снове. Рачунар, сам по себи, не рађа креативност, али помаже да се она чује далеко и одјекне громогласно!
Од Скреча ка Пајтону
У шестом разреду писаћеш програме у текстуалном програмском језику Пајтон (енг. Python).
Не брини. Иако програмирање у текстуалном језику делује сложеније, у питању је само форма. Никада не губи из вида да је осмишљавање решења најважни део процеса програмирања. Да ли ћеш рачунару објаснити како да решава проблем користећи Скреч или Пајтон, заиста није важно.
И у наредним лекцијама очекују те блокови Од Скреча ка Пајтону. Приказиваћемо ти наредбе написане у Скречу и Пајтону које имају исти резултат извршавања. Видећеш да је њихов запис различит, а опет довољно сличан да своја знања програмерска знања стечена радом у Скречу примениш при програмирању у Пајтону.