Programiranje u Skreču, praktikum za peti razred

Стрингови

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

prouci Проучи следеће примере пројеката

Пример 1 - Пројекат Папагај

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

_images/papagaj_slika.png

За креирање овог пројекта коришћене су операције помоћу којих смо издвојили прво слово из имена и утврдили колико слова има у имену.

По извршењу наредбе pitaj_cekaj Скреч памти низ знакова које је корисник унео у простору који се зове odgovor.

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

_images/string_op2.png

Трећа операција која је употребљена за формирање излазне поруке је povezi.

Ево како се праве реченице повезивањем више речи.

_images/povezivanje.png

Скрипта пројекта Папагај приказана је на следећој слици.

_images/papagaj_skripta.png
Следи пројекат у коме се показује како се коришћењем стринг операција могу издвајати
цифре броја.

Пример 2 - Пројекат Замени_цифре

Сценарио пројекта

Главни део овог пројекта је скрипта која замењују места цифри јединица и цифри стотина у природном троцифреном броју x који се уноси са улаза.

Лик водитељ тражи од корисника да унесе троцифрен број. При том се врши провера да ли је заиста унет троцифрен број. Ако није, понавља се захтев за улаз све док се заиста не унесе троцифрен број. Затим се издвајају прва и трећа цифра, па се прави број zamenjen са замењеним цифрама јединица и стотина. Број се формира помоћу две операције povezi. На крају водитељ изговара изворни број и број са замењеним цифрама јединица и стотина.

Скрипта пројекта приказана је на следећој слици.

_images/zameni_skripta.png
Палиндром је реч или речиница која исто гласи било да се чита слева удесно или здесна
улево. На пример, реч "потоп" је палиндром.
Слично се дефинише и број који је палиндром. На пример, број 12321 је палиндром.
У наредном пројекту проверава се да ли је унета реч палиндром.

Пример 3 - Пројекат Палиндром

Лик водитељ тражи од корисника да унесе реч. Променљива d добија као вредност дужину речи. Пореде се прво и последње слово речи, друго и претпоследње и тако редом све до средине речи. Променљива i, чија је почетна вредност 0 и повећава се за 1 у оквиру циклуса, омогућава да се следећом провером изврше ова поређења.

_images/nije_pal.png

Променљивља p указује на број провера. Уколико се при некој од провера покаже да одговарајућа слова нису једнака, реч није палиндром и то се региструје доделом 0 променљивој pal (која је на почетку постављена на 1). После провере свих парова слова исписује се порука да ли је реч палиндром (pal = 1 јесте, у супротном није).

Скрипта пројекта Палиндром приказана је на следећој слици.

_images/palindrom_skripta.png
Наредни пројекат, игра "Вешала", представља ремикс пројекта "Hangman" из књиге  Learn to
program with Scratch (autor Majed Marji). Код нас је игра прилагођена српском језику јер се
погађају речи које су исписане ћирилићним писмом. Кроз њено програмирање ћеш утврдити знање
о раду са листама и користити операције за рад са стринговима, али то није једини разлог што
је обрађујемо као пример. Корисна је и зато што ћеш кроз њено играње морати да проналазиш
на тастатури наша слова (љ, њ, ш, ђ, ж, ч, ћ и џ) будући да смо у списак речи за погађање
уврстили управо речи које садрже ова слова.

Пример 4 - Игра Вешала

Рачунар „замишља” једну реч од 5 слова из речника (који се чува као листа) и приказује је као низ од 5 звездица. Корисник погађа слова те речи.

  • Ако погоди, слово замењује звездицу на свим позицијама у речи на којима се налази.
  • Ако промаши, црта се део тела на „вешалима”: глава, тело,…

Сме да промаши највише 7 пута јер је при 8. промашају „обешен”, односно игра је завршена.

Позадина и ликови пројекта

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

_images/vesala_skripte3.png

У игри учествују три лика: „обешен”, „нова” и „исход”.

Лик „обешен” има 8 костима који се смењују при сваком промашају корисника.

_images/vesala_kostimi.png

Скрипте које су му придружене су сасвим једноставне.

_images/vesala_skripte2.png

Лик „нова” је дугме. Клик на њега, као и клик на зелену заставицу доводи до разглашавања поруке Нова игра.

_images/vesala_skripte1.png

Логика програма уграђена је у лик „исход”. Он је на почетку скривен и појављује се тек по завршетку погађања речи. Ако је корисник успео да погоди реч са мање од 7 промашаја исход се појављује у првом костиму који представља победу. Ако то није случај, појављује се у другом костиму који представља пораз.

_images/vesala_ishodi.png

Скрипте придружене овом лику представљене су на следећој слици.

_images/vesala_skripte4.png

pitaj Одговори на следећа питања

Питање 1

    Q-80: Шта ће бити резултат операције „слово 2 од ЛЕНА”?
  • Л
  • To je слово 1.
  • Е
  • Н
  • То је слово 3.
  • А
  • То је слово 4.

Питање 2

    Q-81: Шта ће бити резултат операције „дужина ЛЕНА”?
  • Л
  • То би се добило коришћењем операције слово од.
  • ЛЕНА
  • 4
  • дужина ЛЕНА
  • То би се добило повезивањем ове две речи.

pokusaj Покушај

Вежба 1

Састави програм којим се од датог природног броја n формира број са истим цифрама, али у обрнутом поретку.

Вежба 2

Напиши програм који за дати природан број n (1<= n <1000) одређује збир цифара и број цифара. На пример:

  • n =12 збир цифара је 3, број цифра је 2;
  • n =102 збир цифара је 3, број цифра је 3.

Вежба 3

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

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

Појмови: стринг, палиндром.

Функцијски блокови: operacije - slovo, duzina.

project Уради неки од следећих пројеката

Пројекат 1 - Шифровање

Састави пројекат који шифрује или дешифрује улазни текст на следећи начин.

У листи „оригинал” чува се 30 слова азбуке редом. У листи „шифра” чува се свих 30 слова у неком редоследу другачијем од редоследа у листи „оригинал”. Да би се теже провалила шифра, на месту где се у једној листи налази самогласник, и у другој листи треба да се налази самогласник. Корисник уноси текст, који пројекат треба да шифрује или дешифрује у зависности да ли је корисник кликнуо на дугме „шифруј” или „дешифруј”.

На пример, ако листе „оригинал” и „шифра” имају редом следеће садржаје:

А Б В Г Д Ђ Е Ж З И Ј К Л Љ М Н Њ О П Р С Т Ћ У Ф Х Ц Ч Џ Ш
У Ш Б В Г Д И Ђ Ж Е З Ј К Л Љ М Н А Њ П Р С Т О Ћ Ф Х Ц Ч Џ

и корисник унесе текст МАСКА, програм треба да га шифрује у ЉУРЈУ.

Ако је пак улазни текст МАСКА требало дешифровати, програм треба да га претвори у НОТЛО.

Пројекат 2 - Наопака

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

На пример, ако је корисник унео n=3 и затим унео имена: ЛЕНА, ВУКАШИН, КАТАРИНА; листа „наопака треба да садржи: АНЕЛ, НИШАКУВ и АНИРАТАК.

Пројекат 3 - Бројеви

Састави пројекат који уписује у листу све троцифрене бројевe који имају особину да су дељиви бројем који се добија избацивањем средње цифре.

Пројекат 4 - Пресловљавање у латиницу

Од корисника се тражи да унесе свој текст великим словима ћирилићним писмом. Пројекат треба да омогући испис (нпр. наредбом „изговори”) текста пресловљеног у латиницу.

На пример, ако је корисник унео текст „ВОЛИМ ЉУБИЧИЦЕ” треба приказати: „VOLIM LJUBIČICE”.

Задатак решити помоћу две листе: „ћирилица” и „латиница” чији су елементи редом велика слова азбуке. У листи „латиница” на месту неких појединачних слова ћирилице треба да стоје два латинична слова, на пример на месту 14 у листи „ћирилица” стоји једно слово - Љ, а у листи „латиница” два слова - LJ.