Стрингови¶
Стринг представља низ карактера који се третирају као јединствени податак. Променљива која добија вредности типа стринг је сложена променљива. У овом поглављу ћемо показати како се променљиве типа стринг могу користити за решавање различитих типова задатака.
Проучи следеће примере пројеката¶
Пример 1 - Пројекат Папагај¶
Главни лик овог пројекта папагај. Он прво пита корисника како се зове и чека све док корисник не откуца своје име и притисне дирку Enter или кликне на знак за чекирање у десном углу поља за одговор. Затим поздравља корисника по имену, па му каже које је прво слово његовог имена и колико укупно слова има име. Разговор лика и корисника приказан је на следећој слици.
За креирање овог пројекта коришћене су операције помоћу којих смо издвојили прво слово из имена и утврдили колико слова има у имену.
По извршењу наредбе Скреч памти низ знакова које је корисник унео у простору који се зове .
На следећој слици приказано је како се памти одговор и помоћу којих операција се из њега издвајају подаци које лик саопштава као излазне податке наредбом изговори
.
Трећа операција која је употребљена за формирање излазне поруке је .
Ево како се праве реченице повезивањем више речи.
Скрипта пројекта Папагај приказана је на следећој слици.
Следи пројекат у коме се показује како се коришћењем стринг операција могу издвајати
цифре броја.
Пример 2 - Пројекат Замени_цифре¶
Сценарио пројекта
Главни део овог пројекта је скрипта која замењују места цифри јединица и цифри стотина у природном троцифреном броју x који се уноси са улаза.
Лик водитељ тражи од корисника да унесе троцифрен број. При том се врши провера да ли је заиста унет троцифрен број. Ако није, понавља се захтев за улаз све док се заиста не унесе троцифрен број. Затим се издвајају прва и трећа цифра, па се прави број са замењеним цифрама јединица и стотина. Број се формира помоћу две операције . На крају водитељ изговара изворни број и број са замењеним цифрама јединица и стотина.
Скрипта пројекта приказана је на следећој слици.
Палиндром је реч или речиница која исто гласи било да се чита слева удесно или здесна
улево. На пример, реч "потоп" је палиндром.
Слично се дефинише и број који је палиндром. На пример, број 12321 је палиндром.
У наредном пројекту проверава се да ли је унета реч палиндром.
Пример 3 - Пројекат Палиндром¶
Лик водитељ тражи од корисника да унесе реч. Променљива d добија као вредност дужину речи. Пореде се прво и последње слово речи, друго и претпоследње и тако редом све до средине речи. Променљива i, чија је почетна вредност 0 и повећава се за 1 у оквиру циклуса, омогућава да се следећом провером изврше ова поређења.
Променљивља p указује на број провера. Уколико се при некој од провера покаже да одговарајућа слова нису једнака, реч није палиндром и то се региструје доделом 0 променљивој pal (која је на почетку постављена на 1). После провере свих парова слова исписује се порука да ли је реч палиндром (pal = 1 јесте, у супротном није).
Скрипта пројекта Палиндром приказана је на следећој слици.
Наредни пројекат, игра "Вешала", представља ремикс пројекта "Hangman" из књиге Learn to
program with Scratch (autor Majed Marji). Код нас је игра прилагођена српском језику јер се
погађају речи које су исписане ћирилићним писмом. Кроз њено програмирање ћеш утврдити знање
о раду са листама и користити операције за рад са стринговима, али то није једини разлог што
је обрађујемо као пример. Корисна је и зато што ћеш кроз њено играње морати да проналазиш
на тастатури наша слова (љ, њ, ш, ђ, ж, ч, ћ и џ) будући да смо у списак речи за погађање
уврстили управо речи које садрже ова слова.
Пример 4 - Игра Вешала¶
Рачунар „замишља” једну реч од 5 слова из речника (који се чува као листа) и приказује је као низ од 5 звездица. Корисник погађа слова те речи.
Ако погоди, слово замењује звездицу на свим позицијама у речи на којима се налази.
Ако промаши, црта се део тела на „вешалима”: глава, тело,…
Сме да промаши највише 7 пута јер је при 8. промашају „обешен”, односно игра је завршена.
Позадина и ликови пројекта
Позадина је наменски направљена за овај пројекат. На њој се налази наслов игре и порука „Преостало покушаја”. Придружена јој је и скрипта за постављање почетних вредности променљивих приликом покретања нове игре.
У игри учествују три лика: „обешен”, „нова” и „исход”.
Лик „обешен” има 8 костима који се смењују при сваком промашају корисника.
Скрипте које су му придружене су сасвим једноставне.
Лик „нова” је дугме. Клик на њега, као и клик на зелену заставицу доводи до разглашавања поруке Нова игра.
Логика програма уграђена је у лик „исход”. Он је на почетку скривен и појављује се тек по завршетку погађања речи. Ако је корисник успео да погоди реч са мање од 7 промашаја исход се појављује у првом костиму који представља победу. Ако то није случај, појављује се у другом костиму који представља пораз.
Скрипте придружене овом лику представљене су на следећој слици.
Одговори на следећа питања¶
Питање 1¶
- Л
- To je слово 1.
- Е
- Н
- То је слово 3.
- А
- То је слово 4.
Q-92: Шта ће бити резултат операције „слово 2 од ЛЕНА”?
Питање 2¶
- Л
- То би се добило коришћењем операције слово од.
- ЛЕНА
- 4
- дужина ЛЕНА
- То би се добило повезивањем ове две речи.
Q-93: Шта ће бити резултат операције „дужина ЛЕНА”?
Покушај¶
Вежба 1¶
Састави програм којим се од датог природног броја n формира број са истим цифрама, али у обрнутом поретку.
Вежба 2¶
Напиши програм који за дати природан број n (1<= n <1000) одређује збир цифара и број цифара. На пример:
n =12 збир цифара је 3, број цифра је 2;
n =102 збир цифара је 3, број цифра је 3.
Вежба 3¶
Напиши програм који у листу уписује све троцифрене Армстронгове бројеве. Број је Армстронгов ако је једнак збиру кубова својих цифара.
Уради неки од следећих пројеката¶
Пројекат 1 - Шифровање¶
Састави пројекат који шифрује или дешифрује улазни текст на следећи начин.
У листи „оригинал” чува се 30 слова азбуке редом. У листи „шифра” чува се свих 30 слова у неком редоследу другачијем од редоследа у листи „оригинал”. Да би се теже провалила шифра, на месту где се у једној листи налази самогласник, и у другој листи треба да се налази самогласник. Корисник уноси текст, који пројекат треба да шифрује или дешифрује у зависности да ли је корисник кликнуо на дугме „шифруј” или „дешифруј”.
На пример, ако листе „оригинал” и „шифра” имају редом следеће садржаје:
А |
Б |
В |
Г |
Д |
Ђ |
Е |
Ж |
З |
И |
Ј |
К |
Л |
Љ |
М |
Н |
Њ |
О |
П |
Р |
С |
Т |
Ћ |
У |
Ф |
Х |
Ц |
Ч |
Џ |
Ш |
У |
Ш |
Б |
В |
Г |
Д |
И |
Ђ |
Ж |
Е |
З |
Ј |
К |
Л |
Љ |
М |
Н |
А |
Њ |
П |
Р |
С |
Т |
О |
Ћ |
Ф |
Х |
Ц |
Ч |
Џ |
и корисник унесе текст МАСКА, програм треба да га шифрује у ЉУРЈУ.
Ако је пак улазни текст МАСКА требало дешифровати, програм треба да га претвори у НОТЛО.
Пројекат 2 - Наопака¶
Састави пројекат у коме се од корисника тражи да унесе колико речи жели да трансформише (n), а потом у циклусу који се понавља n пута учитава име, уписује га у листу „имена”, па га трансформише у стринг који се добије када се име чита здесна улево и уписује га у листу „наопака”.
На пример, ако је корисник унео n=3 и затим унео имена: ЛЕНА, ВУКАШИН, КАТАРИНА; листа „наопака треба да садржи: АНЕЛ, НИШАКУВ и АНИРАТАК.
Пројекат 3 - Бројеви¶
Састави пројекат који уписује у листу све троцифрене бројевe који имају особину да су дељиви бројем који се добија избацивањем средње цифре.
Пројекат 4 - Пресловљавање у латиницу¶
Од корисника се тражи да унесе свој текст великим словима ћирилићним писмом. Пројекат треба да омогући испис (нпр. наредбом „изговори”) текста пресловљеног у латиницу.
На пример, ако је корисник унео текст „ВОЛИМ ЉУБИЧИЦЕ” треба приказати: „VOLIM LJUBIČICE”.
Задатак решити помоћу две листе: „ћирилица” и „латиница” чији су елементи редом велика слова азбуке. У листи „латиница” на месту неких појединачних слова ћирилице треба да стоје два латинична слова, на пример на месту 14 у листи „ћирилица” стоји једно слово - Љ, а у листи „латиница” два слова - LJ.