/
Text
МАТЕМАТИКА И ИНФОРМАТИКА- ИЗВЪНКЛАСН А РАБО
РУМЕН НИКОЛОВ
ЕВГЕНИЯ СЕНДОВА
ИНФОРМАТИК
ВТОРА ЧАСТ
НАЧИНАВШИ
НАРОДНА
ПРОСВЕТА
РЕДАКЦИОННА КОЛЕГИЯ:
чл.кор.проф.д-р ПЕТЪР КЕНДЕРОВ
доц. ЛЮБОМИР ДАВИДОВ
ст.н.с. СТЕФАН ДОДУНЕКОВ
ст.н.с. ПАВЕЛ АЗЪЛОВ
ст.н.с. ЙОРДАН СТОЯНОВ
Книгата е продължение на „Информатика за начинаещи, част Г‘. Разработени са 27
теми, чрез конто читателят има възможност да се запознае с нови приложения на езика
Лою и можс да усъвършенства умение? о си да програмира. Продължава работата с гра-
фичните възможности на Лого, доразвива се идеята за рисуване. анимация и възпроизвеж-
дане на музика с помошта на компюгъра. като същевременно се задълбочават знанията
вьрху основните принципи и методи на npoj рамирането. Освен гова са показани част от
вьзможностите на Лого за обработка на текстове. за кодиране и декодиране.
При разработването на темите се използват готови компютърни програми — игри,
конто допринасят за леко усвояване на материала. В края на книгата са поместени тексто-
встс на тези програми.
Като приложения са дадени пълен справочник на езика Лого (съдържаш информация
за всички команди и операции и управляваши клавиши), списък на често срещани съобще-
ния за грешки, както и рьководство за използване на програмите за музика, анимация и
рисуване.
Книгата е подходяща за деца над 12-годишна възрасг, конто се интересуват от инфор-
ма1ика.
51
< Румен Василев Николов, Евгения Йовкова Сендова
< Доньо Петров Донев — художник, 1988 г.
с о Jusautor, Sofia
ПРЕДГОВОР
(риги читатели.
Ето че пак се среща.\и . вече кати стари по тати ни Костет рката
швната героиня в езика за програмиране Лого. В пьрвата част на „Ин-
форматика за начинаещи" вне направихте първите си стьпки (НАПРЕЛ)
в ннформатиката. С помощта на Костенурката се научихте по-добре ба
< < ориентирате върху скрапа, чертахте обикновени и необикновени гео-
метрични фигура, правихте анимационна филми, а в почивните й дни смя-
тахте и се занимавахте с музика.
Във втората част (конто държите в рьцете си) ще се занимаваме с
нс по-малко интересна, но може би по-сложни задачи - нала вече не сте
сивеем начинаещи, което показва колко неуместно е заглавието на книга-
та. Зотова пък темите са с двойни заглавия (за вески случай) — едно
< ериозно (почти като в учебник) и едно тайнствено. Тайнственопю загла-
вие можете да приемете като шега. Ноли шегата помага да видим какпю
i иетната страна на сериозните неща, така и сериозната страна на
г \iemiiume неща. За да разберете някои от несериозните заглавия, трябва
еериозно да погледнете на това, което идва след тях — математически
н. /т. вземане на решения, случайности, структуриране и кодиране на ин-
формация. различии експерименти. изграждане и усъвършенстване на про-
рами. отново музика и анимация и накрая операции с дума, обработка.
и I мерване, съединяване и сравняване на дума... Но да си дойдем на думата!
3
1. ПРОГРАМИРАНЬ
Програмисти или
архитекти
Що е програмиране? На гози вьпрос никои ще отговорят: Да програми-
раш, знача да описваш алгоритмы на език, конто компютьрът разбира,
например на езика Лого. Но програмирането е по-сложно от обикновено-
то писане. В една своя статия известният съветски математик А.П.Ершов
казва, че програмистът трябва да владее способността на първокласен
математик да мисли абстрактно и логично, да съчетава точността на
счетоводителя с проницателността на разузнавача, да обича да работи
в колектив, да разбира интересите на потребителя и още много други
неща.
За програмиста е важно да умее точно да формулира и да анализира
задачи, да проектира, да конструира и гърпеливо да изгражда своите
программ на подходящ алгоритмичен език.
Програмирането има някои много общи черти с архитектурата. За-
това написването на една програма може да се сравни с построяването
на една сграда. Преди да започне строителството, се прави задание, т.е.
формулира се целта на строежа — за какво ще служи сградата, колко
голяма ще бъде и къде ще се строи. Уточнява се колективът от проектан-
ти и строители. След това се прави проект. Когато той бъде готов, запо-
чва строежът. За да се построй сградата по-бързо, може да се използват
панели. Когато завърши грубият строеж, започват довършителните ра-
боти — слагат се врати и прозорци, боядисват се тавани, лепят се тапети.
Накрая се извършва цялостна проверка. Ако се открият дефекти, правят
се поправки. Едва когато сградата отговаря на проекта, тя се предава на
обитателите.
Сега да видим как обикновено се пише една по-сложна програма.
Най-напред се анализира задачата. Ако се прецени, че е необходим ком-
пютър, определя се на кой език ще се програмира, какъв компютър ще
се използва, колко специалисти ще участват. След това се прави проект
на програмата. Проектът може да бъде чертеж (например блок-схема)
или текст на естествен език. (Използват се и езици за програмиране,
близки до естествените езици.) Едва когато проектът е готов, започва
изграждането на програмата. Това става по-лесно, ако се използват го-
тови процедури - панели. След груби я строеж обикновено има нужда от
5
довършителни работи. Програмата трябва да стане по-разбираема, не-
удобна за използване. Ако при последната проверка се установят дефек-
та, прави се ремонт — коригират се някои процедури. проверява се дали
информацията се обработва правилно. За да бъдат открити грешки, ос-
танали в процедурите, понякога е необходима проницателност на разуз-
навал. Накрая. когато програмата заработи съгласно проекта, тя може
да се използва и да се предостави на други потребители.
Сигурно искате да научите час по-скоро как да изграждате сами
сложны програми, конто работят добре. В такъв случай не бива да забра-
вяте, че опитните програмисти са всъщност архитекти на своите програ-
ми.
Задачи
3. Разгледайте дадения огкьс oi приказка: Хвана.t рибарят една златна
рибка и тя го помолила: „Пусни ме и аз ще изпълня две твои желания"
„Добре — казал рибарят, — първото ми желание е да ми дадеш една
жълтица. Второто ми желание е да изньлниш още две мои желания. Пър-
вопю от тях е..."
В какво се състои хитростта на рибаря? Колко жьлтици може да
получи той от златната рибка?
4. Напишете програма, при изпълнението на коя го компютърът да раз-
казва приказката от зад.З. >
5. Накарайте костенурката да кръжи по орбита, която е правилен деве-
тоъгълник.
6
6. Дефинирайте процедура, с по-
моги га на конто да начертаете
фигурата. Сравнете лицето на
вписания кръг с лицето на защри-
хованата част от полукръга.
7. Редактирайте процедура га
ЦВЕТЕ така, че с нейна помоги
да ее чертае цветето, показано на
фигурата.
ЗА ЦВЕТЕ РАЗМЕР
ПОВТОРИ 3 [ДЯСНАДЪГА РАЗМЕР 120 НАДЯСНО 120J
НАЛ Я ВО 60
ПОВТОРИ 3 [ДЯСНАДЪГА :РАЗМЕР 120 НАДЯСНО 120)
КРАЙ
ЗА ДЯСНАДЪГА :РАДИУС :ЪГЪЛ
РАЗМЕР 1
СКРИЙ
ПОВТОРИ ЪГЪЛ [НАПРЕД 3.14159*:РАДИУС/180 НАДЯСНО I]
КРАЙ
8. Редактирайте процедурата УСМИВКА така, че при изпълнението й
да се полечи га гена га по-долу усмивка:
ЗА УС МИНК \ РАЗМЕР
ОКРЪЖНОСТ :РАЗМЕР
ДЯСНАДЪГА :РАЗМЕР/2 180
НАДЯСНО 180
ДЯСНАДЪГА :РАЗМЕР/2 180
НАДЯСНО 180
7
ЛЯВАДЪГА РАЗМЕР/З 180
ДЯСНАДЪГА :РАЗМЕР/3 180
ЛЯВАДЪГА :РАЗМЕР/3 180
КРАЙ
Добавете описанията на липсващите процедури.
2. ма!емагическа
111 РА
Как да вземем
от компютъра
последната клечка
Често срещаме фраза! а: Компютърып е умна машина. Това е вярно само
когато той изпълнява умна програма, например програма за игра на
шах. Вече съществуват программ, посредством конто компюгърът може
да получи званието майстор на спорта по шах. (Стига да има достатъч-
но голяма намет и скорост на работа.) Друга игра, с която също могат
да се демонстрират интелектуалните възможности на компютрите, е
играта ним. Това е древна китайска игра, но името й произлиза от сред-
ноанглийския глагол пйпеп, който означава вземам. Обикновено в играта
се използват клечки (може би, защото са неизбежен атрибут на китайци-
те при храненето). Подходящи са и други предмети. камъчета, пулове,
моливи.
Известии са различии варианта на играта ним. Сега ще изиграем с
компютъра няколко партии на един от тези варианти. (Отговорите на
компютъра са напечатани с цветни букви.) Да заредим програмата НИМ
и да я стартираме:
ЗАРЕДИ "НИМ
НИМ
Играта започва.
1 |P.\ HI И I L
JHA1 II 111 ДА 111 1 М..1 I 11 . НИМ
За да доставите удоволствие на компютъра, отговорете с НЕ. Тогава
той ще ви научи:
8
ДОБР1 ПРАВИЛА!A < А < ЛРДНИГЕ
ЩЕ ВИ 1ИТЕ НАБОР ОТ К II 41 И
МОЖЕ ДА B3EMI О II ХВЕДНЬА И In <1 1 И >
ПЕЧБЛИ ИГРАЧЪТ к<Н1Ю вили .ю< и :Н 1л।л »• очка
МОЖЕ БИ ОЩЕ Нг Ш ИЧ1.О ВИ I Я< НО HiT3Albi4llE.il
ИГРАТА А АЗ ЩЕ ПОПРАВИМ '. ’♦РШКИП 1111
Е, ако сте прочели предварително правилата в книгата, отговореге
с ДА.
Сега компютърът ще ви попита кои са играчите:
Е.ОИ I ПЪРВИМ । III '• 1
ПЛАН
(Дори между вас да няма Иван, пак можете да играете с компютъ-
ра.)
КI 1Й Е В I < н'ИЯ I ИI I I I
КОМПЮТЪРЪТ
Ис. К A 11 111 Ь < 'Ml ..•., i .и; I . Ml р
Ако искате да играете с умен партньор, трябва да отговорите с ДА,
но рискувате да загубите. По-добре е в началото да отговорите с НЕ. В
този случай компютърът ще попита:
"I) II.. ' I. || ПР II 11.1 . м . Ч’ I ! | ! . .1 I I Д
1 В К < >41 11 ЧЦ1 I > О! . НЕ IИ ИТ ЕЛИ- I
Може да запишете например 11. Преди всеки ход компютърът съоб-
щава броя на наличните клечки:
Ы’ОИ 1 11 i ll тки И Г и
ИВАН I II \ КПД
Ако решите да вземете две клечки, запишете:
2
Компюгърът отговаря:
lilK »>11 IIА к и ЧКЩI Г ч
К 1 < Е.М H A XI >, I
Ако компютърът е взел 3 клечки, следва съобщение
ьро.ч । и '. । и • ।; । ।
ИВАН I II X КО I
Ако ceia вземете 3 клечки, ще загубите, защото ще останат само 3
клечки. Вземете 2 клечки и ще победите със сигурност, защото от остана-
лите 4 клечки компютърът ще вземе поне една, но не може да вземе
всичките. Диалогът продължава:
2
1.1'1 IM I II X Е. II 41 И 11 Г 4
А Е < ЬМ 11 X \< 1.1
61*иЯ1 II К h II ЧКИ 11 ।
ИВАН I ПА ХОД
9
Вашият ход вече е ясен:
3
БРАВО НА ИВАН СПЕЧЕЛИ!
В този случай вне победихте, но това не значи, че винаги ще бъде
така. Преди да играете с умен компютър, трябва да изберете подходяща
игрова тактика. В противен случай ще се убедите, че компютърът няма
комплексы за малоценност.
Задачи
1. Организирайге състезание, в
което да участват шестнайсет
ученици. Съпернидите в отделяй-
те игри определяйте по следната
схема:
Нека победителят в турнира
играе с умен компютър.
2. Поискан ic компютърът да играе сьс себе си, i.e. да изпьлпява роляiа
и на първия, и на втория играч. Накарайте го да играе умно и изследвай-
те кога побеждава първият и кога — вторият играч. Ако клечките са 24,
кой играч ще победи?
3. Напишете програма, при изпълнението на която на екрана да се нареж-
дат определен брой клечкы.
4. При изпълнението на кои от процедурите ФИГУРА1...ФИГУРА6 ще
се получи затворена крива?
ЗА ФИГУРА 1 :РАЗМЕР
ПОВТОРИ 3 [ДЯСНАДЪГА :РАЗМЕР 180 НАЛЯВО 60]
КРАЙ
ЗА ФИГУРА2 РАЗМЕР
ПОВТОРИ 4 [ЛЯВАДЪГА :РАЗМЕР 120 НАДЯСНО 170]
КРАЙ
ЗА ФИГУРАЗ :РАЗМЕР
ПОВТОРИ 8 [ДЯСНАДЪГА :РАЗМЕР 180 НАЛЯВО 180]
КРАЙ
ЗА ФИ ГУ РАД :РАЗМЕР
ПОВТОРИ 6 [ДЯСНАДЪГА :РАЗМЕР 60 НАЛЯВО 120]
КРАЙ
ЗА ФИГУРА5 :РАЗМЕР
ПОВТОРИ 7 [ЛЯВАДЪГА :РАЗМЕР 100 НАДЯСНО 360/7]
КРАЙ
10
ЗА ФИГУРА6 :РАЗМЕР
ПОВТОРИ 7 [ДЯСНАДЪГА :РАЗМЕР 100 НАЛЯВО 100 + 360/7]
КРАЙ
ЗА ДЯСНАДЪГА :РАДИУС :ЪГЪЛ
ПОВТОРИ :ЪГЪЛ [НАПРЕД 3.14159*:РАДИУС/180 НАДЯСНО 1]
КРАЙ
ЗА ЛЯВАДЪГА :РАДИУС :ЪГЪЛ
ПОВТОРИ :ЪГЪЛ [НАПРЕД 3.14159*:РАДИУС/180 НАЛЯВО 1]
КРАЙ
Проверете предположението си на компютър.
5. Намислете си едно трицифрено число. Запишете го два пъти едно след
друго. Разделете полученото шестцифрено число на произведението от
числата 7, 11 и 13. Какъв резултат очаквате да получите? Проверете
предположението си, като използвате процедура с параметър.
6. Начертайте пирамида.
7*. Формулирайте печелившата тактика в играта ним с един ред клечки.
Упътване. Разгледайте и се опитайте да прочетете процедурата УМЕН.
ХОД, към която се обръща НИМ. За тази цел можете да използвате
командата РЕДАКТИРАЙ УМЕН.ХОД или ОТПЕЧАТАЙ УМЕН.
ХОД.
8*. Как ше се измени печелившата тактика в играта ним, ако играчът,
който вземе последната клечка, не печели, а губи? (Вж. зад. 7.)
9*. Редактирайте програмата НИМ така, че победител да бъде този, кой-
го не вземе последната клечка. (Вж. зад. 7.)
II
3.ЧИСЛА И ОПЕРАЦИИ С ГЯХ
Компютърът може и да смята
Макар че днес компютърът има разнообразии приложения в живота на
хората, в началото той е бил замислен само като сметачно устройство.
(Буквалният превод на думата computer всъщност е сметач.) И днес в
повечето езици за програмиране са включени основните математически
операции. В Лого те са събиране, изваждане, умножение и деление. Ре-
зултатът от операциите може да се използва като вход на команди и на
други операции. Например:
ИЗВЕДИ 5*8
40
Н АПРЕД (50 — 15)/5
И М1РЕД 50 — 15/5
Виждате, че входовете на последните две команди съществено се
различават. Причината естествено се крие в скобите. Действията в тях
се извършват най-напред. А в какъв ред се извършват пресмяганията,
ако не се срещат скоби? Както знаете, умножението и делението имат
12
предимство пред събирането и изваждането. А ако операциите са ог един
и сыци ред (само умножение и деление или само събиране и изважданс),
те се изпълняват отляво надясно. Ето няколко примера:
ИЗВЕДИ 3 — (2 — 1)4-5
ИЗВЕДИ <3-2)-14-5
ИЗВЕДИ 2*3*4
ИЗВЕДИ 2 + 3*4-20/5
Освен цели числа в Лого се използват и дроби. Целите и дрооните
числа може да участват съвместно в аритметични операции:
ПОВТОРИ 36 [НАДЯСНО 5 НАПРЕД 40*3.14159/18 НАДЯСНО 5]
ИЗВЕДИ (0.015 + 2)*0.7/3
.470166
Полученият резултат е всъщност числото 0,470166, което в езика Ло-
го може да се запише и като 0.470166. Целите числа можем да записваме
с точка накрая, евентуално последвана от нули. Например 4 и 4 са
записи на едно и също число:
ИЗВЕДИ 47.0
За означаване на цели и дроони числа се използва и г.нар. експо-
ненциална форма. Например стандартният запис на числото 2500 е 2,5.10’
и на Лого се записва като 2.5ЕЗ; стандартният запис на числото 300 000
е 3.10s и на Лого се записва като ЗЕ5.
Тук Е е първата буква на думата exponent (степенен показател) и се
вьвежда в компютъра на латиница. Отдясно на числото Е се намира
степенният показател (порядъкът), а отляво мантисата. Мантисата в
Лого се представя най-много с 6 цифри.
Ако числото е десетична дроб, то може да се представи като произ-
13
ведение от два множителя, единият от конто е стелен на 1U с отрицателен
показател, например:
0.00003 е равно на 3.10 ' и на Лого се записва каго 3N5;
числото 0.000011 е равно на 1,1.10“’ и се записва като 1.11415.
Тук N е първата буква на думата negative (отрицателен).
Най-голямото цяло положително число, което може да се възприеме
от нашите компютри, е 2я — 1, а най-малкото цяло отрицателно число е
— 2 я+1. Ако цялото число излиза вън от определените за компютъра
граници, то автоматично се превръща в експоненциална форма:
ИЗВЕДИ 300000000000
5 f 11
ИЗВЕДИ 21474836489
2 I 48Е10
Виждаме, че този ны компютърът е извършил закръгляване до пе-
тля знак след десетичната точка. Допуснал е грешка салю с 3648. Добре,
че този вариант на Лого не се използва в банката...
Десетични дроби, конто се записват с повече от шест цифри и не са
записани в експоненциална форма, също се закръгляват. Например
ИЗВЕДИ 2.8743173
2.87432
Тук бедата (грешка га) е по-малка: 0.0000027.
За закръгляване на дробни числа може да се използва операцията
ЗАКРЪГЛЕНО. Ею няколко примера:
ИЗВЕДИ ЗАКРЪГЛЕНО 2 46
ИЗВЕДИ ЗАКРЪГЛЕНО 2.5
ИЗВЕДИ ЗАКРЪГЛЕНО 2.57
3
Чрез операцията ЗАКРЪГЛЕНО дробното число се закръглява до
най-близкото (до него) цяло число. А ако ни трябва цялата част на едно
дробно число? В такъв случай можем да използваме операцията ЦЯЛО.
Например:
ИЗВЕДИ ЦЯЛО 2.56
п
Частною и остатъкът от делението на две числа мог а г да се наме-
рят с помощга на операцииге ЧАСТНО и ОСТАТЪК с първи вход дели-
мою и втори вход делителя:
ИЗВЕДИ ЧАСТНО 85 34
ИЗВЕДИ ОСТАТЪК 85 34
17
Операцията КОРЕН2 служи за намиране на квадратен корен от не-
отрицателно число:
14
ИЗВЕДИ КОРЕН2 2
1 41421
(Да припомним, че квадратният корен на дадено нео грицателно чис-
ло а се означава с и по определение е неотрицателното число, чийю
квадрат е равен на а, т.е. (х/а)2 = я.)
Когато квадратният корен на дадено число а е безкрайна десетична
дроб, резултатът от операцията КОРЕШ с вход числото а се закръглява.
Ако дадем като вход на КОРЕН2 отрицателно число, компютърът
ще ни предупреди:
КОРЕЮ НЕ ПРИЕМА КАЮ ВХОД
Важна особеност е, че входы на дадена процедура се определя от
максималния възможен израз. Това означава, че например изразът
v/5 + 4 трябва да се запише на Лого като (КОРЕН2 5) + 4. Ако не из-
ползваме скоби, компютърът ще даде като резултат 3, защото вход на
КОРЕН2 ще стане изразъг 5 + 4 (максималпо възможният).
Всяка операция може да
бъде вход не само на ко-
манди, но и на други one
рации, например: Да
проследим изпълнението
на дадена на чертежа ко-
манда. ИЗВЕДИ очаква
с тин вход. Той се полу-
чава като резултат oi
операцията ЗАКРЪГЛЕ-
IЮ. В случая входы на
(АКРЪГЛЕНО не е 2,5,
а 12,5, което е стойност
ia на израза 2,5.х/25.
Максималният израз.
конто може да стане
вход на ЗАКРЪГЛЕНО
с 2,5.^725.
Ето още един при-
мер. ИЗВЕДИ и тук
очаква един вход. Той се
получава като резултат
oi операцията ЗАКРЪГ-
ЛЕНО с вход 2,82842 -
колкото е резултатът oi
ИЗВЕДИ ЗАКРЪГЛЕНО 2.5*КОРЕН2 25
ИЗВЕДИ ЗАКРЪГЛЕНО 2*КОРЕН2 ЦЯЛО 2.57
15
умножението на 2 с 1,41421 — резултатът от операцията КОРЕН2 с вход
2. което от своя страна е резултатът от операцията ЦЯЛО с вход 2,57.
Забелязвате ли какво е характерно за операциите? И те (както и ко-
мандите) са процедури, но при изпълнението им се получава резултат,
който може да се използва непосредствено като вход на команди и на
други операции.
А дали е възможно сами да дефинираме операции — например опе-
рация СТЕПЕН2, конто да дава квадрата на дадено число? Това може
да стане с помошта на командата ИЗХОД по следния начин:
ЗА СТЕПЕН2 :N
ИЗХОД :N».N
КРАЙ
Да проверим действието й:
ИЗВЕДИ СТЕПЕН2 3
ИЗВЕДИ СТЕПЕН2 4
ИЗВЕДИ СТЕПЕН2 СТЕПЕН2 2
I
Операцията СТЕПЕН2 можем да използваме, за да дефинираме но-
ва операция — СТЕПЕНЗ, с която да повдигаме число на трета степей:
ЗА СТЕПЕНЗ :N
ИЗХОД :М*СТЕПЕН2 :N
КРАЙ
По всичко личи, че СТЕПЕНЗ не е с по-голяма степей на слож-
ност...
Рол । .» ю.мавд.. I К \ < ! . ... ., .1. . । н„ цдсния
....а нен 11 '.I» ia обив «.« ч • • • ч . ।,нерация i а и да
лре изп. iciiHiioii > "о -|>ацни । и,.. ;.. 11।,1 . ишь нспиего
И I3M. К I ICIO С би.|. . pi IIICIIHCI лЬМ II. ч
Стойността на из
р; ял например мо-
жем да пресметнем с по
мощта на командата:
ИЗВЕДИ КОРЕН2 СТЕПЕНЗ 5
I
125
___I
I
11.1803
(125=53)
11 1803
ИЗВЕДИ очаква един вход. Гой се получава като резултаз от изпъл-
нението на КОРЕШ с вход изхода на СТЕПЕНЗ при вход 5.
Можем да дефинираме и по-малко градиционни операции, напри-
16
мер операция, с която да пресмятаме средната гъстота на население!о
h i дадспа страна:
ЗА (ТЕДНА.ГЪСТОТА :ПЛОЩ НАСЕЛЕНИЕ
ИЗХОД ЗАКРЪГЛЕНО НАСЕЛЕНИЕ / :ПЛОЩ
КРАЙ
Тогава, за да пресметнем средната гъстота на населението например
и Китай, ще дадем командата:
ИЗВЕДИ СРЕДН А. ГЪСТОТА 9597000 1315883000
Вьзможността да дефинираме операции, конто са ни необходими,
правят от компютъра сметан, доста по-мощен от по-малкия си съ-
|>р;н — калкулатора.
I Цитатор е един от най-известните матемагици от древна Гърция.
ЙНе е известно точно кои открития в геометрията е направил той,
защото е ръководел цялата школа (известна като Питагорейска) и
неговите ученици му приписвали всички свои открития. Най-извест-
н.н а теорема, формулирана от тази школа, е т.нар. Питагорова тео-
рема.
11ека е даден правоъгълен триъгълник с катети а, b и хипотенуза с.
1оива е в сила равенство™ ___________
с2 = а2 +Ь2 или все едно с= у/a2 + Ь2.
Геометричният смисъл на това ра-
венство е, че лицето на квадрата, пост-
роен върху хипотенузата на правоъгълния
рныълник, е равно на сбора от лицата
и.* квадратите, построени върху катетите
му.
Питагорейците формулирали твърде-
ння ।а си върху основата на частни случаи.
I io защо някои историци смятат, че пита-
юрейците не са дали доказателство на
11и гагоровата теорема, а са я открили, ка-
। о са наблюдавали мозайка от квадратни
и ||очки:
Лесно може да се съобрази, че квад-
р.нът със страна АС (хипотенузата на
правоъгълния триъгълник АВС) е равен
на сбора от квадратите. построени върху
катетите А В и ВС.
' Ииформа Iика за начинаеши — час! II
17
Това, разбира се, не е доказателство на Питагоровата теорема, за-
щото е в сила само за равнобедрен правоъгълен триъгълник. Днес са
известии стотици доказателства на Питагоровата теорема.
На имею на Питагор са наречени и онези тройки числа, конто биха
могли да бъдат страни на правоъгълен триъгълник. С други думи, една
тройка числа (а, в, с) се нарича питагорова, ако удовлетворява равенсгво-
то
a* 1 2 +h2 = с2.
Ето няколко примера за питагорови тройки числа:
(3.4,5); (6,8,10); (112,15,113).
ЗАКРЪГЛЕНО п
Резултатъг е цяло число, получено след закръгляване на сгойността
на израза п.
КОРЕН2 п
Резултагът е v п.
ОСТАТЪК пт
Резултатъг от операцията е остатькът, който се получава при деле-
нието на п и т. Ако п и т не са цели числа, те предварително се закръгля-
ват.
ЦЯЛО я
Резултатъг от операцията е цялата част от стойността на израза п.
ЧАСТНО я Я1
Резултатъг от операцията е цялата част or делението на п и т. Ако
стойностите п и т нс са цели числа, преди делението те се закръгляват.
Задачи
1. Опитайте се да предскажете резултата от изпълнениего на командата:
а) ИЗВЕДИ I + 2-3 + 4;
в) ИЗВЕДИ 16/8/4/2;
д) ИЗВЕДИ 24/(2+ 2)* (6-2);
ж) ИЗВЕДИ 1.1 +2.2+ 3.3;
и) ИЗВЕДИ ((1/2+ 1)/4+ 1)/8.
б) ИЗВЕДИ 2 + 2* 3+3;
г) ИЗВЕДИ 24/2 + 2* 6-2;
е) ИЗВЕДИ 1 - 1* 6-6;
з) ИЗВЕДИ 1/2+ 1/4+ 1/8;
2. Извършете с помощта на компютьр пресмятанията:
а) 1356.284 + 713:326;
б) 873.(26138—13069.2) —56;
18
в) 315,671 .(97349,1 - 738624) - 561,4;
।) 3649,8:(213,1 -39,5)4-69,2364968;
Д) 1 + 1 + 1 + 1 + _L; е) (2685:(8331-294)-5,0001 ).9324,5;
В кои от дадените примери компютърът щс даде точен резултат и
и кои ше пресметне резултата с приближение?
I. Приведете числата от експоненциална форма във форма без степенен
показател:
а) 9.13Е2; б) 8.93N3;
в) 7.38649Е4; г) 75.18134N6; д) -2.06N2 .
1. 11редскажете какьв резулта! ще се получи, ако зададете на компютъра
кома плата:
а) ИЗВЕДИ 56384.9735;
б) ИЗВЕДИ ЗАКРЪГЛЕНО 7 25;
в) ИЗВЕДИ ЦЯЛО 7.5;
I) ИЗВЕДИ ЗАКРЪГЛЕНО -7.5;
д) ИЗВЕДИ ЦЯЛО 2.74-3.2;
с) ИЗВЕДИ КОРЕН2 ЦЯЛО 1.24-1.7;
ж) ИЗВЕДИ ЦЯЛО 22.734551 Е2;
0 ИЗВЕДИ ЗАКРЪГЛЕНО 4833.975N3;
и) ИЗВЕДИ ЗАКРЪГЛЕНО 3.84975Е4;
к) ИЗВЕДИ ЦЯЛО 3* ЦЯЛО 0.6;
О ИЗВЕДИ ЧАСТНО 527 83;
м) ИЗВЕДИ ОСТАТЪК 52 26.
5. Извършете пресмятанията, зададени с помощта на графа:
а) б)
ЦЯЛО
1)9.56 2.483Е2 43.95N3 24.25 32.56 54.389Е2
6. Превърнете в операция процедурата:
ЗА ХИПОТЕНУЗА :А :В
ИЗВЕДИ КОРЕН? :А* :А+ :В* :В
КРАЙ
7. Използвайте операцията ХИПОТЕНУЗА (Вж. зад.6.), за да пресмеги*
те хипотенузата на правоъгьлен триъгълник с катети:
а) 30 и 40 стъпки;
б) 34 и 53 стъпки.
8. Напишете процедура, която да пресмята дължината на катет в право),
гълен триъгълник, ако са дадени дължините-съответно на хипотенуза i и
и на другия катет.
9. Ако прекараме около земното кълбо въже, което е концентрично и i
екватора и е с 1 m по-дълго от него, може ли под въжето да се пронрг
мишка? Какъв ще бъде резултатът, ако заменим земното кълбо с ябълк.1 ’
По-лесно ли се решава задачата, ако използваме компютър?
10. Заменете командата ИЗХОД в операцията СТЕПЕН2 с команда).)
ИЗВЕДИ. Може ли така редактираната процедура СТЕПЕН2 да се изно
лзва в описанието на СТЕПЕНЗ? Проверете отговора си с компютър
11. Операцията ЧЕРЕН е дефинирана по следния начин:
ЗА ЧЕРЕН
ИЗХОД о
КРАЙ
Какъв ще бъде резултатът от изпълнението на следната команда:
ПОВТОРИ 5 [НАПРЕД 40 НАДЯСНО 90 МОЛИВ ЧЕРЕН]
12. Редактирайте операцията ЧЕРЕН (Вж.зад.Н.) така, че команда)а
МОЛИВ да се изпълнява с вход името на друг цвят.
13. Една астрономически единица (а.е.) е равна на 150 000 000 кт. Запи
шете това число в експоненциална форма.
14. Като използвате таблицата, пресметнете разстоянияга между дадени
те планети и Слънцето в километри.
Планети Меркурий Земя Марс Юпитер Сатурн
Разст. до Слънцето в а.е. 0.4 1.0 1.5 5.2 9.5
15*. Ако човек се намира на Венера, той ще вижда Слънцето по-голямо.
отколкото ако е на Зсмята. На Марс Слънцето ще изглежда по-малко
от земното. Големината ю на Слънцето, гледано от дадена планета, се
определя по формулата <в = - ,където d е разстоянието от планетата до
d
Слънцето. Начертайте графиката на тази зависимост, като за d избере-
те мащаб 10:1, т.е. 10 стъпки на костенурката да съответстват на 1 а.е
(Вж. зад. 13.)
I 1’ЛЬОТА В КООРДИНАТНА
( IK ГЕМА
It a Hs оординатна система
И местного съвезско списание Квант проводе сред учениците интере-
• п конкурс по рисуване. Условною на конкурса гласеше: Намерете точ-
ки /< координата цели числа), които при последователно съединяване с
п< < чки да оформят фигура на животно. Сега ще се опитаме да начер-
ни м никои от представените на конкурса фигури.
Пьрва фигура:
(«).ЗО);(О,ЗО);( - 30,20);( - 50,20);( - 70,40);
( - 80,30);( - 70,10);( -80,-10);( - 70, - 20);( - 50,0);
( 10, - 20);(0, - 40);(20, - 40);(30, - 20);(50, - 20);
(70,0);(50,20);(30,30);(20,40);( - 30,40);( - 40,20).
Огделно — око в точка с координати (50,0).
1А ЖИВОТНО 1
ГРАФИКА ВДИГНИ СКРИЙ ДО 30 30 СПУСКИ
ДО О 30 ДО -30 20 ДО - 50 20 ДО -70 40
ДО -80 30 ДО -70 10 ДО -80 (-10) ДО -70 (-20)
ДО -50 0 ДО - 10 (-20) ДО 0 (-40) ДО 20 (-40)
ДО 30 (-20) ДО 50 (-20) ДО 70 0 ДО 50 20
ДО 30 30 ДО 20 40 ДО -30 40 ДО -40 20
ВДИГНИ ДО 50 0 СПУСНИ НАПРЕД 2
Да изпълним тази процедура. Получава се образ на риба:
21
Втора фигура:
(- 9fl,70);(- 70,80);( — 60,100);(— 30,100);
(-10,70); (80,10); (150,-20); (130,-40);
(60,0); (40,-10); (30,-10); (10,-70);
(-10,- 70); (10,- 60); (20, - 10); (0, - 10);
(-20,- 70); (-40, -70); ( -20,-60); (-10,- 10);
(- 50,20); ( 60,50); (- 70,60); (- 90,70).
Отделно -— око в ючка с координати ( — 70,70).
Има координати на точки, конто са извън екрана. Такива са гочкиге:
( — 60,100); ( 30,100) и (150,— 20). За да се събсрс фигурата на екрана на
комптотъра, трябва да я преместим с подходящ вектор, например с век-
тора (-20,-10). (Вж. кьга в края на темата.) Тогава процедура™ за
рисуване ще бьде:
ЗА ЖИВОТНО2
ГРАФИКА НДШ НИ СКРИЙ
ДО I К) 6(1 СНУСНИ ДО -90 70 ДО - 80 90
ДО -50 90 ДО 30 60 ДО 60 О ДО 130 (-30)
ДО П0( 50) ДО 40 ( -10) ДО 20 (-20) ДО 10 ( 20)
ДО 10 ( 80) ДО -30 (-80) ДО - 10 ( 70) ДО 0 ( 20)
ДО - 20 ( 20) ДО -40 (-80) ДО -60 ( 80) ДО 40 (- 70)
ДО И) ( 20) ДО -70 10 ДО -80 40 ДО - 90 50
ДО 110 60 ВДИГНИ ДО -90 60 СПУГНИ НАПРЕД 2
КРАЙ
Да изпьлиим новата процедура. Този нъгсе получава образ на пти-
Какю виждате, математиката може да бьде полезна за художницизе
и зогава, koi а го рисуват с компюгър.
Ако премссзим една точка от положение А (1,2) в положение В (3;5),
1 абсцисаю и ще се увеличи с 2, а ординатата - с 3. Следователно
) това преместване се определя от одна наредена двойка числа (2;3).
11ървото число показва преместването по
абсцисната ос, а второто число — пре-
мсстването по ординатната ос. Тогава
преместването от А в В се определи от
двойката числа (2;3).
По-общо, ако точката А има коорди-
ната (Х1;У1), а точката В - координати
(Х2;У2), то преместването от А в В се оп-
редели от наредената двойка числа
(Х2-Х1; У2 - У1).
Наредена двойка числа се нарича век-
ор.
От друга страна преместването на ед-
ка точка от А в В можем да означим и с
пасоченага отсечка А В с начало А и край
В.
Ако точката А има координати (X1 ;У I), а точка га В - координати
(Х2;У2), казваме още, че векгорът на преместванс от И в В е с координа-
иц (Х2 XI; У2 — У1) и го записвамс по следния начин:
(Х2-Х1; У2-У1).
Да разитедаме например
очкиге /1(2;3), В(6;5) и С(4;8).
Гогава векторьi на премссгване
oi А в В е AS (4;2). векторы на
премесгване от В в С е ВС
( 2;3). а о г А в С е АС (2;5).
Да разыедаме един вектор а (4;3). Можем да преместим с този век
юр началоiо на координа!нага система Така ще получим насочената
отсечка ОА. Дължината на тази отсечка се нарича дължина на вектора
</ и се означава с |й|. От черетежа се вижда, че дължината на отсечка га
23
О А може да се определи като хипо
тенуза на правоъгълен триъгълник
Като използваме теоремата на Пи-
тагор за гриъгълника ОА^А, получа-
ваме, че дължината на вектора а е
|«| = v 3- + 4* 1 2 3 4 5 = = 5.
По-общо, ако векторът а имакоордипа|и (л, г), ю дължината му
сьгласно Питагоровата теорема е
и = J.X- + г
Задачи
1. Нарисувайте фигурата, зададена сьс следните координати:
(10,70); (0,100); (-10,110);
(-20.100); (0,70); (-20,50);
(-70,30); (-80,0); (-90,10);
(-90,0); (-70,-20); (-20,-20);
(-30,-10); (-40,-10); (-10,30);
(0, - 20);(10, 20);
(0,0); (0,30); (1,40);
(20,40); (30,50); (20,60);
(10,90); (0,100).
Отделно — око в точка с координати (10,60).
2. Определете векторите. с конто последователно трябва да се премества
една точка, за да се получи фигурата, зададена в зад.1.
3. Редактирайте процедурите ЖИВОТНОI и ЖИВОТНО2, като замени-
те, където е възможно, командата ДО с някоя от командите ДОАБСЦ
и ДООРД.
4. Редактирайте процедурите ЖИВОТНО 1 и ЖИВОТНО2, като въведете
параметър М за машаб.
Упътване. Заменете всяка команда от вида ДО :Х :У с командата
ДО ;М* :Х :М* :У. При :М > 1 ще увеличите размера на животните. а
при :М < 1 ще го намалите.
5. Изберете подходяща координатна система и нарисувайте фигурите;
24
(». Нарисувайте в координатната система фигури и на други животни.
7. Определете векторите, с конто последователно трябва /цГсе премества
една точка, за да се получат фигурите от зад.5.
Н. Редактирайте по подходящ начин процедурата:
ЗА ЖИВОТНОЗ
ГРАФИКА ВДИГНИ СКРИЙ ДО -40 (-НО) СПУСНИ
ДО - 110 ( - 110) ДО - 50 (- 10) ДО - 100 (- 10)
ДО - 100 10 ДО -60 30 ДО 20 30
ДО 30 40 ДО 50 40 ДО 60 50
ДО 60 50 ДО 60 40 ДО 70 50
ДО 70 40 ДО 80 20 ДО 80 10
ДО 50 (-10) ДО 50 (-20) ДО 70 (-20)
ДО 70 (-30) ДО 50 (-30) ДО 50 (-40)
ДО 10 (-40) ДО 10 (-50) ДО -70 (-50)
ДО -80 (-30) ДО - 100 (-30) ДО - НО (-50)
ДО -НО (-40) ДО -60 (-70) ДО -40 (-90) ДО -40 (-Н0)
ВДИГНИ ДО 60 20 СПУСНИ НАПРЕД 2
КРАЙ
*>. Редактирайте процедурата:
а) ЖИВОТНО 1;
б) ЖИВОТНО2;
в) ЖИВОТНОЗ,
каго освен параметъра М за мащаб въведете нови параметри X и Y, с
конто се задават координатите на вектор на преместване. Чрез експери-
25
менги изберет гакива стойкости на М, Хи Y, че фигурите да попадна!
приблизително в центьра на екрана.
10. Изпълнете следните команди:
ВДИГНИ
ДО К) 2*10+ 1
СПУСКИ
ДО 60 2*60+ 1
Можем ли да твърдим, че получения! резултат е (рафикага на фупк-
цията r = 2.v + 1. когато ,v е в интервала 110, 60]?
11. Постройте !рафиката на функцията г = л+10, ако:
a)20Svg80;
б)0<л<139;
в)л> 0;
г)- 140<л< 139;
д)л е производно рационално число.
12. Изпълнете условието на зад. 11 за функцията г=л 80.
13. Точките А и В имат координати сьответно (л\,у4) и (лв,у„). Пресме)-
нете координатите на средата на огсечката АВ.
14. Точката А има координати (а. Ь). Какви координати има ючката В.
която е симегрична на А относно:
а)абсциспага ос;
б)ор шпата ia ос;
в)иачалою па координаtпа i а сиоема;
i)io4Kaia ( с координат (т. п).
15. Дадени са точките .1(10,10), В( 20,50) и S'( 10,0);
a)noci polite ючите ( и />, симе1рични сьотетно па точкиte А и В
отпоено tочка!a S';
б)пос । рой io качунепша шипя ABCD',
в)каква фи: ура е четриы ълникът A BCD"! Обоснове
16. Начертите начупената !иния
(ABCD}, кьлето В има координати
(24,10), а С е с координати (10,24).
Постройie симетричните й образи
относно осше и относно начало го
на координа 1ната система.
ie отговора си.
26
17. Нека са дадени точките А(10. 20), В( 30, 40) и С(0, 70). Hocipomc
ючка, симетрична на точката С относно средата на отсечката АВ. (В*
<ад. 16. и зад. 13.)
Забележка. Точките можете да изобразите на екрана като отсечки с
дьлжина 1 стъпка.
5. КОМАНДИ
ГА ПРОВЕРКА
И ВЗЕМАНЕ
НА РЕШЕНИЯ
Къде е истината
Всеки от вас умее да сравнява числата по големина. Например, ако ви
понитат: Вярно ли е, че числото 58 е по-голямо от числото 36?, веднага
те отговорите: Вярно е. А как ще отговори на този въпрос компютърът,
можете да научите, като му зададете командата:
ИЗВЕДИ 58 >36
Нейният смисьл е: Отговори вярно ли е, че 58 е по-голямо от 36?
Компютърът ще отговори:
ВЯРНО
Има обаче и гакива случаи, при конто не е така лесно да се сравнят
ше числа. Например как ще отговорите на въпроса: Вярно ли е, че
1147
V14159 е по-голямо от —? Разликата между тези две числа е толкова
365
м.| 1ка, че преди да отговорите, ще грябва да посмятате. Компютърът
обаче няма да ее замисли:
ИЗВЕДИ 3.14159> 1147,365
ИГВЯРИо
А сега да го пони гаме нещо по-сложно:
ИЗВЕДИ 2 + 2 = 4
ИАПРАВИ Р 5
ИЗВЕДИ :Р* :Р = 25
ВЯРНО
27
Две числени стойности, свързани със знак за сравнение ( >, < или
= ), представляват логически израз. Логическите изрази могат да при-
емах една от две възможни стойности, наречени логически стойности. В
Лого логическите стойности се означават с думите ВЯРНО и НЕВЯРНО
Въпросите за сравняване на числа можем да задаваме и в отрицател-
на форма. Например можем да попитаме компютъра: Вярно ли е, че
2865
— не е равно на 119,37?. Ще използваме командата:
ИЗВЕДИ НЕ 2865/24= 119.37
Компютърът ше отговори ВЯРНО.
Сега да поставим на компютъра малко по-сложна задача:
ИЗВЕДИ НЕ I + 3 + 5 + 7 + 9+11 + 13>36
Това означава: Вярно ли е, че су мата 1+3 + 5 + 7 + 9+11 + 13 не е по-
голяма от 36? Компютърът ще отговори:
НЕВЯРНО
С други думи той твърди: Не е вярно, че еумата
1+3 + 5 + 7 + 9+ 11 + 13 не е по-голяма от 36. (А ние заключаваме, че тази
сума е по-голяма от 36.)
Да разгледамс сега следната задача: В един автомобилем завод се
провеждат изпитания на новите автомобили. След старта всеки ав-
томобил се движи равноускорително с ускорение 3 m/s2, докато скорост-
та му достигне 54 m/s. От този момент той започва да се движи равно-
закьенително със забавяне 6 m/s-, докато скоростта му стане равна на
нули. Демонстрирайте на екрана движението на автомобил, който е из-
держал изпитанието.
Нека костенурката играе ролята на автомобила. За да опишем дви-
жението й, можем да използваме командата ПОВТОРИ. В този случай
ще трябва да пресметнем колко секунди автомобилът се движи равно-
ускорително и колко — равнозакъснително.
А не може ли без тези пресмятания? Оказва се, че може. За целта
ще използваме способността на компютъра да взема решения. Например
при равноускорителното движение трябва да увеличаваме скоростта, до-
като стане равна на 54 m/s. (За костенурката това ще означава 54 стъпки
за компютърна секунда.) Този процес .можем да опишем с процедурата:
ЗА УСКОРЯВАНЕ V
НАПРЕД :V
АКО :V = 54 ТО СТОП
УСКОРЯВАНЕ :У + 3
КРАЙ
С командата АКО :V = 54 ТО СТОП нареждамс на компютъра да
провери дали скоростта иа костенурката е 54 и ако е така — да прекъсне
изпълнението на процедурата. В противен случай се изпълнява следваща-
28
iii команда, г.е. изпълнява се рекурсивната процедура УСКОРЯВАН1
no i вход :V + 3. Това означава, че командата СТОП ще се изпълни едва
ki>i,ио сгойпостта на параметъра стане 54. По същия начин ще опишем
в p.iniio»акьснителното движение:
А ЗАБАВЯНЕ :V
НЛ11РЕД V
-ХКО :V = 0 ТО СТОП
ЗАБАВЯНЕ :V —6
КРАЙ
I oi ава пълното описание на движение™ ще изглежда така:
ЗА ИЗПИТАНИЕ
ПАДЯСНО 90 УСКОРЯВАНЕ 0 ЗАБАВЯНЕ 54
КРАЙ
Да проверим дали костенурката ще издържи изпитанието:
ИЗПИТАНИЕ
Резулгатът от изпълнението на процедурата ИЗПИТАНИЕ няма ^а
i измени. ако редактирамс процедурата УСКОРЯВАНЕ по следния на-
чни
IA УСКОРЯВАНЕ :V
АКО :V<54 ТО НАПРЕД У ИНАЧЕ СТОП
УСКОРЯВАНЕ :V + 3
КРАЙ
Новата команда АКО :V<54 ТО НАПРЕД :V ИНАЧЕ СТОП озна-
11И.1. че командата НАПРЕД :У ще се изпълни, ако стойността на пара
мги.ра е по-малка от 54. В противен случай се изпълнява командата
< ЮН
Но аналогичен начин може да се промени и процедурата ЗАБАВЯ-
HI
ЗА ЗАБАВЯНЕ У
АКО :V>0 ТО НАПРЕД V ИНАЧЕ СТОП
ЗАБАВЯНЕ :V-6
КРАЙ
Командата. при кояю коминиьры проверява някакво условие и
нк-ма решение, 1рябва да бьде записана на един програмен ред.
След всяка от думите ТО и ИНАЧЕ могат да бъдат записани някол-
кп команди. Например, ако искаме автомобилът да завива надясно, мо-
*ем да променим процедурата УСКОРЯВАНЕ така:
ЗА УСКОРЯВАНЕ У
АКО :V<54 ТО НАПРЕД :V НАДЯСНО 2 ИНАЧЕ СТОП
УСКОРЯВАНЕ .V + 3
КРАЙ
За разлика от истинските автомобили костенурката може да се дви-
*и равноускорително по произволна крива. Това ни дава възможност да
29
изследваме какво ще бъде поведението на автомобиля, ако след всяко
придвижване напред той се завърта на произволен ьгъл.
За тази цел ще редактираме процедурата ИЗПИТАНИЕ:
ЗА ИЗПИТАНИЕ ЪГЪЛ
УСКОРЯВАНЕ О ЪГЪЛ
ЗАБАВЯНЕ 54 :ЪГЪЛ
КРАЙ
ЗА УСКОРЯВАНЕ А :ЪГЪЛ
АКО :V<54 ТО НАПРЕД :V НАДЯСНО :ЪГЬЛ ИНАЧЕ СТОП
УСКОРЯВАНЕ V+3 :ЪГЪЛ
КРАЙ
ЗА ЗАБАВЯНЕ :V :ЪГЪЛ
АКО :V >0ТО НАПРЕД А НАДЯСНО ЪГЪЛ ИНАЧЕ СТОН
ЗАБАВЯНЕ V-6 :ЪГЪЛ
КРАЙ
A ceia ia видим резул1ата о г изпьлнениею й:
ИЗПИТМШГ 40
ГРАФИКА
ИЗПИТАНИЕ 155
Такова ujiiuniuiiue едва ли би издьржал и най-добрият авюмобил от
състезанията ФОРМУЛА 1.
30
О AKO Р ТО /1 /.../к(1)
АКО Р ТО (, ИНАЧЕ J, (2)
Ако стойността на израза р е ВЯРНО, се изпълнява последовател-
иостта от команди след думата ТО. В противен случай се изпълнява:
— при формат (1) командата, записана на следващия програмен ред;
— при формат (2) последователността oi команди, записани след
думата ИНАЧЕ, а след това командата, записана на следващия програ-
мен ред.
НЕ />
Резулгаiы oi операцията е ВЯРНО, ако логический! израз р има
с юйност НЕВЯРНО. В противен случай резултатът от операцията е НЕ-
ВЯРНО.
( гоп
Спира изпьлнениею на |екушага процедура. Управлението се пре-
шва на извикващата процедура.
Задачи
I. Какви оновори ще даде компютьры, ако зададем следниге команди:
а) ИЗВЕДИ НЕ 64> 64.0001;
б) ИЗВЕДИ 5.648Е2< 316.5;
в) ИЗВЕДИ НЕ 4.568N4> 4.5684;
г) ИЗВЕДИ НЕ НЕ 1 <2.
2. Сложете подходящи спирачки на рекурсивната процедура ОХЛЮВ:
ЗА ОХЛЮВ РАЗМЕР :ЪГЪЛ
КВАДРАТ РАЗМЕР
НАДЯСНО :ЪГЪЛ
ОХЛЮВ РАЗМЕР+З ЪГЪЛ
КРАЙ
(Преди да изпълниге процедурата ОХЛЮВ, не забравяйте да дефи-
пирате процедурата КВАДРАТ.)
3. Редактирайте програмата от зад.2 така, че да получите и други ох.ио-
чп — триьгъ.юн, петоъгълеи, шестоъгьлен.
4. Има ли спирачка рекурсивната процедура СТЪЛБА? Защо?
ЗА СТЪЛБА РАЗМЕР :БРОЙ
НАПРЕД РАЗМЕР
НАДЯСНО 90
НАПРЕД РАЗМЕР + 5
НАЛ Я ВО 90
АКО БРОН > 1 ТО СТЪЛБА :РАЗМЕР :БРОЙ I
КРАЙ
31
5. Кои от дадените рскурсивии процедуры имат спирачки'! Защо?
ЗА УСКОРЯВАНЕ1 :V
НАПРЕД :V
УСКОРЯВАНЕ! :V + 3
АКО :V>54 ТО СТОП
КРАЙ
ЗА УСКОРЯВАНЕ2 :У
УСКОРЯВАНЕ2 :V + 3
НАПРЕД :V
АКО :V>54 ТО СТОП
КРАЙ
ЗА УСКОРЯВАНЕЗ :V
НАПРЕД V
АКО V< 54 ТО УСКОРЯВАНЕЗ :V + 3
КРАЙ
ЗА УСКОРЯВАНЕ4 :V
АКО V<54 ТО УСКОРЯВАНЕ4 :У + 3
НАПРЕД :V
КРАЙ
6. Дадена е процедурата:
ЗА УСКОРЯВАНЕ5 :V :ЪГЪЛ А
АКО :V = 54 ТО СТОП
НАПРЕД :V
НАДЯСНО :ЪГЪЛ
УСКОРЯВАНЕ5 :V + :A :ЪГЪЛ .А
КРАЙ
При изпълнението на кои от дадените команди спирачката ще рабо-
та!
а) УСКОРЯВАНЕ5 0 60 3; в) УСКОРЯВАНЕ5 0 123 5;
б) УСКОРЯВАНЕ5 1 93 3; г) УСКОРЯВАНЕ5 4 144 5.
7. Сложете подходящи спирачки на процедурите:
ЗА ФИГУРАI РАЗМЕР ЪГЪЛ
НАПРЕД :РАЗМЕР
НАДЯСНО :ЪГЪЛ
ФИГУРА! :РАЗМЕР ЪГЪЛ + 5
КРАЙ
ЗА ФИГУРА2 :РАЗМЕР ЪГЪЛ
НАПРЕД гРАЗМЕР
НАДЯСНО ЪГЪЛ
НАПРЕД :РАЗМЕР
НАДЯСНО ЪГЪЛ
ФИГУРА2 :РАЗМЕР :ЪГЪЛ*2
КРАЙ
ЗА ФИГУРАЗ :РАЗМ1 :ЪГЪЛ! :РАЗМ2 :ЪГЪЛ2
НАПРЕД :РАЗМ!
32
НАДЯСНО ЪГЪЛ I
НАПРЕД :РАЗМ2
НАДЯСНО :ЪГЪЛ2
ФИГУРАЗ :РАЗМ1 + 2 :ЪГЪЛ1 :РАЗМ2 + 2 :ЪГЪЛ2
КРАЙ
К. Извършете серия от ексиерименти с помошта на процедурите от зад.7.
6 <15 4 ЛИНИ
ЧИСЛА
У сне хите
не са случайны
Да си представим, че в шапка са скрити 16 листчета хартия, на конто са
написани числата от 0 до 15. Ако извадим едно от тях, всъщност извър-
шваме операция за избиране на случайно число. Случайно число може
да избере и компютърът, ако изпълни операцията ИЗБОР. Тази операция
има един вход— броят на числата, измежду конто избираме. Рбзултатът
с цяло число между 0 и входа, намален с 1. Ако изпълним ИЗБОР с вход
16 например, ще получим като резултат някое цяло число между 0 и 15,
избрано по случаен начин. Ето няколко примера:
ИЗВЕДИ ИЗБОР 16
ИЗВЕДИ ИЗБОР 16
ИЗВЕДИ ИЗБОР 16
Нека компютърът си на.иисли число между 0 и 15:
НАПРАВИ "НАМИСЛЕНО ИЗБОР 16
Ще напишем процедура, с която можем да сравняваме дадено число
с Hituuc.ieiiomo от компютъра.
Процедурата изглежда така:
ЗА ПРОВЕРКА ЧИСЛО
АКО :ЧИСЛО = :НАМИСЛЕНО ТО ИЗВЕДИ [ПОЗНАХТЕ!] СТОП
АКО ЧИСЛО < :НАМИСЛЕНОТО (ИЗВЕДИ ЧИСЛО [Е ПО-МАЛКО ОТ НА-
МИСЛЕНОТО]) СТОП
(ИЗВЕДИ :ЧИСЛО (Е ПО-ГОЛЯМО ОТ НАМИСЛЕНОТО])
КРАЙ
3. Ииформгпика за начинаещи - час, II
33
Да се опитаме да познаем какво е намислил компютърът:
ПРОВЕРКА 7
7 1 ПО-ГОЛЯМО ОТ НАМИСЛЕНОТО
ПРОВЕРКА 3
3 Е ПО-МАЯКО ОТ НАМИСЛЕНОТО
ПРОВЕРКА 5
5 Е ПО-МАЛКО ОТ НАМИСЛЕНОТО
ПРОВЕРКА 6
ПОЗНАХТЕ!
За да започнем нова игра, 1рябва огново да накараме компютъра
да избере случайно число.
НАПРАВИ "НАМИСЛЕНО ИЗБОР 16
ПРОВЕРКА 7
7 Е ПО-ГОЛЯМО ОТ ПАМИСЛЕ1ЮЮ
ПРОВЕРКА 3
3 Е ПО-ГОЛЯМО ОТ НАМИСЛЕНОТО
ПРОВЕРКА 2
ПОЗНАХТГ
Бързината на успеха в играта зависи от избрана га так1ика. В гози
случай използваме тактиката разно.швяване, като постепенно намалява-
ме броя на числата, измежду конто тьрсим намисленото от компютъра
число.
Друза тактика, коя го веднага ще ни донесе успех, е да последнем
числото с командата ИЗВЕДИ :НАМИСЛЕНО.Само че това няма да е
честно спрямо компютъра.
Случайни числа е използвал дори Моцарг. Той приложил необичаен
метод за композиране с помощта на две зарчета. От таблица с готови
тактове се избира такт с номер, равен на общия брой точки, който се
получава след хвърляне на зарчетата. Тогава. шегувайки се със съвремен-
ницше си, Моцарт едва ли е допускал, че този метод ще бъде използван
200 годный по-кьсно за композиране на музика с компютър.
А какво да направим, ако искаме компютърът да имитира зарче? (С
други думи. ако искаме да получаваме случайни числа от 1 до 6.) Знаем,
че с помощта на операцията ИЗБОР 6 можем да получаваме случайни
числа в интервала от 0 до 5 включително. Тогава с ясно — към резулгата
от ИЗБОР 6 грябва да прибавим 1.
По-обшо, да предположим, че ни трябва случайно число между а и
а + к. кьдето а и к са цели числа и к е по-голямо от 0. Да помислим най-
нанред колко са целите числа от а до а + к включително. Не бързайте с
отговора, защото може да сбъркате. От а + I дои+к има точно к цели
числа. Заедно с а стават к+1 на брой. Резултатът от операцията ИЗБОР
с вход к+ 1 ще бъде цяло число между 0 и к. Следователно, ако към този
резултат прибавим а. ще получим цяло число между а и а + к.
Тук а може да бъде и отрицателно. Нека например ни трябват слу-
чайни числа в интервала [-}; 3]:
34
-3-2-10 1 2 3
----1----1---1----1---1----1----1--—
x
Целите числа от — 3 до 3 включително са 7. Резултатът от ИЗБОР
7 е цяло число от 0 до 6 включително. Ако към този резултат прибавим
( — 3), ще получим цяло число между —3 и 3.
И гака, ако ни трябват случайни числа в интервала [а; а + к], където
а и к са цели и к е положително число, можем да използваме процедура-
та:
ЗА ИЗБРАНО.ЧИСЛО :А К
ИЗХОД :А + ИЗБОР (:К + 1)
КРАЙ
(Скобите нс са задьлжителни.)
Да отбележим, че к е дължината на интервала [а, а + к]. Затова. ако
ин!ервалът, от конто ще избираме по случаен начин цели числа, е за-
даден с краищата си [а; А], можем да използваме процедурата:
ЗА ИЗБРАНО ЧИСЛО.ОТ :А В
ИЗХОД :А + ИЗБОР (:В — :А) Т I
КРАЙ
Да видим сета как можем да избираме по случаен начин не числа,
а । очки върху екрана. Ясно е, че ще ни трябват две случайни числа (коор-
динат иге на точка! а).
Да си припомним размерите на ек-
рана:
Тогава абсцисата на точката ще
избираме по случаен начин в интер-
вала [-140; 139], а ординатата — в
интервала [ — 96; 95].
Ето и процедурата, с която мо-
жем да придвижваме костенурката
до случайно избрана точка:
ЗА ИЗБРАНА.ТОЧКА
НАПРАВИ "X ИЗБРАНО.ЧИСЛО.ОГ
НАПРАВИ "У ИЗБРАНО.ЧИСЛО.ОТ
ДО :Х У
КРАЙ
Сега можем да предложим на костенурката една случайна разходка:
ЗА НАСАМ.НАТАМ
ИЗБРАНА ТОЧКА
НАСАМ.НАТАМ
КРАЙ
(-140; 96) У (139; 96)
X
(140; -95) (139; -95)
140 139
96 95
35
С процедурата ИЗБРАНО.ЧИСЛО.ОТ видяхме как можем да изби-
раме по случаен начин точка от зададен интервал [«; Л]. Интересна е и
обратната задача — да проверим дали избрана по случаен начин точка
У(.т) от числовата ос е вътрешна за интервала [«; А], т.е. дали са изпълне-
ни едновременно неравенствата .v > а и .v < b. За целта ще ни трябва
логическата операция ВСИЧКИ, която има входове логически изрази
и дава резултат ВЯРНО, ако всички входове имат стойност ВЯРНО,
например:
ИЗВЕДИ ВСИЧКИ 2>0 2<5
ВЯРНО
ИЗВЕДИ ВСИЧКИ 6>0 6<5
|)ЕВЯ1‘Н< ।
НАПРАВИ "X О
ИЗВЕДИ ВСИЧКИ :Х<2 :Х> 2
!' :П’Ц.
Сега ще видим как сами можем да дефинираме операции, конто да-
ва । като резултат една от двете логически стойности ВЯРНО или НЕ-
ВЯРНО Наричаме ги операции предикати и обикновено слагаме накрая
на името им ? за подсещане, че с тях задаваме въпрос, чийто отговор
е ВЯРНО или НЕВЯРНО. Операцията, която ще дефинираме, ще дава
резултат ВЯРНО само ако дадена точка Х(х) е вътрешна за интервала
[«; Л]:
ЗА ВЪТРЕШНА? :Х :А :В
АКО ВСИЧКИ :Х>:А :Х<:В ТО ИЗХОД ВЯРНО
ИЗХОД "НЕВЯРНО
КРАЙ
Да проверим действисто й:
ИЗВЕДИ ВЪТРЕШНА? 2 0 5
ВЯРНО
Действително, както вече видяхме, резултатъг от изпълнението на
операцията ВСИЧКИ с входове 2>0и2<5е логическата стойност
36
ВЯРНО. Това означава, че условието след ЛКО в условната команда на
ВЪТРЕШНА? е вярно, откъдето следва, че и изходът й ще бъде ВЯРНО.
ИЗВЕДИ ВЪТРЕШНА? 6 0 5
НЕВЯРНО
В този случай условието след АКО е невярно и следователно и изхо-
ды на ВЪТРЕШНА? е НЕВЯРНО.
Понякога ни интересува дали дадена точка Х(х) принадлежи на ин-
тервала [a; h], т.е. дали са изпьлнени нсстрогите неравенства х 2: а и
х g />. Съобразяваме, че това те бъде вярно, ако са изп ьлнени одновре-
менно условията: I) х не е по-малко о г а и 2) х не е по-голямо от Л. На
Лого това условие можем да изразим така:
ВСИЧКИ (НЕ :Х<:А) (НЕ :Х>:В)
Тогава сме готови да дефинираме операцията предикат ПРИНАД-
ЛЕЖИ? с параметри X. А и В, която има резултат ВЯРНО, ако първият
вход принадлежи на интервала, определен от втория и третия вход:
ЗА ПРИНАДЛЕЖИ? :Х :А :В
АКО ВСИЧКИ (НЕ :Х<:А) (НЕ :Х>:В) ТО ИЗХОД ’ВЯРНО
ИЗХОД’НЕВЯРНО
КРАЙ
Както видяхме, операциите предикати могат да имат един или пове-
че входове.
Да отбележим, че с операции предикаги, конто имат повсче от един
вход, се провсряват отношенията между входовете (например дали едно
число е по-голямо от друго). Ако входът е един, с операцията предикат
се проверява някакво свойство на входа (например дали е неотрицателно
число).
Да направим 37 хвърляния на зар, като записваме колко пъти се
зй' пада всяко от числата. Резултатиге можем да отразим в таблица.
? ) Например
Число 1 2 3 4 5 6
Врой 6 4 13 2 6 6
Информацията от тази таблица можем да илюстрираме чрез схема,
наречена хистограма.
37
Всяка хистограма се със-
тои от послелователно
наредени върху абсцис-
ната ос допиращи се пра-
воъгълници с еднаква
ширина. В случая висо-
чината на всеки правоъ-
гълник (отчетена спрямо
ординатната ос) отразя-
ва колко пъти всяко от
числата от I до 6 се е
паднало при нанравените
37 хвърляния на зара.
Да разгледаме друг пример. Нека дадената таблица съдържа инфор-
мация за дъ.1жините на думите в един текст.
Дължина 1 2 3 4 5 6 7 8 9 10
Брой думи 15 24 8 15 15 16 14 4 0 4
Информация от този тип също може да се илюстрира чрез хистогра-
ма:
38
О ВСИЧКИ />, /Ml)
(ВСИЧКИ />, рг...р„) (2)
Логическата операция ВСИЧКИ дава като резултат ВЯРНО, ако
всеки от логическите изрази рк има стойност ВЯРНО.
ИЗБОР п
Резултатът е случайно число в интервала [0; п 1].
ia »ачи
I. Може ли даденаза по-долу процедура да се използва за теглене на
числа га от ТОТО 2?
ЗА ТОТО2
ПОВ ГОРИ 6 [ИЗВЕДИ I + ИЗБОР 49]
ИЗВЕДИ [ДОПЪЛНИТЕЛНИ]
ПОВТОРИ 2 [ИЗВЕДИ 1 + ИЗБОР 49]
КРАЙ
2. Дайте на косгенурката команда, с помощта на която 1Я да пръсне
вьрху екрана звезди само в първи квадрант на координатната система
3. Дефинирайте рекурсивна процедура, с която костенурката по случаен
начин да избира ъгъла, на който да се завърта, и да изминава по десет
стъпки.
4. Редактирайте процедурата от зад 3 така, че костенурката по случаен
начин да избира ъгъла, на който да се завърта, и да изминава случаен
брой стъпки (между 0 и 19).
5. Процедурата ЗАР е дефинирана по следния начин:
ЗА ЗАР
НАПРАВИ "ЧИСЛО ЕДНО.ОТ.ШЕСТ
АКО :ЧИСЛО=1 ТО ЕДНО СТОП
АКО :ЧИСЛО = 2 ТО ДВЕ СТОП
АКО :ЧИСЛОМ ТО ТРИ СТОП
АКО ЧИСЛОМ ТО ЧЕТИРИ СТОП
АКО :ЧИСЛО=5 ТО ПЕТ СТОП
АКО :ЧИСЛО = 6 ТО ШЕСТ СТОП
КРАЙ
а) опишете операцията ЕДНО.ОТ.ШЕСТ, кьм която да се обрыца
процедурата ЗАР така, че резултатът от изпълнението й да бьде случай-
но число между 1 и 6;
б) опишете процедурите ЕДНО, ДВЕ, ТРИ и т.н. до ШЕСТ така, че
в резултат от изпълнението им да се чертаят съответно фигурите'
39
в) използвайте процедурата ЗАР, за да получите процедура, която
имитира хвърляне на два зара.
6. 1Це се измени ли действието на процедурата ЗАР, ако навсякъде в нея
вместо ЧИСЛО напишете ЕДНО.ОТ.ШЕСТ?
7. Напишете програма, с която може да хвърляте определен брой зарове.
8. Напишете рекурсивна процедура, при изпълнението на която на слу-
чайно избрано място върху екрана да се чертаят правилни многоъгълни-
ци със случайно избран брой на страниге
избрана дължина на страната между 1 и
9. Напишете процедура за чертане на мре-
жа та:
10. Начертайте върху кариран лист мре-
жата от зад. 9 и участвайте в следната иг-
ра: Изберете номер от 1 до 12 и на полето
с този поредей номер от първия ред на
мрежата поставете свой знак — фигурка.
С помощта на компютъра всеки хвърля
поред два зара и ако сумата им
съвпадне с числото, коего си е избрал иг-
рачът, гой придвижва знака си с едно по-
ле нагоре. Печели този, кой го пръв до-
стигне последний ред на мрежата. Ако иг-
раете многократно, обърнете внимание
кои числа печелят най-често. Кое число
никога не печели?
11. Хвьрлеге с помощта на компютъра 18
пъ 1 и два зара и постройте върху лист хар-
тия хисго(рама на честотите на различни-
ге суми. Използвайте мрежата от зад. 9,
ка । о защриховате всеки две съседни коло-
ни на хисюграмата с различен цвят.
12. Каю използвате мрежата от зад. 9, постройте върху лист хартия
хистотрама за дьлжиннте на думите на избран от вас текст.
13. Дефинирайте рекурсивна процедура, чрез която на случайно избрано
място върху екрана да се появяват питагбрейски звезди (с 5 лъча) с раз-
мери между 5 и 45 стъпки.
14. Дефинирайте операция АБС с един вход така, че резултатът от изпъл-
нението й да бъде абсолютната стойност на входа.
15. Дефинирайте операция предикат НЕОТР? с един вход, с която да се
проверява дали входът е неотрицателно число.
16. Дефинирайте операция предикат В'ЬНШНА?, с която да се проверява
дали дадена точка е вън от интервала [</; 6].
40
7. АНИМАЦИЯ
Оживяване
на костенурката
при сложни условия
Думата анимация произлиза от латинската дума animatio, което означава
оживяване. В първата част вече правихме анимационна филми, в конто
с помощта на програмата РЕД.ОБРАЗИ костенурката се превъплъщава-
ше в различии образи. (Вж. приложение 5.)
Анимация се постига и по други начини. Например можете да нари-
сувате на екрана някакъв обект, след това да го изтриете и да го пренася-
ге многократно в непосредствена близост до първоначалното му поло-
жение. При никои езици за програмиране анимация може да се прави
само по този начин.
Развитието на даден обект можете да из-
образите и като промсняте големината
му. Да илюстрираме растежа на едно бор-
че.
Ще присмем, че всяка година израст-
ва нова част от борчето с формата на ла-
гинската буква Y — стъбло с определен
размер и два клона със същия размер.
Всяка следваща година борчето на-
раства с ново Y, но с по-малък размер,
3
например - от предишния. Растежът се
прекратява, когато размеры на следва-
щото Y стане по-малък от 2 стъпки:
ЗА БОРЧЕ :РАЗМЕР
АКО :РАЗМЕР < 2 ТО СТОП
Y :РАЗМЕР
БОРЧЕ :РАЗМЕР* 3 4
КРАЙ
41
Нарекли сме Y процедурата, с която ще чсртаем израсналата нова
част. След като начертае Y с даден размер, костенурката трябва да заста-
не на върха на стъблото, готова за чертане на слсдващото Y, но с размер,
3
който е - от предишния. Ето защо пак трябва да се обърнем към проце-
дурата БОРЧЕ, но с намален вход.
Сега да опишем процедурата Y. Тя също има един параметър за
дължината на клоните и стъблото, който може да бъде назован по жела-
ние (включитслно и РАЗМЕР).
ЗА Y :ДЪЛЖ
НАПРЕД :ДЪЛЖ НАЛЯВО 30
НАПРЕД :ДЪЛЖ НАЗАД :ДЪЛЖ НАДЯСНО 60
НАПРЕД :ДЪЛЖ НАЗАД :ДЪЛЖ НАЛЯВО 30
КРАЙ
За да бъде анимацията по-реалистична, ще внесем забавящ ефек! с
помощта на процедурата ЗАБАВИ:
ЗА ЗАБАВИ :ВРЕМЕ
ПОВТОРИ ВРЕМЕ I |
КРАЙ
Командата ЗАБАВИ с подходящ вход (например 1000) можем да
вмъкнем след начертаването на всяко стъбло и клон.
Да отгледаме едно борчс:
БОРЧЕ 35
Сега ще направим друг филм, в който костенурката ще играе себе
си, т.е. ще имитира поведението на водна костснурка — ако е на пясъка,
ще оставя следа, а ако е във водата, ще плува (ще се движи без следа).
42
Разделяме екрана на две части с помощта на
абсцисната ос. Горната полуравнина ще бъ-
ie пясъчната ивица, а долната — водата. С
помощта на програмата РЕД.РИСУНКИ ~ ~
(Вж. приложение 5.) можем да защриховаме
по подходящ начин водата или да нарисува- ---------------------
ме вълни, например така: ’
Сега трябва да накараме костенурката да се движи на малки стъпки
и да оставя следа, когато е на пяська, и да се движи на по-големи отсечки
без следа, когато е във водата. След всяко преместване ще я караме да
се завърта на случайно избран ъгъл. А как ще проверяваме дали е на
пяська? Като разберем дали стойността на ординатата й в момента (те-
кущата ордината) е положителна. Стойността на текущата ордината мо-
жс да се получи като резултат от операцията ОРД. Аналогично е дейст-
нието на операцията АБСЦ — резултатът от изпълнението й е текущата
абсциса на точката.
Ще проверим действието на ОРД и АБСЦ с няколко примера. Да
юпуснем, че костенурката е в точката (- 5, 10).
ИЗВЕДИ орд
ИЗВЕДИ АБСЦ
ИЗВЕДИ ОРД > 10
п'лРН'О
ИЗВЕДИ АБСЦ < 10
НЕВЯРНО
Сега сме готови да раздвижим водната костенурка:
ЗА ДВИЖИ.СЕ
АКО ОРД > 0 ТО ВЪРВИ ИНАЧЕ ПЛУВАЙ
ДВИЖИ.СЕ
КРАЙ
ЗА ВЪРВИ
ПОВТОРИ 3 [НАПРЕД 2]
ЗАБАВИ 50
НАДЯСНО ИЗБОР 360
КРАЙ
ЗА ПЛУВАЙ
ВДИГНИ
ПОВТОРИ 5 [НАПРЕД 1)
ЗАБАВИ 50
НАДЯСНО ИЗБОР 360
СПУСНИ
КРАЙ
Да раздвижим костенурката:
ДВИЖИ.СЕ
43
Ако решим да присъсдиним към пясъчната ивица и абсцисната ос,
можем да изменим условната команда така:
АКО НЕ ОРД < О ТО ВЪРВИ ИНАЧЕ ПЛУВАЙ
Ако искаме да се движи не костенурката триъгълниче, а истннска
водна костенурка, ще нарисувамс образа й с помощта на програмата
РЕД.ОБРАЗИ и ще го залазим на дискета например под името КОСТЕ-
НУРКА. След това ще заредим и ще стартираме програмата за включен-
ие на образи от дискетата:
ЗАРЕДИ "ВКЛ.ОБРАЗИ
НАЧАЛО
Остава да заредим образа oi диске гага с помощта на команда! а
ВКЛЮЧИ и да придадем този образ на костенурката:
ВКЛЮЧИ "КОСТЕНУРКА
ОБРАЗ :КОСТЕНУРКА
Ако сега дадем командата ДВИЖИ.СЕ, ще се раздвижи костенурка-
та в истинския си образ. Е, малко необичайно. но да не забравяме, че
в новия си образ тя може да се завърта само на ъгли, кратни на 90
градуса.
Следващият ни проект ще бъде да превърнем костенурката в скака-
лец. Преди това обаче ще възстановим обичайния й образ:
ОБРАЗ о
Искаме в ролята си на скакалец костенурката да подскача по случаен
начин, докато попадне в хранилка.
Тогава да издаде характерен звук
(нещо от рода на а.и-а.м) и да за-
почне да слове наоколо с малки
стъпки, а когато напусне очертания-
та на хранилката, отново да започне
да подскача.
Да приемем, че хранилката е
квадрат със страна 40 стъпки, симст-
ричен относно центъра на коорди-
натната система:
У
(—20; 20) (20; 20)
° О
X
(- 20; —20) (20; -20)
44
Движението на скакалеца можем да опишем по следния начин:
ЗА СКАЧАЙ
АКО ХРАНИЛКА? ТО AM СТЪПКА ИНАЧЕ СКОК
СКАЧАЙ
КРАЙ
Ще дефинираме процедурата ХРАНИЛКА? като операция, с която
те ироверяваме дали костенурката е в хранилката, т.е. дали текущите й
координати се намират в квадрата. Това условие ще бъде вярно, ако
одновременно и абсцисата на костенурката, и ординатата й са вътрешни
ia интервала (— 20, 20):
ЗА ХРАНИЛКА?
АКО ВСИЧКИ (ВЪТРЕШНА? АБСЦ (-20) 20)
(ВЪТРЕШНА? ОРД ( 20) 20) ТО ИЗХОД "ВЯРНО
ИЗХОД НЕВЯРНО
КРАЙ
Операцията ВЪТРЕШНА? (Вж.тема 6.) има три входа и с нея се про-
нсрява дали първият вход е вътрешна точка за интервала, определен от
птория и третия вход:
ЗА AM
ПОВТОРИ 2 [ИЗВЕДИ ЗНАК 7]
КРАЙ
При извеждането на ЗНАК с вход 7 се чува звуков сигнал и при
малко повече въображение при изпълнението на AM ще чуете ам-ам.
Остава да дефинираме процедурите СТЪПКА и СКОК, с който ще
опишем двата типа движение на скакалеца:
ЗА СТЪПКА
НАПРЕД 5 ЗАБАВИ 500
НАДЯСНО ИЗБОР 360
КРАЙ
ЗА СКОК
ВДИГНИ
НАПРЕД 50 ЗАБАВИ 500 НАДЯСНО ИЗБОР 360
СПУСНИ
КРАЙ
Сега вече можем да накараме костенурката да скача като скакалец:
СКАЧАЙ
Ако решим да направим филма по-реалистичен, мо.жем да нарисува-
ме стилизиран скакалец (както и преди с помощта на РЕД.ОБРАЗЙ) и
та го запазим под името СКАКАЛЕЦ.
Ако програмата ВКЛ.ОБРАЗИ вече е заредена и стартирана, можем
да пристъпим към описанието на скакалеца:
ЗА СКАКАЛЕЦ
ВКЛЮЧИ "СКАКАЛЕЦ
ОБРАЗ .СКАКАЛЕЦ
ФОН 6 МОЛИВ 0
КРАЙ
45
Този път за разнообразие сме сменили фона.
Новата версия на филма ще видим след командите
СКАКАЛЕЦ СКАЧАЙ
В последний проект ще усложним ролята на костенурката, каю я
превърнем в лодка, която плава между две пристанища (съответно в ле-
вия и в десния край на екрана).
Да допуснем, че лодката тръгва от дясното пристанище (с абсциса
130 стъпки). За да я накараме да се движи наляво, можем постепенно да
намаляваме абсцисата й например с 2 стъпки:
ЗА ПЛАВА
ДОАБСЦ АБСЦ-2
ПЛАВА
КРАЙ
Ако сета дадем командата ПЛАВА, костенурката ще се придвижи
наляво с две стъпки, после отново с 2 и т.н., докато сти1 не до левия край
на екрана (т.е. когато абсцисата й стане — 140 стъпки). При следващото
намаляване с 2 стъпки костенурката ще напусне левия край на екрана и
ще се появи отново в десния му край. За да можем да рсгулираме ско-
ростта на лодката, ще въведем параметър ИЗМ за изменението на абсци-
сата:
ЗА ПЛАВА :ИЗМ
ДОАБСЦ АБСЦ ИЗМ
ПЛАВА :ИЗМ
КРАЙ
При командата ПЛАВА 4 например лодката ще се движи два нити
по-бързо, отколкото при командата ПЛАВА 2.
Сега да помислим как да накараме лодката да смени посоката си на
движение, когато стигне до някой от краищата на екрана. Ако е стигнала
например лявото пристанище (тогава абсцисата й е равна на — 130 стъп-
ки), трябва да започнем да увсличаваме абсцисата й, т.е. да сменим знака
на :ИЗМ. Аналогично, когато костенурката стигне дясното пристанище
(при абсциса 130 стъпки), трябва да започнем да намаляваме абсцисата,
т.е. отново да сменим знака на :ИЗМ. Ето новия вариант на ПЛАВА:
ЗА ПЛАВА :ИЗМ
АКО ПРИСТАНИЩЕ? ТО НАПРАВИ "ИЗМ (-:ИЗМ)
ДОАБСЦ АБСЦ- ИЗМ
ПЛАВА :ИЗМ
КРАЙ
Процедурата ПРИСТАНИЩЕ? ще дефинираме като операция, коя-
то има изход ВЯРНО, ако е вярно никое от условията абсцисата на косте-
нурката да е равна на 130 или на — 130 стъпки. За целта ще използваме
логическата операция НЯКОЕОТ с първи вход логического условие
АБСЦ = —130 и втори вход — условието АБСЦ = 130:
46
ЗА ПРИСТАНИЩЕ?
АКО НЯКОЕОТ (АБСЦ = 130) (АБСЦ = 130) ТО ИЗХОД "ВЯРНО
ИЗХОД "НЕВЯРНО
КРАЙ
Както вече ее доеещаге, резултат ы от изпълнението на операция!а
НЯКОЕОТ е логическата стойност ВЯРНО, ако поне едно от условията
входове е вярно. В противен случай резултатът е НЕВЯРНО.
Да проследим изпълнението на ПЛАВА например при вход 5, като
допуснем, че костенурката тръгва от иачалото на координатната систе-
ма.
Костенурката проверява дали е стигнала до пристанище и щом не
е. огива до точка, чиято абсциса е с 5 стъпки ио-малка. Пак проверява
дали е в пристанище и ако не е, премества се с още 5 стъпки наляво и
г.н., докато абсцисата й стане равна на — 130 стъпки. Toiaea условието
след АКО в операцията ПРИСТАНИЩЕ? е вярно, защото първият вход
на НЯКОЕОТ има стойност ВЯРНО. Това означава, че изходьт на ПРИ-
СТАНИЩЕ? е логическата стойност ВЯРНО и променливата ИЗМ ще
смени знака си, т.е. ще стане — 5. Сега костенурката ще започие да увели-
чава абсцисата си с 5 стъпки (ДОАБСЦ АБСЦ —(~5)), докато не стигне
дясното пристанище (когато абсцисата й стане равна на 130 стъпки). То-
гава резултатът от операцията ПРИСТАНИЩЕ? пак е логическата стой-
ност ВЯРНО (защото вторият вход на НЯКОЕОТ има стойност ВЯР-
НО) и променливата ИЗМ отново ще смени знака си, т.е. ще стане 5. и
г.н. Тези разсъждения обаче са в сила само защото по една щастлива
случайност избрахме като вход на ПЛАВА числото 5. Ако бяхме избра-
ли число, което не е делител на 130, например 7, костенурката нямаше
да разбере, че е стигнала до пристанище, защото абсцисата й никога
ияма да стане равна на — 130 стъпки. Ето защо се налага да редакгираме
процедурата ПРИСТАНИЩЕ? по следния начин:
ЗА ПРИСТАНИЩЕ?
АКО НЯКОЕОТ (АБСЦ < 130) (АБСЦ > 130) ТО ИЗХОД ВЯРНО
ИЗХОД "НЕВЯРНО
КРАЙ
Ceia ще накараме KocienypKaia да приема последова 1елно две пози
на лодката.
Нека са запазени на дискета като ЛОДКА1 и ЛОДКА2 Да подют-
вим лодката, като я спуснем в дясното пристанище:
47
ЗЛ ЛОДКАТА
ВКЛЮЧИ "ЛОДКАI
ВКЛЮЧИ "ЛОДКА2
ВДИГНИ
ДОАБСЦ 130
КРАЙ
Сега щс редактираме процедурата ПЛАВА така, че след всяко изме-
нение на абсцисата си костенурката да сменя позата си:
ЗА ПЛАВА :ИЗМ
ОБРАЗ :ЛОДКА1
АКО ПРИСТАНИЩЕ? ТО НАПРАВИ"ИЗМ ( :ИЗМ)
ДОАБСЦ АБСЦ —:ИЗМ
ОБРАЗ ЛОДКА2
АКО ПРИСТАНИЩЕ? ТО НАПРАВИ "ИЗМ ( :ИЗМ)
ДОАБСЦ АБСЦ —:ИЗМ
ПЛАВА :ИЗМ
КРАЙ
Осъщесгьихме сценария на филма, но смяната на позите става пре-
калено рязко. Затова ще внесем забавящ ефект с помощта на ЗАБАВИ,
която ще вмъкнем след всяко прсобразяване на костенурката. Освен това
ще добавим още един параметър за регулиране на забавянето:
ЗА ПЛАВА :ИЗМ :Т
ОБРАЗ :ЛОДКА1 ЗАБАВИ :Т
АКО ПРИСТАНИЩЕ? ТО НАПРАВИ "ИЗМ (-.ИЗМ)
ДОАБСЦ АБСЦ—:ИЗМ
ОБРАЗ :ЛОДКА2 ЗАБАВИ :Т
АКО ПРИСТАНИЩЕ? ТО НАПРАВИ "ИЗМ (-:ИЗМ)
ПЛАВА :ИЗМ :Т
КРАЙ
С помощта на експерименти установяваме при какви стойности на
Т лодката се движи плавно. Една такава стойност е например 100. При
командата ПЛАВА 2 100 лодката ще се движи плавно и сравнително
бавно. А можем ли да прожектпираме същия филм с помощта на цяло
изречение, да речем:
ЛОДКАТА ПЛАВА БАВНО ПЛАВНО.
Знаем, че входовете на одна процедура могат да се задават не само
като числа и аритметични изрази, но и като резултат от операция. Затова
ще дефинираме думите БАВНО и ПЛАВНО като операции, чийто изход
е подходяще число, в случая:
ЗА БАВНО
ИЗХОД 2
КРАЙ
ЗА ПЛАВНО
ИЗХОД 100
КРАЙ
Бавно, но ... плавно!
48
АЫ '>
Дава като резулгаг абсцисага на точката. в която ее Памира kocic-
нурката.
НЯКОЕОТ р, р. (I)
(НЯКОЕОТ />, (2)
Логическата операция НЯКОЕОТ дава като резултат ВЯРНО. ако
ноне един от лотческите изрази о,, има стойност ВЯРНО. В прошвеп
случай резултатът от операцията е НЕВЯРНО.
ОРД
Дава каю резултат ординашта на i очка га. в кояю се намира косте-
нурката.
1а ычи
ЕРедакгирайте процедурата БОРЧЕ, каю вьведе!е пара-
метър за ъгъла, който клоните сключваг със стъблото.
2.Редактирайте процедурата БОРЧЕ така, че при изпьлне-
нието й да се чер гае e.ixa:
З.Впушете друто поведение на водна!а костенурка и редакюрайге по
подходящ начин процедурата ВЪРВИ и ПЛУВАЙ.
Д.Начертайге па екрана хранилкага от задача га за скакалеца и експсри-
ментирайте различно поведение вън и вътре в нея.
5.Имитирайгс поведението на скакалеца при наличиего на две храпилки.
б.Редактирайге процедурата ПЛАВА така, че лодката да се задьржа по-
дь.по на пристанища га. ~
7.Чрез последователно начер!аванс и из-
грпване накарайтс стилизирания камион
да се движи.
В.Обяснете по какъв начин се пра'ви анимация с процедурата:
ЗА ЧЕРВЕЙ
СКРИЙ
НАПРЕД 40 НАЗАД 35 МОЛИВ О
НАЗАД 5 НАПРЕД 5 МОЛИВ I
ЧЕРВЕЙ
КРАЙ
4 И f (форма«ика за начинаещи чаи» П
9.Създайте анимация на гема Пыним съд с во-
да.
Ю.Създайте анимационен филм Тапцуващи.чт робот.
П.Нарисувайте дадените по-долу фигури с помощта на РЕД.ОБРАЗЙ.
Използвайте ги като последователни пози в анимационни филми на ге-
ма:
а) Иод готовка за фе.хтовка.
50
Накарайте човечето да танцува.
Забележка. След като включите последователните пози с помет га
па командата ВКЛЮЧИ, дайте командата ПРЕХВЪРЛИ.
13.С помощта на подходящи процедури илюстрирайте върху скрапа и»
речепието Рибита плгва. (Използвайте програмите РЕД.РИСУ ПКИ и
РЕД.ОБРАЗЙ.)
14.Редактирайге процедури ге о г зад. 13 гака, че с гяхна помоги да илтсг-
рираге изречепията:
Черепаха плавает.
The turtle swims.
(Костенурката плува.)
8. СГРУКТУРИРАНЕ
НА ИНФОРМАЦИЯМ
Познай какво съм намаслил
Иг par а Животни прилича на популярната игра Познай кой съм\, при
която грябва да се познае имего на известна личност с помощта на въ-
проси. допускагци само отговор да или не. Да поиграем с компютъра:
ЗАРЕДИ "ЖИВОТНИ
ЖИВОТНИ
Компютър ьт съобщава:
НАМИСЛЕТЕ СИ ЕДНО ЖИВО1НО
АЗ ЩЕ СЕ ОПИТАМ ДА ГО ПОЗНАН
КАТО ЗАДАВАМ ВЪПРОСИ
Ако намислим котка, ще последва диалогът:
1 РЬЬНАЧНО ЖИВОТНО 1И Е?
ДА
ИМ X ЛИ КРИЛ А.
НЕ
51
НМЛ ЛИ КРАКА '
ДА
ИМ X ПИ КОЗИНА
ДА
ПЛИ 1 ЕРА ли Г '
НЕ
1ЮХ. НЕПОЗНАЧ i\i»t ЮВ \ ЖИВО11 И >
КОТКА
Това, което прави програмата ЖИВОТНИ интересна, е, че чрез нея
компютърът може да се научи да познава нови животни. Когато не може
да познае намисленото от нас животно, той ни кара да посочим някой
негов характерен белег:
МОЛЯ НАПИШИ I ВЫ1РО< КОИП> ИМ \ OI1OBOP
.ДА" ЗА КОТК XII HI IX II Mill Р X
Тук трябва добре да помислим — кой от всички характерни за ког-
ката белези я отличава от пантерата. Един подходящ въпрос е:
ДОМАШНО ЖИВОТНО ЛИ Е?
Компютърът вече ще може да различава котка от пантера. Затова
бърза да ни подкани за нова игра:
ИСК 11 Ill II \К ДА И1 РАЕМ (ДАНЕ)
Ако отговорим с ДА и отново намислим същою живогно, диалогът
ще протече по същата схема до въпроса ИМА ЛИ КОЗИНА?. След като
отговорим с ДА, ще последва новият въпрос, който компютърът е на-
учил — ДОМАШНО ЖИВОТНО ЛИ Е? Тук отново ще отговорим ут-
върдително и компютърът ще попадне в целта:
КОТКА ли г?
След като си признаем, той скромно ще заяви:
ВЙЖДА1Е ЛИ КОЛКО СЪМ УМЕН1
Наистина с научаването на нови въпроси и нови животни компюгъ-
рът става по-интелигентен.
Навярно искате да видите какво знае компютърът за животни ге в
началото на играта. И това е възможно. За тази цел трябва да изчистизе
паметта и да възстановите началното състояние на програмата с помощ-
та на командите
ОТНОВО
ЗАРЕДИ "ЖИВОТНИ
и след това да извикаге upoipaMaia ПРОВЕРКА.ЗНАНИЯ.
ЗАРЕДИ "ПРОВЕРКА.ЗНАНИЯ
ПРОВЕРКА.ЗНАНИЯ
52
Компютърът ще ни покаже каква логика използва.
ГРЪБНАЧНО ЖИВОТНО ЛИ Е?
АКО ДА
ИМА ЛИ КРИЛА?
АКО ДА
СНАСЯ ЛИ ЯЙЦА?
АКО ДА
| ОРЕЛ
АКО НЕ
ПРИЛЕП
АКО НЕ
ИМА ЛИ КРАКА?
АКО ДА
ИМА ЛИ КОЗИНА?
АКО ДА
| ПАНТЕРА [
АКО НЕ
КРОКОДИЛ
АКО НЕ
ИМА ЛИ КРИЛЕ?
АКО ДА
I РИБА
АКО НЕ
ЗМИЯ
АКО НЕ
ИМА ЛИ КРИЛА?
АКО ДА
ЖИЛИ ЛИ?
АКО ДА
I ОСА
<КО НЕ
МУХА
АКО НЕ
ИМА ЛИ КРИЛЕ"’
АКО ДА
I МИДА
АКО НЕ
МРАВКА
Да представим разгледаната схема във вид на дърво:
Това дърво се състои от въпроси и имена на животни. Всеки въпрос
има клон ДА и клон НЕ. Всеки клон води към нов въпрос или към име
на животно. Компютърът трябва да стигне до име на животно, като
шпочва разлита от върха. Следващите въпроси се определят еднозначно
н зависимост от получения отговор.
Да проследим как е било обходено дьрвого при първата ни игра.
Обхождането започва от върха (въпроса ГРЪБНАЧНО ЖИВОТНО ЛИ
I ?). Тъй като котката е гръбначно. отговорихме с ДА. Компютърът
тръгва по клона ДА и стига до следващия въпрос: ИМА ЛИ КРИЛА?
Оттук продължава по клона НЕ към въпроса ИМА ЛИ КРАКА?. По
к юна ДА стига до ИМА ЛИ КОЗИНА?, откъдето пак по клона ДА
cinra до ПАНТЕРА.
53
Има ли Козина?
пантера крокодил
Има ли хриле?
риба змия
(Да отбележим. че макар орелъг и прилепът да имат крака, до 1ях
компютърът не би могъл да стигне, след като вече сме отговорили с НЕ
на въпроса ИМА ЛИ КРИЛА?.) Когато компютърът стигне до име на
животно, той отговаря с това име. В пашня случай — с пантера. Ако
просто сменим в дървою думата
пантера с котка, компютърът няма
да поумнее, защото cei а пък няма да
може да познава пантерата. Ако на-
истина искаме да обогатим дървото
на познаниепю, трябва да включим
нов въпрос, с който компютърьг да
може да различава пантера от кот-
ка:
В предишното дърво сме замес-
тили ПАНТЕРА с ново поддърво,
което се състои от въпрос (ДО-
МАШНО ЖИВОТНО ЛИ Е?), клон
ДА (водещ към КОТКА) и клон НЕ
(водещ към ПАНТЕРА)
I
да
А ето как ще се измени съответното място в схемата от ПРОВЕР-
КА. ЗНАНИЯ:
АКО ДА
ИМА ЛИ КОЗИНА?
АКО ДА
|ДОМАШНО ЖИВОТНО ЛИ Е?
АКО ДА
КОТКА
АКО НЕ
ПАНТЕРА
АКО НЕ
КРОКОДИЛ
Колкото и малко да знае компютърът за животните, не можем да
кажем, че няма желание да обогати знанията си.
Имената, конто измисляте, могат да бъдат съвсем екзотични — гну,
газела, та дори Чебурашка или дяволчето Фют. Но не смятайте. че е
много духовито да използвате имената на съучениците си.
1адачи
1. Научезе компютъра да разпознава животнищ, конто знаете. (Ако
। мът .пг не ги побере. не се отчайвайте. Нормално е да знаете повече от
компютъра.) Отразете графично измененията на знанията му.
2. Участвайте по двойки в играта ЖИВОТНИ, като единият играч изпъл-
пява ролята на компютъра, а другият — на ученика. Нека компютърът
ia отразява измененията в своите знания.
3. На мястото на цифрите в графа поставетс дадените имена на животни:
тигьр, магаре, шаран, сова, кит, гущер, акула, жаба,
бивол
54
55
4. Изпълнете условието на зад.2, като използвате графа от зад.З.
5. Изпълнете условието на зад.2, като вместо животни този път комто-
тьрып разпознава следните термини: мускул. камък, спирт, кръв, расте-
ние, червено вино, сърце, вода, черен туш. слънчева батерия, панкреас. За
целта използвайте графа:
течност
мускулна
тъкан
необходима
за живота
да не
слънчева
енергия
във ВСИЧКИ
грьбнлчни
животни
да| не|
12 3 4
придвижва
кръвта
да не|
5 6 7
жив
органиэъм
Да| не
8 9 10 11
6. Редактирайте програмата ЖИВОТНИ по следния начин:
а) редактирайте процедурата ЖИВОТНИ, като й дадете ново име —
СТРАНИ, а текста:
НАМИСЛЕТЕ СИ ЕДНО ЖИВОТНО.
АЗ ЩЕ СЕ ОПИТАМ ДА ГО ПОЗНАЯ,
КАТО ЗАДАВАМ ВЪПРОСИ.
заменете с текста:
НАМИСЛЕТЕ СИ ЕДНА СТРАНА
АЗ ЩЕ СЕ ОПИТАМ ДА Я ПОЗНАЯ.
КАТО ЗАДАВАМ ВЪПРОСИ.
б) изтрийте от работната памез на компютъра процедурата ЖИ-
ВОТНИ. Задайте командите:
НАПРАВИ "ЗНАНИЕ "БЪЛГАРИЯ
СТРАНИ
Научете компютъра да разпознава страните: Бьлгария СССР, Куба,
САЩ, Бразилия, Салвадор, Китай, Сирия. Израел и Нигерия.
7. След като сте решили зад.6, отразете с помощта на граф знанията на
компютъра по география.
8. Участвайте в играта СТРАНИ (Вж.зад.6), като научите компютъра да
разпознава всички страни, конто знаете. Отразете с помощта на граф
знанията на компютъра.
56
9. Редактирайте програмата ЖИВОТНИ така, че да получите нова 'ро-
|рама — ХИМ.ЕЛЕМЕНТИ, с която компютърът да разпознава намис-
лени от вас химични елементи. (Вж.зад.6)
10. Чрез редактиранс на програмата ЖИВОТНИ получете програмата
РАСТЕНИЯ. (Вж.зад.6)
И. Направете компютъра компетентен в интересна за вас облает.
12. В дадената по долу процедура ВЪРТЕЛЕЖКА се съдържа ТАЙНА:
ЗА ВЪРТЕЛЕЖКА
ПОВТОРИ 8(ТАЙНА НАЛЯВО 45]
КРАЙ
Начертайте на лист резултатите от изпълнениего на ВЪРТЕЛЕЖ-
КА, ако ТАЙНА е дефи нирана така.
а) ЗА ТАЙНА
НАПРЕД 50
НАЗАД 50
КРАЙ
б) ЗА ТАЙНА
ПОВТОРИ 3(НАПРЕД 10 НАДЯСНО 120]
НАЗАД 50
КРАЙ
Проверете предположението си на компютър.
9. КОМИЮГЪЕЕН JAIILK
НА МЕЛОДИИ
Стара песен на нов глас
Компютъры е ценен помощник и за хора с музикални интереси. Чрез
подходящи програми той може да се превърне в интелигентна пишеща
машина за нотни текстове, в музикален инструмент и в нов вид грамо-
фон.
Сега ше се запознаем с програмата МУЗИКАЛЕН РЕДАКТОР.
(Вж. приложение 5.) Най-напред ще се научим да записваме мелодии и
и I и евнрн.и на компютър. Програмата предлага т.нар. меню — списък
па дейностите, конто можем да извършваме с нейна помощ.
57
Меню го има следния вид:
<-ДВИЖЕНИЕ-. Д(ОБАВЯНЕ В(МЪКВАНЕ С(КОК Т(РИЕНЕ 3(АЛИЧАВАНЕ
И(ЗХОД К(ОПИРАНЕ
За да преминем към някоя от дейностите, изброени в менюто,
трябва да натиснем клавиша с буквата пред съответната скоба. Ако иска-
ме например да добавим някакъв нотен текст върху екрана, натискаме
клавиша j д j . На екрана се появява ново меню:
ДОБАВЯНЕ- «-ВРЫЦАНЕ * (ПОМОЩ МК-Е - ИЗХОД
В режим на добавяне на екрана се появяват върху петолиние после-
дователно нотите, конто въвеждаме от клавиатурата, подходяще коди-
рани.
<- -ДВИЖЕНИЕ -> ШОЕАЕЯНЕ EIMEKEAHE С (КОК
ТСРИЕНЕ 3( АПИЧАЕАНЕ И( ЗХОД К(СПИРАНЕ
ПОЗИЦИЯ CI
нети ©
НСТА
Как се кодираг нотнизе знаци, можем да видим, като се обърнем за
помощ към компютъра посредством клавиша | * } . За да се върнем
в режима на добавяне, трябва да натиснем произволен клавиш. Ако иска-
ме да изтрием последната въведена нота, трябва да изместим с помощта
на клавиша [ | нотния текст така, че курсорът да застане върху
предпоследната въведена нота. От режима на добавяне излизаме, като
натиснем комбинацията от клавиши I мк I — ГЕ I
58
Диапазоны на мелодии ie,
конго можем да записваме. е три
ок гави. Всеки тон се въвежда (в
режим на добавяне) с клавиш съ-
। шсно схемата.
За означаване на полутонове-
1 е се използват клавиши-
ie | > I (диез) и | < | (бе-
мол) заедно с клавишите за съот-
нетните тонове. Например, за да
в сведем ре диез от първата окта-
ва, трябва да натиснем последо-
вателно клавишите | > |
и | С | Знаците-# и Ь, поставе-
пи в началото на петолинието,
могат да се въвежлат автоматич-
но, ако в режим на добавяне на-
। иснем | п | . След това тряб-
ва да въведем клавишите за съот-
ветните тонове, конто искаме да
се понижат или повишат. (Вж. къ-
ia в края на темата.) Ако напри-
мер в начало го на петолинието се намират фа диез и до диез, на въпроса
на компютъра ДИЕЗИ < КЛАВИШИ>: трябва да отговорим, като на-
।иснем последователно клавишите | з | . | ж | , | л |
| Ф | . | Я | и | Р |. Аналогично постьпваме, когато в начало-
ю на петолинието има бемоли. Автоматичното въвеждане на диез или
оемол пред дадена нота се унищожава, когато натиснем | о | (нула).
Разполагаме с шест вида нотни трайности (цяла нота, половинка,
чегвъртинка, осминка, шестнайсетинка и трийсетивторинка), конто въ-
веждаме с клавишите от | 1 | до [ |:
За въвеждане на паузи със съот ветните трайности се използват същи-
ie клавиши, като одновременно се натиска клавишът за смяна на регис-
ьра| кир ~|;
С клавишите | С | и | ) | се задава начало и край на повторе-
ние. Знакът за удължаване трайността на определена нота 1,5 пъти се
вьвежда с клавиша I • I . Запомнете, че той трябва да се натисне пре-
ти съответната нота. Ключът, тактовият размер и тактовите черти не се
в ьвеждат.
59
На екрана се е появило петолиние и курсор, който показва позиция! а
на текущата нота. Под петолинието са посочени поредния! номер на
позицията, броят на записаните нотни знаци и трайността на текущата
нота.
Първата но. а от мелодия та е осминка. За да въведем трайността й,
грябва да натиснем клавиша | 4 | . На екрана в специално поле за
трайностите, означено с л у мата НОТА, се появява осминка нота. Тона
въвеждаме с клавиша | г |. Тъй като трайността на нотата, която
нредсгои да въведем, е пак осминка. не е нужно да я въвеждаме отново.
За тона натискаме клавиша | д ] . Третата нога е четвъртинка. За да я
въведем, натискаме последователно клавишите | 3 | и [ д J . След
това трябва за сменим трайността с осминка чрез клавиша [ 4 j , да
натиснем [ ф и т.н. до края на втория так г. Следва повторение на
първия такз. Вместо да го въвеждаме нота по нота, можем да се възполз-
ваме от дейността КОПИРАНЕ, посочена в първото меню. За целта из-
лизаме от режима на добавяне с помощта на клавишите [ мк | —
[ Е | (изход) и натискаме [ к~] На екрана се изписва:
КОПИРАНЕ (НОТА. НОТА):
Щом искаме да повторим чървите шест ноти.трябва да натиснем
последователно: | i | | return | и пак| return]- След двое-
точието ще се запише 1 — 6, което означава, че компютъръз ще копира
мелодиятл от първа до шеста включително. Програмата ще ни върне
автоматично в началното меню. Остава ни да добавим още няколко но-
ти, затова натискаме клавиша | Д [ . Въвеждаме ги последователно и
когато завършим, натискаме | мк~~[ — | Е | . Връщаме се в пре-
дишного меню. От него излизаме с помощта на клавиша | и | (из-
ход). Нового меню е доста богато:
Р(ЕДАК I ИРАНЕ 3(АПИС Ч(ЕТЕНЕ П(РОСВИРВАНЕ ( (РАФИКА Ф(ИНАЛ 0(1-
НОВО Т1РИЕНЕ К(АТАЛОГ
Най-напред да просвирим вьведената мелодия. Като натиснем кла-
виша п , на екрана се появява
ПРОСВИРВАНЕ: Т(РАНСПОНИРАНЕ Н(ОВО ТЕМНО
60
Темпата, конто ни предлага програмата, можем да видим, като на
1 иснем | н |
1. LARGO 4. ANDANTE 7. ALLEGRO
2 LENTO 5. MODERATO 8. VIVO
I ADAGIO 6 ALLEGRETTO 9 VIVACE
Те са подредени по бързина — от най-бавното до на. бързото.
За да чуем мелодията с желаното от нас темно, натискаме клавиша
със съответния номер, например Старата и обичана от нас пе-
сен Тръгнал кос зазвучава на нов, компютърен глас. Харесва ли ни?
В програмите редактори за рисуване, конто използвахме (Вж. при-
ложение 5.), избирахме по памет измежду възможнше дейности,
) т.е. трябваше да знаем какво е възможно да се прави и по какъв
начин да го изпълним.
В програмите, снабдени с меню (каквато е програмата МУЗИ’
ЛЕН РЕДАКТОР), потребителят във всеки момент може да видь
екрана кои са възможните услуги. В повечето случаи тон не трябва да
изписва целите им названия, за да бъдат изпълн'*яи. а само да ги посочи
(например с първа буква или с курсор, или дорм с иинане). Това много
облекчава работата с компютъра, защото не е необходимо да се помнят
всички възможности на дадена програма.
Менюто в по-сериозни ее програми е на различии нива. Избор на
една дейност открива няколко нови дейности. Например изборьт нг де -
постта ДОБАВЯНЕ ни доведе до следното мен >т дейности:
щзход
А изборът на ИЗХОД oi нървого меню ни доведе ди друго меню,
от което. след като избрахме ПРОСВИРВАНЕ, иолучихме следващо ме-
ню от дейности:
61
По гози начин изборът на желаната дейност става на няколко ет<
с доуточняване. Повечето програмни системи за потребители, конто
ей професионални програмисти, са снабдени с меню.
Задачи
1. Запишете и изевирете на комггюг ьр цялага несничка Гръгна.1 кое. Вьз
ползвайте се от възможността за копиране, за да получите иослсднип
2 такта от вторите два.
2. С помощга на програмата МУЗИКАЛЕН РЕДАКТОР запишете г
изевирете старинния руски романс Очи черные.
(Знакът и (легато), който свьрзва последната нога на вгория гакт
с пьрвата нота от следвагция так г, в случая означава само да се сумират
грайностите на двете ноти.)
3. С помощта на програмата МУЗИКАЛЕН РЕДАКТОР запишете и
изевирете следния откъс от операта Садко на Римски-Кореаков:
62
4. C помоги! а на програмата МУЗИКАЛЕН РЕДАКТОР въведеге и из-
евирете дадения фрагмент из Тракийски пшнци от Петко Стайнов:
63
10. РЕДАКТИРАНЕ
НА МЕЛОДИИ
Как да накараме
компютъра да занес
друса песен
Ако ни запита г дали свирим на някакьв инструмент, вместо шегови-
1ою На грамофон спокойно можем да кажем На комтотър. При сова
участието ни ще бъде много по-активно.
Нищо чудно при въвеждането на нотния текст да допуснем някои
грешки, но с помощта на програмата МУЗЫКАЛЕН РЕДАКТОР лесно
можем да ги поправим. За да видим възможностите на тази програма за
редактиране на мелодии, ще въведем музикалния фрагмент от Пролетна
песен на Феликс Менделсон-Бартолди:
Забелязваме, че пред тактовия размер е поставен един диез. Той оз-
начава, че всяко фа в текста трябва да се вьвежда като фа диез. Това
може да става автоматично, ако след като влезем в режим на добавяне
(с клавиша |~ д | ), натиснем клавиша J п . На екрана се появява:
ДИЕЗИ <КЛАВИШИ >:
64
Тъй като в нотния текст се появява само фа от пьрва октава, нати-
ккаме | ф ~| , а след това [return [ Програмата ще ни запита дали
искаме автоматично да се вьвеждати бемоли. Не желаем гова, затова
пл искаме отново | RETURN^ и се врыцаме към режима за добавяне. Тъй
мю първата нота е четвъртинка, а трайността в специалното поле е
именно четвъртинка, можем да въведем веднага височината на тона с
и 1авиша(~ Й
। иснем | %
1 каме клавиша
. Следва шестнайсетинка пауза. Ще я въведем, като на-
. Поредните три ноги са шестнайсетинки, затова нати-
[ 5 | . Трябва да натиснем последователно клавишите
(за диез), | я I и в . Да допуснем, че вместо
сме натиснали по невнимание клавиша | < [ . На
I 3J
к 1авиша
екрана ще'се п'ояви нотата до делю / вместо до диез. За да поправим
। решказ а, трябва ла върнем нотния текст две позиции назад. Натискаме
шукратно |~мк~| — | X ] или | *- | при коего последните две
иьведени нота се изтриват. След това трябва отново да въведем до диез
и ре.
Следващите четири ноти са осминки. Сменяме трайността с клави-
ша | 4 | и натискаме последователно
tt, и
f й I . (Знакът I] пред до във втория такт означава само, че диезът пред
<)</ в първия такт вече не важи. Този знак не се въвежда.)
в
Сега следва четвъртинка с точка. Сменяме трайността с клавиша
[ 3 | и натискаме клавиша | ~| , преди да въведем тона с клави-
ша Г X | Продължаваме да въвеждаме нотния текст до края на ос-
мия такт. Както и преди бекарите пред нотите ла и сол в седмия такт
тначават само, че диезиге пред същите ноти, въведени в шестая такт,
вече не важат.
Ако искаме да чуем какво сме записали до този момент, 1рябва да
и слезем от режима на добавяне с помощта на |_ МК I | Е [, да
натиснем последователно клавишите [ и | , [ П , I ц I • а след
шва да определим темпото Нотите можем да просвирвамёёдна по една
чрез клавиша за интервал. За да продължим нормалното изпълнение,
। рябва да натиснем друг (произволен) клавиш Да допуснем, че погреш-
1Ю сме въвели като трайност на първата нота в осмия такт осминка вмес-
ю четвъртинка, коего установяваме при просвирването. За да поправим
। решката, се връщаме в режим на РЕДАКТИРАНЕ посредством клави-
ша | Р | . С клавишите [ мк | — [~ х | или | | придвижва-
ме нотния текст назад така, че сгрешената нота да застане под курсора.
Иличаваме я с помощта на клавиша | з | . (Ако трябва да изгрием
иовече от една нота, можем да използваме клавиша [ т [ .) Сега тряб-
U.I да вмъкнем вярната нота. Натискаме последователно клавишите
| в | (режим на ВМЪКВАНЕ), | з | (три) и |~й~] . при което
под курсора се появява си четвьртинка и нотният текст се измества с
една позиция наляво. Други нота за вмъкване няма, затова излизаме от
юзи режим с помощта на | мк [ — | Е . Придвижваме нотния
ickct до края с помощта на I мк I — гу~ или | | . Следва-
'• Ииформ.ника w начинаещи час| II
65
щите три и половина такта са копие на началото. За да ги повторим,
натискаме клавиша | к |
КОПИЕ (НОТА, НОТА):
Ако не ни се иска да броим на прьсти. натискаме | RETURN | за да
се върнем в предишното меню, и използваме възможността за С(КОК,
посочена в него, Натискаме I с | и прочитаме:
СКОК: П(ЪРВА К(РАЙНА Н(ОТА
Ако сега натиснем [ п | , на екрана ще се появи началото на нот-
ния текст включително до осма позиция. В долния ляв край на екрана
четем:
ПОЗИЦИЯ 8
НО ГИ 29
Това означава, че целияз въведеп нотен текст се сьстои от 29 нотни
знака. _____ _____
С клавишите | мк | - У или | -> | придвижваме нот-1
ния текст надясно, докато последният нотен знак на фрагмента, който
ще КОПИРАМЕ, застане под курсора. Сега съобщението гласи:
ПОЗИЦИЯ 12
НОТИ 29
Това означава,че текстът, който искаме да копираме, е от иьрва до
дванадесета позиция.
Тъй като копирането се извършва непосредствено след мястото, оп
ределено от курсора, трябва да го нагласим върху последния знак на
въведения до този момент нотен текст. След това натискаме [~к~|
и посочваме началната и крайната позиция на текста, който искаме да
копираме (в случая 1—12). Като направим желаното копие, можем да
продължим да добавяме нотен текст. Натискаме | д | и въвеждаме
последователно нотите до края. Връщаме се към предишното меню с
j мк | — f Е [ . Излизаме от него с помощта на клавиша [ и |
и преминаваме към ново меню. ( 1
Р(ЕДАКТИРАНЕ 3(АПИС 4(ETEHF П(РОСВИРВАНЕ Г(РАФИКА Ф(ИНАЛ
О(ТНОВО Т(РИЕНЕ К(АТАЛОГ
Най-напред да чуем мелодията. За да я иросвирим, натискаме клави-
ша | Г1~] и определяме темпото.
За да запазим мелодията на дискета, натискаме клавиша | з | и
я именуваме например ПРОЛЕТ:
ЗАПИСВАНЕ (ИМЕ) ПРОЛЕТ
За да се убедим, че името на мелодията е включено в казало!а на
дискетата, натискаме | к |
Когато искаме да използваме компютъра като грамофон, натискаме
66
клавиша | ч I и записваме името на мелодията, която искаме да
чуем, например:
ЧЕТЕНЕ (ИМЕ) :ПРОЛЕТ
Връщаме се към предишното меню. Преди да натиснем клавиша
п [ , за да я просвирим, можем да видим с помощта на клавиша
r I графиката на мелодичната й линия.
Р?ЕДАКТИРАНЕ 31 АПИС И(ЕТЕНЕ ШРОСЕИРБАНЕ
Г (РАФИКА Ф(ИНАЛ О(ТНОБО Т(РИЕНЕ К(АТ АППГ
ПОЗИЦИЯ О
нети ©
НОТА
За да започнем въвеждането на нова мелодия, натискаме | О | ,
а за да излезем от програмата — | Ф | . Изтриването на мелодия от
дискетата става с помощта на клавиша | ? |
Както виждате, има смисъл да се чете менюто, което компютърът
ви предлага. При това, за да използвате системи с меню, не е необходи-
мо да знаете Лого или друг език за програмиране. Но за да бъде компю-
търът на вашите услуги, пак трябва да използвате алгоритми.
67
15 / Знаците, с конто се изменят височините на тоновете. са следните:
& (диез) повишава с 1/2 тон,
Ь (бемол) понижава с 1/2 тон,
^(бекар) унищожава значението на диезите и бемоли ie.
Знаците $, и fa , поставени пред отделните ноти, важаг в тра-
ниците на такта, и то само за нотите от сыцата октава.
Знаците р if |> , поставени в началото на пеголинисто след ключа.
(X отнасят за съответните ноти от всички октави в цялото произведение.
1.1 дичи
1. С помощта на npoipaMaia МУЗИКАЛЕН РЕДАКТОР lanniueie и
изевирете дадената по-долу мелодия от Моцарг. Повтарящите се теми
копирайте.
2. С помощта на програмата МУЗИКАЛЕН РЕДАКТОР запишете и
изевиреге следния откъс из опера га Ки.чз Heap or Бородин;
68
Когато влезете в режим на добавяне, вьведете предварително (с по-
моппа на клавиша [~П |) диезиге фа. до и co.i. Знакът (летаго)
тук означава да се съберат трайношше на свързанизе ноти).
3. С помощта на програмата МУЗИКАЛЕН РЕДАКТОР изевирете
и получете графиката на мелодичната линия на известната мексиканска
69
(Въведете предварително си бемол с помощта на клавиша | п I
За знака легато вижте обяснението към зад. 2.)
4. Запишете и изевирете дадената творба на компютър:
5. Изпълнете на компютър Свапюен марш от Менделсон:
70
II. ЗАДАЧИ
JA ПОСТРОЕНИЕ
шлю с ... компютър
Никои задачи за построение, конто обикновено се решава! с линийка и
пергел, може да се решат и с помощта на компютър. Такава задача е:
1а ее построй правоъгълен триъгълник по дадени два катета.
\ко цриемем, чс точка га А съвпада с
центьра на координатната система, ед-
ин примерна процедура за начертава-
нето на гриыълника ще изглежда така:
ЗА ПР.ТРИЪГ :К1 :К2
НАПРЕД :К|
НАЛЯВО 90
НАЗАД :К2
ДО 0 0
КРАЙ
Да начертаем с нейна помощ правоы ьлен триъгълник с дължина на
кшетите 30 и 40 стъпки:
ПРТРИЪГ 30 40
Ако начертаем същия. триъгълник върху лист хартия, можем да по-
шавим друга задача: Да се измерят големините на ъглите а и р. Ако
притежаваме транспортир, лесно можем да направим необходимите из-
мсрвания. Да измерим острите ъгли на правоъгълен триъгълник, ако
шаем дължината на катетите му, можем и с помощта на компютъра.
Засега все още на вас не ви достигат думи (от езика Лого), за да опишете
71
как може да стане това. Ако прегледате справочника на Лого (Вж. прило-
жение 1.), вероятно ще се досетите, че командата ОБЪРНИ и операциита
КЪМ и АЗИМУТ ще ни свършат добра работа. Ненапразно тези думи
се срещат толкова често в речника на морските капитани. Ще ги използ-
ваме и ние, за да ориентираме правилно нашия кор..., извинете, костенур-
ката на екрана. С командата ОБЪРНИ можем да обръщаме костенурка-
та в определена от нас посока, отчитана спрямо посоката север. Входът
на ОБЪРНИ е ъгълът между посоката север и избраната от нас посока.
(Ъгълът се отчита в градуси по посока на движението на часовниковата
стрелка.) Например с командата ОБЪРНИ 270 ще насочим костенурка-
та па запад независимо от това, в каква посока е била обърната тя:
Операцията АЗИМУТ показва колко градуса е ъгъльг между иосо-
ка та север и посоката, в която е обърната костенурката. Ако например
KocieiivpKaia е обърната на югоизток.
при команыта ИЗВЕДИ АЗИМУТ ще получим 135 (традуса).
Ако искаме да насочим костенурката към дадена точка, можем да
използваме командата ОБЪРНИ заедно с операцията КЪМ. Например
след изпълнението на командата ОБЪРНИ КЪМ 10 20 костенурката щс
се насочи към точката с координати (10;20) независимо от това, накъде
е гледала преди това. Входовете на КЪМ са координатите на точката,
а резултатъг — ъгълът между посоката север и посоката, в която трябва
да обърнем костенурката, за да я насочим към тази точка. Резултатъз
от операцията КЪМ става вход
Сега да се вьрнем към
ьглите на нашия триъгъл-
ник. За да измерим ъгъл р,
достатъчно е да знаем: 1)
ъгъла между посоката север
и вектора ВС (в случая 270°)
и 2) ъгъла между посоката
север и вектора ВА (измере-
ни по посока на часовнико
вата стрелка).
Разликата между зези два ъгъла е ъгъл р, з.е. u= 90° — р. Езо едно
примерно решение на задачата:
ЗА ИЗМ.ПР.ТРИЪГ ,К1 :К2
НАПРЕД :К! НАЛЯВО 90 НАЗАД :К2
НАПРАВИ "А1 270
; AI Е ЪГЪЛЪТ МЕЖДУ ПОСОКАТА СЕВЕР И ВЕКТОРА ВС
ОБЪРНИ КЪМ 0 0
НАПРАВИ ”А2 АЗИМУТ
;А2 Е ЪГЪЛЪТ МЕЖДУ ПОСОКАТА СЕВЕР И ВЕКТОРА ВА
ДО О О
НАПРАВИ ’’БЕТА :А1-:А2
НАПРАВИ "АЛФА 90—.БЕТА
(ИЗВЕДИ [ЪГЪЛ АЛФА =] :АЛФА [ГРАДУСА])
(ИЗВЕДИ [ЪГЪЛ БЕТА =] :БЕТА [ГРАДУСА])
КРАЙ
Както вече споменахме, знакът; означава, че до края на програмния
ред (до натискане на клавиша RETURN) следва коментар.
Да изпълним процедурата ИЗМ.ПР.ТРИЪГ с входове 30 и 40:
ИЗМ.ПР.ТРИЪГ 30 40
ЪГЪЛ АЛФА - 53.1304 ГРАДУСА
ЪГЪЛ БЕТА - 36.8696 ГРАДУСА
В процедурите ПР.ТРИЪГ и ИЗМ.ПР.ТРИЪГ се изнолзва фактът,
че върхът А съвпада с центъра на координатната система. Ако искаме
да започнем чертежа от производна точка върху екрана, необходимо е
да узнаем координатите на тази точка. Това може да стане с помощта
на операциите АБСЦ и ОРД.
Ще редактираме процедурата ПР.ТРИЪГ по следния начин:
ЗА ПР.ТРИЪГ :К1 :К2
НАПРАВИ ”А.Х АБСЦ
;А.Х Е АБСЦИСАТА НА ТОЧКАТА
НАПРАВИ ”А.У ОРД
;А.У Е ОРДИНАТАТА НА ТОЧКАТА
НАПРЕД :К1
НАЛЯВО 90
НАЗАД :К2
ДО :А.Х :А.У
КРАЙ
Сега можем да пристъпим към задачата за чертане на произволен
триъгълник по дадени две страни и ъгъл между тях. Навярно се досеща-
те, че това може да стане чрез подходяще редактиране на процедурата
ПР.ТРИЪГ. Заглавният ред на новата процедура изглежда така:
ЗА ТРИЪГ :СТРАНА1 :СГРАНА2 ЪГЪЛ
В описанието на процедурата ПР.ТРИЪГ името К1 трябва да се
замени с името СТРАНА1, а името К2 — с името СТРАНА2. Освен
това командата НАЛЯВО 90 трябва да се замени с командата НАЛЯВО
:ЪГЪЛ.
73
Задачата за чертане на произволен триъгълник по дадени две страни
и ъгъл между тях няма решение, ако ъгълът не е по-малък от 180°. Затова
трябва да се погрижим програмата да дава подходяще съобщение, ако
това условие не е изпълнено:
АКО НЕ :ЪГЪЛ<180 ТО ИЗВЕДИ [ЗАДАЧАТА НЯМА РЕШЕНИЕ] СТОП
Тази команда трябва да бъде първата в описанието на процедурата
ТРИЪГ.
По всичко личи, че процедурата за чертане на правоъгълен триъгъл-
ник е нещо като крайъгълен камък на задачите за построение.
АЗИМУТ
Дава като резултат ьгъла, на конто е завъртяна костенурката спря-
мо посоката север. Резултатът се измерва в градуси и се отчита по посока
на движение на часовниковата стрелка.
КЪМ х у
Дава като резултат ъгъла между посоката север и посоката, в която
костенурката трябва да се обърне, за да се насочи към точката (х,у).
Ъгълът се отчита по посока на движение на часовниковата стрелка.
ОБЪРНИd
Костенурката се обръща в посока, която сключва ъгъл d градуса с
посоката север (ъгълът се отчита по посока на движение на часовникова-
та стрелка).
Задачи
1. Начертайте правоъгълен триъгълник с дължини на катетите:
а) 63 и 25 стъпки;
б) 48 и 56 стъпки;
в) 36 и 24 стъпки.
Измерете дължината на хипотенузата и големините на острите ъгли
на всеки един от тези триъгълници.
2. Редактирайте процедурата ИЗМ.ПР.ТРИЪГ така, че освен големините
на острите ъгли с нея да се извежда и дължината на хипотенузата.
3. Начертайте триъгълник по дадени дължини на две от страните и мярка
на ъгъла между тях:
а) страни 50 и 35 стъпки и ъгъл 70°;
б) страни 85 и 39 стъпки и ъгъл 123°;
в) страни 48 и 56 стъпки и ъгъл 35°.
74
4. Редактирайте процеду-
рата ПР.ТРИЪГ така, че
при изпълнението на
процедурата ОХЛЮВ с
подходящи входове да се
получи фигурата:
ЗА ОХЛЮВ :К 1 :К2
ПР.ТРИЪГ :К1 :К2
ОХЛЮВ КОРЕН2 (:К1* :К1 + :К2» :К2) :К1
КРАЙ
(За единица мярка приемете 20 стъпки на костенурката.)
5. Редактирайте програмата ОХЛЮВ така, че вместо фигурата от зад.4
ia се получава спирала. За тази цел във всеки правоъгълен триъгълник
or фигурата трябва да се чертае само катетът, който има единична дъл-
жина.
6. Като използвате дадената програма ТРИЪП, начертайте триъгълник
по дадени страна и два прилежащи ъгъла:
а) страна 50 стъпки и ъгли 60° и 30°;
б) страна 75 стъпки и ъгли 110° и 20°;
в) страна 60 стъпки и ъгли 85° и 110°.
ЗА ТРИЪП :СТРАНА :ЪГЪЛ1 :ЪГЪЛ2
НАЗАД СТРАНА НАДЯСНО :ЪГЪЛ1
СТРАНА.ВС ДО 0 0 СКРИЙ
КРАЙ
ЗА СТРАНА.ВС
НАПРЕД 1
АКО ПРИБЛ.РАВНИ? (КЪМ 0 0) (360 :ЪГЪЛ2) 2 ТО СТОП
СТРАНА.ВС
КРАЙ
ЗА ПРИБЛ.РАВНИ? :ЧИСЛО1 :ЧИСЛО2 .ТОЧНОСТ
АКО АБС (:ЧИСЛО1 — :ЧИСЛО2) < -.ТОЧНОСТ ТО ИЗХОД "ВЯРНО
ИЗХОД "НЕВЯРНО
КРАЙ
75
ЗА АБС :ЧИСЛО
АКО :ЧИСЛО<0 ТО ИЗХОД -:ЧИСЛО
ИЗХОД :ЧИСЛО
КРАЙ
7*. Опишете словесно алгоритъма на програмата ТРИЪГ1. Защо в про
цедурата СТРАНА. ВС не се използва дадената по-долу команда за про
верка?
АКО КЪМ 0 0 = 360-:ЪГЪЛ2 ТО СТОП
8*. Редактирайте програмата ТРИЪГ! така, че при изпълнението й да се
съобщава кога задачата за построение на триъгълник по дадени страна
и прилежагците й ъгли няма решение.
9. Редактирайте програмата ТРИЪГ! така, че да се изпълнява при произ-
водно начално положение на костенурката.
10. Като използвате програмата ТРИЪГ2, начертайте триъгълник по да-
дени три страни:
а) 30, 40 и 60 стъпки;
б) 50, 20 и 80 стъпки;
в) 60, 40 и 35 стъпки.
ЗА ТРИБГ2 :СТР1 :СТР2 :СТРЗ
НАПРЕД :СТР1 ВДИГНИ НАПРЕД :СТР2
НАДЯСНО 90 ПРОВЕРИ.СТРАНА СПУСНИ ЦЕНТЪР
НАПРЕД :СТР1 ДО :С.Х :C.Y ЦЕНТЪР
КРАЙ
(Командата ЦЕНТЪР има действието на двойката команди ДО 0 0
и ОБЪРНИ 0.)
ЗА ПРОВЕРИ.СТРАНА
АКО ПРИБЛ.РАВНИ? :СТРЗ (РАЗСТОЯНИЕ АБСЦ ОРД 0 0) 4
ТО НАПРАВИ ”С.Х АБСЦ НАПРАВИ "C.Y ОРД СТОП
; ЗАПОМНЯТ СЕ КООРДИНАТИТЕ НА ТОЧКА С
НАПРЕД 2» 3.14159* :СТР2/360
НАДЯСНО 1
; ДВИЖЕНИЕ ПО ОКРЪЖНОСТ С РАДИУС :СТР2
ПРОВЕРИ.СТРАНА
КРАЙ
(Описанието на операцията предикат ПРИБЛ.РАВНИ? е дадено в
зад.6.)
ЗА РАЗСТОЯНИЕ :Х1 :YI :Х2 :Y2
ИЗХОД КОРЕН2 (:Х1:Х2)*(:Х1 :X2)I(:Y1-:Y2)*(:Y1 :Y2)
КРАЙ
Забележка. Обърнете внимание, че разстоянието между 'точките
(Л|,у|) и (л'г.Уз) е всъщност дължината на вектора с координати (л2 — л,
11. Разгледайте дадената процедура ТРИЪГЗ и сравнете действието й с
това на ТРИЪГ2. (Вж. зад. 10.)
76
ЗА ТРИЪГЗ :СТР1 :СТР2 СТРЗ
НАПРЕД :СТР1
СТРАНИ. ВС.С А
КРАЙ
ЗА СТРАНИ.ВС.СА
НАДЯСНО I
НАПРЕД .СТР2
АКО ПРИБЛ.РАВНИ? гСТРЗ (РАЗСТОЯНИЕ АБСЦ ОРД 0 0) 4 ТО ДО О О
МОЛИВ 0 НАЗАД :СТР2 МОЛИВ1 СТОП
СТРАНИ. ВС.СА
КРАЙ
(Описанието на операцията предикат ПРИБЛ.РАВНИ? е дадено в
1.1Д. 6.)
12. Опишете словесно алгоригъма на ТРИЪГ2 и ТРИЪГЗ (Вж. зад. 10.
и II ). Как ще обясните факта, че в процедурите ПРОВЕРИ.СТРАНА и
( ГРАНИ.ВС.СА не се проверява условието:
СТРЗ = РАЗСТОЯНИЕ АБСЦ ОРД О О
13. Редактирайте програмата ТРИЪГ2 (Вж. зад. 10.) така, че компюзъ-
рьг да съобщава кога задачата за построение на триъгълник по дадени
ipn страни няма решение.
14. Редактирайте програмата ТРИЪГ2 (Вж. зад. 10.) така, че да може да
и- изпълнява при производно начално положение на костенурката.
15. В процедурите ТРИЪГ!,ТРИЪГ2 и ТРИЪГЗ въведетс параметър К
шка, че при изпълнението на тези процедури с различии стоимости на К
ы се получават подобии триъгълници.
16. Дефинирайте процедура за чертане на правоъгълен триъгълник п
ыдени катет и хипотенуза.
17. Дефинирайте процедура за чертане на окръжиост, описана около пра-
во ьгълен триъгълник, по дадени катет и хипотенуза на този триъгълник.
1Я*. Питагорови тройки числа (Вж. къта към тема 3.) може да се намерят
по формулата: (т2 + п2)2 = (т2 — п2)2 + (2тп)\ къдсго тип са произволни
пени положителни числа и т>п. При дадени т и п страните на съответ-
1И1Я триъгълник се пресмятат по формулите: с = ш2Нг; а = т2 — и2;
А 2тп. Напишете процедура с параметри М и N. която да извежда на
(крана питагорови тройки числа.
I1)*. Дефинирайте процедура, при изпълнението на която да се извежда
ни гагорова тройка числа по дадени п и т (Вж. зад. 18.) и да се начертава
и
кответният
правоъгълен
триъгълник.
20*. Четири буболечки — Б1, Б2, БЗ, Б4, стоят в ъглите на квадрат със
11 рана 120 стъпки. Те започват да пълзят едновременно с равна постоян-
I.। скорост: Б1 към Б2, Б2 към БЗ, БЗ към Б4, а Б4 към Б1. Траекторията
пл движението им можете да получите с програмата:
ЗА НАЧАЛО
НАПРАВИ "XI ( — 60) НАПРАВИ ”У1 (-60)
НАПРАВИ ”Х2 60 НАПРАВИ "У2 (-60)
77
НАПРАВИ "ХЗ 60 НАПРАВИ "УЗ 60
НАПРАВИ "Х4 (-60) НАПРАВИ ”У4 60
ВДИГНИ ДО :Х1:У1 СПУСНИ
КРАЙ
ЗА ДВИЖЕНИЕ
БЕКЪМ.Б2 Б2.КЪМ.БЗ
БЗ.КЪМ.Б4 Б4.КЪМ.Б1
ДВИЖЕНИЕ
КРАЙ
ЗА Б1.КЪМ.Б2
;СТЪПКА КЪМ Б2
ОБЪРНИ КЪМ :Х2 :У2 НАПРЕД 1
ЗАПАМЕТЯВАНЕ НА НОВИТЕ КООРДИНАТИ НА Б1
НАПРАВИ "XI АБСЦ НАПРАВИ "У1 ОРД
;СКОК ДО Б2
ВДИГНИ ДО :Х2 :У2 СПУСНИ
КРАЙ
ЗА Б2.КЪМ.БЗ
.СТЪПКА КЪМ БЗ
ОБЪРНИ КЪМ :ХЗ :УЗ
НАПРЕД 1
ЗАПАМЕТЯВАНЕ НА НОВИТЕ КООРДИНАТИ НА Б2
НАПРАВИ "Х2 АБСЦ НАПРАВИ "У2 ОРД
.СКОК ДО БЗ
ВДИГНИ ДО :ХЗ .УЗ СПУСНИ
КРАЙ
ЗА БЗ.КЪМ Б4
;СГЪПКА КЪМ Б4
ОБЪРНИ КЪМ ;Х4 :У4 НАПРЕД I
ЗАПАМЕТЯВАНЕ НА НОВИТЕ КООРДИНАТИ НА БЗ
НАПРАВИ "ХЗ АБСЦ НАПРАВИ "УЗ ОРД
;СКОК ДО Б4
ВДИГНИ ДО :Х4 :У4 СПУСНИ
КРАЙ
ЗА Б4.КЪМ.Б1
;СТЪПКА КЪМ Б1
ОБЪРНИ КЪМ .XI :У1 НАПРЕД 1
ЗАПАМЕТЯВАНЕ НА НОВИТЕ КООРДИНАТИ НА Б4
НАПРАВИ ”Х4 АБСЦ НАПРАВИ "У4 ОРД
;СКОК ДО Б1
ВДИГНИ ДО :Х1 :У 1 СПУСНИ
КРАЙ
Редактирайте процедурите, участващи в ДВИЖЕНИЕ така, че:
а)костенурката да чертае последователните квадрати, във върховетс
на конто се намират буболечките;
б)ролите на преследвачите и преследваните да се сменят;
в)Б1 да преследва БЗ, БЗ — Б2, Б2 — Б4, а Б4 — Б1;
г)БЗ да бяга от Б4, а останалите да залазят поведението си;
д)буболечките да бъдат в избрани от вас точки.
78
12. ПРОЦЕДУРЫ
И ПРОМЕНЛИВИ
Клетките в паметта
са променливи
Да разгледаме следната задача: Пресметнете дължината С на окръж-
ност с радиус г = 50 см.
Знаем формулата С = 2пг. Знаем също, че л яг 3,14159. Тогава
лесно можем да пресметнем (даже без компютър), че С = 100л яг
314,159. Задачата е решена, но вероятно никои от вас си мислят: Щом
знаем формулата, можем да научим компютъра да решава всички задачи
от този тип. Това може да стане например с процедурата ДЪЛЖ.ОКР,
която ще въведем, след като предварително изчистим паметта (с помощ-
та на командата ОТНОВО):
ЗА ДЪЛЖ.ОКР R
НАПРАВИ ”С 2* 3.14159* :R
(ИЗВЕДИ [ДЪЛЖИНАТА НА ОКРЪЖНОСТ С РАДИУС] R [СМ Е] :С [СМ])
КРАЙ
С процедурата ДЪЛЖ.ОКР описваме как компютърът да пресметне
дължината на окръжност с радиус :R и да ни съобщи резултата. Както
вече знаем, описаните действия не се изпълняват веднага, а се запомнят
в т.нар. работна памет на компютъра. Това е онази част от паметта на
компютъра, в която можем да дефинираме процедури и променливи. Да
погледнем в тази памет с помощта на командата:
РЕДАКТИРАЙ ДЪЛЖ.ОКР
На екрана се появява процедурата ДЪЛЖ.ОКР. Дали това е всичко,
което се съдържа в работната памет, можем да проверим с командата:
РЕДАКТИРАЙ ВСИЧКО
Виждаме, че информация за променливи няма, тъй като процедура-
та ДЪЛЖ.ОКР все отце не е изпълнена. Нека зададем като вход на тази
процедура например числото 37,9:
ДЪЛЖ.ОКР 37.9
ДЪЛЖИНАТА НА ОКРЪЖНОСТ С РАДИУС 37.9 СМ Е 238.132 СМ
79
Като изпълнихме процедурата ДЪЛЖ.ОКР с вход 37,9, компютърът
пресметна дължината на окръжност с радиус 37,9 см. Откъде получи той
необходимата му за това информация? Да разгледаме първата команда
от описанието на ДЪЛЖ.ОКР:
НАПРАВИ’С 2* 3.14159* :R
С тази команда даваме име и стойност на променливата С. Тази
стойност се получава, като се пресметне изразы 2* 3.14159* 37.9.Числата
2 и 3,14(59 са константи и се задават явно, докато числото 37,9 е зададе-
но като стойност на променливата R. Във втората команда резултатът,
т.е. дължината на окръжност с радиус R см, се извежда също посредст-
вом променливата С. Този резултат не е константа, защото зависи от
променливата R.
Да погледнем отново в работната памет:
РЕДАКТИРАЙ ВСИЧКО
Освен npoi едурата ДЪЛЖ.ОКР там се съдържа и информация за
променливата С, тъй като вече е изпълнена командата НАПРАВИ ”С
2*3.14159*:R. Тази информация е във вида:
НАПРАВИ ,”С (238.132).
В информатиката променливите са имена, конто се свързват с някак-
ви стойности. Ако си представим, че работната памет се състои от от-
делив клетки, то името на променливата С всыцност е името на онази
клетка, в която е записана стойността на С:
С 238.132
А какво става с променливата R? При изпълнението на процедурата
ДЪЛЖ.ОКР с вход 37.9 името R се свързва със стойността 37,9, но след
като изпълнението завърши, информацията за променливата R не се за-
пазва в работната памет.
И така, при програмиране на Лого (както и на много други езици)
разколагаме с два типа променливи. Първият тип променливи се създа-
ват с командата НАПРАВИ. Текущите им стойности се съхраняват в
работната памет независимо от това, дали НАПРАВИ е изпълнена само-
стоятелно или като част от процедура. Тези променливи се наричат гло-
бални. Пример за глобална променлива в случая е С.
Вторият тип променливи са параметрите на процедурите. Тези про-
менливи се създават (т.е. получават име и стойност) само за времето на
изпълнение на съответн те процедури и се губят, след като изпълнението
завърши. Наричат се локални променливи и за тях се отдели специално
място в работната памет — локална памет. Променлива от този тип е
R.
Да изпълним процедурата ДЪЛЖ.ОКР с друг вход. Например:
80
ДЪЛЖ.ОКР 356.8
ДЪЛЖИНАТА НА ОКРЪЖНОСТ С РАДИУС 356.8 СМ Е 2241.84 СМ
Да проследим мислено какво става в работната памет, докато се
шпьлнява тази процедура:
ДЪЛЖ. ОКР ДЪЛЖ. ОКР 356.8
I Rl 356-8 | -------
Създава се локална (за процедурата ДЪЛЖ.ОКР) променлива с име
R, която получава стойност 356,8 (входът на процедурата):
ДЪЛЖ. ОКР
R 356.8
238.132
С 2241.84 НАПРАВИ "С 2*3.14159* :R
С ‘ _|
Измени се стойността на променливата С (тази променлива вече бе
i ьздадена и имаше стойност 238,132). Старата й стойност се губи, а нова-
ia се прссмяк) посредством стойността на локалната променлива R.
ДЪЛЖ. ОКР
R 356.8
С 2241.84
(ИЗВЕДИ..
При извеждането на сьобщениего се вземат стойностите на промен-
iiiBinc R и С
С 2241.34
КРАЙ
Завьршва изньлиснпею на ДЬЛЖ.ОКР. Информацията за промен-
|ивата R се губи — гя е локална за процедурата ДЪЛЖ.ОКР.
Вече знаем, че с командата НАПРАВИ не само правим нови промен-
1иви, но и изменяме стойностите на вече създадени променливи. С тази
команда можем да изменяме стойностите и на локални променливи. На-
пример:
ЗА ДЪЛЖ ПЕТ.ОКР R
НАПРАВИ’’LО
ПОВТОРИ 5 [НАПРАВИ ”L :L + 2* 3.14159* R НАПРАВИ ”R :R/2J
(ИЗВЕДИ [ОБЩАГА ДЪЛЖИНА НА ПЕТТЕ ОКРЪЖНОСТИ Е] :L [СМ])
КРАЙ
о Информашка за начинаещи час! 11
81
Да изпълним тази процедура:
ДЪЛЖ.ПЕТ.ОКР 50
ОБЩА ГА ДЪЛЖИНА НА ПЕТТЕ ОКРЪЖНОСТИ Е 608.683 СМ
Този път ще проверим имената и стойностите на променливите. кон-
то се съдържат в работната памел , с помощта на командата:
ОТПЕЧАТАЙ ИМЕНА
ТЕ 608.638
Оттук можем да заключим, че котато с НАПРАВИ се измени сгой-
ността на локална променлива (в наития случай R), не се създава съще-
временно и глобална променлива.
Ако прочешете процедурата ДЪЛЖ.ПЕТ.ОКР, може би ще предло-
жите да осъвременим скоропоговорката за Петър и прьтите така: Петър
процедура чете, по пет окръжности пресмята.
РЕДАКТИРАЙ/РД(1)
РЕДАКТИРАЙ и(2)
РЕДАКТИРАЙ ИМЕПА(З)
РЕДАКТИРАЙ ПРОЦЕДУРЩ4)
РЕДАКТИРАЙ ВСИЧКО(5)
При формат (1) на екрана се извежда последний! в введен текст; в
него могат да се внасят изменения.
Формат (2) дава възможност за редактиране на конкретна процеду-
ра. Ако w е име на вече дефинирана процедура, на екрана се извежда
текстът й. Ако в паметта на компютъра все още няма процедура с посо-
ченото име, действието на командата съвпада с действието на командата
ЗА.
Формат (3) дава информация за глобалните променливи в работната
памет и предоставя възможност за промени в дефинициите на променли-
вите.
Формат (4) дава възможност за редактиране на всички процедури,
записани в работната памет.
Формат (5) дава възможност за редактиране на цялото съдържание
на работната памет — променливи и процедури.
ОТПЕЧАТАЙ/ОТП(1)
ОТПЕЧАТАЙ и(2)
ОТПЕЧАТАЙ ПРОЦЕДУРИ(З)
ОТПЕЧАТАЙ ИМЕНА(4)
ОТПЕЧАТАЙ ВСИЧКО(5)
Извеждат се сведения за съдържанието на работната памет.
При формат (1) се извежда текстът на процедурата, която е дефини-
рана последна.
При формат (2) се извежда текстът на процедура с име >г.
82
При формат (3) се извежда текстът на всички процедури, дефиниции-
ic на конто се намират в работната памет.
При формат (4) се извеждат имената и стойностите на всички про-
менливи, конто се намират в работната памет.
При формат (5) се извежда цялото съдържание на работната памет
(дефинициите на всички променливи и процедури).
(а дачи
I. Какво ще се сьдържа в работната намет на компютъра след изпълне-
пието на командите:
ОТНОВО
НАПРАВИ "N 8
НАПРАВИ ”Р 1
ПОВТОРИ :N [НАПРАВИ Р :Р * 2J
2. Отразете чрез схема промените, конто настъпват в работната памет
па компютъра при изпълнението на командите от зад.1.
3. Процедурата ПРИБАВИ1 е дефинирана така:
ЗА ПРИБАВИТ:Х
НАПРАВИ "X :Х+1
ИЗВЕДИ :Х
КРАЙ
Обяснете загадката, която се получава при изпълнението на коман-
тит е:
НАПРАВИ 'X 5
ПРИБАВИТ X
6
ИЗВЕДИ :Х
5
4. Редактирайте процедурата ДЪЛЖ.ПЕТ.ОКР така, че да се чертаят
петте окръжности, чиято обща дължина се пресмята.
5. Начертайте триыълника:
Онределете с помощта на костенурката
дължината на страната ВС и мярката
па -ZABC.
6. Начертайте правоъгълен триъгълник с дължини на кат сипе 65 и 72
стъпки. Големините на острите му ъгли намерете чрез експерименти.
7. Каква ще бъде дължината на пътя, който изминава една точка, ако я
местим последователно с векторите: а (21,20); b ( — 33,56); с (55, — 48);
83
a (40,9). Пресмстнеге разсгояниечо между началната и крайната ючка.
Начертайте на екрана на компютъра пътя на точката.
8. Начертайте на екрана на компютъра фигурата, която се получава при
преместване на точка последователно с век горите: й-(30,50); Ь (70,0);
с (- 30, - 50); 3 (- 70,0). Пресметнете лицето й. Защо контурът й е затво-
рен'? _
9. Създайте процедури за рисуване на полилеи, маса, стол и други меОе-
ли.
10. Използвайте процедурите от зад.9 и създайте проект за обзавеждане
на стая. Експериментирайте, като поставите мебелите на различии места
в стаята.
11. Дефинирайге процедура за чертане на
кры, като използвате показания начин на за-
щриховане.
12. В един клас 60% от учениците са момче-
та. Отразете този факт с помощта на крьго-
ва диаграма. Използвайте решението на
зад. i 1.
14. С помощта на програмата РЕД.РИСУНКИ (Вж. приложение 5 ) за-
щриховаите но подходящ начин фигурите от зад. 13.
15. Заредете в работната памет на компютъра файла ОРБИТА (от диске-
™ ИВИНАФ°РМа™Ка За начинаещи, част 1“). Редактирайте процеду-
рата ИВИЦА така, че по време на играта ОРБИТА върху екрана да се
появява избрана ог вас картина. (Процедурата ИВИЦА използва про
T^.HOCT"1ВЕЗДИ) "а,||,"м"’ «
процедура ЛУНА, с която върху екрана да сс р,1сува „бразът на Луната.
К4
13. ВЗАИМОДЕЙСТВИЕ
НА ПРОЦЕДУРИТЕ
Jfa вдъхнем живот
на програмите
Koiaro нише i е программ, |рябва добре да си представите как си взаимо-
действат отделимте процедуры и каква е ролята на променливите. Така
|це допускате по-малко грешки и по-лесно ще ги откривате.
Да се върнем към процедурата ДЪЛЖ.ОКР, като предварително из-
чистим паметта:
отново
ЗА ДЪЛЖ.ОКР R
НАПРАВИ ”С 2* 3.14159* R
(ИЗВЕДИ [ДЪЛЖИНАТА НА ОКРЪЖНОСТ С РАДИУС) :R [СМ Е[ :С [СМ])
КРАЙ
Тази процедура можем да използваме, за да сьздадем нова процеду-
ра за пресмятане дължината на дъга от окръжност с произволен ра-
(иус и с произволен централен ъгъл.
ЗА ДЪЛЖ.ДЪГА :R :D
ДЪЛЖ.ОКР :R
НАПРАВИ "С :D* L360
(ИЗВЕДИ [ДЪЛЖИНАТА НА ДЪГА ОТ ОКРЪЖНОСТ С РАДИУС] R [СМ|)
(ИЗВЕДИ [И С ЦЕНТРАЛЕН ЪГЪЛ] :D [ГРАДУСА Е] :С [СМ])
КРАЙ
Да изпьлним тази процедура с входове 69,38м и 35°
ДЪЛЖ.ДЪГА 69.3 35
ДЪЛЖИНАТА НА ОКРЪЖНОСТ С РАДИУС 69.3 СМ
Е 435.424 СМ
ДЪЛЖИНАТА НА ДЪГА ОТ ОКРЪЖНОСТ С РАДИУС 69.3 СМ
И С ЦЕНТРАЛЕН ЪГЪЛ 35 ГРАДУСА Е 42.3329 СМ
Да проследим мислено състоянието на паметта по време на изпълнение-
го на процедурата:
ДЪЛЖ. ДЪГА
R 69.3
D 35
ДЪЛЖ. ДЪГА 69.3 35
85
Създават се локални (за процедурата ДЪЛЖ.ДЪГА) променливи R
и D, конто се свързват съответно със стойностите 69,3 и 35 (входовете
на тази процедура).
ДЪЛЖ. ДЪГА
R 69.3
D 35
1
ДЪЛЖ ОКР :R
ДЪЛЖ. ОКР
R 69.3 --
Започва изпълнението на ДЪЛЖ.ОКР с вход — стойността на ло-
калната (за процедурата ДЪЛЖ.ДЪГА) променлива R. (Тази променли-
ва служи за връзка между цвете процедури.) Създава се локална (за про-
цедурата ДЪЛЖ.ОКР) променлива, която сыцо има име R. В този мо-
мент има две променливи с едно и също име, но те се пазят на различии
места — в локалните памети на ДЪЛЖ.ДЪГА и ДЪЛЖ.ОКР:
ДЪЛЖ. ДЪГА
R 69.3
D 35
ДЪЛЖ. ОКР
R 69.3
Продължава изпълнението на ДЪЛЖ.ОКР. Създава се июбална
променлива С, като се използва стойността на локалната (за процедура-
та ДЪЛЖ.ОКР) променлива R. (Процедурата ДЪЛЖ.ОКР вижда само
своята променлива R.)
НАПРАВИ 'С 2*3 14159*.r
ДЪЛЖ. ОКР
R 64,3
С 435.424
Продължава изпълнението на ДЪЛЖ.ОКР. Вземат се стойностите
на локалната (за ДЪЛЖ.ОКР) променлива R и на глобалната променли-
ва С. (Глобалните променливи са видимы от всички процедури.)
86
Завършва изпълнението на ДЪЛЖ.ОКР. Информация! а за локална-
а й променлива R се губи.
КРАЙ
Продължава изпълнението на ДЪЛЖ.ДЪГА. На глобалната про-
менлива С се дава нова стойност (42,3329), като се използва старата й
стойност (435,424) и стойността на локалната (за ДЪЛЖ.ДЪГА) промен-
|ива D (35). Глобалната променлива С също служи за връзка между
ДЪЛЖ.ДЪГА и ДЪЛЖ.ОКР.
В последните две команди от тялото на процедурата ДЪЛЖ.ДЪГА
се използват стойностите на локалните й променливи R и D, както и на
глобалната променлива С.
87
ДЬЛЖ. ДЬГА
Л д,
(ИЗВЕДИ. . . :R. . . :D. . :С. .)
т
Завършва изпьлнението на ДЪЛЖ.ДЪГА.
। \бя I
Локалнитей
променливи
ДЬЛЖ. ДЬГА
R 69.3
D 35
С 42.3329
КРАЙ
В този момен! в работната ламе! остава информация само за гло-
балната променлива С. В това можем да се убедим с никоя от командите
РЕДАКТИРАЙ ВСИЧКО, РЕДАКТИРАЙ ИМЕНА или ОТПЕЧАТАЙ
ИМЕНА.
Навярно си задавате въпроса: Каква е ползата от съществуването
на два вида променливи? Както успяхте да се убедите, всяка процедура
получава от локалните си променливи необходимата само за нея инфор-
мация. Ето защо изчезването на тази информация е полезно — лести се
работна памет. Освен това работата с локални променливи ни позволява
да използваме в различии
процедури
еднакви
имена
на
параметри,
без
това да пречи на изпълнението на програмата.
Всяка процедура нижда своите покални променливи и локални г
|роменливи на викащиге я процедури В случай, че има сьвпаденис н
имена I .,, проце хурата И/жда само свбиге локални променливи с тезй
имела
Глобалните променливи трябва да носят информация, която се из-
ползва от повече процедури. Така се осъществява връзка между тях. На-
пример в програмата ЖИВОТНИ информацията за животните се съхра
нява в глобалната променлива с име ЗНАНИЕ. При работа с тази про-
грама е важно компютърът да запомни новите знания. Ето защо след
завършването на изпълнението й трябва да залазим последното съдър-
жание на работната памет (с помощта на командата ЗАПАЗИ ’’ЖИВОТ-
НИ). По този начин при следващото зареждане на файла ЖИВОТНИ
88
июбалната променлива ЗНАНИЕ ще има последната (обогатена с нови
шания) стойност.
Процедурите ДЪЛЖ.ДЪГА и ДЪЛЖ.ОКР използват една и съща
1лобална променлива — С. За разлика от локалните (за ДЪЛЖ.ДЪГА)
променливи R и D С получава началната си
стойност не чрез входовете на процедурата, а
вътре в процедурата. Стойността на С се запаз-
ва и след като изпълнението на ДЪЛЖ.ДЪГА
завърши. А всыцност искаме да я използваме
за временно хранилище на информация. Ако ис-
каме да превърнем тази променлива в локална
(т.е. след завършването на ДЪЛЖ.ДЪГА ра-
ботната памет да остане без информация за’ С),
бихме могли да използваме командата БЕЗ. Ще
вьведем тази команда преди КРАЙ на процеду-
рата ДЪЛЖ.ДЪГА.
БЕЗ "L
КРАЙ
Животып на променливата С започва с изпълнението на процедура-
та ДЪЛЖ.ДЪГА и завършва с нея.
Ако превърнем ДЪЛЖ.ДЪГА и ДЪЛЖ.ОКР в операции, можем да
избе! нем въвеждането на С:
ЗА ДЪЛЖ.ОКР :R
ИЗХОД 2*3.14159* R
КРАЙ
ЗА ДЪЛЖ.ДЪГА :R :D
ИЗХОД (ДЪЛЖ.ОКР :R)/360*:D
КРАЙ
Тогава пресмягането на дължината на дъга по даден радиус и цент-
рален ьгъл може да става с процедурата:
ЗА ПРЕСМЕТНИ ДЪГА :R :D
(ИЗВЕДИ |ДЪЛЖИНАТА НА ДЪГА ОТ ОКРЪЖНОСТ С РАДИУС] :R [СМ])
(ИЗВЕДИ [И С ЦЕНТРАЛЕН ЪГЪЛ] :D [ГРАДУСА Е] ДЪЛЖ.ДЪГА :R :D)
КРАЙ
Когато пишем по-сложни програми, добре е да можем да проверя-
ваме и да изменяме съдържанието на работната памет и на файловете
върху дискетата. Освен РЕДАКТИРАЙ и БЕЗ за изменение на паметта
можем да използваме ЗАБРАВИ (за работната) и ИЗТРИЙ (за външна-
та), а за проверка — ОТПЕЧАТАЙ и КАТАЛОГ. (Вж. приложение 1.)
Хората също имат работна памет, макар че невинаги могат да раз-
читат на нея. Чували ли сте например за ученика, който попитал съседа
си:
— Как се казваше онова число, което започва така:
3.1415926535897932...
— Сигурно имаш предвид п.
— Да бе, все забравям...
89
БЕЗ v
Информацията за променливата v се изтрива от работната памет.
ЗАБРАВИ и (1)
ЗАБРАВИ ИМЕНА (2)
ЗАБРАВИ ПРОЦЕДУРИ (3)
ЗАБРАВИ ВСИЧКО (4)
При формат (1) от работната памет се изтрива дефиницията на про-
цедурата с име В’.
При формат (2) от работната памет се изтриват дефинициите на
всички променливи.
При формат (3) от работната памет се изтриват дефинициите на
всички процедури.
При формат (4) от работната памет се изтриват дефинициите на
всички променливи и процедури.
ИЗТРИЙ и
Служи за изтриване на текстов файл. Името на файла се изтрива от
каталога на дискетата,след което информацията във файла става недо-
стъпна.
КАТАЛОГ
На екрана се извсжда списъкът на файловете.
Задачи
1. Обяснете резултата от изпълнението на процедурата ИЗВЕДИ.ЧИС-
ЛО, която вика процедурата ПРИБАВИ1. (Вж. зад.З, тема II.)
ЗА ИЗВЕДИ.ЧИСЛО :Х
ИЗВЕДИ :Х
ПРИБАВИ1 :Х
ИЗВЕДИ :Х
КРАЙ
ИЗВЕДИ ЧИСЛО 3
3
4
3
2. Каква фигура ще се получи при изпълнението на дадената рекурсивна
процедура ФИГУРА]?
ЗА ФИГУРА 1 :R
ДОКР :R/2
ИАДЯСНО 30
ФИГУРА I R
КРАЙ
90
ЗА ДОк'Р :R
ПОВТОРИ 36 [НАДЯСНО 5 НАПРЕД :R*3.14159/18 НАДЯСНО 5]
КРАЙ
3. Начертайте окръжност, която има дължина 300 стъпки. Намерете ли-
цето на заградения от тази окръжност кръг.
4. Напишете програма, с помощта на която зад.З да се решава при про-
изводна дължина на окръжността. За целта въведете нараметър ДЪЛ-
ЖИНА.
5. Напишете програма за чертане на фигурите:
б. Дефинирайте процедура за чертане на дясна дъга и използвайте даде-
иата по-долу процедура ВЕНЧЕЛИСТЧЕ, за да нарисувате цвете.
ЗА ВЕНЧЕЛИСТЧЕ :РАЗМЕР
ПОВТОРИ 2 [ДЯСНАДЪГА :РАЗМЕР 60 НАДЯСНО 120J
КРАЙ
7. Каква фигура ще се получи при изпълнение на процедурата:
ЗА ФИГУРА2 :РАЗМЕР
ПОВТОРИ 180 [НАПРЕД :РАЗМЕР НАДЯСНО 181)
КРАЙ
Нроверете предположението си на компютър.
X. Напишете процедура за чертане на раз-
нивката на цилиндър. Въведете параметри
»а радиуса на основата и за височината на ----
цилиндъра.
91
9. Като използвате процедурите за черта-
не на дъги и програмата РЕД.РИСУНКИ
(Вж. приложение 5.), нарисувайте морски
бряг и вълни.
10. Начертайте фигурата:
11. Като използвате решението на зад. 10, начертайте пеперудата:
12. Начертайте фигурите:
13. Заредете в работната намет на компютъра файла ОРБИТА (от диске
тата към „Информатика ia начинаещи, част !“) Изтрийте от
памет всички променливи и процедури с изключение на
92
ЗВЕЗДИ. Можете да залазите тази процедура във файл със същото име
и да я използвате като инструмент за разпръскване на звезди по небет <.
Ако искате да се получат например 50 звезди, достатъчно е да зададете
командата:
ЗВЕЗДИ 50
14 ЕКСПИЧ1
Ml НТИ
Да поиграем
на изследователи
Когато работим с компютър, можем да правим интересни експерименти
и да научаваме много нови неща. Вече се запознахме с компютърната
игра Орбита, в която управлявахме костенурката като космически кор?6
около Земята. В играта Космос ще се запознаем с нов, по-маневрен мс
(ел на космическия кораб Костенурка.
Да запишем:
ЗАРЕДИ "КОСМОС
космос
Освен познатите ни клавиши | л | , | Д ~| и I Г ] в играта
може да се използват и други. Като натиснем клавиша | с | , корабът
сгартира. С клавиша | п | прекъсваме движението на кораба. За да
проследим траекторията му, трябва да натиснем клавиша | т [ . Ако
искаме корабът да продължи движението си, без да оставя следа, нати-
скаме клавиша | б | • С клавиша | _ | намаляваме, а с клавиша
| + | увеличаваме с единица мярка силата, която действа на кораба.
С клавиша | к | слагаме край на играта. Компютърът ни съобщава
иремето, през което се е движил корабът.
Нека космическият кораб има маса 1000 kg. Да зададем големина
на силата 2 мерни единици. Ако приемем, че тази стойност съответства
на реална сила с големина 20 000 000 N, то ускорението ще бъде 20km/s2.
Пека една стъпка на костенурката съответства на 10 km. Тогава ускоре-
пието, с което тя се движи върху екрана на компютъра, ще бъде 2 стъп-
kH/S2.
93
Отначало корабът е в покой. Ако натиснете
клавиша | С | (или | Г | ), в продолже-
ние на 1 s върху кораба ще действа сила с поле-
мика 2 мерни единици и той ще получи ускоре-
ние 2 стъпки/s2 (т.е. 20km/s2). Скоростта на ко-
раба става 2 стъпки/s и той продължава да се
движи по инерция. Скоростта е вектор V с
координати VX и VY, където VX е премества-
нето на костенурката по абсцисата за единица
време., a VY е преместването й по ординатата
пак за единица време. В началото на играта по-
соката, в която е обърната костенурката, сключва ъгъл 45° с абсцисата
Ако искаме да разберем какви са координатите на вектора V, трябва
да натиснем едновременно клавишите | МК | и | з | (| мк | —
| з | ). Компютърът съобщава на кой ред е спряла програмата, коя
процедура се е изпълнявала в момента и колко пъти е била изпълнена.
Например:
ПАУЗА В РЕДА
ДО АБСЦ4 VX ОРД t VY
НА НИВО 143 НА ПРОЦЕДИ
HI43?
ДВИЖЕНИЕ
Това означава, че програмата е спряла на реда
ДО АБСЦ + А'Х ОРД + zVY
о г процедурата ДВИЖЕНИЕ, която е била изпълнена 143 пъти. След
въпросителния знак можем да запишем команди, с конто да правим
справки за някои от променливите или да изменяме положението на ко-
раба.
Да проверим например текущите стойности на променливите VX и
VY:
Н143? ИЗВЕДИ :VX
1.414?!
Н143? ИЗВЕДИ :VY
1.41421
Сега можем да преминем кьм непредвидено в програмата управле
ние:
Н143? НАДЯСНО 36 НАПРЕД 49
За да продължи изпълнението на програмата, трябва да запишем
командата ПРОДЪЛЖИ.
А сега като истински изследователи можете да измените силата и
посоката, в която се движи корабът, за да установите как се движат обек-
тите под действието на дадена сила, каква е връзката между сила и уско-
рение и т.н. Сигурно знаете, че в основата на много научни открития
стой задоволяването именно на такъв род любопитство.
94
(Скоростта определи бързината, с която се движат телата. Единица-
'у та за измерване на скорост е метри в секунда (m/s).
г ) Движение с постоянна скорост се нарича равномерно. Скорост-
та v се определи по формулата v = s/t, където л е изминатото раз-
стояние, a t — времето.
Ускорението а определи колко бързо се променя скоростта: а=(у —
където v° е началната, a v — крайната скорост на тяло в интервал
о г време I. Когато ускорението е постоянно, движението се нарича рав-
поускорително (при л>0) или равнозакъснително (при а<0). Свободно-
ю паданс на телата е равноускорително движение с ускорение g = 9,8
m/s2.
Ускорението а, което получава тяло с маса т под действието на сила
/’, се определи по формулата a=Fjm (втори закон на Нютон). Единица
мярка за сила е нютон и се означава с N.
Механичната работа А е равна на произведението от преместването
и силата F, действаща по направление на преместването: А = A.v.F.
Работата се измерва в джаули (J).
Работа, извършена за единица време, се нарича мощност. Единица
мярка за мощност е ват (W).
Всяко движсщо се тяло притежава кинетична енергия £,.:
Ea. = w.v2/2.
Промяната в кинетичната енергия на едно тяло е равна на извърше-
ната работа:
WV5 /»1’7
~Т~
т mat
у(Г| + Г2)(г2 - V1) = -^-(V| + v’z)
V, + Vi
= F-------Л = FEx = A.
2
Погепциалната енергия на едно тяло ее определи обикновено по от-
ношение на Земята: Ер = G.I1, където G е силата на тежестта на тялото, а
h — височината, на която се на мира тялото спрямо земната повърхност.
Валидна е формулата
Ер2 ~ ЕР1 = G(h2 ~ It,) = -А.
Кинетичната и потенциалната енергия се измерват в джаули.
Минималната начална скорост, с която трябва да се изстреля дадено
I яло, за да стане изкуствен спътник на Земята, се нарича първа космиче-
ски скорост и тя е равна на 8 km/s.
Скоростта 11,2 km/s се нарича втора космическа скорост. При начал-
па скорост, по-голяма от 11,2 km/s, дадено тяло престава да бъде спът-
пик на Земята и става спътник на Слънцето.
95
jt'l MK~~| — | 3 | e комбинация
i от клавиши, която преустановява из-
пълнението на текущата процедура. Преди да се възобнови изпълнението
й (с помощта на командата ПРОДЪЛЖИ), може да се изпълнят произ-
волен брой команди.
ПРО ХЬЛЖИ/ПР
Възобновява изпълнението на програма. ирекъсната с командата
ПАУЗА или с клавишите | мк | — | з | .
дачи
1. Като изподзвазе играта КОСМОС, проследете по какъв начин се съби-
рат разнопосочни вектори.
2. В играта ОРБИТА използвайте знанията си за събиране на разнопо-
сочни вектор!; Организирайте ново състезание за майсторско управле-
ние.
3. По време на играта КОСМОС отбелязвайте кога поведение!о на кос-
тенурката не отговаря на поведението на истински космически кораб.
4. В играта КОСМОС силата може да се задава и с дробни числа. За-
дайте такава сила, че корабът да получи след 1 s:
а) първа космическа скорост;
б) втора космическа скорост.
5. Накарайте кораба да направи 4 обиколки около Луната и да се прилу-
ни, след което да се върне на Земята.
6. Упрачля ванте кораба така, че той да се скачи с орбитална станция и
след това да се върне на Земята.
Пресметнете потенциалната енергия на системата орбитална стан-
ция — Земя, ако орбиталната станция има маса 10 000 kg и се намира
на разстояние 650 km от Земята.
8. Определете маршрут на кораба и организирайте състезание за най-
бързо придвижване.
9. F .го използвате дадената процедура СЪБ.ВЕКТОРИ, напишете про-
грама, която да илюстрира на екрана как се събират два вектора и да
съобщава дължината на вектора, който е тяхна сума.
ЗА СЪБ.ВЕКТОРИ :Х1 :Y1 :Х2 :Y2
ДО :Х1 :Y1
ДО :Х1 + :Х2 :Y1 +:Y2
ДО 0 0
КРАЙ
10. С помощта на процедурите НАЧАЛО и ПРЕМЕСТВАНЕ начертайте
фигурата, която се получава, когато преместваме една точка от точката
с координати (30,40) последователно с векторите на преместване
«(—10.20); £(25,-40); £(-30,20); £(45,40).
96
ЗА НАЧАЛО :Х :Y
НАПРАВИ ’’Х.НАЧ :Х
НАПРАВИ "Y.HA4 :Y
ВДИГНИ
ДО :Х.НАЧ :У.НАЧ
СПУСНИ
КРАЙ
ЗА ПРЕМЕСТВАНЕ :Х .Y
НАПРАВИ ’’Х.НАЧ :Х НАЧ + X
НАПРАВИ ’.’Y.HA4 Y.HA4 + :Y
ДО :Х.НАЧ :Y.HA4
КРАЙ
11. Редактирайте процедурата ПРЕМЕСТВАНЕ от зад. 10 така, че при
изпълнението й на екрана да се извежда дължината на вектора на пре-
местване.
12. Редактирайте така програмата, с която се решава зад. 10, че на екрана
ia се извежда дължината на изминатия от точката път.
13. С помощта на командите ДОАБСЦ, ДО-
ОРД и ДО начертайте фигурата:
14. Какви координати има пресечната точка на
диагоналите на квадрата, начертан при решава
пето на зад. 13?
15. Използвайте чертежа от зад. 13, за да стили-
шрате цифрите от 0 до 9 чрез изтриване на ни-
кои отсечки.
16. Редактирайте програмата КОС’ С така, че върху екрана да се по-
яви нарисувана от вас картина на тема Космическо пространство.
17. Редактирайте процедурите УСКОРЯВАНЕ и ЗАБАВЯНЕ (Вж. тема
5.) така, че те да отчитат изминатия от автомобила път.
18. Операцията ЦЯЛО? е дефинирана по следния начин:
ЗА ЦЯЛО? :N
АКО ЦЯЛО :N = :N ТО ИЗХОД ’’ВЯРНО
ИЗХОД ’’НЕВЯРНО
КРАЙ
Използвайте я, за да дефинирате операция предикат с един вход
ЧЕТНО?, с която да проверявате дали входът е четно число.
7. Информатика за начинаещи част II
97
15. АНАЛИЗ НА ЗАДАЧИ
И ПРОЕКТИРАНЕ
НА ПРОГРАММ
Кога един граф
върши работа
Да разгледаме следназа задача: Ракета се движи с постоянна скорост
20 km/s в продължение на 80 s, след което започва да й действа сила с
голе мина 200 000 N в посока на движението. Масата на ракетата е 4000
kg. Пресметнете разстоянието, което е изминала ракетата 120 s след
старта. Илюстрирайте движението на ракетата върху екрана на компю-
търа.
До осемдесетата секунда ракетата се движи равномерно праволиней-
но и изминатото разстояние може да се пресметне по формула га v = v.z.
Под действие на силата ракетата започва да се движи равноускори-
телно. Разстоянието, което тя изминава при зова движение, се пресмята
по формулата ,v = v.t. Тук t = (120 — 80) s, а средната скоросз г се опреде-
1
2<vo
ли по форму лата v =
г,), където vc, и V| са сьответно началната
и крайната скорост при равноускорително движение. Знаем, че скоростта
vc е 20 кпз/s, а скоростта v, можем да определим от равенство™ г, = v0
+ at. Ускорението а се пресмята по формулата а = F/m. Тъй като F, т
и t са известии, последовазелно можем да пресметнем a, vb v и S’.
Тази задача можем да разделим на две подзадачи:
1) Пресмятане на разстоянието.
2) Илюстриране на движението.
Ако наречем главната процедура ДВИЖЕНИЕ, можем да я опишем
така:
ЗА ДВИЖЕНИЕ
ПРЕСМЯТАНЕ
ИЛЮСТРИРАНЕ
КРАЙ
Това описание е пьрвоначален (груб) проект на програмата, който
можем да изобразим чрез графа (Вж. информацията в края на темата.):
ДВИЖЕНИЕ
ПРЕСМЯТАНЕ ИЛЮСТРИРАНЕ
98
Първата подзадача може да се сведе до три подзадачи:
1) Пресмятане на разстоянието .?| при равномерното праволинейно
чвижение.
2) Пресмятане на разстоянието при равноускорителното движе-
ние.
3) Пресмятане на общото разстояние.
ЗА ПРЕСМЯТАНЕ
nPECM.SI
ПРЕСМ.82
РЕЗУЛТАТ
КРАЙ
Сега проекты слава по-подробен:
ДВИЖЕНИЕ
ПРЕСМЯТАНЕ
ИЛЮСТРИРАНЕ
ПРЕСМ-Sl ПРЕСМ.82 РЕЗУЛТАТ
Процедурите I1PECM.S1, FIPECM.S2. и РЕЗУЛ 1 АТ вече може да се
изградят само от известии команди.
Подзадачата за илюстриране на движението сьщо може да се разде-
ли на три подзадачи:
1) Превръщане на костенурката в ракета.
2) Илюстриране на равномерното праволинейно движение;
3) Илюстриране на равноускорителното движение.
ЗА ИЛЮСТРИРАНЕ
РАКЕТА
ИЛЮСТРИРАНЕ1
ИЛЮСТРИРАНЕ2
КРАЙ
Графы приема вида:
ДВИЖЕНИЕ
ПРЕСМЯТАНЕ
ИЛЮСТРИРАНЕ
X I \
ПРЕСМ-Sl ПРЕСМ.82 РЕЗУЛТАТ РАКЕТА ИЛЮСТРИРАНЕ1 ИЛЮСТРИРАНЕ2
99
Проектът на програмата е готов Да го залазим на дискета:
ЗАПАЗИ "ДВИЖЕНИЕ
Сега предстоя да се изградят отделяйте части на програмата.
Както виждате, при писането на по-сложни программ трябва да се
спазва древният принцип Разделяй и владей!
I раф в математиката се нарича крайна съвкупност от точки (върхо
' ве на графа), някои от конто са съединени пбмежду си с линии
J (ребра на графа). Типичен пример на граф е железопътната мре-
Y жа — върховете на този граф са гариге, а сьединявагците г и жи
линии — ребрата.
Ако линии те, конто свързва г върховете на един г раф, са ориентира-
ми (посочени са началото и краят им), графът сыцо се нарича ориенти-
рам По-нататък под термина граф ще разбираме ориентирам граф и реб-
рата му пте означаваме със стрелки.
Дървотое специален вид граф, за конто са изпъчнени слетите усло-
вия:
а) има един врьх г, наречен корен
на дървото, в конто не завършва нито о
едно ребро; о о о
.-. о о
о) има множество от върхове, на- о о
речени листа на дърво го, от конто не о о о о
започва нито едно ребро; о о о
в) във всички върхове, различии от
г, тавършва точно по едно ребро.
Двоичното дърво е граф-дьрво за конто от всеки врьх започват най-
много две ребра.
Ею още една дефиниция на двоич- о
но дърво (Д.Кнут): Двоичното дърво е
крайно множество от върхове, което
или не сьдържа елементи, или се съ о о о о
стон от корен и две непресичащи се о о о о о о о
двоични дървета, наричани ляво и дяс-
но поддърво
I. Ще разгледамс следната игра: Две семейства жаби вървят едно срещу
друга върху тръстикова пръчка Всяка жаба има право да се движи само
напред и да прескача най-много една жаба от другото семейство.
100
Във файла ЖАБИ се
п.дьржа програма. в
кояго са описани прави-
мы на играга. С клави-
ша [~т I може да се мес-
III гриъгьлниче (жаба от
i пюто семейство), а с
к навита | К | — квад-
р.п че (жаба от другого
семейство).
За да покажем как се
и 1вьршваг горниге ходо-
ке, най-напред ще заре-
UIM играта:
ЗАРЕДИ "ЖАБИ
ЖАБИ
Т
К
Т
.1 сега помогнете на жабите да се разминат. Запишете последова-
1слността от клавиши, с конто задачата се решава успешно.
По колко различии начина може да се разместят триъгълничетата и
квадратчегата?
2. Начертайте във вид на граф структурата на програмата ЖАБИ. Мо-
жете да започнете с анализ на процедурата ЖАБИ и на процедурите
ЧЕРТЕЖ и КОМАНДИ, коиго тя използва.
OIПЕЧАТАЙ ЖАБИ
ЖАБИ
ЧЕРТЕЖ КОМАНДИ
101
Заглавните редове на всички процедура в работната памет може к
да получите, като зададете командата ЗАГЛАВИЯ.
3*. Намерете алгоритьм за разминаване на чегиричленни и петчленни
семейства жаби. (Вж. зад. 1.)
4. Начертайте във вид на граф структурата на никоя от програмите МА
ГИСТРАЛА, ОРБИТА, ХУДОЖНИК, ТОПЛО.СТУДЕНО, МИШЕНА,
КОСМОС и НИМ. (Вж. зад. 2.)
5*. Изрежете от картон елементите на китайския квадрат и се опитайтс
да получите с тяхна ломот фигурите:
6*. Haiinmeie процедури за черкше на слемснпис на кшанския квадра>
и на фигурите от зад. 5.
7. Начертайте мозайката:
102
1ft. И31 ВАЖДАНЕ
НА ПРОГРАММ
//< чка програма
си търси майстора
В края на миналия урок направихме проект на програмата ДВИЖЕ-
НИЕ. Да я заредим в работната памет и да си припомним кои процедури
участват в нея:
ЗАРЕДИ ДВИЖЕНИЕ
РАЗБРАХ КАКВО Е ДВИЖЕНИЕ
РАЗБРАХ КАКВО F ПРЕС МЯТАНЕ
РАЗБРАХ КАКВО Е ИЛЮСТРИРАНЕ
Естествен© компютърът само си мысли, че е разбрал горни те проце-
дури, защото в описанията им участват процедури, конто още не са де-
финирани. И наистина, ако зададем командата ПРЕСМЯТАНЕ, компю-
। ьрът веднага ще запита:
КАКВО ЗНАЧИ ИРЕС'М Ы? В РЕДА
ПРЕС MSI
НА НИВО 1 НА ПРОЦЕДУРАМ ПРЕСМЯМНЕ
Лесно можем да иу обясним.
ЗА ПРЕСМ.Б!
НАПРАВИ ”SI 20000 * 80
; V = 20 KM/S, Т = 80 S
КРАЙ
Да припомним, че ред . който започва с точка и запетая, представля-
ва коментар (обяснение), а не команда. Чрез такива коментари програ-
мите стават но-ясни.
Сега да опишем процедурата I1PECM.S2.
ЗА ПРЕСМ S2
НАПРАВИ "А 200000/4000
.СИЛАТА Е 200000 N.
МАСАТА Е 4000 K.G.
НАПРАВИ"Т 120— 80
НАПРАВИ” V0 20000
ЛАЧАЛНАТА СКОРОСТ Е 20 KM.S
НАПРАВИ "VI V0 + А ♦ :Т
НАПРАВИ "V :V0 Т :V1 / 2
;V ОЗНАЧАВА СРЕДНАТА СКОРОСТ
НАПРАВИ ” S2 :V * Т
КРАЙ
103
За да проследим действието на ПРЕСМ.82, можем да използваме
командата СЛЕДИ. (С тази команда обикновено се откриват грешки и
по-сложни программ.) Изпълнението спира след всеки ред на проследява-
ната програма. Ако натиснем клавиша за интервал, изпълнението про
дължава. При всяко спиране можем да натискаме [ мк J — |~з |
и да правим проверки. Например, ако след изпълнението на командаТа
НАПРАВИ”V :V0 + :Vl/2
изведем на екрана стойност!а на променливата V, ще получим 31000 m/s
А би трябвало да се получи 21000 m/s, защото скоростта V се определи
I -
от равенството V = (20000 + 22000).-. Ясно е, че някъде има грешка
Забелязваме, че сме пропускали да поставим скобите След като редакти
рахме FIPECM.S2, да продължим с процедурата РЕЗУЛТАТ:
ЗА РЕЗУЛТАТ
НАПРАВИ ”S:Sl + :S2
(ИЗВЕДИ [РАЗСТОЯНИЕТО Е] :S [Mj)
КРАЙ
Компютърьт вече е готов да изпълни командата ПРЕСМЯТАНЕ.
Сега да опишем процедурите, конто участват в описанието на
ИЛЮСТРИРАНЕ. Ще започнем с процедурата РАКЕТА. Тя ще използ-
ва костенурката в образа на ракета. (Ако не сме създали предварително
такъв образ, грябва да го нарисуваме с помощта на програмата РЕД
ОБРАЗИ (Вж приложение 5.) и да го залазим под имею РАКЕТА.)
ЧА PAKFTA
ЗАРЕДИ ’’ВКЛ.ОБРАЗИ
НАЧАЛО
ВКЛЮЧИ ’’ РАКЕТА
ОБРАЗ РАКЕТА
КРАЙ
Остава да опишем процедурите за илюстриране на движението:
ЗА ИЛЮСТРИРАНЕ 1
ГРАФИЧЕН
ПОВТОРИ 80 [НАПРЕД 2]
10 КМ = I СТЪПКА
КРАЙ
(Командата ГРАФИ ЧЕН има същого дейшвие както клавишитс
, г.е. показва на екрана само i рафика )
ЗА ИЛЮСТРИРАНЕ?
НАПРАВИ "VI 2
;НАЧАЛНАТА СКОРОСТ VI Е 2* 10 KM/S
НАПРАВИ ”А :А; 10000
;ВЪВЕЖДАНЕ НА МАЩАБ ЗА УСКОРЕНИЕ
ПОВТОРИ :Т [НАПРАВИ ”V1 :VI + :А НАПРЕД :V1]
КРАЙ
104
В процедурата ИЛЮСТРИРАНЕ2 се използват глобалните простей -
ший А и Т, конто получават стойност в процедурата ПРЕСМ.82. Следо-
и.н елно процедурата ИЛЮСТРИРАНЕ2 трябва да се изпълни след
IIPECM.S2. Убеждаваме се, че процедурите в една програма трябва да
ie изпълняват в точно определен ред.
Грубият строеж на програмата вече е завършил. Да я залазим на
пикета:
ЗАЯАЗИ ’ ДВИЖЕНИЕ
1 Илюстрирайте с помощта на рекурсивна процедура равномерно ираво-
шнейно движение на ракега.
2 . Превърнете костенурката в планета и илюстрирайте движението й в
ьрыова орбита около Слънцето.
I. Редактирайте процедурата ПРЕСМ-Sl, като вьведете иараметри за
1коростта и за времето.
1 Редактирайте процедурата F1PECM.S2, като вьведете параметри за
премето, за началнага скорост, за сила га и за масата.
5. Въз основа на решенията на зад. 3 и зад. 4 редактирайте (като вьведете
подходящи параметри) процедурите ИЛЮСТРИРАНЕ1 и ИЛЮСТРИ-
РАНЕ2.
<». Нанишеге npoipaMa, с помощта на която да се илюстрира равномерно
праволинейно движение и да се пресмята:
а) скоростта по зададени път и време;
б) времето по зададени пьт и скорост.
7* . Напишете програма, с помощта на която да се илюстрира равно-
ускорително движение и да се пресмята:
а) средната скорост по дадени начална скорост, време, сила и маса;
б) времето и ускоренною по дадени пы. начална и крайни скорост:
в) времето, ускорепиего и си-
ьиа ако се знаят пътят, масата.
началнага и крайнага скорост.
X. В полего А! на шахматнша
щека се намира офицер, а в иоле-
ю Н8 — кон. Запишете последо-
пагелност от полета , през конто
може да мине копят, за да вземе
офицера. Конят се движи съглас-
по дадената схема:
Кой е най краткияз пъг на
коня?
9. Начертайте на екрана квадрат-
на мрежа с размерй 8x8.
10. Върху шахматната дъска е из-
брана коордннатна система, как-
то е показано на чертежа. Опре-
делете с какви вектори на пре-
месгване може да се движи конж
при игра на шах.
11. Нека върху екрана е начертана
нурката в шахматен кон с помощта на програмата ВЕД.ОЬРАЗИ. (Вж
приложение 5.) Като използвате процедурите НАЧАЛО и ПРЕМЕС1
ВАНЕ (Вж. зад. 10 към тема 14 ), играйте по двама в следната игра
Всеки прави ход с койя и отбелязва по някакъв начин нолетата, върх\
конто е бил. Конят може да върви само по неотбелязани полета. Губи
този играч, който не може да направи следващ ход.
17. УС ЬВЪРШЕНС 1ВАНЕ
НА ПРОГРАММ
Как да видим звезди
посред бял ден
Да заредим в паметта на компкзгьра npoipaxiaia ДВИЖЕНИЕ и да про
верим как тя се изпълнява:
ЗАРЕДИ "ДВИЖЕНИЕ
ДВИЖЕНИЕ
Ракетата започва да се движи вертикално наюре. като оставя следа.
За да бъде картината по-близка до действителиостта. можем да вдигнем
молива на костенурката и да добавим в Космоса звезди и планети. Ясно
е, че процедурата ИЛЮСТРИРАНЕ може да се подобри. За тази цел и
106
процедурата РАКЕТА ще вмъкнем командата ВДИГНИ и ще въведем
процедурата ВСЕЛЕНА, с която ще нарисуваме звезди и планета. След
юна с процедурата ПОЗИЦИЯ ще преместим ракетата до предварител-
||<| избрано положение.
Вече използвахме програмата КОСМОС. В нея има процедура
111 ЕЗДИ за рисуване на звезди, която може да ни послужи като панел и
ври изграждането на програмата ДВИЖЕНИЕ.
ГА ЗВЕЗДИ :N
АКО :N =0 ТО СТОП
ВДИГНИ
ДО 13.9-ИЗБОР 280 96 ИЗБОР 192
СПУСНИ МОЛИВ I + ИЗБОР 5
НАПРЕД I
ЗВЕЗДИ :N-I
КРАЙ
Параметърът N определи броя на звездите. С операцията ИЗБОР
можем да пръснем звездите по случаен начин върху екрана. Ако решим
in.pxy екранното небе да има например 100 звезди, ще зададем команда-
i.i ЗВЕЗДИ 100. Ще видим, че изборып ни не е бил лош.
За да нарисуваме планети, ще си послужим с процедурите за чертане
пи окръжности:
ЗА ДЯСНАОКР РАДИУС
ПОВТОРИ 36 [ЧАСГДОКР РАДИУС]
КРАЙ
ЗА ЧАСГДОКР РАДИУС
НАДЯСНО 5
НАПРЕД :РАДИУС*3.14159/18
НАДЯСНО 5
КРАЙ
Графьт на програмата ще изглежда така:
ДВИЖЕНИЕ
ИЛЮСТРИРАНЕ
ПРЕСМЯТАНЕ
HPECM.Sl РЕЗУЛТАТ
FIPECM.S2
РАКЕТА ПОЗИЦИЯ ИЛЮСТРИРАНЕ2
ВСЕЛЕНА ИЛЮСТРИРАНЕ1
ЗВЕЗДИ ПЛАНЕТИ
I
ДЯСНАОКР
ЧАСТДОКР
107
Остава! ни довършителни работа:
ЗА ВСЕЛЕНА
ЗВЕЗД И 100
ПЛАНЕТИ
КВАЙ
О
ЗА ПЛАНЕГИ
ВДИГНИ
ДО 70 60
СПУСНИ
ДЯСНАОКР 20
ВДИГНИ
ДО - 70 ( 60)
СПУСНИ
ДЯСНАОКР 15
КРАЙ
ЗА ПОЗИЦИЯ
ВДИГНИ
ДО 0 I - 95)
ГРАФИ ЧЕН
КРАЙ
Отново грябва да проверим как работи програмата. Ако гя оттова
ря на проекта, можем да я залазим на дискета.
Навярно и на вас са ви хрумкали идеи как още може да се усъвьр
шенства програмата. Както се казва: Да програмираш, е добре, но дн
програмираш добре, е още по-добре...
108
I ( помощта на про!рамата РЕД.РИСУНКИ нарисувайте подходящ
|||<>п върху конто да се развива действието на програмата ДВИЖЕНИЕ.
1 Ироменете програмата ДВИЖЕНИЕ съобразно графа.
ДВИЖЕНИЕ
НАЧАЛО
ДВИЖЕНИЕ!
ДВИЖЕНИЕ2 РЕЗ'. ПТАТ
ВСЕЛЕНА РАКЕТА ПРЕСМ-Sl HPECM.S2
ИЛЮСТРИРАНЕ1 ИЛЮСТРИРАНЕ2
ПИ-ЗДИ ПЛАНЕТИ
ДЯСНАОКР
ЧАСТДОКР
' Начертайте в тетрадките си 1рафа на ДВИЖЕНИЕ, изобразен в 1ема
I/ Като използвате командата СЛЕДИ, проследсте изпълнениею на
програмата ДВИЖЕНИЕ и от-
бсчежете с числа върху графа
на гази програма последова-
ц-лността, в която се изпълня-
U.I । отделните процедури.
• Отразеге с числа последова
пипостта, в която се изпьлня
ДВИЖЕНИЕ
1 5
ПРЕСМЯТАНЕ ИЛЮСТРИРАНЕ
2 3 4
ПРЕСМ S1 ПРЕСМ.82 РЕЗУЛТАТ
н.п процедурите в програмата.
представена с графа от зад.2.
< >нишете на естествен език ал-
шритъма, по който се обхож-
дат графите на программе
при тяхното изпълнение.
' Начертайте мозайката:
ттТт^хгг
109
6. Напишете програма за чертане на окръжност по дадени радиус и коор
динати на центърэ й.
7. Напишете програма за чертане на окръжност по дадени координаin
на нейния център и на точка, която лежи върху нея.
8. Напишете програма за чертане на окръжност с даден радиус, която 1i
минава през точка с дадени координати. Колко такива окръжности мшм
да се построят?
9. Напишете програма за чертане на квадрат по дадени координати в i
краищата на един от диагоналите
10* . Напишете програма, при
изпълнението на която да се
чертаят едновременно две кон-
центрични окръжности със за-
дадени радиуси. В определен
момент чертежът може да из-
глежда така:
И* . Начертайте фигура га:
12* . Пресметнете лицето на
правоъгълника с минимални
размери, който загражда фигу-
рата от зад. 11, ако окръжнос-
тите имат радиус 20 ст.
13* . Решете зад. 12, като въве-
дете параметри R (за радиуса),
N (за броя на окръжностите в
първия ред) и М (за броя на
редовете)
14. С помощта на програмата МУЗИКАЛЕН РЕДАКТОР изпълнете ме
лодията:
НО
IK РЕКУРСИЯ
\и i чда и една процедуры
< >|>рьшението към една процедура нредизвиква немного изпълнение Ре-
курсивните процедури съдържат в своето описание обрьщение към себе
in Да разгледаме процедурата:
ЗА БРОЙ.ОБРАТНО :N
АКО :N < 1 ТО СТОП
ИЗВЕДИ :N
БРОЙ.ОБРАТНО :N - 1
КРАЙ
Нека я изпьлни.м с вход 3:
БРОЙ.ОБРАТНО 3
3
2
I
Във всички рекурсивни процедури. конто смс срещали досега, рекур-
। ивното обръгцение (обръгцението към себе си) бе на последно място в
«я юто на процедурата.
Да редактираме процедурата БРОЙ.ОБРАТНО ио следния начин:
ЗА БРОЙ N
АКО :N < I ТО СТОП
БРОЙ :N 1
ИЗВЕДИ :N
КРАЙ
A ceia да я изпълним:
БРОЙ 3
1
2
3
III
Една малка наглед промяна обърна резултата с главата надолу. l.i
ню? Да проследим изпълнението на БРОЙ с вход 3:
БРОЙ 3
АКО :N<1 ТО СТОП
БРОЙ :N-1
ИЗВЕДИ :N
3
БРОЙ 2
АКО :N<1 ТО СТОП
БРОЙ :N - 1
ИЗВЕДИ :N
2
БРОЙ 1
АКО :N<1 ТО СТОП
БРОЙ :N 1
ИЗВЕДИ :N
1
БРОЙ О
АКО :N<1 ТО СТОП
БРОЙ :N—1
ИЗВЕДИ :N
При първото обръщение към БРОЙ (с вход 3) се създава локалИ
памет за тази процедура. В нея се записват името на параметъра (N) и
неговата стойност (3). Тъй като условието за спиране не е в сила, извър
шва се ново обръщение към БРОЙ, но с вход :N — 1, т е. 2. Можем да
си мыслим, че в този момент започва изпълнението на втора процеду
ра — копие на първата. но с различна локална памет. За да продължп
воята работа, първата процедура (БРОЙ 3) чака да завърши втораш
(БРОЙ 2). По същия начин вгората процедура предизвиква изпълнениеп>
на ipcia (БРОЙ I), а тя от своя страна — на четвърта процедура (БРОЙ
0). фсяка от тях е копие на първата, но с различен вход и със собствен.1
локална намет.) Едва при изпълнението на четвъртата процедура (БРОЙ
0) условието за спиране е в сила. Командата СТОП спира изпълнението
само на процедурата, в която се среща (в този случй — на БРОЙ 0)
След това управлението се връща на процедурата БРОЙ I, която е изви
кала БРОЙ 0. Един вид процедурата БРОЙ с вход 0 си е свършила рабо-
тата и докладва на прекия си началник (викащата процедура) БРОП 1
Сега вече БРОЙ I може да продължи работата си, като изпълни коман
дата, която е непосредствено след рекурсивното обръщение (в случая ИЗ
ВЕДИ). На екрана се извежда 1, с което и БРОИ 1 си свършва работата
Веднага след това прският и началник — БРОЙ 2, продължавэ работаia
си — на екрана се извежда стойността на входа (2). С това изпълнението
на БРОЙ 2 завършва. Чак тогава продължава изпълнението на БРОЙ 1
и на екрана се извежда 3 — входът, от който тръгнахме. С това команда
та БРОЙ 3 е изпълнена. Най-после! Поемете дъх и ако имате сили, отно
112
ini проследете изпълнението на процедурата БРОЙ. Този път можете да
и иомагате със слелния те ич копичсн молел:
БРОЙ 3
АКО :N<1 ТО СТОП
БРОЙ 2
АКО :N<1 ТО СТОП
1БРОЙ 1
АКО :N<1 ТО СТОП
БРОЙ О
АКО :N<1 ТО СТОП
ИЗВЕДИ :N
КРАЙ
ИЗВЕДИ :N --------
КРАЙ________________
ИЗВЕДИ N -----------
КРАЙ
ИЗВЕЛИ :N -----------
КРАЙ
- Спира БРОЙ О
- Извежда 1
- Извежда 2
- Извежда 3
Дейстиею на процедурат БРОЙ може да се изяепи още по-лесно
। процедурата КЛЕЧКИ. която можем да получим чрез редактИране на
БРОЙ. Достатъчно е вместо командата ИЗВЕДИ :N да въведем процеду-
ра <а чертане на отсечка (клечка) с дължина :N* 10:
ЗА КЛЕЧКИ :N
АКО :N< 1 ТО СТОП
КЛЕЧКИ :N—1 КЛЕЧКА :N СКОК
КРАЙ
ЗА КЛЕЧКА :N
НАПРЕД :N* 10 НАЗАД N* 10
КРАЙ
ЗА СКОК
ВДИГНИ ДОАБСЦ АБСЦ+ 10
СПУСНИ
КРАЙ
Его резултата на КЛЕЧКИ при вход 4:
КЛЕЧКИ4
Информацией ia ничинисши чао II
113
При последователното изпълнение на БРОЙ.ОБРАТНО и БРОЙ пл
екрана ще се изведат числата от А до 1 и след това от I до N. Същшн
резултат може да се получи и с помощта на рекурсивна процедура, кояи>
ще илюстрираме графично с процедурата СИМ.КЛЕЧКИ:
ЗА СИМ.КЛЕЧКИ :N
AKO :N<0 ТО СТОП
КЛЕЧКА :N СКОК
СИМ.КЛЕЧКИ :N- 1
КЛЕЧКА :N СКОК
КРАЙ
СИМ КЛЕЧКИ 4
Докаю наберею доспи ьчно опш да използвате и оиисвате рекур
сивни процедури, може да ви се случват много странни неща. За да pa i
берете загадките на рекурсията, трябва да постъпвате като истински еле
дотърсачи. Т ова, разбира се, не означава да използвате винаги в ролями
на куче командата СЛЕДИ
Задачи
1. Обяснете дейсгвието на рекурсивнше процедури:
ЗА БРОЙ.ОБРАТНО1 :N
ИЗВЕДИ :N
АКО :N>0 ТО БРОЙ.ОБРАТНО1 :N - I
КРАЙ
ЗА БРОЙ1 :N
АКО :N>0 ТО БРОЙ1 :N-1
ИЗВЕДИ :N
КРАЙ
2. Редактирайте рекурсивната процедура БРОЯЧ гака, че при изпълне
нието й компютърът да брой от N до К и, обратно от К до Л
(К > А):
ЗА БРОЯЧ .N .К
ИЗВЕДИ :N
БРОЯЧ :N+ 1 К
ИЗВЕДИ :N
КРАЙ
114
* 11 редскажете какви ще бъдат резултатите от изпълнението на дадените
процедури с вход 50. Проверете вашите предположения. (Необходимо е
и дефинирате и процедурата КВАДРАТ.) След това проверете какво
ше бъде действието на процедурите при вход 40. Обяснете получените
|>.11ЛИЧИЯ.
г ФИГУРАI Р
АКО :Р< 10 ТО СТОП
КВАДРАТ :Р
НАПРЕД :Р
ФИГУРА 1 :Р/2
КРАЙ
б)
ЗА ФИГ УРА2 :Р
АКО :Р< 10 ТО СТОП
ФИГУРА2 :Р/2
КВАДРАТ :Р
НАПРЕД :Р
КРАЙ
в)
ЗА ФИГУРАЗ :Р
АКО :Р> 10 ТО ФИГУРАЗ :Р/2
КВАДРАТ :Р
НАПРЕД :Р
КРАЙ
4. Редактирайте процедурите от зад. 3, като вместо процедурата КВАД-
РАТ използвате процедури за чертане на други геометрични фигури.
Ч. Процедурите ФИГУРА4, ФИГУРА5 и ФИГУРА6 са дефинирани по
i 1сдния начин:
ЗА ФИГУРА4 :СТР :ЪГЪЛ
АКО :СТР>60 ТО СТОП
НАПРЕД :СТР
НАДЯСНО :ЪГЪЛ
ФИГУРА4 :СТР + 3 :ЪГЪЛ
НАЛЯВО :ЪГЬЛ
НАЗАД :СТР
КРАЙ
ЗА ФИГУРА5 :СТР :ЪГЪЛ
АКО :СТР<0 ТО СТОП
НАПРЕД СТР
НАДЯСНО :ЪГЪЛ
ФИГУРАЗ :СГР 3 ЪГЪЛ
НАЛЯВО :ЪГЪЛ
НАЗАД :СТР
КРАЙ
ЗА ФИГУРА6 СТР :ЪГЪЛ
АКО ЪГЪЛ > 360 ТО СТОП
НАПРЕД :СТР
НАДЯСНО :ЪГЪЛ
ФИГУРА6 :СТР :ЪГЪЛ + 5
МОЛИВ 0 НАЛЯВО :ЪГЪЛ
НАЗАД :СТР МОЛИВ 1
КРАЙ
Обяснете резултата от изпълнението на командите:
а) ФИГУРА4 1 90;
б) ФИГУРА4 1 123;
в) ФИГУРА5 70 93;
г) ПОВТОРИ 3 [ФИГУРА5 80 123 НАДЯСНО 120];
д) ФИГУРА6 10 5.
<». Обяснете действието на дадените процедури при вход 4:
ЗА ФИГУРА7 :N
НАПРЕД 50
НАДЯСНО 90
АКО :N= 1 ТО СТОП
ФИГУРА7 :N - I
НАПРЕД 50
НАЛЯВО 90
КРАЙ
ЗА ФИГУРА8:N
НАПРЕД 50
НАДЯСНО 90
АКО :N = I ТО СТОП
ФИГУРА8 :N - 1
НАЗАД 50
НАЛЯВО 90
КРАЙ
ЗА ФИГУРА9 :N
НАПРЕД 50
НАДЯСНО 90
АКО :N= 1 ТО СТОП
ФИГУРА8 :N — 1
НАЗАД 50
НАДЯСНО 90
КРАЙ
115
7. Редактирайте процедурите от зад. 6, като вместо редовете
АКО :N = I ТО СТОП
ФИГУРАХ :N—1
напишете реда:
АКО :N> I ТО ФИГУРАХ N - 1
(Тук индексът х трябва да се замести с 7, 8 или 9 в зависимост oi
гова, в коя процедура се използва командата за проверка и вземане пл
решения.)
Обяснете действието на новополучепите процедури при различии
входове.
8. Редактирайте процедурите оз зад. 6, като за всяка от тях въведеп’
нови параметри — СТРАНА и ЪГЪЛ. Направете серия о г експеримент
с новите процедури.
9. Каква фигура ще се получи при изпълнението на дадената процедур;!
ФИГУРАЮ с вход 40? Проверете вашего предположение.
ЗА ФИГУРАЮ :РАЗМЕР
АКО :РАЗМЕР< 10 ТО СТОП
НАПРЕД :РАЗМЕР
НАЗАД :РАЗМЕР
ВДИГНИ
НАДЯСНО 90
НАПРЕД :РАЗМЕР+ 10 НАЛЯВО 0 СПУСНИ
ФИГУРАЮ :РАЗМЕР/2
ВДИГНИ
НАДЯСНО 90
НАЗАД :РАЗМЕР + 10
НАЛЯВО 90
НАПРЕД :РАЗМЕР
СПУСНИ
КВАДРАТ РАЗМЕР НАЗАД .РАЗМЕР
КРАЙ
10. Начертайте с помощта на рекурсивни процедури /juiypnie:
116
II Направете телескопичен модел на изпълнението на ПРОЦЕДУРА! и
проверете действието й на компютър:
ЗА ПРОЦЕДУРА!
ИЗВЕДИ 1 ПРОЦЕДУРА?
ИЗВЕДИ О
КРАЙ
ЗА ПРОЦЕДУРА?
ИЗВЕДИ ? ПРОЦ! ДУРАЗ
ПОВТОРИ 2[ИЗВОДИ ’ ХА]
КРАЙ
ЗА ПРОЦЕДУРАЗ
ПОВТОРИ 3 [ИЗВЕДИ 100]
КРАЙ
12. Прочетете изреченията.
а) Ако имам орехи, той ще ми даде още.
б) (Помогни ми докторе!) Като се паям, ми се приспива и лягам да
тч, а когато се събудя, огладнявам и отново ям.
в) Гледай напред! Ако ти се замрежат очите, разтъркай ги и пак
ндай напред.
Можем ли да кажем, че с гях се изразява рекурсия?
I Е Кои думи ни подсещат, че в изреченията от зад. 12 има рекурсия?
11 >бройте още такива думи. Изкажете изречения на руски и на английски
сшк, в конто да има рекурсия
14. Използвайте программа МУЗИКАЛЕН РЕДАКТОР, за да вьведете
и изпълните на компютър ищепата народна песен.
Повгарящию се 1еми копирайте.
117
19. РЕКУРСИВНИ ОПЕРАЦИИ
С ЧИСЛА
ВХОД означаем ВХОД за Хитри
и Остроумии Деца
Ако накараме Трилшта глупици да се наредяз в редица, те сигурно тцс
започнаг да умуват по колко начина може да стане това. Да се опитамс
да им помогнем.
Ако двамата вече са се наредили
гака:
третият може да застане на никое от грите места в редицата начело
в средата или накрая:
118
11<> иървите двама биха могли да се наредят и по следния начин:
< ipyi и думи. Гримами г./упици MOiai да засгаиат в редица ио шесз
различии начина.
А ако към тях се присъедини и костенурката? Тя може да заеме ня-
кое от четирите различии места във всяка от шестте редици. Това прави
общо 6.4 = 24 начина. Прибавим ли и компютъра, начините на подреж-
ете ще станат 24.5 = 120, защото можем да го сложим на пет възможни
места във всяка от 24-1 е редици. И така — 2 обекта могат да се подредят
по 2 различии начина, 3 обекта — по 1.2.3 начина, 4 обекта — по 1.2.3.4
начина, 5 обекта — по 1.2.3.4.5 начина. Вече се досещате, че ако умножим
есгествените числа от 1 до N, ще разберем по колко начина могат да се
подредят N обекта. Произведението
1.2.3...N
119
се нарича N факториел и се записва с А!. Задача! а за пресмятане на lomi
произведение може да се реши с помощта на следната процедура:
ЗА ФАКТОРИЕЛ N
НАПРАВИ "М I НАПРАВИ Р I
ПОВТОРИ N [НАПРАВИ Р :Р* :М НАПРАВИ "М :М Т 1]
ИЗВЕДИ :Р
КРАЙ
Нека изпьлним тази процедура с вход 4:
ФАКТОРИЕЛ 4
Ако сета трябва да нресмегнем 51, ще умножим числата от 1 до 5,
или все едно 4!,5. А дали може да използваме командата:
ИЗВЕДИ 5»(ФАКТОРИЕЛ 4)
Ако сте очаквали на екрана да се появи числото 120, сшурно стс
разочаровали. Компютърът отговаря:
Това означава, че резултагьг от изпьлнението на ФАКТОРИЕЛ не
може да се използва непосредствено. Работата е там, че при команда! а
ИЗВЕДИ, която участва в процедурата ФАКТОРИЕЛ, резултатът (и
случая 24) само се показва на екрана и се забрав». От това положение има
изход вместо командата ИЗВЕДИ ще използваме командата ИЗХОД
Кака о знаем, нейната роля е да спре процедурата, в която участва, и да
определи като резултат от изпълнението й стойността на израза след
ИЗХОД:
ЗА ФАКТОРИЕЛ :N
НАПРАВИ "М I НАПРАВИ 'Р 1
ПОВТОРИ :N [НАПРАВИ "Р Р* :М НАПРАВИ М .М + 1]
ИЗХОД :Р
КРАЙ
Така редак! ирана, процедурата ФАК ТОРИЕЛ е вече операция. Ош
рациите са нещо като вьпроси към компютъра: „Колко е 2 + 2?”, „Кол<«>
е х 2?“, „Колко е 1.2.3.4.5?" и т.н.
След като превърнахме ФАКТОРИЕЛ в операция, не би трябвало да
я използваме самост оятелно. В команден режим това няма да е фаталпо
ФАКТОРИЕЛ 4
Ако обаче горнимт ред е част от процедура, при и иплнението й пн-
получим сьобщение:
120
Логично, нали? Попитали сме компютъра колко е 4!, а не сме му
ка или какво да прави с резултата. Съвсем друго е, ако му кажем:
ИЗВЕДИ ФАКТОРИЕЛ 4
или пък:
ИЗВЕДИ 5*(ФАКТОРИЕЛ 4)
Да разглсдаме сета по-подробно операцията ФАКТОРИЕЛ. При
вход 4 са изпълнени следните равенства:
ФАКТОРИЕЛ 4 - 4*ФАКТОРИЕЛ 3 - 4»3»ФАКТОРИЕЛ 2 -
4*3*2*ФАКТОРИЕЛ 1 = 4*3*2» 1 = 24
Става ясно, че операцията ФАКТОРИЕЛ може да се дефинира ре-
курсивно:
ЗА ФАКТОРИЕЛ :N
АКО N = 1 ТО ИЗХОД 1
ИЗХОД :N«ФАКТОРИЕЛ :N - 1
КРАЙ
Вижда се, че рекурсивного описание на тази процедура е по-кратко,
। може би и по-ясно от нерекурсивного.
А его как изглежда телескопичният модел на гази процедура:
ФАКТОРИЕЛ 4
АКО :N=1 ТО ИЗХОД 1
ИЗХОД :N»
ФАКТОРИЕЛ 3
АКО :№=1 ТО ИЗХОД 1
ИЗХОД :N*
ФАКТОРИЕЛ 2
АКО :N=1. ТО ИЗХОД 1
ИЗХОД :N*
ФАКТОРИЕЛ 1
АКО :№1 ТО ИЗХОД 1
ИЗХОД :N* ФАКТОРИЕЛ О
‘Г”
(4*
“Г
(3*
Л---------
(2 * 1)))
Оз гози модел се вижда, че когато се изпълнява рекурсивната опера-
ция ФАКТОРИЕЛ с вход числото 4, всъщност се изпълняват четири
пенни копия, но с различии входове. Аналогично, когато се изпълнява
рекурсивната операция ФАКТОРИЕЛ с вход числото 20, се изпълняват
121
20 нейни копия, но с различии входове. Ако ли пък тя се изпълнява
вход числото 40, ще се появи съобщение, от което разбираме, че се
получило твърде голямо за компютъра число.
В някои случаи, когато в работната памет на компютъра трябва i
се пази информация, необходима за изпълнението на много копия и
една и съща рекурсивна процедура, компюгъръз може да се оплаче
УМЪТ МИ НЕ ГО ПОБИРА!
Да не кажете сега, че и вас ви спохожда! подобии мисли. кога к
работите с рекурсивни процедури...
Задачи
1. Дефинирайте рекурсивна операция за повдигане на число в степса
като използвате равенството:
а" = а.а” *.
2. Операцияia ОМА е дефинирана по следния начин:
ЗА СУМА :ЕЛ +АЗЛ :БРОЙ
АКО :БРОЙ = 0 ТО ИЗХОД 0
ИЗХОД :ЕЛ + (СУМА :ЕЛ + :РАЗЛ ;РАЗЛ :БРОЙ I)
КРАЙ
Задайте й подходящи входове, за да иресметнете су мат а:
а) 1+3 + 5 + 7 + 9+11 + 13+15+17+19 + 21+23;
б) - 17- 10-3+4+ 11 + 18 + 25 + 32;
в) 964 + 871 + 778 + 685 + 592 + 499 + 406.
3. Дефинирайте нерекурсивна операция, с коят о да се пресмятат суми к
от зад. 2.
4. Напишете операция за:
а) намиране на средното аритметично на четири числа;
б) намиране на лицето на кръг по даден радиус;
в) намиране на периметъра на триъгълник по дадени координати и
върховете му;
г) намиране на най-голямото цяло число, което не надвишава дадеш
число. (Например, ако числото е 17,85, резултатът да бъде 17, а в случи!
че числото е —256,384, резултатът да бъде —257.
5. Дефинирайте рекурсивна операция, с която да се пресмятат суми oi
вида
I2 + 22 +...+ и2.
6. Дефинирайте рекурсивна операция, с която да се пресмятат суми oi
вида
1 +t/ + tc + tr' +...+ а".
122
Упы ване. Вьведете входни параметри А и N. (Вижте и операцията
< УМА от зад. 2.)
7. Редактирайте дадената лолическа операция ЦЯЛО.ЧИСЛО? така, че
ia получите логическа операция за проверка дали дадено положизелно
чис ло е цяло.
ЗА ЦЯЛО.ЧИСЛО? :N
АКО :N = 0 ТО ИЗХОД "ВЯРНО
ИЗХОД ЦЯЛО.ЧИСЛО? :N — I
КРАЙ
20. AJ1I ОРИТЪ.МЫ
НА ЕВКЛИД
Какво значи НОД?
( л.ществуват мною начини за намиране на най-големия общ дели л ел на
иле естествени числа а и Ь. (Ще го означаваме съкразено с НОД(а,/>).)
11ай-известнияз от тези начини е алгоритъмъз на Евклид. Той се състои
и следното:
Нека а^.Ь. Най-напред намираме остатъка г от делението на а и b
\ко г = 0. то НОД(а,/1) = Ь. В противен случай търсим НОД(Л,г), защото
I К)Д(д,А) = НОД(Л.г). За целта пресмязаме осзатъка г, от делението на
/> лл г. Ако г, = 0, то НОД(А,г) (а следовазелно и НОД(а.А)) е равен на
I В противен случай намираме осзазъка о от делението на г и г, и т.н.,
покато се получи осз атък, равен на нула.
За да опишем този алгоритъм на езика Лого, ни е необходима опера-
ция за намиране на остатъка оз делението на две естествени числа. Така-
ли операция е ОСТАТЪК.
Да намерим например НОД на числата 85 и 34:
ИЗВЕДИ ОСТАТЪК 85 34
123
Да намерим сега остатъка от делението на 34 и 17:
ИЗВЕДИ ОСТАТЪК 34 17
(Това, раэГчра се, можехме да съобразим и без помошта на компю
тър.)
Тогава
НОД(85,34) = НОД(34,17) = 17.
По подобен начин се вижда, че:
НОД(972,666) = НОД(666,306) = НОД(306,54) =
НОД(54,36) = НОД(36,18) = 18.
Да обясним и на компютъра какво значи НОД:
ЗА НОД :А :В
АКО (ОСТАТЪК :А :В) = 0 ТО (ИЗВЕДИ [НОД Е] :В) СТОП
НОД :В (ОСТАТЪК .А :В)
КРАЙ
Описанието е много кратко, нали? А дали компютърът ни е разбр.11
правилно? Да проверим:
НОД 85 34
НОД 972 666
Да направим малко по-сложно пресмятане. Например да намерим
остатъка от делението на 563 и НОД на числата 567 и 234. Опитвамг
така:
ИЗВЕДИ ОСТАТЪК 563 НОД 567 234
НОД » ’ |1
НОД НЯМА ИЗХОД Щ
Пак забравихме, че така, както е описана, процедурата НОД не г
операция и следователно резултатът от изпълнението й не може да сг
използва като втори вход на ОСТАТЪК. Не бяхме достатъчно далновит
ни, но още не е късно да превърнем НОД в операция:
ЗА НОД :А :В
АКО (ОСТАТЪК :А :В) = 0 ТО ИЗХОД :В
ИЗХОД НОД :В (ОСТАТЪК :А :В)
КРАЙ
(Скобите сме поставили за яснота.)
Да проверим действието на новата операция:
ИЗВЕДИ ОСТАТЪК 563 (НОД 567 234)
Правилно! Процедурата НОД ще работи със сигурност правилпп
ако първият вход е по-голям или равен на втория. Макар че действием
124
ii г вярно, дори това условие да не е изпълнено, можем да включим една
проверка:
ЗА НОД1 :А :В
АКО НЕ :В > :А ТО ИЗХОД НОД :А :В
ИЗХОД НОД :В :А
КРАЙ
В много случаи е удобно да се използва операцията ЧАСТНО. Как-
н> таем, тя изисква два входа и резултатът от нея е частното на първия
в нгория вход.
Например
ИЗВЕДИ ЧАСТНО 144 12
ИЗВЕДИ ЧАСТНО 365 12
Да разгледаме сета програмата ВЕЧЕН.КАЛЕНДАР, с чиято по-
мо|ц можем да разберем кой ден от седмицата отговаря на дадена дата.
II нея се използват операциите ЧАСТНО и ОСТАТЪК. Ето описани
и.। програмата:
ЗА ВЕЧЕН.КАЛЕНДАР :О :J :С :К
НАПРАВИ ”D :Q + :К + :J — :С
НАПРАВИ ”D :D + ЧАСТНО :J 4
НАПРАВИ "D :D + ЧАСТНО :С 4
НАПРАВИ ”D ОСТАТЪК :D 7
ДЕН
КРАЙ
ЗА ДЕН
АКО :D = 0 ТО ИЗВЕДИ [НЕДЕЛЯ]
АКО :D= 1 ТО ИЗВЕДИ [ПОНЕДЕЛНИК]
АКО :D = 2 ТО ИЗВЕДИ [ВТОРНИК]
АКО :D = 3 ТО ИЗВЕДИ [СРЯДА]
АКО :D = 4 ТО ИЗВЕДИ [ЧЕТВЪРТЪК]
АКО :D = 5 ТО ИЗВЕДИ [ПЕТЪК]
АКО :D = 6 ТО ИЗВЕДИ [СЬБОТА]
КРАЙ
Параметрите на процедурата ВЕЧЕН.КАЛЕНДАР са следните:
Q — денят от седмицата;
J — годината;
С — броят на изминалите столетия;
К — зависи от поредния номер на месеца и се определя с помощта
пл стихотворението:
Стават лн за вечен алманах
два стиха в рима, просто за смях?
По-точно, К е дължината на онази дума от стихотворението, която
има поредей номер номера на месеца. За месеците януари и февруари
през високосните години К трябва да се намали с единица.
125
Да попитаме сега компютъра в кой ден от седмицата е бил 3 мар,
1878 г. Стойността на параметъра К в случая ще бъде дължината и;
думата за, т.е. 2. Записваме:
ВЕЧЕН.КАЛЕНДАР 3 1878 18 2
НЕДЕЛЯ
Ако сте забравили кой ден от седмица га е днес, попитайте компють
ра. В краен случай може да използвате и ... джобно календарче.
Задачи
1. Каква е разликата между операция га ЧАСТНО и операция га деленп
(/)?
2. Дефинирайте операции за пресмятане на:
а) височината на триъгълник, ако са дадени лицето и дължината п.
основата му;
б) лицето на равностранен триъгълник по дадена дължина на страна
та;
в) лицето на триъгълник по дадени лължини на страните му (Изпол ।
вайте формулата на Херон: 5 = р(р —а) (р—Ь) (р —с). къдетор е полу
перимегърът на триъгълника.);
г) лицето на триъгълник по дадени координати на върховете му.
3. Редактирайте чрез съкращаване операцията НОД1, която служи за на
миране на най-големия общ делител на две числа:
ЗА НОД1 :А :В
АКО :А = :В ТО ИЗХОД :А
АКО :А> :В ТО НАПРАВИ ”А :А .В ИНАЧЕ НАПРАВИ "В :В: А
ИЗХОД НОД1 :А :В
КРАЙ
4. Намерете НОД на числата 264, 946, 41132 и 2816.
5. Дефинирайте операция за намиране на най-големия общ делител п
четири числа. Използвайте операцията НОД или операцията НОД1.
6. Операцията СУМА.ЦИФРИ дава като резултат сумата от цифрите п
дадено цяло положително число. Опишете словесно алгоритъма, кот
Се използва в тази операция:
ЗА СУМА.ЦИФРИ :N
АКО :N = 0 ТО ИЗХОД О
ИЗХОД (ОСТАТЪК :N 10) +СУМА.ЦИФРИ ЧАСТНО :N 10
КРАЙ
7. Дефинирайте логически операция за проверка дали:
а) дадено число е четно;
б) дадено число се дели на 3;
в) дадено число се дели на 9;
г) дадено число е просто.
126
К. 11роверете дали с дадената по-долу процедура НОК може да се намира
n.iii-малкото общо кратно на две произволни числа.
ЗА НОК :А :В
ИЗХОД НОК1 :А :В 1
КРАЙ
ЗА НОК1 :А В :N
АКО (ОСТАТЪК :N*:A :В) = О ГО ИЗХОД :N* A
ИЗХОД НОК1 :А :В :N + 1
КРАЙ
•»*. Като използвате операцията НОД, дефинирайте операция за намира-
не на най-малкото общо кратно на две числа.
10*. Дефинирайте операция, която да дава като резултат най-голямото
число, което е делител на дадено цяло положително число.
II. Какъв ще бъде резултатъг от изпълнението на процедурата ОБРАТ-
НО;
ЗА ОБРАТНО :ЧИСЛО
АКО :ЧИСЛО = 0 ТО ИЗВЕДИ 0
ОБР:ЧИСЛО
КРАЙ
ЗА ОБР :ЧИСЛО
АКО :ЧИСЛО = 0 ТО ИЗВЕДИ (J СТОП
ИЗВЕЖДАЙ ОСТАТЪК :ЧИСЛО 10
ОБР ЧАСТНО :ЧИСЛО 10
КРАЙ
(Информация за командата ИЗВЕЖДАЙ може да намерше в При-
южение 1)
12*. Нека е дадена процедурата:
ЗА ПОЛИ :СТРАНА :ЪГЪЛ
НАПРЕД СТРАНА
НАДЯСНО :ЪГЪЛ
ПОЛИ СТРАНА :ЪГЪЛ
КРАЙ
Дефинирайте нерекурсивен вариант на тази процедура, като имате
нредвид, че броят на страните на фигу para, която се.получава при изпъл-
непие на процедурата ПОЛИ, се определя по формулата:
НОК(а,360)
а
(а е ьгълы, който е втори вход на процедурата ПОЛИ.)
13. Сьставете процедури за намиране НОД и НОК на три числа.
14*. Като използвате процедурата НОД. проведете експерименти, за да
ее убедите във верността на твърденията: Ако а и b са цели числа и
11ОД(а,6)= 1, то:
а) НОД(п + 6,а2 — ab + b2) = 1 или НОД (а + b,a2 — ab + Ь2) = 3;
127
б) НОД(п + Л,а/>)= 1 и НОД(« — b,ah) = 1.
Забележка. Ако а и b са цели числа и НОД(«,А) = 1, а и b се нарича i
взаимно прости числа.
15. Най-много колко еднакви букета могат да се направят от 96 червепн
и 48 бели рози? А ако разполагаме със 100 червени и 60 бели рози, щс
можем ли да направим повече еднакви букета?
Забележка. В оформянето на букетите участват всички рози.
16. Да се дефинира процедура, която да отпечатва числителя и знамена
теля на несъкратимата дроб. получена при събиране на дробите:
а с
- и
h а
(а, Ь, с ч d са цели числа, като b А 0. d А 0).
17. Какви числа ще се извеждат на екрана след изпълнението на процеду
рата ВЗАИМНО.ПРОСТИ, зададена по следния начин:
ЗА ВЗАИМНО.ПРОСТИ :N
НАПРАВИ "ЧИСЛО 1
ПОВТОРИ :N 1 [СРАВНЯВАНЕ :N :ЧИСЛО НАПРАВИ "ЧИСЛО ЧИСЛОМ I
КРАЙ
:N :ЧИСЛО=1
ЗА СРАВНЯВАНЕ :N :ЧИСЛО
АКО НОД
КРАЙ
ТО ИЗВЕДИ -ЧИСЛО
ВЗАИМНО.ПРОСТИ е естествено чи- то.
с последователни входове 7, 9, 12 и 21
процедурата
процедурата
Входът на
Изпълнете
18. Редактирайте процедурата ВЗАИМНО.ПРОСТИ (Вж. зад. 17.) зака
че да се отпечатва и общият брой на изведените числа.
19. Предел авете числото 2200 като сбор на з ри събираеми така, че пьрво
то да бъде със 120 по-голямо от второто и с 200 по-голямо от третото
Намерете най-големия общ делител на получените събираеми.
20*. По крива затворена линия се движат четири тела. Едното прави
една обиколка за 20 min, второто — за 15 min, третото — за 12 min i
четвъртото — за 10 min. Ако тръгнат едновременно от едно и също мя<-
то и в една и съща посока, след колко минута ще се съберат отново hi
старта? Колко обиколки ще направи дотогава всяко тяло?
21*. Имаме няколко книги, конто искаме да опаковаме в пакета. Ако вы
всеки пакет сложим по 3, по 4, по 5 или .по 6 книги, винаги остава едя;
излишна книга, а ако ги опаковаме по 7, всички книги ще са опаковани
Какъв е най-малкият възможен брой книги, конто трябва да се опаковаГ
Упътване. Броят на книгите е число, което при деление на 3, 4, I
и 6 дава остатък 1. Всички числа с това свойство са от вида
m.k+ 1, където к е най-малкото общо кратно на числата 3, 4, 5 и 6
а т = 1,2,3,...
Проверете кое от тези числа е най-малкото число, което се дели п;
7.
128
11. Начертайте фигурата:
2Л. Обясне i е дейщвиею па процедурата СНЕЖИНКА при вход 80.
ЗА СНЕЖИНКА :РАЗМЕР
СКРИЙ
ПОВТОРИ 3 [ФИГУРА :РАЗМЕР НАДЯСНО 120]
КРАЙ
ЗА ФИГУРА :РАЗМЕР
АКО :РАЗМЕР<5 ТО НАПРЕД .РАЗМЕР СТОП
ФИГУРА :РАЗМЕР'3
НАЛЯВО 60
ФИГУРА :РАЗМЕР/3
НАДЯСНО 120
ФИГУРА :РАЗМЕР/3
НАЛЯВО 60
ФИГУРА :РАЗМЕР/3
КРАЙ
Защо получения! чертеж е затворена крива?
Информацией за начинаещи - чаш 11
129
21. ОПЕРАЦИИ
С ДУМИ
Да дадем думата
на компютъра
К о мп ни ьрът обработай данни. Най-чесю юва са низове редици ш
знакове, конто може да се извеждат на екрана. За компютъра всеки ши
представлява дума. Дума в езика Лого е всяка последовалелност от зиа
кове, конто са от азбуката на Лого (букви, цифри и някои специалпи
знакове). Например думи са:
ИМЕ #87 3.14159 fe> 1 S7
Какю виждаге, в думите няма интервал.
Всяка дума може да се използва за име на променлива и да служи
за вход на процедура. Имената на променливите обикновено се пред
шестват от двоен апостроф, а стойностите им — от двоеточие. Например
ИЗВЕДИ "ИМЕ
ИМЕ
НАПРАВИ ИМЕ ИВАН
ИЗВЕДИ :ИМЕ
ИВАН
За компютъра числа га са съгцо думи, но от специален вид и затова
може да се записват и без двоен апост роф:
ИЗВЕДИ 3.14159
3.14159
Ако пред дума (която не е число) липсва двоен апостроф или двоето-
чие, тя се възприема от компютъра като име на процедура:
ИЗВЕДИ ИМЕ
КАКВО ЗНАЧИ ИМЕ1
В Лого има операции за обработка на думи. С помощта на тези
операции можем да съединяваме думи, да ги разделяме на части, да i п
съкрашаваме и т.н. Операциите, с конто ще се запознаем, изискват един
вход — дума на езика Лого.
1) ПЪРВИ — резултатът е първият знак на думата. Например
ИЗВЕДИ ПЪРВИ "ЛОГО
130
2) ПОСЛЕДЕН — резултатът е последният знак на думата. Напри-
мер
ИЗВЕДИ ПОСЛЕДЕН "ЛОГО
3) БЕЗПЪРВИ (съкратено БПР) — резултатът е думата без първия
н «пак:
ИЗВЕДИ БЕЗПЪРВИ "ЛОГО
ого
4) БЕЗПОСЛЕДЕН (съкрагено БПЛ) резулгагы е думата без по-
i гедния й знак.
1 Ешример:
ИЗВЕДИ БЕЗПОСЛЕДЕН "ЛОГО
ЛОГ
ИЗВЕДИ БЕЗПОСЛЕДЕН 1000
Резултагите от операциите за обработка на думи също са думи и
мшат да бъдат входове на нови операции.
Когато в дадена команда има повече от една операция за обработка
пн думи, първо се изпълнява най-близката до входа операция. Например
ИЗВЕДИ ПЪРВИ БЕЗПЪРВИ "АЛГОРИТЪМ
ИЗВЕДИ БЕЗПОСЛЕДЕН БЕЗПЪРВИ "АЛГОРИТЪМ
1ГОРИ1 1.
В случай че резултатът от операциите за обработка на думи е низ
само от цифри, той може да стане вход на аритметични операции:
ИЗВЕДИ (ПОСЛЕДЕН "ПЕТ5 ) + (БЕЗПЪРВИ "ООО )
При работа с думи понякога получаваме т.нар. празна дума (когаго
например премахваме първия или последния елемент от еднобуквена ду-
ма). Празната дума не съдържа нито един знак и се различава от интер-
вала, който е дума от един знак. За да използваме интервала като знак,
|рябва да го оградим с единични апострофи — ’ ’. Тогава думата, която
се състои само от интервал, ще запишем като ” ”. Ето още няколко
примера:
ИЗВЕДИ ПЪРВИ ”А
ИЗВЕДИ ПОСЛЕДЕН "А
ИЗВЕДИ БЕЗПЪРВИ "А
ИЗВЕДИ БЕЗПОСЛЕДЕН "А
Убеждаваме се (или по-скоро съобразяваме), че когаго операциите
БЕЗПЪРВИ и БЕЗПОСЛЕДЕН се прилагат върху дума от един знак,
резултатът е празната дума.
131
Естествено не е много логично да се интересуваме кой е първия!
знак на празната дума, но нека видим каква ще бъде реакцията на ком-
пютъра, ако се опитаме да го изведем:
изведи първи •'
Компютърът деликатно ни наиомня:
Малко трудно се забелязва. но в юрното съобщение между думитс
ПРИЕМА и КАТО стой именно празната дума. Затова трябва да к>
четем така: Първи не приема празната дума като вход.
От друга страна командата
ИЗВЕДИ ПЪРВИ"
е еъвсем редовна и означава да се изведе първия i знак на думата, която
се състои само от знака интервал. В отговор на екрана се появява празеп
ред, но ние разбираме, че е изведен интервал (а не празната дума).
Компютърът съобщава за грешка не само когато празната дума е
вход на операцията ПЪРВИ, но и на операциите ПОСЛЕДЕН, БЕЗПЪР-
ВИ и БЕЗПОСЛЕДЕН:
ИЗВЕДИ ПЪРВИ ПОСЛЕДЕН БЕЗПОСЛЕДЕН ПЪРВИ БЕЗПЪРВИ "АЛГОРИ
тъм
Тук операцията ПОСЛЕДЕН е получила за вход празната дума.
Понякога и компютърът не обича празни прикажи.
БЕЗПОСЛЕДЕН/БПЛ s
Ако стойността нале дума, резултатъг е дума, която се получав i
от 5 чрез премахване на последняя знак.
БЕЗПЪРВИ/БПР s
Ако стойността на л- е дума, резултатъг е дума, която се получава
от л чрез премахване на първия знак.
ПОСЛЕДЕН 5
Резултатъг от операция!а е последният елемент на стойността на v
ПЪРВИ S
Резултатъг от операцията е първият елемент на стойността на s.
1. Съобразете (без помощта на компютъра) какъв ще бъде резултаты
от операциите:
а) БЕЗПОСЛЕДЕН ’’ПОЛЕТ;
б) БЕЗПЪРВИ ’’ОВАЛ;
132
в) БЕЗПЪРВИ БЕЗПЪРВИ БЕЗПЪРВИ БЕЗПЪРВИ "ПАРАМЕ-
I ЬР;
г) БЕЗПЪРВИ ПЪРВИ "НИЩО;
д) БЕЗПЪРВИ ПЪРВИ ПОСЛЕДЕН БЕЗПЪРВИ ПЪРВИ "БЕЛЯ.
2. Съобразете какъв ще бъде резултатът от последователното изпълне-
iiiie на командите:
НАПРАВИ -ДУМА "ТРИЪГЪЛНИК
ПОВТОРИ 10 [ИЗВЕДИ :ДУМА НАПРАВИ "ДУМА БЕЗПЪРВИ ДУМА]
1. Напишете процедура, с помощта на която да се извежда на екрана
1 екстът:
ТЕЛЕФОН
ТЕЛЕФО
ТЕЛЕФ
ТЕЛЕ
ТЕЛ
ТЕ
Т
4. Като използвате операции е за обработка на думи, закръглеге число-
ю 735,670423 с точност до лилядните.
5. Разделете на морфеми следните думи: ст^тте.1, cmpoume.icmeo, пост-
ройка, строителен. (Използвайте операциите за обработка на думи.)
Морфеми наричаме най-малките елементи на думите (корен, пред-
с 1 авка, наст авка, окончание), конто са носители на известно значе-
ние.
<». Разделете на срички думите: доказвам, разказвам, премествам, бара-
нин. (Използвайте операциите за обработка на думи.)
7. Чрез операциите за обработка на думи от низа 11101110110 получете
низа 1011101.
К. Направете серия от експерименти с процедурата:
ЗА ИЗВ.СЛУЧ :ДУМА :БРОЙ
АКО :БРОЙ = 0 ТО СТОП
КУРСОР ИЗБОР 40 ИЗБОР 24
ИЗВЕДИ :ДУМА
ИЗВ.СЛУЧ :ДУМА :БРОЙ- 1
КРАЙ
Опитайте се да отгатнете действието на командата КУРСОР при
входове:
а) 0 0;
133
б) 20 5;
в) 5 20.
9. Разпръснете по случаен начин върху екрана буквите на дадена дума
(Вж. зад. 8.)
10. Каква фигура ще начергае косзенурката при изпълнение на дадени и-
по-долу команди, ако процедураза ФИГУРА е описана така:
ЗА ФИГУРА СТРАНА :БРОЙ
ПОВТОРИ :БРОЙ [НАПРЕД (ПРАНА НАДЯСНО 360/:БРОЙ]
КРАЙ
НАПРАВИ "N ПОСЛЕДЕН БИЛ БПЛ БПЛ ”1234567X9
ФИГУРА 50 :N
11. Обяснете действието на програмата СИМ. Направете серия оз експе
рименти.
ЗА СИМ ДУМА
ИЗВЕЖДАЙ ДУМА
ОБР ДУМА
КРАЙ
ЗА ОБР ДУМА
АКО ДУМА-” ТО ИЗВЕДИ ” СТОН
ИЗВЕЖДАЙ ПОСЛЕДЕН ДУМА
ОБР БЕЗПОСЛЕДЕН ДУМА
КРАЙ
12. Дадени са процедурите:
ЗА НАЧАЛО
ГРАФИКА
НАПРАВИ К1 1
НАПРАВИ ”К2 1
НАПРАВИ КЗ 1
КРАЙ
ЗА КВАДРАТ :СТР
ПОВТОРИ 4 [НАПРЕД :СТР* :KI* К2 НАДЯСНО 90* :КЗ[
КРАЙ
ЗА СИМЕТРИЯ.Х
ВДИГНИ
ДООРД ОРД
СПУСНИ
НАПРАВИ KI ( ;К|)
НАПРАВИ "КЗ ( :КЗ)
НАЛЯВО 2* АЗИМУТ
КРАЙ
ЗА СИМЕТРИЯ Y
ВДИГНИ
ДОАБСЦ -АБСЦ
СПУСНИ
НАПРАВИ "КЗ ( КЗ)
НАЛЯВО 2* АЗИМУТ
КРАЙ
134
{А СИМЕТРИЯ.О
ВДИГНИ
ДО - АБСЦ (-ОРД)
СПУСНИ
НАПРАВИ "KI (— :К1)
КРАЙ
ЗА МАЩАБ :М
НАПРАВИ ”К2 К2* :М
КРАЙ
ЗА ТРАНСЛАЦИЯ :Х Y
ВДИГНИ ДО АБСЦ + .X ОРД 4 :Y
СПУСНИ
КРАЙ
ЗА РОТАЦИЯ ЪГЪЛ
ВДИГНИ
НАПРАВИ РАЗСТ РАЗСТОЯНИЕ АБСЦ ОРД О О
НАПРАВИ "АЗМ АЗИМУТ
ОБЪРНИ КЪМ О О
ДО О О
НАДЯСНО 180
НАЛЯВО :ЪГЪЛ
НАПРЕД РАЗСТ
ОБЪРНИ :АЗМ
НАЛЯВО :ЪГЪЛ
СПУСНИ
КРАЙ
ЗА РАЗСТОЯНИЕ .XI :Y1 :Х2 :Y2
ИЗХОД КОРЕН2 (:Х1 :Х2)*(:Х1 :X2) + (:Y1 :Y2)»(:Y1 :Y2)
КРАЙ
ЗА ФИГУРА
КВАДРАТ 20
КРАЙ
Проверете на комнютьра какъв ше бьде резултатът oi командите:
НАЧАЛО
ФИГУРА
СИМЕТРИЯ.Х
ФИГУРА
ТРАНСЛАЦИЯ 25 40
ФИГУРА
МАЩАБ 2
ФИГУРА
РОТАЦИЯ 50
ФИГУРА
СИМЕТРИЯ.Y
ФИГУРА
СИМЕТРИЯ О
ФИГУРА
11. В програмата oi зад. 12 използвайте процедури за чертане на други
|»н| ури освен квадрат. Направезе серия от експерименти.
14. (Задача шега) Има ли дума със значение, от коязо след озрязване на
ньрвизе три букви да получите сто лЗ
135
22.ОБРАБОТкА НА ДУМИ
Лесно ли е да превърнем костенурка в кос ?
Да разгледаме думата пьтепоказател. Нека с помогш а на познатите ни
операции за обработка на думи да получим от нея други думи. Ще и >
ползваме съкратените форми на БЕЗПЪРВИ и БЕЗПОСЛЕДЕН. (Нс
трябва да забравяме и действието на [ МК | - | п |
ИЗВЕДИ БПР БПР БПР БПР ’’ПЬТЕПОКАЗАТЕЛ
ИЗВЕДИ БПЛ БПЛ БПЛ БПР БПР БПР БПР "ПЬТЕПОКАЗАТЕЛ
ИЗВЕДИ БПЛ БПЛ БПЛ БПЛ БПР БПР БПР БПР ’’ПЬТЕПОКАЗАТЕЛ
ИЗВЕДИ БПЛ БПЛ БПЛ БПР БПР БПР БПР БПР БПР ’’ПЬТЕПОКАЗАТЕЛ
ИЗВЕДИ БПЛ БПЛ БПЛ БПР БПР БПР БПР БПР ’ПЬТЕПОКАЗАТЕЛ
ИЗВЕДИ БПЛ БПЛ БПЛ БПЛ БПЛ БПЛ БПЛ БПР БПР БПР БПР ’’ПЪТЕПОКЛ
ЗАТЕЛ
ИЗВЕДИ БПЛ БПЛ БПЛ БПЛ БПР БПР БПР БПР БПР БПР БПР ’’ПЪТЕПОКАЗА
ТЕЛ
ИЗВЕДИ БПЛ БПЛ БПЛ БПР БПР БПР БПР БПР БПР БПР БПР ’ПЪТЕПОКАЗА
ТЕЛ
ИЗВЕДИ БПЛ БПЛ БПЛ БПЛ БПЛ БПР БПР БПР БПР БПР ’ПЬТЕПОКАЗАТ! 'I
ОКА
ИЗВЕДИ БПЛ БПЛ БПЛ БПЛ БПЛ БПЛ БПР БПР БПР БПР БПР ’ПЪТЕПОКА
ЗАТЕЛ
ИЗВЕДИ БПР БПР БПР БПР БПР БПР БПР БПР БПР БПР ’ПЬТЕПОКАЗАТ! 3
136
ИЗВЕДИ БПЛ БПР БПР БПР БПР БПР БПР БПР БПР БПР БПР "ПЪТЕПОКАЗА-
II Л
Ако се прилагал само операциите БЕЗПЪРВИ и БЕЗПОСЛЕДЕН, в
* в ш е комутативният закон:
ИЗВЕДИ БЕЗПЪРВИ БЕЗПОСЛЕДЕН "КАЗА
ИЗВЕДИ БЕЗПОСЛЕДЕН БЕЗПЪРВИ "КАЗА
Но ако се използват операциите ПЪРВИ и ПОСЛЕДЕН в съчетание
с операциите БЕЗПЪРВИ и БЕЗПОСЛЕДЕН, комутативният закон вече
нс е в сила:
ИЗВЕДИ ПЪРВИ БЕЗПЪРВИ "КАЗА
ИЗВЕДИ БЕЗПЪРВИ ПЪРВИ "КАЗА
Резултатът от последната операция е празната дума. С помощта на
операциите за обработка на думи можем да получим представката, коре-
па, наставката и окончанието на дадена дума, например на подписки:
НАПРАВИ "ПРЕДСТ БПЛ БПЛ БПЛ БПЛ БПЛ "ПОДПИСКИ
НАПРАВИ "КОРЕН БПР БПР БПР БПЛ БПЛ "ПОДПИСКИ
НАПРАВИ "НАСТ ПОСЛЕДЕН БЕЗПОСЛЕДЕН "ПОДПИСКИ
НАПРАВИ "ОКОНЧ ПОСЛЕДЕН "ПОДПИСКИ
(ИЗВЕДИ :ПРЕДСТ :КОРЕН :НАСТ :ОКОНЧ)
П< 1 ПИС К И
Сигурно вече се питате няма ли в Лого операции, с конто да отряз-
паме по няколко букви наведнъж. Няма, но можем да си дефинираме.
11апример:
ЗА БЕЗПЪРВИТЕ :N :ДУМА
АКО :N=0 ТО ИЗХОД :ДУМА
ИЗХОД БЕЗПЪРВИТЕ :N — 1 БЕЗПЪРВИ ДУМА
КРАЙ
ЗА БЕЗПОСЛ ЕДНИТЕ :N :ДУМА
АКО :N = 0 ТО ИЗХОД :ДУМА
ИЗХОД БЕЗПОСЛЕДНИТЕ :N - 1 БЕЗПОСЛЕДЕН :ДУМА
КРАЙ
С новите операции от двукоренната дума параход ще получим други
1уми:
НАПРАВИ "ДУМА1 БЕЗПОСЛЕДНИТЕ 3 "ПАРАХОД
НАПРАВИ "ДУМА2 БЕЗПЪРВИТЕ 4 "ПАРАХОД
НАПРАВИ "ДУМАЗ БЕЗПЪРВИТЕ 3 (БЕЗПОСЛЕДНИТЕ 2 "ПАРАХОД)
(ИЗВЕДИ :ДУМА1 :ДУМА2 :ДУМАЗ)
Запазете работната памет на дискета. В противен случай при следва-
1ИОЮ зареждане на Лого ще работите БЕЗПОСЛЕДНИТЕ 2, извинете,
|>ез последните две операции.
137
Задачи j
1. Получете от дума га ПЪТЕПОКАЗАТЕЛ дадсните в урока нови думи
като използвате операциите БЕЗПЪРВИТЕ И БЕЗПОСЛЕДНИТЕ.
2. Зашо за описанието на новите операции БЕЗПЪРВИТЕ и БЕЗГК >
СЛЕДНИТЕ може да се използва рекурсивна процедура?
3. Като използвате операциите БЕЗПОСЛЕДНИТЕ и БЕЗПЪРВИТЕ, де
финирайте операции със съкратено име, конто изпълняват същите дейп
вия.
4. С помощга на операциите БЕЗПОСЛЕДНИТЕ и БЕЗПЪРВИТЕ отде
лете думите в изреченията:
a) Onenumbersystemcanbetranslatedintoanother.
б) Петкоританареката.
в) Самыйбыстрыйзверьгепард.
5. В сила ли е комутативният закон при изпълнение на операциите БЕЗ
ПОСЛЕДНИТЕ и БЕЗПЪРВИТЕ?
6. С помощта на операциите БЕЗПОСЛЕДНИТЕ и БЕЗПЪРВИТЕ m
думите крокодил и календар получете други български думи.
7. Организирайте следното състезание: Един от вас да намисли дума n.i
български, руски или английски език. Състезанието ще спечели онзи, коп
то чрез отрязване на букви получи от тази дума най-много други думи
със значение.
8. Дефинирайте операция BE3MN с параметри М, N и ДУМА, резулза
тът от която да бъде входната дума без първите М и без последуйте N
знаци.
9. Дефинирайте операция ЕЛЕМЕНТ с два входа дума и число. Резул
татът от операцията трябва да бъде знакът от думата с поредей номер
равен на числото. Например резултатъг от изпълнението на ЕЛ ЕМ ЕН I
с входове съответно 3 и "КРАК да бъде буквата А.
10. Дефинирайте операция, която при вход дадена буква дава като резул
тат поредния номер на буквата в азбуката (латиница или кирилица).
11. Разложете на морфеми думите: преход. подсказвам, изразходвам. (И i
ползвайте операциите за обработка на думи.)
12. След изпълнение на операцията БЕЗПЪРВИ се е получила дума i а
ост. Посочете думи на български език, от конто би могъл да се получи
този резултат. Какво е общото между тях?
13. Напишете дума (не непременно със значение) от 3 букви. Организм
райте състезание, в което целта е да се намерят повече думи (със значе-
ние), от конто намислената от вас дума може да се получи като резулта i
от прилагането на някоя от следните двойки операции: БЕЗПЪРВИ БЕЗ
ПЪРВИ, БЕЗПЪРВИ БЕЗПОСЛЕДЕН, БЕЗПОСЛЕДЕН БЕЗПОСЛ1
ДЕН.
14. Има ли думи, при конто отрязваме едни и същи букви независимо
от това, дали прилагаме операциите БЕЗПЪРВИ или БЕЗПОСЛЕДЕН '
138
I Опишете процедура СЪЩ.ИМЕ, с която на екрана да се извежда слу-
1.II1HO избрано сыцествително име измежду следните шест: човек, куче,
ini и’фон, слон, топка, слыще.
Упътване: Номерирайте имената с целите числа от 0 до 5. Като
и шолзвате операцията ИЗБОР с вход 6, извеждайтс на екрана името,
кчсю съответства на полученото число.
1<». Опишете процедура ГЛАГОЛ, с която на екрана да се извежда слу-
'1111ПО избран глагол от следните шест: звъни, скача, изгрява, свири, пада,
нч.и (Вж. зад. 15.).
17. С помощта на процедурите СЪЩ.ИМЕ и ГЛАГОЛ опишете процеду-
p.i ИЗРЕЧЕНИЕ, с която на екрана да се извежда случайно генерирано
и (речение. Ако е необходимо, редактирайте процедурите СЪЩ.ИМЕ и
I 1АГОЛ.
IH. Редактирайте процедурите от зад. 15, 16 и 17 така, че при изпълнение-
н> им да се генерират съществителни имена, глаголи и изречения на ру-
। mi и на английски език.
1*>. Нарисувайте нови образи на костенурката, конто да съответстват на
имената от зад. 15.
•II. Напишете процедури, при изпълнението на кои го костенурката да
и пострира глаголите от зад. 16.
II. Редактирайте програмата ИЗРЕЧЕНИЕ така, че при нейното изпъл-
пспие да се генерира по случаен начин изречение, което да се илюстрира
чрез анимация.
11. Добавете други части на речта към изреченията, конто процедурата
1НРЕЧЕНИЕ генерира. За тази цел редактирайте ИЗРЕЧЕНИЕ.
2Л. Редактирайте ИЗРЕЧЕНИЕ така, че да се генерират изречения на
руски и на английски език.
24. Наредете по азбучен ред думите:
а) Е, ЗА, ЛОГО, ЪГЛИ, ЩУРИ, МНОГО, ДОБЪР, СТАВА, ЕЗИ-
К 1>Г, КОМПЮТРИ, ЧЕРТАЯТ. УЧЕНИЦИТЕ, ПРОГРАМИРАНЕТО,
ПРИВЛЕКАТЕЛНО;
б) ГЕОРГИ, НАВЪН, КОМПЮТЪРА, А, МИ, ОТ, СТАЯ, ДА, ВА-
IIIПЯТ, Е, ПРЕПОДАВАТЕЛСКАТА, БЕ, ИЗНЕСЪЛ
25. Открийте как са наредени думите в изреченията:
а) А аз бях в градината до един жьлто-зелен интересен к генов лист.
б) А аз сьм салю един малик ученик.
Проведете конкурс за най-дълго изречение от тип а) и от тип б).
139
23. ИЗМР.РЕ VHE
1ЬЛЖИ1 I VTA
НА ДУМИ
Каква е дължината
на Мисисипи?
Думата компютър има дължина S мака, а д\мла рооот - 5 знака. Дн
този извод стигаме, като изброим знаковеге в еднага и в дру1ата дума.
Можем да научим и компютъра да измерва дължината на думи, cthi ।
да опишем подходяща операция. Ще я наречем ДЪЛЖИНА, а па раме! к
ра й — НИЗ. Щом искаме резултатът от тази операция да бъде дължина
та на входната дума, ще бъдат изпьлнени равенствата:
ДЪЛЖИНА :НИЗ = 0, ако входът е празната дума, и
ДЪЛЖИНА :НИЗ = 1+ДЪЛЖИНА (БЕЗПЪРВИ :НИЗ), ако не |
празна дума.
Да илюстрираме второто равенство например с думата лого'.
ДЪЛЖИНА ”ЛОГО = I + ДЪЛЖИНА ”ОГО = I + I + ДЪЛЖИНА "ГО
= 1 + I + I + ДЪЛЖИНА ”0=13-1 + 1 + 1+ ДЪЛЖИНА ” = I + I I
[+1+0 = 4
Това ни подсказва, че при описанието на новата операция ДЬЛЖ И
НА можем да използваме рекурсивга процедура:
ЗА ДЪЛЖИНА :НИЗ
АКО :НИЗ = ” ТО ИЗХОД О
ИЗХОД I + ДЪЛЖИНА (БЕЗПЪРВИ :НИЗ)
КРАЙ
(Скобите сме поставили само за яснота.)
Да проверим дали операцията дава верни резултат и:
ИЗВЕДИ ДЪЛЖИНА "КОМПЮТЪР
ИЗВЕДИ ДЪЛЖИНА "РОБОТ
Интересно е, че думата Мисисипи е значително по-дъл!а на англии
ски, отколкото на български:
140
ИЗВЕДИ ДЪЛЖИНА MISSISSIPPI
ИЗВЕДИ ДЪЛЖИНА "МИСИСИПИ
А какво да кажем за думата швепс!
ИЗВЕДИ ДЪЛЖИН,\ "SCHWEPPES
Тъй като резултатът от операцията ДЪЛЖИНА е число, гой може
и участва в аритметични операции Например, за да намерим срешата
и.лжина на 4 думи, използваме следната процедура:
ЗА СР.ДЪЛЖИНА :Д1 :Д2 :ДЗ :Д4
ИЗХОД ((ДЪЛЖИН/Х :Д 1) + (ДЪЛЖИНА :Д2) + (ДЪЛЖИН,\ ;ДЗ) + (ДЪЛЖИ-
НА :Д4» 4
КРАЙ
Да проверим действието на тази процедура.
ИЗВ СР.ДЪЛЖИНА "МЕТЪР "МИЛЯ ИНЧ "ДЮЙМ
За да намерим средната дължина на думите в по-дьлги зексгове,
можем да използваме готова га програма СРЕДН А.ДЪЛЖИНА:
ЗАРЕДИ "СРЕДНА ДЪЛЖИН/З
СРЕДНА.ДЪЛЖИН,\
Трябва да запишем ред по ред избрания от нас текст, без да пренася-
мс думи. Между думите трябва да оставяме интервал. Когато въведе/ •
и последний ред, на нов ред трябва да запишем знака #. Той показв..
и.। компютъра къде е краят на текста. Ето как протича на практика диа-
к>| ьт с компютъра, ако искаме да измерим средната дължина на думите
и следния текст:
С какъв аршин, ко.мпютре, мериш
дължината да на мерит?
С КАКЪВ АРШИН КОМПЮТРЕ МЕРИШ
ДЪЛЖИНЛТ А ДА НАМ БРИШ
Компютърът ще ни съобши:
Не го казва явно, но можем да сме сигурни, че .шри с еднакъв аршин
m ички текстове.
141
гл Математическата лингвистика е наука, която изучава езика с мак
if \та гически средства, В едно от направления га й се изследват pa i
( шчни количествени характеристики на текста, като например ере т
па дължина на думите; отношение™ между броя на съществитст
пите, глаголите, наречията; средната дължина на изреченията (и<
броя на думите) и пр.
Оказва се, че такива количествени характеристики на текста мот и
да служат като визитка картичка на автора. Те са толкова специфична
за ладен автор, че е възможно с тяхна помощ да се откриват литературпн
фалшификации. В същото време има лингвистични характеристики, кои
то са много близки в произведения! а на най-добрите писатели.
Задачи
1. Покажете с чертеж как протича изпълнението на рекурсивната опера
ция ДЪЛЖИНА
2. Намерете средната дължина на думите в стиха.
Если б мыло
Приходило
По утрам ко мне в кровать,
И само
Меня бы мыло —
Хорошо бы это было!
3. Намерете средната дължина на думите в текста:
Аристократия перевооружалась, обновляя традиционную идеологи"
ради большего укрепления внутренней солидарности. Государственная р>
лигия боролась со старинными обычаями, создавшими бесконечные put
доры между аристократическими родами.
Сравнете средната дължина на думите в този текст със средната дт. т
жина на думите в текста от зад. 2.
4. Намерете средната дължина на думите в стиха:
1 love ту little donkey.
Нее haw, hee haw.
1 love my little donkey.
His coat so soft.
His velvet coat so soft.
5. Намерете средната дължина на думите в текста:
According to the structure of the embryo, higher plants are divided inti>
monocotyledons and dicotyledons. The roots, the stem, the leaves and the flowi i
of a plant are its organs, having distinctive functions in its life.
142
Сравнете средната дължина на думите в този текст със средната дъл-
luma на думите в текста от зад. 4.
<i Изберете текст на български език от учебника по история и измерете
редната дължина на думите в него. Сравнете получения резултат с ре-
IV । гатите от зад. 5.
Направете върху лист хартия хистограми на дължините на думите в
11 кстовете от задачи 5 и 6.
Н. Измерете средната дължина на думите в дадените стихотворения:
а) Да е лед не е лед, да е мед, не е мед, б) Казва се принте л прьв“; но защо е той такъв? Затова, че пръв полита в огъня да те спаси;
а топи се пръв и без да се запита
като лед прав ли си, или не си:
и е сладко пръв за теб леда пролазва;
като мед. пръв за теб пролива кръв —
Дядо Благо ето за това се казва,
че приятелят е „пръв"!
Валери Петров
•> Можем ли да гвърдим, че всички стихотворения са с по-малка средна
и. 1жина на думите в сравнение с научните текстове?
1(1. Изследвайте различии откъси от стихотворения на български, руски
и английски език и си отбелязвайте средната дължина на думите в тях. В
коп език (според събраните от вас данни) думите са с най-голяма средна
и. 1жина? А с най-малка?
11 Сьгласни ли сте с гвърдениею, че колкою е по-бебешко едно стихо-
|ш>рение, толкова по-малка е средната дължина на думите в него? Дайте
прнмери в подкрепа на мнението си.
12. Редактирайте операциите БЕЗПОСЛЕДНИТЕ и БЕЗПЪРВИТЕ (Вж.
има 2L) така, че да дават съобщение за грешка, ако дължината на думи-
1Г е по-малка от броя на буквите, конто трябва да се отрежат.
11*. Напишете процедура за решаване на всички квадратни уравнения от
пн да: «.v2 + hx = 0.
I (*. С каква цел може да се използва дадената операция?
.1) JA ЕЛЕМ? :ЗН :ДУМА
АКО :ДУМА = " ТО ИЗХОД НЕВЯРНО
АКО ПЪРВИ :ДУМА = :ЗН ТО ИЗХОД "ВЯРНО
ИЗХОД ЕЛЕМ? :ЗН БЕЗПЪРВИ :ДУМ,\
КРАЙ
143
б) ЗА БРОЙ :ЗН :ДУМА
АКО :ДУМА = ” ТО ИЗХОД О
АКО ПЪРВИ :ДУМА = :ЗН ТО ИЗХОД I + БРОЙ :ЗН БЕЗПЪРВИ ДУМА
ИЗХОД БРОЙ :ЗН БЕЗПЪРВИ ДУМА
КРАЙ
в) ЗА НОМЕР :ЗН ДУМА
АКО НЕ ЕЛЕМ? :ЗН ДУМА ТО ИЗХОД О
АКО ПЪРВИ ДУМА = :ЗН ТО ИЗХОД I
ИЗХОД I + НОМЕР :ЗН БЕЗПЪРВИ ДУМА
КРАЙ
Направсте експерименти с различии входове.
15. С помощта на процедурите ЕЛЕМ?, БРОЙ и НОМЕР участвайте и
следната игра: Един играч си намисля дума и кара компютъра да я запо
мни. Друг играч се опитва да я познае, като задава подходящи въпроси
на компютъра.
16*. На далечна планета е спуснат робот, който има за задача да открис
определен обект. Роботът разполага с уред, който отчита разстояниек>
от робота до обекта. С помощта на дадената програма се реализира
алгоритъм, при изпълнението на който роботът ще намери обекта.
ЗА НАЧАЛО
НАПРАВИ "Х.ОБЕКТ 139 - ИЗБОР 280
НАПРАВИ "У.ОБЕКТ 96 - ИЗБОР 192
ВДИГНИ ДО 139 - ИЗБОР 280 96 - ИЗБОР 192 СПУСНИ
ОБЪРНИ ИЗБОР 360
;КОСТЕНУРКАТА ИГРАЕ РОЛЯТА НА РОБОТА
НАПРАВИ "СТ.РАЗСТ РАЗСТОЯНИЕ АБСЦ ОРД Х.ОБЕКТ У ОБЕКТ
ТЪРСИ
КРАЙ
ЗА ТЪРСИ
НАПРЕД 10
НАПРАВИ "НОВО.РАЗСТ РАЗСТОЯНИЕ АБСЦ ОРД X ОБЕКТ У.ОБЕК1
АКО :НОВО.РАЗСТ< 10 ТО ИЗВЕДИ [НАМЕРИХ ГО!] СТОП
АКО ПО.БЛИЗКО? ТО НАПРАВИ "СТ.РАЗСТ :НОВО.РАЗСТ ИНАЧЕ НАЗАД
10 НАДЯСНО 10
ТЪРСИ
КРАЙ
ЗА ПО.БЛИЗКО?
АКО :НОВО.РАЗСТ < СТ.РАЗСТ ТО ИЗХОД "ВЯРНО
ИЗХОД "НЕВЯРНО
КРАЙ
ЗА РАЗСТОЯНИЕ :Х1 :У1 :Х2 :У2
ИЗХОД КОРЕН2 (:Х1—:Х2)» (:Х1—:Х2) + (:У1 :У2). (:У1 :У2)
КРАЙ
Опишете словесно алгоритъма, по който ще се движи роботът, ако
изпълнява дадената програма. Коя процедура изпълнява ролята на урела
за измерване на разстояния?
144
17. Редактирайте програмата от зад. 16, като изобразите търсения обект
т.н вид на окръжност с радиус 10 стъпки.
18 . Редактирайте програмата от зад. 17, като увеличите ъгъла, на който
• г обръща роботът, когато не е намерил вярната посока. При какъв ъгъл
и.। обръщане пътят на робота ше бъде най-кратък? За да отговорите на
пни въпрос, фиксирайте положението на робота и на обекта.
|*>*. Редактирайте програмата от зад. 18, като отразите факта, че обек-
11.1 се движи със скоростта на робота:
а) хоризонтално;
б) в случайно избрана посока.
С помощта на програмата МУЗИКАЛЕН РЕДАКТОР запишете и
и квирете дадената мелодия от Бетховен. Повтарящите се теми копирай-
те.
1<| Информгиика за начинаещи час» II
145
24. СЪЕДИНЯВАНЕ
НА ДУМИ
Дай пара да се закачиш..
дай десет да се откачиш
(Българска поговорка)
Нека да образуваме нови думи от думата пари, като я сьединим с думии
граф, пет. ход. по. шут. метър и .ie.iu. Съединяването на думи се извт.р
шва с операцията ДУМА, изискваща два или повече входа. Резултат ы
е дума, получена чрез съединяване на входовете:
ИЗВЕДИ ДУМА "ПАРА "ГРАФ
ПАРАГРАФ
ИЗВЕДИ ДУМА "ПАРА "ПЕТ
ПАРАНГ I
ИЗВЕДИ ДУМА "ПАРА ХОД
I (АРАХОД
ИЗВЕДИ ДУМ/Х "ПО "ПАРА
ПОП X
ИЗВЕДИ ДУМА "ПАРА "ШУТ
I .’АРАШУТ
ИЗВЕДИ ДУМА ПАРА "МЕТЪР
ОХРА* T.P
ИЗВЕДИ ДУМ/Х "ПАРА "ЛЕЛИ
ПАРАДЕЛИ
В горните примери операцията ДУМА има само два входа, но iu
може да се използва за съединяване и на повече от две думи. В такьп
случай трябва да я заградим (заедно с входовете й) в скоби:
ИЗВЕДИ (ДУМА "ТЕЛЕ "ВИ "ЗОР )
ТЕЛЕВИЗОР
(Интервалът между последната дума и затварящага скоба е същес!
вен. Досещате ли се защо?)
Дължината на дума, получена чрез съединяване на дру| и думи, с
сума от дължините на думите, кои го я съставят. Например
ДЪЛЖИНА "ПАРАМЕТЪР = ДЪЛЖИНА "ПАРА + ДЪЛЖИНА "МЕТЪР
зато го 9 = 4+5;
ДЪЛЖИНА "КИНООПЕРАТОР = ДЪЛЖИНА "КИНО + ДЪЛЖИНА "ОПИ‘\
+ ДЪЛЖИНА "ТОР
защото 12 = 4 + 5 + 3.
146
Да сравним операцията ДУМА с операцията за събиране на числа:
ИЗВЕДИ ДУМА ПАРА "
ПАРА
(В гози случай втория! вход е празната дума.)
ИЗВЕДИ 4 + 0
Виждаме, че при сьединяване на думи иразнага дума изпьлнява сь-
пцпа роля както нулата при събиране на числа.
Операцията ДУМА може да участва и при по-сложна обработка на
ими. Например, ако от аш лийските думи decide и animal искаме да полу-
чим думата decimal, можем да запишем:
ИЗВЕДИ ДУМ,А БПЛ БПЛ БПЛ DECIDE БПР БПР ANIMAL
DEC. IMAL
А ако or руските думи ведьма и озеро искаме да получим думаса
ведро. можем да използваме следната команда:
ИЗВЕДИ ДУМА БПЛ БПЛ БПЛ "ВЕДЬМА БПР БПР БПР ОЗЕРО
ВЕДРО
Сигурно ви се е случвало на исра или просто oi любопитшво да
чоръи/ате думите, i ,е. да ги четете отдясно наляво. По този начин от
«умата юс те получите думата сол, от кос - сок, а от бор роб. Как
а научим и компютъра да обрыца думите? Трябва ia дефинираме опе-
рация (например ОБРАТЕН), която при вход
иякакъв низ от знакове да дава като резултш
пн ц обратен на входния Първото, което ни ид
на наум, е да отр.чзваме буквите на входния ни <
। ша по една, като тры нем от последната, и да
। и юбавяме към празната дума в реда на полу-
чаването им. Например
Този процес може да се осъществи посредс1вом c.ic.uiaia операция:
ЗА ОБРАТЕН ПИЗ
НАПРАВИ "НОВ НИЗ
НАПРАВИ "N ДЪЛЖИНА НИЗ
ПОВТОРИ :N [ НАПРАВИ НОВ НИЗ ДУМА НОВ НИЗ ПОСЛЕДЕН НИЗ
АКО НЕ НИЗ - " ТО НАПРАВИ ”НИЗ БЕЗПОСЛЕДЕН НИЗ 1
ИЗХОД гНОВ.НИЗ
КРАЙ
(Операцияга ДЪЛЖИНА се дефинира както в тема 23 и дава като
резултат дължината на входния низ.)
Да проверим действието на ОБРАТЕН:
ИЗВЕДИ ОБРАТЕН “КОРАБ
БАРОК
ИЗВЕДИ ОБРАТЕН “БУК
КУ Ь
147
Операцията ОБРАТЕН може да се дефинира и по по-елегантен на-
чин, ако забележим, че една дума може да се обърне, като съединим
последния й знак с остатъка, записан в обратен ред. Например
ОБРАТЕН "БОР=ДУМА "Р "ОБ
=ДУМА ПОСЛЕДЕН "БОР ОБРАТЕН "БО
=ДУМА ПОСЛЕДЕН "БОР ОБРАТЕН БЕЗПОСЛЕДЕН "БОР
\на к>1 11‘ню
ОБРАТЕН КОРАБ=ДУМА "Б "АРОК
=ДУМ А ПОСЛЕДЕН "КОРАБ ОБРАТЕН "КОРА
=ДУМА ПОСЛЕДЕН "КОРАБ ОБРАТЕН БЕЗПОСЛЕДЕН "КОРАБ
1ова ни навежда на мисьзпа, че операция га ОБРАТЕН може да се
дефинира рекурсивно, като се използва следната зависимост:
ОБРАТЕН :НИЗ = ДУМА (ПОСЛЕДЕН :НИЗ) (ОБРАТЕН БЕЗПОСЛЕДЕН НИЗ)
Освен това трябва да се погрижим изпълнението на процедурата да
сире, когато в резултат на последователна обработка стигнем до празна-
та дума. Ето и новото описание на ОБРАТЕН:
ЗА ОБРАТЕН :НИЗ
АКО :НИЗ=’ ТО ИЗХОД ‘
ИЗХОД ДУМА (ПОСЛЕДЕН :НИЗ) (ОБРАТЕН БЕЗПОСЛЕДЕН :НИЗ)
КРАЙ
(Скоби ге и гук са само за ясно га.)
Да проследим посредством телескопичния модел действие!о на гака
(сфннираната операция ОБРАТЕН с вход ’РА:
ОБРАТЕН "РА
АКО НИЗ (О ИЗХОД
ИЗХОД ДУМА (ПОСЛЕДЕН .НИЗ; (ОБРА1ЕН БПЛ НИЗ)
ПОСЛЕДЕН РА ОБРАТЕН БПЛ "РА
ОБРАТЕН Р
АКО.НИЗ= " IО ИЗХОД
ИЗХОДДУМА (ПОСЛЕДЕН НИЗ) (ОБРАТЕН Ы1Л ЛИЗ)
ПОСЛЕДЕН Р ОБРАТЕН БПЛ ' »
ОБРАТЕН
АКО :НИЗ=" IO ИЗХОД
ДУМА "Р
ДУМА "А р
"АР
I4S
Его още няколко примера:
ИЗВЕДИ ОБРАТЕН "КОС
ИЗВЕДИ ОБРАТЕН "БУК
• \ Б
ИЗВЕДИ ОБРАТЕН "МЕСО
ИЗВЕДИ ОБРАТЕН"КАПАК
Г MTAK
Любопытно е, че в стихотворението за деца Африканската принцеса
о г Иван Кръстев неявно се използва процедурата ОБРАТЕН:
Какви неща небивали —
тч ЛАК и АРКА иска!
Щом иска ги наистина
принцесата от Акра,
да прочете на пристана
обратно „КАЛ И А К РА".
ОДУМА «, «„(1)
(ДУМА «, az...an) (2)
Резултатът е дума, получена чрез обединяване (конкатенация) на
входовете в посочения ред.
гачи
1. Редактирайте втория вариант на операцията ОБРАТЕН, като вместо
операциите ПОСЛЕДЕН и БЕЗПОСЛЕДЕН използвате операциите
ПЪРВИ и БЕЗПЪРВИ. Опитайте се да предскажете резултата.
2. Дефинирайте процедура, с която да сё проверява дали дадена дума,
прометена обратно, е пак същата дума. Например при вход някоя от
думите: АНА, МАДАМ, ABBA, 321123, EYE, ОКО, КАПАК, резултатът
да бъде ВЯРНО. Коя е най-малката дума с гова свойство?
3. С помощта на операцията ДУМА образувайте нови думи от избрана
от вас дума.
4. С помощта на операцията ДУМА образувайте нови думи:
а) от английската дума head.,
б) от руската дума много
(Използвайте английско-български и руско-бьлтарски речник.)
5. Участвайте в игра на думи, при която печели този, който от предвари-
телно зададена дума получи чрез операциите ДУМА, ПЪРВИ, БЕЗПЪР-
ВИ, ПОСЛЕДЕН и БЕЗПОСЛЕДЕН най-много нови думи.
149
6. При играта от зад. 5 използвайте процедурите БЕЗПЪРВИТЕ и БЕЗ
ПОСЛЕДИМТЕ.
7. Потирайте мелодията:
ЗА МЕЛОДИЯ
НАПРАВИ "НОТА "Е
НАПРАВИ "ОКТАВА I
ПОВТОРИ 3 [СВИРИ.НОТА (ДУМА НОГА ОКТАВА) 2 НАПРАВИ "ОКТАВА
ОКТАВА + 1[
КРАЙ
(Процедураia СВИРИ.НОТА е част oi програмата МУЗИКА.)
8. Напишете рекурсивна процедура, при изпълнението на която компю-
търът да свири нотата ia в случайно избрана октава (пьрва, втора или
трета) и 1Я да има случайно избрана грайност между цяла, половинка,
четвъртинка, осминка и шестнайсетинка.
9. Предскажете какъв тце бьде резултагы от операция!а:
ОБРАТЕН ОБРАТЕН ’’ПЕРИМЕТЪР
10*. Редакшрайте дадената операция ОТСТРАНЕН гака, че iя да дава
каю резултаг низ, от който даден знак е отстранен ог всички места,
кьдето се среща. Например
ИЗВЕДИ ОТСТРАНЕН "А ’КАРАВАН
КРВН
Ею описанието на процедурата:
ЗА ОТСТРАНЕН :ЗН НИЗ
АКО :НИЗ = " ТО ИЗХОД ’
АКО :ЗН= ПЪРВИ НИЗ ТО ИЗХОД ОТСТРАНЕН .311 БЕЗПЪРВИ НИЗ
ИЗХОД ДУМА (ПЪРВИ :ПИЗ)(ОТСТРАНЕН :ЗН БЕЗПЪРВИ :НИЗ)
КРАЙ
11. С помощта на операциите за обработка на думи получете две ieo-
графски понятия и името на език за програмиране от думите в изрече-
нията:
Той одича фрикасе.
Мо.ичепю u.ita.io eo.ie.vtu неприятности с програмирането.
Пази я като очите си.
12. Редактирайте операцията ЗАМЯНА така, че в резултат от изньлне-
ниего й даден знак (:ЗН I) да бъде заменен с друг знак (:ЗН2) в даден низ
(:НИЗ). Например
ИЗВЕДИ ЗАМЯН,А "Е "А ГЕРЕН
1 АРАН
Описанието на процедурата изглежда така:
ЗА ЗАМЯНА :ЗН1 :ЗН2 :НИЗ
АКО НИЗ-" ТО ИЗХОД "
АКО :ЗН1= ПЪРВИ :НИЗ ТО ИЗХОД ДУМА :ЗН2 БЕЗПЪРВИ НИЗ
ИЗХОД ДУМА (ПЪРВИ :НИЗ)(ЗАМЯНА :ЗН1 :ЗН2 БЕЗПЪРВИ :НИЗ)
КРАЙ
150
13. За какво служи операцията СЕЧЕНИЕ:
ЗА СЕЧЕНИЕ :НИ31 :НИ32
АКО :НИЗ|=” ТО ИЗХОД ”
АКО ЕЛ? (ПЪРВИ :НИ31) :НИ32 ТО ИЗХОД ДУМА (ПЪРВИ НИ31) СЕЧЕНИЕ
(БПР НИ31) НИ32
ИЗХОД СЕЧЕНИЕ (БЕЗПЪРВИ :НИ31) :НИ32
КРАЙ
ЗА ЕЛ? :ЗН НИЗ
АКО :НИЗ = " ТО ИЗХОД ’’НЕВЯРНО
АКО :ЗН = ПЪРВИ :НИЗ ТО ИЗХОД ВЯРНО
ИЗХОД ЕЛ? :ЗН БЕЗПЪРВИ НИЗ
КРАЙ
Направете експсрименти, като избирате за входове низове от раз-
личии знакове.
14. За какво служи операцията ОБЕДИН:
ЗА ОБЕДИН ;НИ31 :НИ32
АКО :НИ31=” ТО ИЗХОД ПИ32
АКО ЕЛ? (ПЪРВИ :НИ31) :НИ32 ТО ИЗХОД ОБЕДИН (БПР :НИ31) :НИ32
ИЗХОД ДУМА (ПЪРВИ :НИ31)(ОБЕДИН (БЕЗПЪРВИ :11И31) :НИ32)
КРАЙ
15. Начертайте върху екрана кръгови диаграми, конто да изобразяват
обединение и сечение на две множества. (Можете да използвате и програ-
мата РЕД РИСУНКИ)
16. Думите са множества от знакове. ИлюстрираЙ1е чрез операции вьрху
думи обединение и сечение на три множества. Каква роля ще изпълнява
празната дума? (Вж. зад. 13 и 14.)
17. За какво служи операцията РАЗРЕДЕН:
ЗА РАЗРЕДЕН :НИЗ
АКО :НИЗ = ” ТО ИЗХОД ”
ИЗХОД (ДУМА ПЪРВИ НИЗ ’” ’ РАЗРЕДЕН БЕЗПЪРВИ :НИЗ)
КРАЙ
18*. Използвайте дадената процедура, за да направите компютърен ка-
лейдоскоп:
ЗА КАЛЕЙДОСКОП
ФИГУРА (ИЗБОР 4)+1
КАЛЕЙДОСКОП
КРАЙ
151
ЗА ФИГУРА :N
ЗАРЕДИКАРТ ДУМА ’’ЦВЕТЕ :N
КРАЙ
Дефинирайте процедурите ЦВЕТЕ1, ЦВЕТЕ2, ЦВЕТЕЗ и ЦВЕТЕ4
така, че с тях да се чертаят подходящи картинки. Запазете ги на дискети
под същите имена с помощта на командата ЗАПАЗИКАРТ.
19. Напишете програма, която подрежда три числа по големина.
20. Напишете операция, която да дава като резултат случайно избран
знак от дадена дума.
НаЕ1ДЬл НА ДУМИ
Вярно ли е, че мишката
следва мечката
Когато подреждаме целите положителни числа по юлемина, наричаме
тази наредба естествена. Нека а и Ь са естествени числа. Ако а < Ь, щс
казваме, че а предхожда h в естествената наредба на числата, а ако
а > h — че а следва b в тази наредба.
Буквите в една азбука също имат строго определен ред (азбучен
ред). Например а предхожда г в кирилицата, а у следва а в гръцката
азбука. Отношенията предхожда и следва ще означаваме съответно с >
и >. Можем да запишем например, че а < г, у > a. D F. Q > F.
Наредбата на буквите в латиницата съответства на наредбата на
числовите им кодове в компютъра, конто се получаваз чрез операцията
КОД, например
ИЗВЕДИ КОД ”Е
70
За да научим комики ъра да проверява дали една буква предхожда
друга буква в латиницата, ще дефинираме операцията предикат ПРЕД?
с два входа:
152
ЗА ПРЕД? :БУКВА1 :БУКВА2.
АКО КОД :БУКВА1 < КОД :БУКВА2 ИЗХОД "ВЯРНО
ИЗХОД "НЕВЯРНО
КРАЙ
Операцията предикат ПРЕД? проверява вярно ли е, че .БУКВА 1
предхожда :БУКВА2 в латиницата. Да проверим:
ИЗВЕДИ ПРЕД? "D "F’
ЦЯРПО
Аналогично се дефинира операцията предикат СЛЕД?, коя го пром*
рява дали :БУКВА1 следва :БУКВА2 в латиницата:
ЗА СЛЕД? :БУКВА1 :БУКВА2
АКО КОД :БУКВА1 > КОД БУКВА2 ИЗХОД "ВЯРНО
ИЗХОД "НЕВЯРНО
КРАЙ
Да проверим:
ИЗВЕДИ СЛЕД?"F "G‘
ill ВЯРНО
Ако отворим някой речник, ще видим, че думите също са подреденн
по строго определен начин, например в речника на думите в Лого: НА-
ДЯСНО < НАЗАД -< НАЛЯВО (Вж.Приложение 3). или STOP SAVE
>- RIGHT. (Вж. Приложение 4). Обикновено думите в речниците се под-
реждат лексикографски (азбучно). Какво означава това? Да вземем две
произволни думи и да ги означим съответно с ДУМА1 и ДУМА2. За да
। и подредим лексикографски, сравняваме най-напред първите им букви.
Ако първата буква на :ДУМА1 следва първата буква на :ДУМА2, то
:ДУМА1 следва :ДУМА2. Ако първите букви на :ДУМА1 и :ДУМА2
сьвпадат, лексикографската наредба на тези две думи съвпада с лекси-
кографската наредба на БЕЗПЪРВИ :ДУМА1 и БЕЗПЪРВИ :ДУМА2.
(Празната дума предхожда всяка друга дума.) Сега се вижда защо НА-
ДЯСНО -< НАЗАД — първите им две букви съвпадат, а Д < 3. Анало-
|ично STOP < SAVE (първите им букви съвпадат, а Т > А).
Да научим компютъра да проверява дали една дума предхожда дру-
ia:
ЗА ПРЕДХОЖДА? :ДУМА1 :ДУМА2
АКО :ДУМА1 = :ДУМА2 ТО ИЗХОД "НЕВЯРНО
АКО :ДУМА1 = " ТО ИЗХОД "ВЯРНО
АКО :ДУМА2 = ’ ТО ИЗХОД "НЕВЯРНО
АКО СЛЕД? ПЪРВИ :ДУМА1 ПЪРВИ :ДУМА2 ТО ИЗХОД "НЕВЯРНО
АКО ПРЕД? ПЪРВИ :ДУМА1 ПЪРВИ :ДУМА2 ТО ИЗХОД "ВЯРНО
ИЗХОД ПРЕДХОЖДА? БЕЗПЪРВИ :ДУМА1 БЕЗПЪРВИ :ДУМА2
КРАЙ
Да подредим няколко думи на английски:
ИЗВЕДИ ПРЕДХОЖДА? "BEATLE "MOUSE
4PHO
ИЗВЕДИ ПРЕДХОЖДА? "BEAR "BEATLE
153
Значи BEAR Ч BEATLE К MOUSE.
Ако редактираме по подходящ начин операцията предикат ПРЕД-
ХОЖДА?, можем да получим операцията предикат СЛЕДВА?, която да
проверява вярно ли е, че първата от двете входни думи следва другата.
Например
ИЗВЕДИ СЛЕДВА? "COMPUTER "COMMAND
ВЯРНО
Операциите нредикати СЛЕДВА? и ПРЕДХОЖДА? moi ат да ее из-
ползват за лекснкографската наредба само на думи на латиница, защото
наредбата на числовите кодове на буквите от кирилицата не съответства
на азбучната им наредба. Ето такъв пример:
изведи код я > код ”С
НЕВЯРНО
Буква га я следва всички букви в 6bjiiapcKaia азбука, но коды и в
компютъра е по-мальк от кода на с. Този недостатък можем да отстра-
ним, ако съпоставим на всяка буква поредния й номер в азбуката —
например на с съпоставяме 17, а на я — 30. Новата операция КОД1 ще
използва операция, която показва номера на дадена буква в дадена дума:
ЗА НОМЕР БУКВАХ ЛУМА
АКО :ДУМА = ” ТО ИЗХОД I
ЗНАКОВЕТЕ ИЗВЪН ДУМАТА ПОЛУЧАВАТ КОД = I + ДЪЛЖИНА :ДУМА
АКО БУКВА - ПЪРВИ :ДУМА ТО ИЗХОД I
ИЗХОД 1 + НОМЕР :БУКВА БЕЗПЪРВИ :ДУМА
КРАЙ
Сега да опишем КОД!:
ЗА КОД1 :БУКВА
ИЗХОД НОМЕР :БУКВА "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЬЮЯ
КРАЙ
Да проверим как работи КОДЕ
( ИЗВЕДИ КОД1 Т КОД! С КОД! "Я )
4 17 30
Ако сега заменим КОД с КОД1 в процедурите ПРЕД? и СЛЕД?,
компютърът ще може да подрежда лексикографски кои да е две думи на
български език:
ИЗВЕДИ СЛЕДВА? "МИШКА "МЕЧКА
ВЯРНО
ИЗВЕДИ ПРЕДХОЖДА? "ЯБЪЛКА "СЛИВ/Х
НЕВЯРНО
С операциите предикат СЛЕДВА? и ПРЕДХОЖДА? можем да на-
реждаме думи или само на латиница, или само на кирилипа в зависимое!
от това, дали използваме КОД или КОДЕ Когато правим азбучен пока-
залец на текст, в конто има думи и от двете азбуки, налага ни се да
подреждаме в една колона например български и английски думи. Тога-
154
на пак можем да използваме операцията КОД1, стига да я редактираме
но подходящ начин:
ЗА КОД1 :БУКВА
ИЗХОД НОМЕР :БУКВ,\ АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШ
ЩЪЬЮЯА BCDEFGHIJ К LM NOPQRSTU VWXYZ
КРАЙ
При тази редакция всяка дума на кирилица ще прсдхожда коя да е
дума на латиница. А за да можем да подреждаме произволни думи от
Лого (както това се налага с имената на процедурите в азбучния показа-
лец), трябва да включим в азбуката, която КОД1 използва, интересува-
щите ни знакове в желаната от нас наредба.
КОД л
Резултатът от операцията е цяло число, равно на поредния номер
па знака л в таблицата на знаковете.
ia ычи
I. Получете чрез редактиране на операцията предикат ПРЕДХОЖДА?
операция предикат СЛЕДВА?, която проверява дали пьрвата от двете
нходни думи следва втората.
2. Редактирайте процедурата КОД1 гака, че да бъде в сила наредбата:
КОД1 < КОД2 < КОДИРАН < ФИГ. < ФИГ? < ФИГ10 < ФИГ2.
3. Една дума (:ДУМА1) предхожда друга (:ДУМА2) в Обратная речник
(речник на римите), ако ОБРАТЕН :ДУМА1 предхожда ОБРАТЕН :ДУ-
МА2 в лексикографскага наредба. Дефинирайте нови операции предика-
। и ПРЕДХОЖДА.ОБР? и СЛЕДВА.ОБР?, с конто се проверява наредба-
ia на две думи в обратния речник.
4* . Дефинирайте операция ЗАМЯНА, в която първият парамегьр (НИЗ)
ia бъде дума , вторият (N) — да бъде естествено число, а третият (ЗН) —
шак. Резултатът от тази операция трябва да бъде думата, която се полу-
чава, като заменим А-тия знак на първия вход (:НИЗ) с третия вход
( ЗН). Например:
ИЗВЕДИ ЗАМЯНА "ТИРАН 5 "Ж?
ТИРАЖ
S* . Дефинирайте операция ВМЪКВАНЕ, в кояю първият парамстър
(НИ31) да бъде дума, вторият (N) — естествено число, а третият
(НИ32) — пак дума. Резултатът трябва да бъде думата, която се получа-
ва, като вмъкнем третия вход (:НИ32) след А-тия знак на първия вход
( НИ31). Например
155
ИЗВЕДИ ВМЪКВАНЕ "САМ 2 "ЛА
i VI ХМ
ИЗВЕДИ ВМЪКВАНЕ "КОН I "АН
КАНОН
6*. Дефинирайте операция ИЗТРИВАНЕ. в която първият иараметър е
дума (НИЗ), а вторият и третият са естествени числа (съответно М и N).
Резултатът трябва да бъде дума га, която се получава, като изтрием N
знака от първия вход (:НИЗ), считано от Л/-тия знак включигелно ната-
тък. Например
ИЗВЕДИ И31РИВАНЕ "СИЛУЕТ 2 3
СЕТ
ИЗВЕДИ ИЗТРИВАНЕ "КАРНАВАЛ 3 3
К АВАЛ
7. Използвайте операциите ВМЪКВАНЕ и ИЗТРИВАНЕ (Вж.зад. 5 и 6.).
За да получите от думата капитал дума га карнавал.
26. ДВОИЧНЫ ЧИСЛА
Сисгемата от числа, с която си служат днес почти всички народи
'с десетичната бройна система. Според някои историци една от при
L ) чините за това е, че човек има десет пръста на двете си ръце и често
ги използва, когато брои.
Както знаем, в тази система се използват 10 основни знака (цифри):
0, 1,2, 3, 4, 5, 6, 7, 8 и 9. Характерно е, че стойността на всяко число
(последователност от цифри) се определя от позицията (положението) на
всяка цифра по отношение на останалите. Например числата 901 и 109
имат различии стойности, въпреки че се състоят от едни и същи цифри.
В сила са равенствата:
901 = 9.102 + 0.101 + 1.10°
109 = 1.102 + 0.101 + 9.10°.
Да приемем, че за записване на десетични числа използваме кутийки,
иомерирани отзад напред с последователни цели неотрицателни числа.
Гогава дадените по-горе трицифрени числа може да се запищат така:
9 0 1 ,
2 1 0
1 0 9
2 1 0
Ясно е, че позицията на всяка кутийка определя с коя степей 10
грябва да се умножи намиращото се в нея едноцифрено число. (Десетич-
ната бройна система се нарича още десетична позиционна система.) Етс
1526007 = 1.106 + 5.105 + 2.104 + 6.103 + 0.102 + 0.10' + 7 10°
1 5 2 6 0 0 7
6 5 4 3 2 1 0
Цифрата нула в коя да е от кутийките означава, че гам липсва степен
на десетката.
Ако решим да използваме за броене само едната си ръка (5 пръста),
ще си служим с 5 цифри (петична бройна система): 0, 1, 2, 3 и I. С числото
10 ще означаваме „една ръка и нула пръста“, с числото 23 — „две ръце
и три пръста“ и т.н. Тъй като от записа на някои числа не става ясно
каква бройна система използваме, тя обикновено се отбелязва чрез ин-
декс: 23(5), Ю(5), 1526007(10). В петична бройна система позицията на всяка
цифра ще означава степен на 5. Например, ако искаме да запишем в
десетична система числото 14003,5), ще постъпи.м така:
157
Обратно, ако искаме да превърнем едно число от десетична в петич
на бройна система, трябва да го разделим на „петици“. Да вземем напри
мер числото 824(|0). Като имаме предвид, че 5" = I, 5' = 5, 52 = 25,
53 = 125, 54 = 625 , 5' = 3125, ясно е, че най-голямага степей на 5, коят
се съдържа в 824(К)), е 625(,О,, т.е.
824(1Я, = (1.54 + 199),|0,
Най-голямата степей на 5, която се сьдържа в 199, е 125:
824(|0) = (1.54 + 1.5’ + 74)|10,
Да продължим:
8Ч,о) = (1.54 + 1.5’ + 2.52 + 24),„„ = (1.54 + 1.5’ + 2.5’ 4- 4.5'
+ 4),|0),т.е.
824(10) = Н244(5)
Няма причини да не изполг
। 1 7_4_4 (5) ваме и двупръстна (двоична)
_______________Z____________бройна система, която ще има са
4 3 2 10 М° ДВе ЦИФРИ ~ 0 и 1. Нещо по-
_________________________________вече — тази система е особено
важна за работата на компютри
ie. Една оз причините за гова е, че двоичните цифри лесно мота г да ее
представят чрез наличие!о (1) или чрез отсъствието (0) на електрически
сигнал.
Прсвръщането на числа от двоична в десетична бройна система (и
обратно) става по същия начин както в случая на пезична бройна систе
ма.
‘0111(2, = (1 24 + 0.2’ + 1.22 + 1.2' + 1.2")((о, = (16 + 0 + 4 + 2
+ Оно, = 23(10,-
За превръщане на числа от десетична в двоична бройна система мо-
жем да използваме таблицата.
2° 2* 22 23 24 2- 26 27 28 29 ^10
1 2 4 8 16 32 64 128 256 512 1024 ...
Например да превърнем числото 29,,0, в двоична бройна система:
29(10) = (1.16 + 13)(10) = (1.24 + 1.2’ + 5)(|0) = (1.24 + 1.23 + 1.22
+ 1)(|0) = (1.24 + I.23 + 1.22 + 0.2' + 1.2°)(10, = 11101(2).
Този процес можем да изразим със следната схема:
16 Г 29 | 1 (колко
- 16
8| 13 | 1 (колко
-8
4 [3 | 1(колко
-4 ~
2 П I 0 (колко
пъти се съдържа 16 в 29)
пъти се съдържа 8 в 13)
пыи се съдържа 4 в 5)
пъти се съдържа 2 в 1)
158
о
I П I 1 (колко пъти се съдържа 1
Его таблиииге за събиране и
умножение на две двоични числа:
Разбира се, за основа на по-
игционна бройна система може
та се избере произволно естестве-
по число, по-голямо от I (дори да
не ни достигат пръсти).
в I)
+ 0 1 0 1
0 1 0 1 0 1 10 | 0 0 0 1
Разгледайте магическата таблица:
5 4 3 2 1
16 8 4 2 1
17 9 5 3 3
18 10 6 6 5
19 11 7 7 7
20 12 12 10 9
21 13 13 11 11
22 14 14 14 13
23 15 15 15 15
24 24 20 18 17
25 25 21 19 19
26 26 22 22 21
27 27 23 23 23
28 28 28 26 25
29 29 29 27 27
30 30 30 30 29
31 31 31 31 31
159
Намислете си цяло число между 1 и 31. Определете в кои стълбове на
таблицата се намира това число. Ако запишете номерата на стълбовете,
компютърът веднага ще познае намисленото от вас число. Програмата
МАГИЧЕСКА.ТАБЛИЦА, която той използва, се намира във файл със
същото име. Изпълнете я. На екрана ще се появи дадената таблица.
Например, ако сте намислили числото 14, на сьобщението
може да отговорите
2 3 4
Компюгърът съобщава:
Ако искате да продължите, огговорете с ДА. Номерата на стълбове-
ге се задават в произволен ред. Например, ако сте си избрали числото
22, на съобгцелието:
iO HI Д| 1 HI I II ч > I ». il.OHt II
може да отговорите
5 2 3
Компютърът съобщава:
За да разберете тайната на таблицата, превьрнете всяко намислено
oi вас число в двоична позиционна система.
Сега ще се запознаем с друга игра — вариант на ним. Дадени са
и реда клечки. Двама играли вземат последователно произволен брой
tore тки, но само от един ред. Победител е този, който вземе последната
клечка. Компютърът отново може да бъде ваш партньор.
За да побеждавате, трябва да изберете тактика, която се различава
о г печелившата тактика в познатия ви вече вариант на ним. Вместо деле-
ние с остатък тук може да използвате двоични числа. За тази цел запише-
те броя на клечките във вески ред в двоична система. Ако сумите от
гифрите във всеки стълб (разряд) е четно число (0 или 2), позицията е
печсливша за този, който последен е направил ход. Ако ноне в един раз-
ряд сумата е нечетно число (1 или 3), позицията е печеливша за този,
който е на ред. За да играе правилно, играчът, който е на ред, трябва да
направи четна сумата във всеки разряд. Например, ако клечките в трите
реда са съответно 3, 4 и 5, получаваме:
II
100
+
101
212
100
За да превърне позицията в печеливша за себе си, играчът, който е
и.। ход, трябва да направи четна сумата във втори разряд, т.е. да вземе
inc клечки от първия ред. В това, че получсната позиция е печеливша,
можете да се убедите и сами.
За да превръщате бързо десетични числа в двоични, можете да из-
иолзвате и магическата таблица.
Играта започва, като зададете командата:
ЗАРЕДИ "НОВ.НИМ
нов.ним
I. Преведсчс в двоична гюзиционна система числата от I до 31.
2. Ако вече сте разбрали тайната на магическата таблица, разделете се
по двойки. Единият да съобщава стълбовете. в конто се намира намисле-
иото от него число, а другият да го познава.
3, Магическата таблица може да се разглежда като част от по-голяма
таблица. Лесно те откриете новите редове и стълбове, ако по време на
трата задавате номера на стълбове, по-големи от 5 Например
ВЪВЕДЕТЕ НОМЕРАТА НА СТЪЛБОВЕТЕ:
6
ДА
6 5 4 3 2 1
Направеге таблица, по която компюгърът ще може да познава на-
мислени о г вас числа между 1 и 63.
4*. Дадена е редицата: ПО. 20. 12, 11, 10. Можете ли да я продължите,
като при това залазите съществуващата закономерност?
5. Извършете пресмятанията:
261(7( + 365,7, = ?
2120,,, 122,.,, = ?
838,„, 603,о, = ?
312,4, : 21и, - ?
32,4, + 56,,, = ?
26, „, !011г, = ?
44,5| 83(9) - ?
ft. Опишете словесно алгоригьм, по койю да се проверява дали в даден
пзраз кръглите скоби са поставени правилно. Например в следния израз:
((</ . (а + h} — с) . d скобите не са поставени правилно — липсва една
1ясна скоба.
7. С помощта на операцията ЗАМЯНА (Вж зад. 4, тема 25.) получете
о г думата думата слон. Имате право да замествате само по една
II Информатика за начинаещи час г II
161
буква, а останалите букви могат да менят местата си. Необходимо с
всяка новополучена дума да има значение. Например сто как роза може
да се превърне в зима:
роза-риза -рима-зима
Победител е този, който получи най-къса верига от думи.
8. За какво служи дадената операция РАЗБЪРКВАНЕ?
ЗА РАЗБЪРКВАНЕ :НИЗ
ИЗХОД РАЗЕ :НИЗ
КРАЙ
ЗА РАЗЕ :НИ31 :НИ32
АКО НИЗ = ” ТО ИЗХОД НИ32
АКО (ИЗБОР 2) = О ТО ИЗХОД РАЗЕ (БЕЗПЪРВИ .НИ31) (ДУМА (ПЪРВИ
:Н1131) :НИ32)
ИЗХОД РАЗЕ (БЕЗПЪРВИ :НИ31) (ДУМА :НИ32 (ПЪРВИ :НИ31))
КРАЙ
Опишете словесно нейния алгоритъм.
9. Опишете словесно алгоритъма на дадената процедура ПОДРЕЖДА-
НЕ, с която цифрите на входното число се подреждат по големина.
ЗА ПОДРЕЖДАНЕ :ЧИСЛО
АКО :ЧИСЛО =” ТО ИЗХОД "
АКО БЕЗПЪРВИ ЧИСЛО = ’’ ТО ИЗХОД ЧИСЛО
ИЗХОД ВМЪКВАНЕ ПЪРВИ :ЧИСЛО ПОДРЕЖДАНЕ БЕЗПЪРВИ :ЧИСЛО
КРАЙ
ЗА ВМЪКВАНЕ :ЦИФРА :ЧИСЛО
АКО :ЦИФРА < ПЪРВИ :ЧИСЛО ТО ИЗХОД ДУМА ЦИФРА :ЧИСЛО
АКО НЕ :ЦИФРА < ПОСЛЕДЕН :ЧИСЛО ТО ИЗХОД ДУМА :ЧИСЛО :ЦИФРЛ
ИЗХОД ДУМА (ПЪРВИ :ЧИСЛО) (ВМЪКВАНЕ :ЦИФРА БЕЗПЪРВИ :ЧИСЛ(»
КРАЙ
Изпълнете вместо компютъра действието на тази процедура при
вход 73204.
162
27. КОДИРАНК
НА ИНФОРМАЦИЯ
Есперанто за компютри
Когато казваме на компютъра нещо на езика Лого, информацията ав-
томатично се превежда (кодира) на машинен език. Обратно, когато ком-
пютърът ни съобщава негцо, информацията автоматично се превежда
(декодира) от машинен на разбираем за нас език.
Макар всички компютри да използват азбука от два знака — 0 и 1,
техните машинни езици може да се различават. Това значи, че е възмож-
но различии компютри да разбират една и съща двоична дума по разли-
чен начин. Стремежът на специалистите днес е да създадат езици за про-
грамиране. конто да бъдат разбираеми за всички компютри, т.е. да бъ-
дат нещо като Есперанто за компютри. Такива езици са Алгол, Фортран,
Бейсик, ПЛЦ, Паскал, Ада, Пролог, Лого.
Както вече се убедихте, числовият код на даден знак се получава
чрез операцията КОД. Например
ИЗВЕДИ КОД "А
Тук 65 е числовият код на латинската буква А, записан в десетична
позиционна система. В действителност компютърът работи с двоичния
код на този знак, който е 1000001.
Интересно е, че буквата А от кирилицата има друг числов код:
ИЗВЕДИ КОД ’А
97
Двоичният код на А от кирилицата е 1100001, т.е. числото 97, пре-
върнато в двоична система.
Обикновено компютрите използват двоични думи с еднаква дължи-
на Много микрокомпютри работят с двоични думи, дълги осем знака.
До кодиране на информация прибягваме най-често в два случая:
— когато се стремим да я направим достъпна (в нашия случай — за
компютъра);
— когато искаме да я направим недостъпна за всички освен за тесен
кръг избрани от нас хора. (Разбира се, за да декодираме някакво съобще-
163
ние в този случай, без да знаем ключа за декодиране, трябва да сме
съобразителни почти като Шерлок Холмс...)
За кодиране и за декодиране на секретни съобщения може да се из-
ползва и Лого:
ЗА КОДИРАН :ТЕКСТ
АКО :ТЕКСТ” ТО ИЗХОД "
ИЗХОД ДУМА (НОВ.ЗНАК ПЪРВИ :ТЕКСТ ((КОДИРАН БЕЗПЪРВИ ТЕКСТ)
КРАЙ
ЗА НОВ.ЗНАК :ЗН
ИЗХОД ЗНАК ((КОД :ЗН) 7)
КРАЙ
ЗА ДЕКОДИРАН -.ТЕКСТ
АКО :ТЕКСТ =- " ТО ИЗХОД "
ИЗХОД ДУМА (СТАР.ЗНАК ПЬРВИ :ТЕКСТ) (ДЕКОДИРУЙ БЕЗПЪРВИ
:ТЕКСТ)
КРАЙ
ЗА СТАР.ЗНАК :ЗН
ИЗХОД ЗНАК ((КОД :ЗН) 3 7)
КРАЙ
Операцията ЗНАК изисква един вход число. Резул чагьг оч изччъл-
нението й е знакът, чийто числов код е равен на това число.
Посредством операцията КОДИРАН числовият код на знаковете от
даден текст се намалява със седем, а чрез операцията ДЕКОДИРАН из-
мененият числов код на знаковете се възстановява. Да кодираме изрече-
нието Ела във вторник непременно.
ИЗВЕДИ КОДИРАН ”ЕЛА
ИЗВЕДИ КОДИРАН 'ВЪВ
ИЗВЕДИ КОДИРАН "ВТОРНИК
ИЗВЕДИ КОДИРАН "НЕПРЕМЕННО
Получаваме кодирания текст: 4EZ ПРП ПМХКГБД
ГЧИКЧФЧГГХ
Съобщението може да се вьзстанови така:
ИЗВЕДИ ДЕКОДИРАН "4EZ
ИЗВЕДИ ДЕКОДИРАН "ПРП
ИЗВЕДИ ДЕКОДИРАН "ПМХКГБД
ИЗВЕДИ ДЕКОДИРАН "ГЧИКЧФЧГТ'Х
В досегашната си работа ние често извършвахме кодиране и декоди-
ране. Например при работа с програмата МУЗИКА (Вж. „Информатика
164
за начинаещи, част Г‘.) кодираме нотата до в първа октава с думата CI,
нотата сол — във втора октава с G2 и т.н. Когато създадохме операцията
КОД1 (Вж. тема 25.), ние всъщност въведохме ново кодиране на буквите,
което се различава от това, с което обикновено работи компютърът:
АБВГДЕ ЖЗ ИЙКЛМНОПР СТУФХЦЧШЩЪЬЮЯ
12 3 4 5 6 7 8 9 10 II 12 13 14 15 16 17 18 19 202122 23 24 25 26 27 28 29 30
Друг начин за кодиране е този, при който явно въвеждаме някакво
сьответствие между буквите о г азбуката (шифър). Например:
АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЬЮЯ
ЗЧАЮХЖЙКЕДСОУЛИРШГНМЩБПВЦЯФЪТЬ
За да можем да кодираме и да декодираме текстове, като използва-
ме горного съответствие, освен глобалната променлива АЗБУКА ще въ-
ведем и глобалнага променлива ШИФЪР:
НАПРАВИ "АЗБУКА "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЬЮЯ
НАПРАВИ "ШИФЪР ЗЧАЮХЖЙКЕДСОУЛИРШГНМЩБПВЦЯФЪТЬ
Ei о как може да се дефинират операциите за кодиране и за декоди-
ране (шифриране и дешифриране):
ЗА ШИФРИРАН ;ТЕКСТ
АКО :ТЕКСТ= " ТО ИЗХОД "
ИЗХОД ДУМА (НОВ.ЗН ПЪРВИ :ТЕКСТ) (ШИФРИРАН БЕЗПЪРВИ :ТЕКСТ)
КРАЙ
ЗА НОВ.ЗН :ЗН
ИЗХОД ЕЛЕМЕНТ (НОМЕР :ЗН :АЗБУКА) :ШИФЪР
КРАЙ
ЗА ДЕШИФРИРАН :ТЕКСТ
АКО ТЕКСТ = " ТО ИЗХОД ”
ИЗХОД ДУМА (СТАР.ЗН ПЪРВИ ТЕКСТ) (ДЕШИФРИРАН БЕЗПЪРВИ
ТЕКСТ)
КРАЙ
ЗА СТАР.ЗН :ЗН
ИЗХОД ЕЛЕМЕНТ (НОМЕР :ЗН :ШИФЪР) .АЗБУКА
КРАЙ
Вече знаем как се дефинира операцията НОМЕР. (Вж. тема 25.) Не-
известна е само операцията ЕЛЕМЕНТ. Да я дефинираме:
ЗА ЕЛЕМЕНТ :НОМЕР :ДУМА
АКО :НОМЕР=1 ТО ИЗХОД ПЪРВИ :ДУМА
ИЗХОД ЕЛЕМЕНТ .НОМЕР - 1 БЕЗПЪРВИ :ДУМА
КРАЙ
С помощта на операцията ШИФРИРАН съобщението Ела във втор-
ник ще се кодира така:
ЖОЗ АФА АНИШЛЕС
Ето още едно кодирано съобщение:
ИНОЕВЛИ НЕ МГРЬ
165
ЗНАК л
Резултатът от операцията е знакът, чийто код е равен на стойността
на и зраза п.
1. Редактирайте операциите КОДИРАН и ДЕКОДИРАН, като въведете
втори параметър, с който да се задава измествансто на числовия код.
2. Ако по невнимание сте кодирали някакъв текст с операцията ДЕКО-
ДИРАН, как ще го декодирате? Дайте примери.
3. В дадения по-долу музикален фрагмент велик композитор е кодирал
името си. Можете ли да познаете кой е той?
4. Редактирайте операцията КОДИРАН, като задавате изместването сьс
случайно избрано число в интервала [—10, 10]. Може ли да се декодира
текст, кодиран с този вариант на операцията КОДИРАН?
5. Използвайте операциите ШИФРИРАН и ДЕШИФРИРАН, като въве-
дете собствен шифър.
6. По какъв начин се кодират текстове с помощта на операцията ЦИ-
къл?
ЗА ЦИКЪЛ :ТЕКСТ
АКО ТЕКСТ = ТО ИЗХОД ’
НАПРАВИ "ЗНАК ПЪРВИ ТЕКСТ
НАПРАВИ "НОМ (НОМЕР ЗНАК :АЗБУКА)+15
НАПРАВИ "ЗНАК ЕЛЕМЕНТ :НОМ :АЗБУКА
ИЗХОД ДУМА ЗНАК ЦИКЪЛ БЕЗПЪРВИ :ТЕКСТ
КРАЙ
7. Напишете операция за декодиране на текстове, кодирани с операцията
ЦИКЪЛ. (Вж. зад. 6.)
8. Използвайте операциите ШИФРИРАН и ДЕШИФРИРАН, за да коди-
рате текстове, конто съдържат букви от кирилицата и от латиницата.
9. В един разказ Шерлок Холмс разгадава код, в който буквите са коди-
рани с определени пози на танцуващо човече. Ето кодовете на някои
букви:
166
Y УI л Л Г S А
A G М R В Н N S
YJrtYXAYY
I) I- О 1 Ь L В Y
Декодирайте дадения текст:
IX X
10. Ьдно сьобщсние, кодирано oi Шерлок Холмс с кода танцуващо чове-
че (Вж. чад. 9). ira юж (а гака:
Знамеицага сл>жа1 sa рачделшели на думшс. Декодирайге юва сь-
общение, въпреки че в него има непознат знак. Илюстрирайтс част от
текста с анимация.
167
ПР11.’1ОЖгН*.1Я
1. КОМАНДИ И ОПЕРАЦИИ
В настоящего приложение е дадени пълно описание на възможности
те на езика Лого, поради което в пълния си обем то е предназначено
предимно за хора с известен опит в програмирането. Това приложение
ще помогне на любознателните читатели да прочетат и да разбора г про-
грамите, дадени в Приложение 5. Командите и операциите, конто са раз
<ледани в изложение™, са с по-тьмен шрифт.
1. РАБОТА В ГРАФИ ЧЕН РЕЖИМ
АБСЦ
Дава като резултат абсцисата на точката, в която се намира костенур-
ката.
АЗИМУТ
Дава като резултат ъгъла, на който е завъргяна костенурката спрямо
посоката север. Резултатът се измерва в градуси и се отчита по посока
на часовниковата стрелка.
БЕЗЧЕРТЕЖ/БЧ
Изтрива се начертаното, без да ее нроменя положенного на косгенур
ката.
вдигни/вд
Костенурказа се нодгозвя за движение без следа (вдига молива).
ГРАФИКА
Компютърът преминава в i рафичен режим и екранът се изчиства. Кс
тенурката заема начално положение в центъра на екрана.
ГРАФИЧЕН
Компютърът преминава в графичен режим — за графика може да
използва целият екран. (Същият ефект се получава,ако натиснем [м к]
ДО л >
Костенурката се придвижва до точката (л, г).
ДОАБСЦ л
Костенурката се придвижва хоризонтално до точката с абсциса х.
ДООРД >
Костенурката се придвижва вертикално до точката с ордината j.
КЪМ .V.(
Дава като резултат ъгъла между посоката север и посоката, в която
168
костенурката трябва да се обърне, за да се насочи към точката (<, у)
Ъгълът се отчита по посока на часовниковата стрелка.
МОЛИВ/МЛ п
Костенурката взема молив с цвят п. Стойности на и:
О — черен
1 — бял
2 — зелен
3 — виолетов
4 — червей
5 — син
6 — обра ен на цвета на екрана
НАДЯСНО/НД d
Костенурката се завърта надясно на d градуса.
НАЛЯВО/НЛ d
Костенурката се завърта наляво на d градуса.
НАПРЕД/НП л.НАЗАД/НЗл
Костенурката се придвижва п стъпки напред (назад).
ОБЪРНИ d
Костенурката се обрыца в посока, която сключва ъгъл d градуса с
посоката север (ъгълът се отчита по посока на движението на часовнико-
вата стрелка).
ОГРАДИ
Предизвиква предупреднтелно съобщение всеки път, когато костенур-
ката стигне до края на екрана.Командите, след изпълнение на конто кос-
тенурката би излязла извън екрана, не се изпълняват.
ОРД
Дава каго резултат ордината га на точката, в която се намира косте-
нурката.
ОСВОБОДИ
Отменя действие го на командата ОГРАДИ.
ПОКАЖИ/ПК
Костенурката се показва на екрана.
РАЗМЕР п
Установява се съотношение п между дължините на единичните отсеч-
ки по вертикалната и хоризонталната ос. При зареждане на системата
п е равно на 0,8.
СКРИЙ/СК
Костенурката изчезва от екрана, но продължава да изпълнява коман-
дите за чертане.
СМЕСЕЙ
Компютърът преминава в графичен режим. Четири реда от екрана се
169
отделят за текст, а останалата част — за графика. (Същият сфект се
получава, ако натиснсм| м к |—fc~].)
СПУСНИ/СП
Костенурката спуска молива.
СЪСТОЯНИЕ
Дава като резултат списък от чегири стойности, конто са отговори на
въпросите:
а) вдигнат ли е моливы на коыенурката? (ВЯРНО ако е спуснат,
НЕВЯРНО — ако е вдигнат);
б) видима ли е костенурката (ВЯРНО — ако е видима, НЕВЯРНО —
ако с невидима),
в) какъв е цветы на фона? (О—6);
г) какъв е цветът на молива? (О—6).
ТЕКСТ
Компютърът преминава в команден режим.Екранът се изчиства и кур-
соры застава в горния му ляв ъгъл.Съдържанието на графичния и на
текстовия екран се изтрица от паметта на компютьра.
ТЕКСТОВ
На екрана се показва гекстовият екра^ Ефектът е същият,ако натис-
нем
|м к] — Гт].
ФОН п
Фоны се оцвстява в цвят с номер п.
ЦЕНТЪР
Костенурката се премества в ценгъра на екрана и се завърта на север.
Ако моливът на костенурката е спуснат, на екрана остава следа.
II. ОПЕРАЦИИ С ЧИСЛА
«I + "2
Дава като резултат сумата от стойностите на изразите at и а2.
Дава като резултат разликата от стойностите на изразите at и а2.
а,*“2
Дава като резултат произведението от стойностите на изразите а, и
а2.
aja2
Дава като резултат частного на изразите и а2.
ах<а2
Дава като резултаг ВЯРНО, ако стойността на израза а, е по-малка
от стойността на израза а2. В противен случай резултатът е НЕВЯРНО.
170
I/, cb
Дава като резултат ВЯРНО, ако стойността на израза а, е равна на
11 ойността на израза а2. В противен случай резултатът е НЕВЯРНО.
Дава като резултат ВЯРНО, ако стойността на израза а, е по-голяма
от стойността на израза а2. В противен случай резултатът е НЕВЯРНО.
I КК'РЪГЛЕНО п
Резултатът е цяло число, получено след закръгляване на стойността
на израза п.
1ВБОР п
Резултатът е случайно число в интервала [0, и—1].
КОРЕШя
Резултатът е v п.
ОС ТАТЪК я т
Резултатът от операцията е остатъкъг,който се получава при деление-
। о на п и т. Ако стойностите на и и т не са цели числа,те се закръгляват
преди изпълнението на операцията.
ЦЯЛО п
Резултатьг от операцията е цялата част от стойността на израза п.
ЧАСТНО п in
Резултатът от операцията е цялата част от делението на л и т. Ако
п и т не са цели числа, преди делението те се закръгляват.
ЧИСЛО? />
Служи за проверка дали стойността на р е число. Резултатът е думата
ВЯРНО, ако стойността на р е число и НЕВЯРНО — в противен случай.
\TAN п т
Резултатът е arctg п/т (в градуси).
< OS </
Резултатът е cos d.
six </
Резултатьг е sin d.
III. РАБОТА С ПРОМЕНЛИВИ
НАПРАВИ г е
На променливата v се присвоява стойността на израза е.
СТОЙНОСТ V
Резултат ьт е стойността на променливата с име у, ако има такава. В
противен случай се получава съобщение за грешка.
171
стойност? >
Служи за проверка дали е дефинирана променлива с име у. Резултагы
е думата ВЯРНО, ако променливата v е вече дефинирана. В противен
случай резултатът е думата НЕВЯРНО.
IV. ДЕФИНИРАНЕ И РЕДАКТИРАНЕ НА ПРОЦЕДУРИ
За и
Указва начало на процедура. Компютърът преминава в процедурен
режим.
ИЗХОД и
рекрагява се изпълнението на операцията, в описание!о на която се
среща тази команда. Резултатът (изходът) от операцията е стойността
на израза п.
КРАЙ '
Указва край на процедура (тази команда трябва да заема последний
програмен ред във всяка процедура).
ОПИСАНИЕ и
Резултатът от операцита е:
— празният списък, ако няма процедура, името на която е стойността
на израза и"
— списък, първият елемент на който е списък от входовете на проце-
дурата също във вид на списък.
ОПИШИ и Р
Служи за описание на процедура с име iv, тялото на която е определе-
но от стойността на израза р.
РЕДАКТИРАЙ/РД (1)
РЕДАКТИРАЙ w (2)
РЕДАКТИРАЙ ИМЕНА (3)
РЕДАКТИРАЙ ПРОЦЕДУРИ (4)
РЕДАКТИРАЙ ВСИЧКО (5)
При формат (1) на екрана се извежда тексты на процедурата, която
е редактирана последна. В него могат да се внасят изменения.
Форма! (2) дава възможност за редактиране на конкретна процедура.
Ако и’ е име на вече дефинирана процедура, на екрана се извежда тексты
й. Ако в памет та на компютъра все още няма процедура с посоченото
име, действие! о на команда!а съвпада с действието на командата ЗА.
Формат (3) дава възможност за промени в информацията за промен-
ливите, запазени в работната памет.
Формат (4) дава възможност за редактиране на всички процедури,
записани в работната памет.
172
Формат (5) дава възможност за редактиране на цялого съдържание
на работната памет — променливи и процедури.
V. ЛОГИЧЕСКИ КОМАНДИ И КОМАНДИ ЗА УПРАВЛЕНИЕ
АКО р ТО i, i2 ... (, (1)
АКО р ТО i, i2 ... ik ИНАЧЕ /, /, ... h (2)
Ако стойността на израза р е ВЯРНО.се изпълнява последователност-
ia от команди след думата ТО. В противен случай се изпълнява:
— при формат (1) — следващата команда;
— при формат (2) — последователността от команди, записан лед
думата ИНАЧЕ, и едва тогава — следващата команда.
ЧКОВЯРНО/АВ », ь /,
Проверява се стойността, запомнена при изпълнение на последната
команда ПРОБЕРИ. Ако тази стойност е ВЯРНО, изпълнява се послсдо-
вателността от команди /, о z, ... ik, а ако е НЕВЯРНО — следващата
команда
АКОНЕВЯРНО/АНВ /, /, . I,
Проверява се стойността,запомнена в резульп да изпълнение на по-
следната команда ПРОБЕРИ. Ако тази стойност е НЕВЯРНО, изпълня-
ва се последователността от команди it i2 i3 ... z*. В противен случай се
изпълнява следващата команда.
ВСИЧКИ р, р, (1)
(ВСИЧКИ р, р2 ... р„) (2)
Логическата операция ВСИЧКИ дава като резултат ВЯРНО, ако все-
ки от логическите изрази р, има стойност ВЯРНО.
ИЗВИКАЙ а г
Привежда в изпълнение процедура на машинсн език, разположена в
наметта от адреса а; г е параметър.
ИЗПЪЛНИл
Изпълнява се списъкът от команди 5. Аналогичен резултат дава изпъл-
нението на тези команди в команден режим.
НЕ р
Резултатът от операцията е ВЯРНО, ако логический! израз р има
стойност НЕВЯРНО. В противен случай резулта гът от операцията е НЕ-
ВЯРНО.
НЕСЛЕДИ
Прекратява действието на командата СЛЕДИ — вьзстановява нор-
малния режим на работа на системата.
173
НЯКОЕОТ />,/>, (I)
(НЯКОЕОТ р, р, ... р„) (2)
Логическата операция НЯКОЕОТ дава като резултат ВЯРНО, ако
ноне един от логическите изрази р, има стойност ВЯРНО. В противен
случай резултатът от операцията е НЕВЯРНО.
ПАУЗА
Временно се прекратява изпълнението на текущата процедура.Ком-
пютърът преминава в команден режим (но вместо ? на екрана се появява
L?). Това позволява да се изпълнят команди с цел да се изясни поведе-
нието на програмата.Изпълнението се възобновява от мястото на пре-
кьеването с командата ПРОДЪЛЖИ.
Забележка: По време на изпълнение на програмата ефектът на ко-
мандата ПАУЗА може да се постигнс и ако се натисне ] М К | [~3~~].
ПОВТОРИ А /
Списъкът от команди /, където i — е от вида [», й ...], се изпълнява
к пъти.
ПРОВЕРИ р
Компютърът запомня стойността на логическия израз р (вж. команди-
те АКОВЯРНО и АКОНЕВЯРНО).
ПРОДЪЛЖИ/ПР
Възобновява изпълнението на програма, прекъсната с командата
ПАУЗА или с клавишите) мк |—| 3 |.
СЛЕДВА е
Изпълнява се инструкцията, отбелязана с стикет е.
СЛЕДИ
Системата преминава в режим на работа,при който вески ред от из-
пълняваната процедура се извежда на екрана и се изпълнява едва след
като се натисне кой да е клавиш.
стоп
Прекратява се изпълнението само на програмата, която работа в мо-
мента. Управление™ се предава на извикващата процедура.
ФИНАЛ
Прекратява се изпълнението на всички процедури и системата преми-
нава в команден режим.
174
VI РАБОТА С ФАЙЛОВЕ И УПРАВЛЕНИЕ НА РАБОТНАТА
ПАМЕТ
I.EJ •
Промен.шваia л се нзлрива ол работала памел и нейнала слойност
с шва недоельнна.
ЗАЬРАВИ и (1)
ЗАЬРАВИ ИМЕНА (2)
ЗАЬРАВИ ПРОЦЕДУРИ (3)
ЗАЬРАВИ ВСИЧКО (4)
Формат (I): от работната намел ее изгрива процедурам с имея». Формат
(2): от работната памег ее изтриват всички променливи. Формат (3): от
работната намет се изтриват всички процедури. Формат (4): от работна-
ia памел се изтриват всички променливи и процедури.
ДОС ,v
Осьществява врьзкала между системата Лого и дисковата опсрацион-
на система. Изпълнява се списъкът от команди з. Разрешени са команди-
ге: BLOAD, BSAVE, DELETE, BRUN, LOCK, UNLOCK, RENAME,
CATALOG.
ЗАГЛАВИЯ
На екрана се извеждал именам на процедурите, който се иамират в
работната памел.
ЗАПАЗИ и
Съдържанието на работала памет се запазва вьв лрайла и-.
ЗАИАЗИКАРТ и
Картината на екрана се запазва във файл с име и
ЗАРЕДИ и
Зарежда се файл с име и.
ЗАРЕДИКАРТ и
Зарежда се картина, която се пази вьв файла в.
И31РИЙ и
Служи за изтриване на лексгов файл. Името на файла се изгрива от
каталога на дискетата, след което информацията вьв файла става недо-
стылна.
ИЗТРИЙКАРТ и
Служи за излриване на лралричен файл. Имело на файла се изгрива
от справочника на дискетам, след което файльт слава недостъпен за по-
требителя.
175
КАТАЛОГ
На екрана се извежда списъкът на файловете.
ОIНОВО
Изтрива се съдържанието на работната памет.
ОТПЕЧАТАЙ/ОТП (I)
ОТПЕЧАТАЙ и (2)
ОТПЕЧАТАЙ ПРОЦЕДУРИ (3)
ОТПЕЧАТАЙ ИМЕНА (4)
ОТПЕЧАТАЙ ВСИЧКО (5)
Извеждат се сведения за сьдьржанието на работната памет. Формат
(I): извежда се гекстът на процедурата, която с дсфинирана последна.
Формат (2): извежда се текстът на процедура с име iv. Формат (3): извеж-
да се гекстът на всички процедури, дефипициите на конто се намират в
работната памет. Формат (4): извеждат се имената и стойностите на
всички променливи. конто се намират в работната памет.
Формат (5): извежда се цялото съдържание на работната памет (дефини-
циите на всички променливи и процедури).
ПАМЕТ
Извежда се информация за обсма на свободна та работа памет (във
вьзли).
сгьсти
Сгъстява се сьдьржанието на работната памет, след което може да се
използва останалата свободна памет.
VII. КОМАНДИ ЗА ВХОД И ИЗХОД
БАЙТ п
Резултатът от операцията е съдържанието на клетка (един байт) от
памстта с адрес л.
БЕЗТЕКСТ
Изчиства текстовия екран на компютъра. Курсорът се установява в
горния ляв ыьл на екрана.
вход
Компютърът очаква да се въведе текст от клавиатурата. Резултатът от
операцията е въведеният ред във вид на списък.
входим
Компютърът очаква да се натисне клавиш. Резултатът е знакът върху
натиснатия клавиш.
входзн?
Резултатът от операцията с думата ВЯРНО, ако входният буфер не е
176
празен, и НЕВЯРНО в противен случай. Съдържанието на буфера нс се
нроменя.
шведи/изв е (1)
(ИЗВЕДИ е, ... е,)(2)
На екрана се извежда стойността на израза е (или на изразите с,..... е„,
с интервал между тях). Курсорът се премества в началото на слсдвашия
ред.
ИЗВЕЖДАЙ с (I)
(ИЗВЕЖДАЙ е. ... е„) (2)
На екрана се извежда стойност га на израза е (или стойността на израз-
ите е„ без интервал между тях). Курсорът остава на сыция ред.
КУРСОР к г
Екранът се разглежда като таблица с 24 реда и 40 стълба. Курсорът
се установява в колона с номер к и ред с номер г.
МОНИТОР
Прекъсва работата на системата Лого и управлението се предава на
npoi рамата-монитор.
новвход
Изтрива съдържанието на входния буфер. (В буфера се внася инфор-
мация при изпълненис на операциите ВХОД и ВХОДЗН.)
СЛОЖИ т п
Записва стойността на п в клетка (един байт) от паметта с адрес т.
УСТРОЙСТВО п
След тази команда изходът (извежданата информация) се изпраща
към указаното устройство.Екранът на компютъра има номер 0. печата-
щото устройство — номер I.
;ТЕКСТ
Текстът след ; до края на реда е коментар.
VHI.OBPAEOTKA НА ДУМИ И СПИСЪЦИ
БЕЗПОСЛЕДЕН/БПЛ з
Ако стойността на .г е дума, резултатът е дума, която съдържа всички
«наци на з без последния, а ако е списък — резултатът е списък, който
съдържа всички елементи на з без последния.
ЬЕЗИЪРВИ/БПР з
Ако стойността на з е дума, резултатът е дума, която съдържа всички
знаци на з без първия, а ако е списък — резултатът е списък, който съдър-
жа всички елементи на з без първия.
12. Информатика за начинавши — част II
177
ДУМА а, а2 (1)
(ДУМА «| w2(2)
Резултатът е дума, получена чрез обединяпапе (конкатенация) на входо-
вете в указания ред.
ДУМА? а
Резултатът е думата ВЯРНО, ако входы а е дума. В противен случай
резултатът е думата НЕВЯРНО.
ЗНАК п
Резултатът от операцията е знакът, чийто код е равен на стойността
на израза п.
КОД S
Резултатът от операцията е цяло число, равно на поредния номер на
знака з в таблицата на символите (съвпада с кода ASCII на знака з, ако
з не е буква от кирилината).
ОБЕДИНЕНИЕ/ОБД и, а. (I)
ОБЕДИНЕНИЕ «, о, о, (2)
Резултатът е списък, който се получава чрез обединяване на елементите
ца входовете (ако те са списъци) или има действието на операцията
СПИСЪК (ако л* са думи).
ОТЗАД л, ъ
Резултатът е списък, в който след елементите на списька s2 е добавен
входът з, (дума или списък).
ОТПРЕД V, V,
Резултатът е списък, в който пред елементите на списъка s2 е добавен
входът з, (дума или списък).
ПОСЛЕДЕН v
Резултатът от операцията е последният елемент на входа з, където з
може да бъде дума или списък.
ПЪРВИ А-
Резултатът от операцията е първият елемент на входа з, където з може
да бъде дума или списък.
СПИСЪК ч,а2 (I)
СПИСЪК «, ч2 ... </„) (2)
Резултатът е списък, елементите на който са входовете (думи или спи
сьци) в указания ред.
списък а
Резултатът е думата ВЯРНО, ако входът з е списък. В противен случай
резултатът с думата НЕВЯРНО.
178
2. УПРАВЛЯВАЩИ КЛАВИШИ
| К И Р | смени регистрите на клавиатурата.
| R Е т И R NI— означава край на npoi рамен ред. (В един програмен ред
може да се запищат една или повечс команди.) В команден режим теку-
щий i tipot рамен ред се изпълнява незабавно.
I М К | в комбинация с други клавиши задава унравляващи символи,
както следва:
I М К | [ а | нремества курсора в началото на техушия програмен ред;
|м К| [~б~| в процедурен режим премесгва курсора с 24 реда (един екран)
на юре;
| М К |—[в] нрекъсва временно извежданего на текста на екрана. При по-
bi орно натпекане на | М К|—| в"|извеждането на текста продължава. Из-
ползва се обикновено при извеждане на текст, по-дьлъг от 24 реда (един
екран);
Iм К1 И нрекразява изпълнението на последнага въведена команда.В
процедурен режим нрекъсва редактиране!о. като въвсденият текст не се
ишомня;
[м к| |7Г изтрива знака.върху конто се намира курсоры .Тексты вдясно
о г курсора се нремест ва с една позиция наляво;
|м к | | е j нремества курсора в края на гекушия програмен ред;
|м к| Гз~1 нреустановява изпълнението на работещага в момента процеду-
ра. Преди да се вьзобнови изпълнението й (с помощта на командата
ПРОДЪЛЖИ). може да се изпълнят произволен брой команди;
[ М К | рк~] имрива текста oi текушага позиция на курсора (включително)
до края на програ.мния ред:
|м К| [~гГ| в процедурен режим рашолата текста на екрана така.че реды,
в който е курсоры, да се намира в среда!а на екрана;
| М К । [н~| в процедурен режим премесгва курсорас един upoi рамен ред
надолу;
IМ К ] | О | в процедурен режим в.мьква нов ред.койю започва oi текучцо-
то положение на курсора;
|~М к] | п | в команден режим вьзетаиовява на екрана последний въведен
179
iipoi рамен ред. (Изключение правя г командное ПОВТОРИ. ИЗПЪЛНИ
и комаидите за вход,'изход.) В процедурен режим премества курсора с
един прот рамен ред нагоре;
[ М к |—[с] в графичен режим показва смесен екран.в който четири реда
еа огделеии за текст, а останадите за графика;
| М К | |~т] в графичен режим показва текстовия екран;
| -» ] (или| М К~|—[~у]) премества курсора с една позиция надясно;
| М К | [Ф~| в процедурен режим премества курсора с 24 реда (един екран)
надо.ту. В графичен режим показва целия графичен екран;
I <- ] (или |м к] -] х । премества курсора с една позиция наляво;
| м к | | ц [завършва режима на редактиране. Въведеният текст се запомня
под името, посочено в заглавния ред.
|о С в) - изтрива знака вляво от курсора. Курсоры се премества с
една позиция наляво.
[~R~P т| повтаря многократно действиего на клавиша, натиснагодновре-
менно с нею.
|RSт| прекъсва работата на системата Лого. Предишното сьсюяние
на системата може да се вьзетанови, каго се натиснаг клавиши те [ м к| —
[ьГ], а след това[ret urn] ,
180
3. БЪЛГАРСКО-АНГЛИЙСКИ ЛОГО РЕЧНИК
ATAN
COS
SIN
АБСЦ
АЗИМУТ
АКО
АКОВЯРНО АВ
АКОНЕВЯРНО АНВ
БАЙТ
БЕЗ
БЕЗЧЕРТЕЖ ЬЧ
БЕЗПОСЛЕДЕН БПЛ
БЕЗПЪРВИ БПР
БГ.ЗТЕКС Г
БУТОН
ВДИГНИ вд
вход вх
входам вхз
входзн?
ВЯРНО
ВСИЧКИ
В( ИЧКО
ГРАФИКА
ГРАФИЧЕН
до
ДОАБСЦ
ДООРД
дос
ДУМА
ДУМА'.’
ЗА
ЗАБРАВ»! ЗЬР
ЗАГЛАВИЯ
ЗАКРЪГЛЕНО
ЗАПАЗИ
ЗАНАЗНКАРТ
ЗАРЕДИ
ЗАРЕДИ КАР!
ЗНАК
ИЗБОР
ИЗВЕДИ ИЗВ
ИЗВЕЖДАЙ
ИЗВИКАЙ
И311Б.1НИ
ИЗТРИЙ
ИЗТРИЙКАР1
ИЗХОД изх
ИМЕНА
ИНАЧЕ
КАТАЛОГ
КОД
КОНЧЕ
КОРЕН2
ATAN
COS
SIN
XCOR
HEADING
IF
IFTRUE/IFT
IFFALSE/IFF
EXAMINE
ERNAME
CLFARSCREEN CS
BLJ1 LAST BL
BUTFIRST.BF
CLEARTEXT
PADDLEBUTTON
PENUP/PU
REQUEST RQ
READCHARACTER RC
RC?
TRUE
AL LOF
ALL
DRAW
FULLSCREEN
SETXY
SETX
SETY
DOS
WORD
WORD'’
1'0
ERASE ER
POTS
ROUND
SAVE
SAVEPICT
READ
READPICT
CHAR
RANDOM
PRINT PR
PRINTI
.CALL
RIN
ERASEFILE
FRASEPICT
O( TPUTOP
NAMES
El SI
C A I ALOG
ASCH
PADDLE
SQRT
181
КРАЙ
КУРСОР
КЪМ
моливмл
МОНИТОР
НАДЯСНО/НД
НАЗАД/НЗ
НАЛЯВО НЛ
НАПРАВИ
НАПРЕД, НП
НЕ
НЕВЯРНО
НЕСЛЕДИ
НОВВХОД
НЯКОЕОТ
ОБЕДИНЕНИЕ.ОБД
ОБЪРНИ,ОБ
ОГРАДИ
ОПИШИ
ОПЕК АННЕ
ОРД
ОСТАТЪК
ОСВОБОДИ
ОТНОВО
ОТПЕЧАТАЙ,отп
ОТПРЕД
ОТЗАД
ПАМЕТ
ПАУЗА
ПОВТОРИ
ПОКАЖИ ПК
ПОСЛЕДЕН
ПРОВЕРИ
ПРОДЪЛЖИ ПР
ПРОЦЕДУРИ
ПЪРВИ
РАЗМ ЕР
РЕДАКТИРАЙ РД
сгъсти
С КРИЙ СК
СЛЕДИ
СЛЕДВА
СЛОЖИ
С МЕЕ ГН
СПИСЪК
СПИСЪК?
СПУСНИ СП
СТОЙНОСТ
стойност?
СТОП
СЪС ГОЯНИЕ СЪСТ
ТЕКСТ
ТЕКСТОВ
то
УСТРОЙСТВО
ФИНАЛ
END
CURSOR
TOWARDS
PENCOLOR PC
BPT
RIGHT RT
BACK BK
LEET LT
MAKE
FORWARD FD
NOT
FALSE
NOTRACE
CLEARINPUT
ANYOF.
SENTENCE/SE
SETHEADING SETH
NOWRAP
DEFINE
TEXT
YCOR
REMAINDER
WRAP
GOODBYE
PRINTOUT PO
FPUT
LPl’T
NODES
PAUSE
REPEAT
SHOW TURTl E ST
LAST
TEST
CONTINUE CO
PROCEDURES
FIRST
ASPECT
EDIT ED
GCOLL
HIDETURTLE HT
TRACE
GO
DEPOSIT
SPLITSCREEN
LIST
LIST.’
PEN DOWN PD
THING
THING’
STOP
TURTLFSTATL IS
NODRAW
TEXTSCREEN
THEN
OUTDEV
TOPLFVEL
182
ФОН ЦЕНТЪР ЦЯЛО ЧАСТНО ЧИСЛО? BACKGROUND НОМЕ INTEGER QUOTIENT NUMBER?
•- АНГЛИЙСКО-БЪЛГАРСКИ ЛОГО РЕЧНИК
ASPECT ВРТ CALL DEPOSIT EXAMINE GCOLL NODES ALL ALLOE AN YOE ASCII ATAN BACK BK BACKGROUND BUTEIRST Bl BUTLAST BL CATALOG CHAR CLEARINPL T CLEARS! RFEN.CS CLEARTEXT CONTINUE CO COS CURSOR DEEINE РАЗМЕР МОНИТОР ИЗВИКАЙ СЛОЖИ БАЙТ СГЪСТИ ПАМЕТ ВСИЧКО ВСИЧКИ НЯКОЕОТ код ATAN НАЗАД'НЗ ФОН БЕЗПЪРВИ БПР БЕЗПОСЛЕДЕН БПЛ КАТАЛОГ ЗНАК новвход БЕЗЧЕРТЕЖ БЧ БЕЗТЕКСТ ПРОДЪЛЖИ ПР COS КУРСОР ОПИШИ
DOS DRAW E DI Г ED ELSE END ERASE ER ERASEFILE ERASE.PI! T ER ЧАМЕ f ALSE EIRST FORWARD I D EPUT FULLSCREEN GO GOODBYE HEADING HIDETURTLE HT HOME ДОС ГРАФИКА РЕДАКТИРАЙ РД ИНАЧЕ КРАЙ ЗАБРАВИ ЗЬР ИЗТРИЙ 113 ГРИНКАРТ БЕЗ НЕВЯРНО ПЪРВИ НАПРЕД НП ОТНРГД ГРАФИ ЧЕН СЛЕДВА ОТНОВО АЗИМУТ СКРИЙ СК ЦЕНТЪР
183
IF
IFFALSE/IFF
IFTRUE/IFT
INTEGER
LAST
LEFT/LT
LIST
LIST?
LPUT
MAKE
NAMES
NODRAW
NOT
NOTRACE
NOWRAP
NUMBER?
OUTDEV
OUTPUT OP
PADDLE
PADDLEBUTTON
PAUSE
PENCOLOR PC
PFNDOWN PD
PENUP/PU
POTS
PR
PRINT
PRINTI
PRINTOUT PO
PROCEDURES
QUOTIENT
RANDOM
RC?
READ
READCHARACTER RC
READPKT
REMAINDER
REPEAT
REQUEST/RQ
RIGHT RT
ROUND
RUN
SAVE
SAVEPICT
SENTENCE,SE
SETHEADJNS/SETH
SE1X
SETXY
SETY
SHOWTURTI E.ST
SIN
SPLITSCREEN
SQRT
STOP
TEST
TEXT
AKO
АКОНЕВЯРНО/АНВ
АКОВЯРНО/АВ
ЦЯЛО
ПОСЛЕДЕН
НАЛЯВО/НЛ
СПИСЪК
СПИСЪК?
ОТЗАД
НАПРАВИ
ИМЕНА
ТЕКСТ
НЕ
НЕС ЛЕДИ
ОГРАДИ
ЧИСЛО?
УСТРОЙСТВО
ИЗХОД/изх
КОП ЧЕ
БУТОН
ПАУЗА
МОЛИВ,МЛ
СПУСНИ СП
ВДИГНИ вд
ЗАГЛАВИЯ
ИЗВ
ИЗВЕДИ
ИЗВЕЖДАЙ
ОТПЕЧАТАЙ,'ОГП
ПРОЦЕДУРИ
ЧАСТНО
ИЗБОР
ВХОДЗН?
ЗАРЕДИ
ВХОДЗН ВХЗ
ЗАРЕДИКАРТ
ОСТАТЪК
ПОВТОРИ
ВХОД ВХ
НАДЯСНО, НД
ЗАКРЪГЛЕНО
ИЗПЪЛНИ
ЗАПАЗИ
ЗА ПАЗИ К APT
ОБЕДИНЕНИЕ ОБД
ОБЕРНИ ОБ
ДОАБСЦ
ДО
ДООРД
ПОКАЖИ ПК
SIN
СМЕСЕН
КОРЕН2
СТОП
ПРОВЕРИ
ОПИСАНИЕ
184
TEXTSCREEN
THEN
THING
THING?
TO
TOPLEVEL
TOWARDS
TRACE
TRUE
TS
TURTLESTA IE
WORD
WORD’
WRAP
XCOR
YCOR
ТЕКСТОВ
TO
СТОЙНОСТ
СТОЙНОСТ?
ЗА
ФИНАЛ
КЪМ
СЛЕДИ
ВЯРНО
съст
СЪСТОЯНИЕ
ДУМА
ДУМА?
ОСВОБОДИ
АБСЦ
ОРД
5. ОПИСАНИЕ НА ПРОГРАМИТЕ
ним
ЗААКОРХОДИ>1 ГкЛЕЧКИ 3 0 ( ИЗВЕДИ [МОЖЕ ДА ВЗЕМЕТЕ НАЙ-МНОГО]
:ХОД I [КЛЕЧКИ] ) ВХ.ЧИСЛО "ХОД О :ХОД
КРАЙ
ЗА ВХ ЧИСЛО :ИМЕ Л1 .ДГ
НАПРАВИ "В ВХОД
АКО НЕ :В = [ ] ТО НАПРАВИ "В ПЪРВИ :В
АКО ЧИСЛО? :В ТО АКО ВСИЧКИ ( В < :ДГ ) < :В > :ЛГ ) ТО НАПРАВИ
^ИЗВЕДИ [ВЪВЕДЕТЕ ЧИСЛО ОТ] :ЛГ + I [ДО] :ДГ — I [ВКЛЮЧИТЕЛНО.] )
ВХ.ЧИСЛО :ИМЕ :ЛГ :Д1
КРАЙ
ЗА ИЗТРКЛЕЧКИ :БРОЙ
ПОВТОРИ БРОЙ [КЛЕЧКА О]
КРАЙ
ЗА КОМП.ХОД
ИЗВЕДИ [АЗ СЪМ НА ХОД ]
ПОВТОРИ 2000 [ ]
АКО .ПИВО = I ТО СЛУЧ.ХОД ИНАЧЕ УМЕН.ХОД
КРАЙ
ЗА СЛУЧ.ХОД
НАПРАВИ 'ХОД ( I + ИЗБОР 3 )
КРАЙ
ЗА ПОЗДРАВ
АКО НЯКОЕОТ :И1 РАЧ = [КОМПЮТЪР] :ИГРАЧ - (КОМПЮТЪРЪТ]
ТО ИЗВЕДИ [КОМПЮТЪРЪТ Е ПОБЕДИТЕЛЕ] ИНАЧЕ ИЗВЕДИ
( ОБЕДИНЕНИЕ [БРАВО НА] :ИГРАЧ [- СПЕЧЕЛИ!] )
СТОП
КРАЙ
185
ЗА ИГРА.НИМ :КЛЕЧКИ :ИГРАЧ ПРОТИВНИК
( ИЗВЕДИ [БРОЯТ НА КЛЕЧКИТЕ Е] :КЛЕЧКИ ”. )
АКО НЕ НЯКОЕОТ :ИГРАЧ = [КОМПЮТЪР] :ИГРАЧ = [КОМПЮТЪРЪТ]
ТО ИЗВЕДИ ОБЕДИНЕНИЕ :ИГРАЧ [Е НА ХОД ]
НАПРАВИ "НОВИКЛЕЧКИ :КЛЕЧКИ — ( ХОД :ИГРАЧ :КЛЕЧКИ )
АКО :НОВИКЛЕЧКИ = О ТО ПОЗДРАВ СТОП
ИГРА.НИМ НОВИКЛЕЧКИ ПРОТИВНИК :ИГРАЧ
КРАЙ
ЗА КЛЕЧКА :М
МОЛИВ :М
НАПРЕД 20 НАДЯСНО 90 НАПРЕД I
НАДЯСНО 90 НАПРЕД 20 НАЛЯВО 90
ВДИГНИ НАПРЕД 9 СПУСНИ
НАЛЯВО 90
КРАЙ
ЗА РИС.КЛЕЧКИ
ВДИГНИ ДО 135 0 СПУСНИ
ПОВТОРИ :КЛЕЧКИ [КЛЕЧКА I]
ВДИГНИ ДО - 135 0 СПУСНИ
КРАЙ
ЗА РИС.РАМКА
ГРАФИКА СКРИЙ МОЛИВ I
ВДИГНИ ДО — 138 ( — 40 ) СПУСНИ
ДООРД 95 ДОАБСЦ 139
ДООРД — 40 ДОАБСЦ - 138 ВДИГНИ МОЛИВ 5
ДО — 80 60 СПУСНИ ДООРД 90 ДООРД 75
ДОАБСЦ — 49 ДООРД 90 ДООРД 60 ВДИГНИ
ДО - 20 90 СПУСНИ ДООРД 60 ДО 10 90
ДООРД 60 ВДИГНИ
ДО 40 60 СПУСНИ ДООРД 90 ДО 55 75
ДО 70 90 ДООРД 60
КРАЙ
ЗА ВХОД.ИГРАЧ
НАПРАВИ ”ВХ ВХОД
АКО :ВХ = [ ] ТО ВХОД ИГРАЧ
КРАЙ
ЗА ИНСТРУКЦИИ
ИЗВЕДИ [ДОБРЕ. ПРАВИЛАТА СА СЛЕДНИТЕ:]
ИЗВЕДИ [ЩЕ ВИДИТЕ НАБОР ОТ КЛЕЧКИ.]
ИЗВЕДИ [МОЖЕ ДА ВЗЕМЕТЕ НАВЕДНЪЖ I. 2 ИЛИ 3]
ИЗВЕДИ [ОТ ТЯХ. ПЕЧЕЛИ ИГРАЧЪТ,КОЙТО ВЗЕМЕ]
ИЗВЕЖДАЙ [ПОСЛЕДНАТА КЛЕЧКА. МОЖЕ БИ ОЩЕ НЕ ВСИЧКО]
ИЗВЕДИ [ВИ Е ЯСНО.НО ЗАПОЧНЕТЕ ИГРАТА,]
ИЗВЕДИ [А АЗ ЩЕ ПОПРАВЯМ ГРЕШКИТЕ ВИ ]
КРАЙ
ЗА ДЪЛЖИНА .СП
АКО :СП = [] ТО ИЗХОД 0
ИЗХОД I + ДЪЛЖИНА
БЕЗПЪРВИ СП
КРАЙ
186
1\ КОРЕКТЕН.ВХОД
НАПРАВИ "ОТГОВОР ВХОД
АКО НЕ ДЪЛЖИНА :ОТГОВОР = I ТО ИЗВЕДИ [ОТГОВОРЕТЕ С "ДА“ ИЛИ
"НЕ".] КОРЕКТЕН.ВХОД
КРАЙ
ЗА АКО.ДА.ИЛИ.НЕ
КОРЕКТЕН.ВХОД
НАПРАВИ ' ОТГОВОР ПЪРВИ ОТГОВОР
АКО НЯКОЕОТ ОТГОВОР = "ДА :ОТГОВОР = "НЕ ТО СТОП
ИЗВЕДИ [ОТГОВОРЕТЕ С "ДА" ИЛИ ’НЕ ]
АКО.ДА.ИЛИ.НЕ
КРАЙ
ГА ХОД :ИГРАЧ КЛЕЧКИ
АКО НЯКОЕОТ :ИГРАЧ = |КОМПЮТЪР] :ИГРАЧ = [КОМПЮТЪРЪТ] ТО
КОМП.ХОД ИНАЧЕ ВХ.ЧИСЛО "ХОД О 4 КОРЕКТ.ИЗТРИВАНЕ
ИЗТР.КЛЕЧКИ :ХОД
ИЗХОД :ХОД
КРАЙ
{А УМ ЕН.ХОД
НАПРАВИ "ОСТ ОСТАГЬК КЛЕЧКИ4
АКО :ОСТ = О ТО НАПРАВИ "ХОД I ИНАЧЕ НАПРАВИ "ХОД :ОСТ
КРАЙ
ЗА НИМ
ТЕКСТ ИЗВЕДИ [ЗДРА ВЕЙТЕ!]
ИЗВЕДИ [ЗНАЕТЕ ЛИ ДА ИГРАЕТЕ НА НИМ?]
АКО.ДА.ИЛИ.НЕ
АКО ЮТГОВОР = "НЕ ТО ИНСТРУКЦИИ
ИЗВЕДИ [КОЙ Е ПЪРВИЯТ ИГРАЧ?]
ВХОД. И ГРАЧ
НАПРАВИ "ИГРАЧ I ВХ
ИЗВЕДИ [КОЙ Е ВТОРИЯТ ИГРАЧ?]
ВХОД.ИГРАЧ
НАПРАВИ "ИГРАЧ2 :ВХ
ПРОВЕРИ ( НЯКОЕОТ :ИГРАЧ1 = [КОМПЮТЪРЪТ] :ИГРАЧ2
= [КОМПЮТЪРЪТ] :ИГРАЧ1 = [КОМПЮТЪР] :ИГРАЧ2 = [КОМПЮТЪР] )
АКОВЯРНО ИЗВЕДИ [ИСКАТЕ ЛИ КОМПЮТЪРЪТ ДА ИГРАЕ УМНО?]
АКО.ДА.ИЛИ.НЕ
АКОВЯРНО АКО ЮТГОВОР = "ДА ТО НАПРАВИ "НИВО 2 ИНАЧЕ
НАПРАВИ "НИВО I
ИЗВЕДИ [С КОЛКО КЛЕЧКИ ЩЕ ЗАПОЧНЕТЕ ИГРАТА?]
ИЗВЕДИ [ПОСОЧЕТЕ ЧИСЛО ОТ 1 ДО 31 ВКЛЮЧИТЕЛНО]
ВХ.ЧИСЛО "КЛЕЧКИ 0 32
РИС.РАМКА РИС.КЛЕЧКИ
ИГРА.НИМ :КЛЕЧКИ :ИГРАЧ1 :ИГРАЧ2
КРАЙ
ЖИВОТНИ
ЗА ПОЗНАЙ :КЛОНОВЕ
АКО ( ДУМА? :КЛОНОВЕ ) КРАЙ.ПОЗНАЙ ЖЛОНОВЕ СТОП
НАПРАВИ "ОТГОВОР ВЪПРОС.ДА.ИЛИ.НЕ ( ВЪПРОС .КЛОНОВЕ )
АКО ЮТГОВОР = [ДА] ПОЗНАЙ ДА.КЛОН :КЛОНОВЕ СТОП
ПОЗНАЙ НЕ.КЛОН :КЛОНОВЕ
КРАЙ
187
ЗА ПОЧАКАЙ :N
ПОВТОРИ :N []
КРАЙ
ЗА ЗАМЯНА ДьРВО :ЛИСТО ТЮВ.КЛОН
АКО :ДЪРВО = :ЛИСТО ИЗХОД :НОВ.КЛОН
АКО ДУМА? -.ДЬРВО ИЗХОД :ДЪРВО
ИЗХОД ( СПИСЪК ВЪПРОС :ДЪРВО ЗАМЯНА ДА.КЛОН ДЬРВО :ЛИСТО
НОВ.КЛОН ЗАМЯНА НЕ.КЛОН :ДЪРВО :ЛИСТО :НОВ.КЛОН )
КРАЙ
ЗА ВЪПРОС :ДЪРВО
ИЗХОД ПЪРВИ :ДЪРВО
КРАЙ
ЗА ДА.КЛОН ДЬРВО
ИЗХОД ПЪРВИ БЕЗПЪРВИ ДЬРВО
КРАЙ
ЗА НЕ.КЛОН ДЬРВО
ИЗХОД ПОСЛЕДЕН ДЬРВО
КРАЙ
ЗА ВХОД.ВЪПРОС
НАПРАВИ В ВХОД
АКО НЕ :В = [JTO АКО НЯКОЕО! ПОСЛЕДЕН :В = "? ПОСЛЕДЫ I НОСЛЕ-
ДЕН :В = "? ТО ИЗХОД :В
ИЗВЕДИ (ВЬВЕДЕТЕ КОРЕКТНО ВЪПРОСА В КРАЯ С .]
ИЗХОД ВХОД.ВЪПРОС
КРАЙ
ЗА НОВО.ЗНАНИЕ гНОВ.ВЪПРОС
НАПРАВИ "ЗНАНИЕ ЗАМЯНА ЗНАНИЕ ТРЕШЕН.ОГГ ( СПИСЪК НОВ.
ВЪПРОС :ВЕРЕН.ОТГ гГРЕШЕН ОТГ )
КРАЙ
ЗА ВХОД.ИМЕ
НАПРАВИ "В ВХОД
АКО НЕ В =[]ТО АКО ВСИЧКИ ДУМА? ПЪРВИ :В БПР :В - [ I ГО ИЗХОД
ПЪРВИ :В
ИЗВЕДИ [ВЬВЕДЕТЕ ИМЕ. АКО ТО СЕ СЪСТОИ ОТ]
ИЗВЕДИ [ПОВЕЧЕ ОТ ЕДНА ДУМА, ЗАПИШЕТЕ ГО]
ИЗВЕДИ [КАТО ВМЕСТО ИНТЕРВАЛ ЗА РАЗДЕЛЯНЕ]
ИЗВЕДИ (УПОТРЕБИТЕ ТОЧКА ( . ).]
ИЗХОД ВХОД.ИМЕ
КРАЙ
ЗА ПО.УМЕН ГРЕШЕНОТГ
ИЗВЕДИ [ТЮХ, НЕ ПОЗНАХ! КОЕ Е ТОВА ЖИВОТНО?]
НАПРАВИ ’’ВЕРЕН.ОТГ ВХОД.ИМЕ
ИЗВЕДИ [МОЛЯ, НАПИШЕТЕ ВЪПРОС, КОЙТО ИМА ОТГОВОР]
ИЗВЕДИ ( ОБД ["ДА" ЗА] ВЕРЕН.ОТГ [И “НЕ" ЗА] ГРЕШЕНОТГ ". )
НОВО.ЗНАНИЕ ВХОД.ВЪПРОС
КРАЙ
188
ЗА ВЪПРОС.ДА.ИЛИ.НЕ :ВЪПР
ИЗВЕДИ :ВЪПР
НАПРАВИ "В ВХОД
АКО :В = [ДА] ИЗХОД [ДА]
АКО :В = [НЕ] ИЗХОД [НЕ]
ИЗВЕДИ [МОЛЯ ОТГОВОРЕТЕ С "ДА” ИЛИ "НЕ”]
ИЗХОД ВЪПРОС.ДА.ИЛИ.НЕ :ВЪПР
КРАЙ
ЗА КРАЙ.ПОЗНАЙ ДОГАДКА
НАПРАВИ "ПОСЛ.ВЪПРОС ( ОБЕДИНЕНИЕ ДОГАДКА [ЛИ Е9] )
НАПРАВИ "ОТГОВОР ВЪПРОС.ДА ИЛИ.НЕ :ПОСЛ.ВЪПРОС
АКО :ОТГОВОР = [ДА] ИЗВЕДИ [ВИЖДАТЕ ЛИ КОЛКО СЪМ УМЕН
СТОП
ПО.УМЕН ДОГАДКА
КРАЙ
ЗА ЖИВОТНИ
ТЕКСТ
ИЗВЕДИ [НАМИСЛЕТЕ СИ ЕДНО ЖИВОТНО]
ИЗВЕДИ [ ]
ИЗВЕДИ [АЗ ЩЕ СЕ ОПИТАМ ДА ГО ПОЗНАЯ.]
ИЗВЕДИ [ ]
ИЗВЕДИ [КАТО ЗАДАВАМ ВЪПРОСИ ]
ИЗВЕДИ []
ПОЗНАЙ ЗНАНИЕ
АКО ВЪПРОС.ДА.ИЛИ.НЕ [ИСКАТЕ ЛИ ПАК ДА ИГРлЕМ? (ДА/HE)] [НЕ]
ТО БЕЗТЕКСТ ФИНАЛ
ПОЧАКАИ 2000
ЖИВОТНИ
КРАЙ
ПРОВЕРКА.ЗНАИИЯ
ЗА ПРОВ1 ЗНАНИЕ :НИВО
АКО ДУМА? ЗНАНИЕ ИЗВЕДИ ЗНАНИЕ :НИВО СТОН
ИЗВЕДИ ( ВЪПРОС .ЗНАНИЕ ) НИВО
ИЗВЕДИ [АКО ДА:] :НИВО
ПРОВ1 ДА.КЛОН ЗНАНИЕ НИВО + I
ИЗВЕДИ [АКО НЕ:] :НИВО
ПРОВ1 НЕ.КЛОН ЗНАНИЕ :НИВО + I
КРАЙ
ЗА ИЗВЕДИ ФРАЗА :НИВО
НАПРАВИ “РЕДОВЕ .РЕДОВЕ + I
АКО :РЕДОВЕ = 22 ТО ИЗВЕДИ [ ] ИЗВЕДИ [ЗА ДА ПРОДЪЛЖИТЕ НАТИС
НЕТЕ ИНТЕРВАЛ ] НОВВХОД ЧАКАЙ БЕЗТЕКСТ НАПРАВИ ’ РЕДОВЕ I
ПОВТОРИ 2 * НИВО [ИЗВЕЖДАЙ ']
ИЗВЕДИ :ФРАЗА
КРАЙ
ЗА ВЪПРОС :ДЪРВО
ИЗХОД ПЪРВИ :ДЪРВО
КРАЙ
ЗА ДА.КЛОН .ДЪРВО
ИЗХОД ПЪРВИ БЕЗПЪРВИ :ДЪРВО
КРАЙ
189
ЗА НЕ.КЛОН :ДЪРВО
ИЗХОД ПОСЛЕДЕН :ДЪРВО
КРАЙ
ЗА ЧАКАЙ
АКО ВХОДЗН? ТО НОВВХОД СТОП
ЧАКАЙ
КРАЙ
ЗА ПРОВЕРКА.ЗНАНИЯ
НАПРАВИ “РЕДОВЕ I
ТЕКСТ
ПРОВ1 ЗНАНИЕ О
КРАЙ
КОСМОС
ЗА ОТНОВО?
ИЗВЕДИ [ИСКАТЕ ЛИ ДА ИГРАЕТЕ ОТНОВО (ДА/НЕ)?]
АКО ДА? ТО ЗАПОЧНИ ОТНОВО ИНАЧЕ ФИНАЛ
КРАЙ
ЗА КАТАСТРОФА
СЕТОБРАЗ 39355
НОВ.РАЗМЕР I НОВ.РАЗМЕР 2 НОВ.РАЗМЕР 3
НОВ РАЗМЕР 2 НОВ.РАЗМЕР 3 НОВ.РАЗМЕР 2
НОВ.РАЗМЕР 2 НОВ.РАЗМЕР 1 НОВ.РАЗМЕР I
СЕТОБРАЗ О
КРАЙ
ЗА ИНСТРУКЦИИ2
ИЗВЕДИ [С КОЛКО ДА СЕ УВЕЛИЧАВА СИЛАТА?]
ИЗВЕДИ [(ЗЕ ДОБРА СТОЙНОСТ )]
ПРОВЕРКА ВХОД
НАПРАВИ “СИЛА ПЪРВИ :ВХ
КРАЙ
ЗА ИНСТРУКЦИИ!
БЕЗТЕКСТ
ИЗВЕДИ (ЦЕЛТА НА ИГРАТА Е ДА СЕ ВИДИ КАК ВИЕ]
ИЗВЕДИ [ЩЕ КАЦНЕТЕ С РАКЕТАТА СИ НА ЛУНАТА]
ИЗВЕДИ [ИЛИ ЩЕ СЕ СКАЧИТЕ С ДРУГА РАКЕТА.)
ИЗВЕДИ [ ]
ИЗВЕДИ [УПРАВЛЯВА СЕ СЪС СЛЕДНИТЕ КЛАВИШИ:]
ИЗВЕДИ [ ]
ИЗВЕДИ [Л ОБРЪЩА РАКЕТАТА НАЛЯВО]
ИЗВЕДИ [Д ОБРЪЩА РАКЕТАТА НАДЯСНО]
ИЗВЕДИ [Г ДАВА “ГАЗ“]
ИЗВЕДИ [С СТАРТИРА РАКЕТАТА]
ИЗВЕДИ [К КРАЙ НА ИГРАТА]
ИЗВЕДИ [П СПИРА РАКЕТАТА]
ИЗВЕДИ [В ВДИГНИ]
ИЗВЕДИ [Т СПУСНИ]. ИЗВЕДИ [- НАМАЛЯВА СИЛАТА С I]
ИЗВЕДИ [+ ИЛИ ; УВЕЛИЧАВА СИЛАТА С I]
ИЗВЕДИ [? ПОКАЗВА ГОРНИТЕ ИНСТРУКЦИИ]
ИЗВЕДИ [ ]
КРАЙ
190
ЗА НАТИСНИ.КЛАВИШ
АКО ВХОДЗН? ТО НОВ ВХОД СТОП
НАТИСНИ.КЛАВИШ
КРАЙ
ЗА КОРЕКТЕН.ВХОД
НАПРАВИ ”ВХ ВХОД
АКО НЕ ДЪЛЖИНА :ВХ = 1 ТО ИЗВЕДИ [МОЛЯ. ВЪВЕДЕТЕ ЧИСЛО!] КО-
РЕКТЕН.ВХОД
КРАЙ
ЗА ДЪЛЖИНА СП
АКО :СП = [ ] ТО ИЗХОД О
ИЗХОД I + ДЪЛЖИНА БЕЗПЪРВИ СП
КРАЙ
ЗА ПОМОЩ
ТЕКСТОВ
ИНСТРУКЦИИ!
КУРСОР 0 23
ИЗВЕДИ (НАТИСНЕТЕ КЛАВИШ!]
НАТИСНИ. КЛАВИШ
ГРАФИЧЕН
КРАЙ
ЗА СТАРТ
АКО ВСИЧКИ :VX = О :VY = О ТО КАТАСТРОФА ГАЗ
КРАЙ
ЗА .КРАЙ
НОВВХОД
СМЕСЕН
ИЗВЕДИ ( ОБЕДИНЕНИЕ [ВИЕ ИГРАХТЕ] :Т [СЕК.])
ОТНОВО?
КРАЙ
ЗА СПИРАНЕ
НАПРАВИ "СИЛА ( - СИЛА ) 4
ПОВТОРИ 4 [ГАЗ ДВИЖЕНИЕ]
НАПРАВИ "VX О
НАПРАВИ "VY О
НАПРАВИ "СИЛА ( СИЛА ) * 4
КРАЙ
ЗА ГАЗ. НАПРАВИ "VX :VX + СИЛА * SIN АЗИМУТ
НАПРАВИ "VY :VY •+ СИЛА * COS АЗИМУТ
КРАЙ
ЗА КЛАВ
АКО ВХОДЗН? ИЗХОД ВХОДЗН
ИЗХОД ”
КРАЙ
ЗА КОМАНДА
АКО НЕ ВХОДЗН? ТО СТОП
НАПРАВИ "КОМ КЛАВ
АКО :КОМ = " СТОП
АКО :КОМ = ”Д НАДЯСНО 30 СТОП
191
Л КО ЖОМ = "Л НАЛЯВО 30 СТОП
АКО :КОМ = Т ГАЗ СТОП
АКО КОМ = ”П СПИРАНЕ СТОП
АКО ЖОМ = "К КРАЙ СТОП
АКО ЖОМ = ”В ТО ВДИГНИ СТОП
АКО ЖОМ = ”Т ТО СП СТОП
АКО ЖОМ = "С ТО СТАРТ СТОП
АКО КОМ = ’ ? ТО ПОМОЩ СТОП
АКО ЖОМ - • - ГО НАПРАВИ "СИЛА :СИЛА ( СТОП
АКО НЯКОЕОТ КОМ = ’’ + ЖОМ = ’’; ТО НАПРАВИ ’’СИЛА СИЛА + I
СТОП
НОВВХОД
КРАЙ
ЗА ЧРОЗ.СГОП
АКО ВСИЧКИ VX - 0 VY - 0 НАПРАВИ ’Т :Т I
КРАЙ
ЗА ДВИЖЕНИЕ
ДО АБСЦ + -VX ОРД + :VY
КРАЙ
ЗА НОВ.РАЗМЕР :N
ПОКАЖИ
СКРИЙ
СЛОЖИ 230 :N
ПОКАЖИ
КРАЙ
ЗА ОБРАЗ :ОБРАЗ
СЛОЖИ 228 ОСТАТЪК .ОБРАЗ 256
СЛОЖИ 228 + 1 ЧАСТНО :ОБРАЗ 256
КРАЙ
!А С ЕТОБРАЗ :ОБРАЗ
СКРИЙ ОБРАЗ ОБРАЗ ПОКАЖИ
КРАЙ
ЗА ТОЧКИ :Т
ДВИЖЕНИЕ
ПРОВ.СТОП
КОМАНДА
ТОЧКИ :Т + i
КРАЙ
ЗА ПРОВЕРКА.ВХОД
КОРЕКТЕН.ВХОД
АКО НЕ ЧИСЛО? ПЪРВИ :ВХ ТО ИЗВ [МОЛЯ, ВЪВЕДЕТЕ ЧИСЛО!] ПРОВЕР-
КА. ВХОД
КРАЙ
ЗА ОТНОВО
ГРАФИЧЕН
НАЧАЛ НА.ПОЗИЦИЯ
СМЕСЕН
ИЗВЕДИ [С КОЛКО ИСКАТЕ ДА СЕ УВЕЛИЧАВА СИЛАТА?]
ПРОВЕРКА.ВХОД
192
НАПРАВИ СИЛА ПЪРВИ :ВХ
ГРАФИЧЕН
ТОЧКИ О
КРАЙ
ЗА НАЧАЛНА.ПОЗИЦИЯ
ВДИГНИ
ДО — 139 ( — 95 )
ОБЪРНИ 45
НАПРЕД 60
КРАЙ
ЗА ДА?
НАПРАВИ "ВХ ВХОД
АКО :ВХ = [ДА] ТО ИЗХОД "ВЯРНО
АКО :ВХ = [НЕ] ТО ИЗХОД "НЕВЯРНО
ИЗВЕДИ [МОЛЯ, ОТГОВОРЕТЕ С "ДА" ИЛИ "НЕ”]
ИЗХОД ДА?
КРАЙ
ЗА ЗА ПОЧНИ
ВДИГНИ
НАПРАВИ "VX 0
НАПРАВИ "VY О
КРАЙ
ЗА ДЯСНА.ДЪГА :РАДИУС ГРАДУСИ
НАПРАВИ "СТР 3.14159 * :РАДИУС 18
ПОВТОРИ ГРАДУСИ / 10 [НАДЯСНО 5 НАПРЕД :СТР НАДЯСНО 5]
КРАЙ
ЗА ДЯСНА.ОКР РАДИУС
ДЯСНА.ДЪГА .РАДИУС 360
КРАЙ
ЗА РИС.ПЛАНЕТИ.
ВДИГНИ
МОЛИВ 4
СКРИЙ
ОБЪРНИ 0
ДО 60 36
СПУСНИ
ДЯСНА.ОКР 12
ВДИГНИ
ДО — 139 ( — 95 )
НАПРЕД 60
НАДЯСНО 90
СПУСНИ
МОЛИВ 5
ДЯСНА.ДЪГА 60 90
МОЛИВ I
ВДИГНИ
КРАЙ
ЗА ЗВЕЗДИ :N
АКО :N = 0 СТОП
ВДИГНИ
Н Информатика за начинаеши част II
193
ДО 140 — ИЗБОР 280 120 — ИЗБОР 240
СПУСНИ
МОЛИВ I + ИЗБОР 5
НАПРЕД I
ЗВЕЗДИ :N — 1
КРАЙ
ЗА РИС.РАКЕТА
ОБЪРНИ 0
ВДИГНИ
ДО — 75 10
СПУСНИ
НАДЯСНО 90
НАПРЕД 5
НАДЯСНО 30
НАПРЕД 10
НАЛЯВО 45
НАПРЕД 3
НАДЯСНО 135
НАПРЕД 9
НАДЯСНО 135
НАПРЕД 3
НАЛЯВО 45
НАПРЕД 10
НАДЯСНО 30
НАПРЕД 5
НАДЯСНО 60
КРАЙ
ЗА ИНСТРУКЦИИ
ИНСТРУКЦИИ 1
ИНСТРУКЦИИ 2
КРАЙ
ЗА ИНИТОБРАЗИ
ДОС [BLOAD ROCKET.SHAPESJ
КРАЙ
ЗА КОСМОС
НАЧАЛО
ИНИТОБРАЗИ
СКРИЙ
ГРАФИЧЕН
РИС.РАКЕТА
ЗВЕЗДИ 80
РИС.ПЛАНЕТИ
ЗАПОЧНИ
НАЧАЛНА.ПОЗИЦИЯ
ПОКАЖИ
НОВВХОД
ТОЧКИ о
КРАЙ
ЗА НАЧАЛО
ТЕКСТ
ИНСТРУКЦИИ
КРАЙ
194
ЖАКИ
ЗА ЧЕРТЕЖ
СЕРИЙ ВДИГНИ
ДО — 105 10
СПУСНИ
ПОВТОРИ 7 [НАПРЕД 50 НАДЯСНО 90 НАПРЕД 30 НАЛЯВО 90 НАЗАД 50]
ДОАБСЦ — 105
ФИГУРИ 0 ( — 95 )
КРАЙ
ЗА УОМАНДИ
ИЗВЕДИ [МОЛЯ, ЗАДАЙТЕ КОМАНДА]
НАПРАВИ "КОМ ВХОДЗН
БЕЗТЕКСТ
АКО КОМ = ”С ТО СТОП
АКО .КОМ = ”Т ТО ХОД.Т
АКО ЖОМ = "К ТО ХОД.К
КОМАНДИ ”
КРАЙ
ЗА ХОД.Т
АКО ( ПОРЦИЯ ( :П — I ) :СХЕМА ) = 'I ТО РИС ( :П 1)03 РИС П 1
3 СМЯНА ( :П 1 ) :П НАПРАВИ "П :П — 1 СТОП
АКО ВСИЧКИ ПОРЦИЯ ( :П — 2 ) :СХЕМА = "Т ПОРЦИЯ :П 1 :СХЕМА
= "К ТО РИС ( :П — 2 ) 0 3 РИС :П I 3 СМЯНА :П - 2 П
НАПРАВИ "П :П — 2 СТОП
ИЗВЕДИ [НЕ МОЖЕТЕ ДА МЕСТИТЕ ТРИЪГЪЛНИК.]
КРАЙ
ЗА ХОД.К
АКО ( ПОРЦИЯ ( :П + 1 ) :СХЕМА = "К ) ТО РИС ( :П + 1)04 РИС
:П 1 4 СМЯНА "П П + I НАПРАВИ „П :П + 1 СТОП
АКО ВСИЧКИ ПОРЦИЯ :П + 2 :СХЕМА = "К ПОРЦИЯ :П + 1 :СХЕ-
МА = "Т ТО РИС :П + 2 0 4 РИС :П I 4 СМЯНА :П :П + 2
НАПРАВИ ”П П + 2 СТОП
ИЗВЕДИ [НЕ МОЖЕТЕ ДА МЕСТИТЕ КВАДРАТ.)
КРАЙ
ЗА РИС :N :М :F
ВДИГНИ
ДО ( ( — 125 ) + :N * 30 ) 30
МОЛИВ :М
СПУСНИ
ФИГУРА F
МОЛИВ 1
КРАЙ
ЗА СМЯНА :N :М
НАПРАВИ ”L I
НАПРАВИ "НОВАСХЕМА [ ]
НАПРАВИ "С ПОРЦИЯ :N :СХЕМА
ЗАМЯНА N ПОРЦИЯ :М СХЕМА
НАПРАВИ‘СХЕМА НОВАСХЕМА
НАПРАВИ "L 1
НАПРАВИ "НОВАСХЕМА [ |
ЗАМЯНА :М :С
НАПРАВИ "СХЕМА :НОВАСХЕМА
КРАЙ
195
ЗА ФИГУРА :N
ПОВТОРИ :N [НАПРЕД 10 НАДЯСНО 360 :N]
КРАЙ
ЗА ФИГУРИ :К :НЛЧ
АКО :К > 6 ТО СТОП
ВДИГНИ ДО :НАЧ 30 СПУСНИ
АКО :К < 3 ТО ФИГУРА 3
АКО К > 3 ТО ФИГУРА 4
ФИГУРИ :К + I :НАЧ + 30
КРАЙ
ЗА РИС ОБРАЗ
СКРИЙ ВДИГНИ
ДО 105 10
СПУСНИ
ПОВТОРИ 7 [НАПРЕД 50 НАДЯСНО 90 НАПРЕД 30 НАЛЯВО 90 НАЗАД 50]
ДОАБСЦ - 105
ФИГУРИ 0 ( — 95 )
КРАЙ
ЗА ПОРЦИЯ :N :Х
АКО НЯКОЕ ОТ ( N < I ) ( :1\ > 7 ) ГО ИЗХОД "
АКО :N = I ТО ИЗХОД ПЪРВИ :Х ИНАЧЕ ИЗХОД ПОРЦИЯ ( :N — I )
(БЕЗПЪРВИ :Х )
КРАЙ
ЗА ЗАМЯНА :N :СХ
АКО :L > 7 ТО СТОП
АКО :L - :N ТО НАПРАВИ TIOBACXEMA ОБЕДИНЕНИЕ :НОВАСХЕМА
СХ ИНАЧЕ НАПРАВИ НОВАСХЕМА ОБЕДИНЕНИЕ :НОВАСХЕМА
ПОРЦИЯ :L СХЕМА
НАПРАВИ "L L + I
ЗАМЯНА :N СХ
КРАЙ
ЗА ЖАБИ
ГРАФИКА
НАПРАВИ ”П4
НАПРАВИ 'СХЕМА [1 Т Т П К К К|
ЧЕРТЕЖ
КОМАНДИ
КРАЙ
(СЕДНА.ДЪЛЖИИА
ЗА БРОЙ.ДУМИ :СП
АКО СП = [ [ ТО ИЗХОД 0
ИЗХОД I + БРОИ.ДУМЙ БЕЗПЪРВИ СП
КРАЙ
ЗА БРОЙСИМВОЯИ СЕД
АКО СЕД = [ ] ТО ИЗХОД 0
ИЗХОД ( ДЪЛЖИНА ПЪРВИ СЕД ) + БРОЙСИМВОЯИ БЕЗПЪРВИ СЕД
КРАЙ
196
ЗА ВХОД.РЕД
ИЗВЕДИ [ВЪ ВЕДЕТЕ РЕД.]
НАПРАВИ "РЕД ВХ
АКО НЕ ( РЕД = (] ) ТО АКО ПЪРВИ ПЪРВИ :РЕД = ТО ОТГОВОР СТОП
НАПРАВИ "ДЪЛЖИНА ДЪЛЖИНА + БРОЙ.СИМВОЛИ :РЕД
НАПРАВИ "БРОЙ .БРОЙ + БРОЙ.ДУМИ :РЕД
ВХОД. РЕД
КРАЙ
ЗА ОТГОВОР
АКО ДЪЛЖИНА * :БРОЙ = О ТО ИЗВЕДИ [ЛИПСВА ТЕКСТ] СТОП
НАПРАВИ "СР ДЪЛЖ ДЪЛЖИНА БРОЙ
ИЗВЕДИ [СРЕДНАТА ДЪЛЖИНА НА]
( ИЗВЕДИ [ДУМИТЕ В ТЕКСТА Е:] :СР.ДЪЛЖ )
КРАЙ
ЗА ЕЛЕМЕНТ :СИМВОЛ ЗНАЦИ
АКО ЗНАЦИ - ” ТО ИЗХОД "НЕВЯРНО
АКО :СИМВОЛ = ПЪРВИ ЗНАЦИ ТО ИЗХОД "ВЯРНО
ИЗХОД ЕЛЕМЕНТ СИМВОЛ БЕЗПЪРВИ ЗНАЦИ
КРАЙ
ЗА ДЪЛЖИНА ДУМА
АКО ДУМА = " ТО ИЗХОД О
АКО ( ЕЛЕМЕНТ ПЪРВИ ДУМА " , . ; ?! — ”#$%&():»+ = <>
ТО ИЗХОД ДЪЛЖИНА БЕЗПЪРВИ ДУМА
ИЗХОД 1 + ДЪЛЖИНА БЕЗПЪРВИ ДУМА
КРАЙ
ЗА СРЕДН А. ДЪЛЖИНА
НАПРАВИ "ДЪЛЖИНА О
НАПРАВИ БРОЙ О
ТЕКСТ
ИЗВЕДИ [ВЪВЕЖДАЙТЕ ТЕКСТА РЕД ПО РЕД ]
ВХОД. РЕД
КРАЙ
МАГИЧЕСКА.ТАБЛИЦА
ЗА СТЕПЕН2:N
НАПРАВИ "Р I
АКО .N < I ТО ИЗХОД I
ПОВТОРИ :N [НАПРАВИ ’ Р Р» 2]
ИЗХОД :Р
КРАЙ
ЗА ВХ.ЧИСЛО .ЕЛЕМ :ЛГ
АКО ЧИСЛО9 ЕЛЕМ ТО АКО ( ВСИЧКИ :ЕЛЕМ = ЦЯЛО ЕЛЕМ :ЕЛЕМ >
:ЛГ ) ТО ИЗХОД "ВЯРНО
ИЗХОД "НЕВЯРНО
КРАЙ
ЗА АКО.ДА.ИЛИ.НЕ
НАПРАВИ ”ОТГ ВХ
АКО НЯКОЕОТ ОТГ - [ДА] ОТГ = [НЕ] ТО СТОП
ТРИЕ
КУРСОР О 20
197
ИЗВ [МОЛЯ НАПИШЕТЕ "ДА" ИЛИ "НЕ"!]
АКО.ДА.ИЛИ.НЕ
КРАЙ
ЗА ИЗЧИСЛЕНИЕ :НОМЕРА :ИЗЧ
АКО :НОМЕРА — [ ] ТО ИЗХОД :ИЗЧ СТОП
ИЗХОД ИЗЧИСЛЕНИЕ БЕЗПЪРВИ НОМЕРА :ИЗЧ + СТЕПЕНЗ ( ( ПЪРВИ
НОМЕРА ) — 1 )
КРАЙ
ЗА ГРЕШНИ.КОЛОНИ ;СП :N
АКО :СП = ( ] ТО ИЗХОД "НЕВЯРНО
АКО НЕ ВХ.ЧИСЛО ПЪРВИ :СП О ТО ИЗХОД ВЯРНО
АКО ЕЛЕМЕНТ ( ПЪРВИ :СП ) БЕЗПЪРВИ :СП ТО ИЗХОД "ВЯРНО
ИЗХОД ГРЕШНИ.КОЛОНИ БЕЗПЪРВИ :СП :N + I
КРАЙ
ЗА ТРИЕ
КУРСОР 0 20
ИЗВЕДИ [ ]
ИЗВЕДИ [ ]
ИЗВЕДИ [ ]
ЗА ЛЕЧАТ.ТАБЛИЦА
БЕЗТЕКСТ
ИЗВЕДИ [----------------------------]
ИЗВЕДИ [!.. 5.!.. 4..!.. 3..!.. 2..!!..!]
ИЗВЕДИ [----------------------------1
ИЗВЕДИ [!..16Д. 8..!.. 4..!.. 2..’..ГЛ]
ИЗВЕДИ [!..17.!. 9..!.. 5..!.. 3..1..3..!]
ИЗВЕДИ [!..18.!.1О..!. 6..!.. 6..!..5..!]
ИЗВЕДИ [!..19.!.П..!.. 7..!.. 7..1..7..!]
ИЗВЕДИ [!..2О.!. 12..!. 12..!. 10..!.. 9.!]
ИЗВЕДИ [!..21.!.13..!.!3..!.11..1.11..!]
ИЗВЕДИ [1..22.1.14..!. 14..I.14..!. 13..!]
ИЗВЕДИ [!..23.!.15..!.15..!.15..!.15..!|
ИЗВЕДИ [!..24.!.24..!.20..!. 18..!. 17..!]
ИЗВЕДИ [!..25.!.25..!.21..!.19..!.19..!]
ИЗВЕДИ [!..26.!.26..!.22..!.22..!.21..!]
ИЗВЕДИ [!..27.!.27..!.23..!.23..!.23..!]
ИЗВЕДИ [!..28.!.28..!.28..!.26..!.25..!]
ИЗВЕДИ [!..29.!.29..!.29..!.27..!.27..!]
ИЗВЕДИ [!..30.!.30..!.30..!.30..!.29..!]
ИЗВЕДИ [!..31.1.31..1.31..!.31..!.3!..!]
КРАЙ
ЗА ОТГОВОР
ТРИЕ
КУРСОР 0 20
ИЗВЕДИ [ВЪВЕДЕТЕ НОМЕРАТА НА СТЪЛБОВЕТЕ]
НАПРАВИ "НОМЕРА ВХ
АКО : НОМ ЕРА = [] ТО ОТГОВОР СТОП
АКО ( ГРЕШНИ.КОЛОНИ :НОМЕРА I ) ТО ОТГОВОР СТОП
ТРИЕ
КУРСОР 0 20
198
( ИЗВЕДИ [ЧИСЛОТО Е] ИЗЧИСЛЕНИЕ :НОМЕРА 0 )
ИЗВЕДИ [ИСКАТЕ ЛИ ДА ИГРАЕТЕ ОТНОВО (ДА/НЕ)?]
АКО.ДА.ИЛИ.НЕ
АКО :ОТГ = [НЕ] ТО ФИНАЛ
ОТГОВОР
КРАЙ
ЗА ЕЛЕМЕНТ :ЕЛ :СП
АКО :СП = [ ] ТО ИЗХОД "НЕВЯРНО
АКО :ЕЛ = ПЪРВИ :СП ТО ИЗХОД "ВЯРНО
ИЗХОД ЕЛЕМЕНТ :ЕЛ БЕЗПЪРВИ :СП
КРАЙ
ЗА МАГИЧЕСКА ТАБЛИЦА
ПЕЧАТ.ТАБЛИЦА
ОТГОВОР
КРАЙ
НОВ.НИМ
ЗА ПРОВЕРКА ВХОД
КОРЕКТЕН. ВХОД
АКО :ВХ = [ ] ТО ПРОВЕРКА.ВХОД СТОП
НАПРАВИ "ВХ ПЪРВИ :ВХ
КРАЙ
ЗА АКО.КОМПЮТЪР :ИМЕ
АКО НЕ НЯКОЕОТ :ИМЕ = "КОМПЮТЪР ИМЕ = ' КОМПЮТЪРЪТ ТО ИЗ-
ХОД ИМЕ
ИЗВЕДИ [ИСКАТЕ ЛИ КОМПЮТЪРЪТ ДА ИГРАЕ]
ИЗВЕДИ [ИНТЕЛИГЕНТНО?]
АКО АКО.ДА ИЛИ.НЕ = "ДА ТО ИЗХОД "УМНИЯТ.КОМПЮТЪР ИНАЧЕ
ИЗХОД "КОМПЮТЪРЪТ
КРАЙ
ЗА КОРЕКТЕН. ВХОД
НАПРАВИ "ВХ ВХОД
АКО НЕ ДЪЛЖИНА :ВХ= 1 ТО КОРЕКТЕН.ВХОД
КРАЙ
ЗА АКО.ДА.ИЛИ.НЕ
КОРЕКТЕН.ВХОД
НАПРАВИ "В ПЪРВИ ВХ
АКО НЯКОЕОТ :В = "ДА В = "НЕ ТО ИЗХОД :В
ИЗВЕДИ [ОТГОВОРЕТЕ С ДА ИЛИ НЕ.]
ИЗХОД АКО.ДА.ИЛИ.НЕ
КРАЙ
ЗА РИС.РАМКА
ГРАФИКА СКРИЙ МОЛИВ 1
ВДИГНИ ДО — 138 ( — 40 ) СПУСНИ
ДООРД 95 ДОАБСЦ 139
ДООРД — 40 ДОАБСЦ — 138 ВДИГНИ МОЛИВ 5
ДО — 80 60 СПУСНИ ДООРД 90 ДООРД 75
ДОАБСЦ — 49 ДООРД 90 ДООРД 60 ВДИГНИ
ДО — 20 90 СПУСНИ ДООРД 60 ДО 10 90
ДООРД 60 ВДИГНИ ДО 40 60 СПУСНИ
ДООРД 90 ДО 55 75 ДО 70 90 ДООРД 60
КРАЙ
199
ЗА РЕДОВЕ :N ЮПИСЪК.Ю
АКО :N > 3 ТО ИЗХОД СПИСЪК. 10
( ИЗВЕДИ [ВЬВЕДЕТЕ БРОЯ НА ПРЪЧИЦИТЕ В РЕД] :N )
ИЗХОД РЕДОВЕ :N + 1 ОТЗАД ( ВХ.ЧИСЛО 0 32 ) ЮПИСЪК.Ю
КРАЙ
ЗА РИС РЕДОВЕ :N :СП
АКО СП = [ ] ТО СТОП
РИС.ПРЪЧИЦИ I N ПЪРВИ :СП
РИС РЕДОВЕ :N + 1 БЕЗПЪРВИ СП
КРАЙ
ЗА ИГРА.НИМ :ИГРАЧ ЮПОНЕНТ
(ИЗВЕДИ [БРОЙ НА ПРЪЧИЦИТЕ В СЪОТВЕТНИТЕ РЕДОВЕ:] :ПРЪЧИЦИ )
ПОВТОРИ 2000 [ ]
АКО СУМА ПРЪЧИЦИ 0 - 0 ТО РЕЗУЛТАТ
( ИЗВЕДИ :ИГРАЧ [ИЗБИРА ] )
АКО ИГРАЧ = "КОМПЮТЪРЪТ ТО СЛУЧ.ХОД ( I + ИЗБОР 3 ) ИНАЧЕ
АКО ;ИГРАЧ = УМНИЯТ.КОМПЮТЪР ТО СЛОЖ.ХОД ИНАЧЕ ХОД
ИГРА.НИМ ЮПОНЕНТ :ИГРАЧ
КРАЙ
ЗА СУМА :L :S
АКО L = [ ] ТО ИЗХОД :S
ИЗХОД СУМА БЕЗПЪРВИ :L ( :S + ПЪРВИ :L )
КРАЙ
ЗА РЕЗУЛТАТ
( ИЗВЕДИ ЮПОНЕНТ [Е ПОБЕДИТЕЛ.] )
ИЗВЕДИ [ ]
ИЗВЕДИ [ ]
ФИНАЛ
КРАЙ
ЗА СЛУЧ.ХОД РЕД
НАПРАВИ ”Е ЕЛЕМЕНТ :РЕД :ПРЪЧИЦИ 1
АКО :Е = 0 ТО СЛУЧ.ХОД 1 + ОСТАТЪК ( 1 + :РЕД ) 3 СТОП
ВЗЕМАНЕ РЕД ( I + ИЗБОР :Е )
КРАЙ
ЗА СЛОЖ ХОД
НАПРАВИ 'СЛ.Х АНАЛИЗ ( ДВОИЧНИ :ПРЪЧИЦИ [ ] )
АКО :СЛ.Х = [ ] ТО СЛУЧ.ХОД ( 1 + ИЗБОР 3 ) СТОП
ВЗЕМАНЕ ПЪРВИ :СЛ.Х ПЪРВИ БЕЗПЪРВИ :СЛ.Х
КРАЙ
ЗА ХОД
ИЗВЕДИ (ВЬВЕДЕТЕ НОМЕРА НА РЕДА.]
НАПРАВИ Р ВХ.ЧИСЛО 0 4
АКО ( ЕЛЕМЕНТ :Р :ПРЪЧИЦИ I ) = 0 ТО ( ИЗВЕДИ ]В РЕД] :Р [НЯМА
ПРЪЧИЦИ] ) ХОД СТОП
ИЗВЕДИ [ВЬВЕДЕТЕ БРОЯ НА ПРЪЧИЦИТЕ.]
НАПРАВИ "Б ВХ.ЧИСЛО 0 ( ЕЛЕМЕНТ :Р ПРЪЧИЦИ 1 ) + 1
ВЗЕМАНЕ :Р :Б
КРАЙ
200
ЗА СТЕПЕН2 :N :Р
АКО :N = О ТО ИЗХОД :Р
ИЗХОД СТЕПЕН2 :N - 1 2 * :Р
КРАЙ
ЗА ПРОИЗВ :СП1 СП2 :ПР
АКО :СП1 = [ ] ТО ИЗХОД :ПР
ИЗХОД ПРОИЗВ ( БЕЗПЪРВИ :СП1 ) ( БЕЗПЪРВИ :СП2 ) ОТЗАД
( ПЪРВИ :СП1 ) * ПЪРВИ :СП2 :ПР
КРАЙ
ЗА СУМ.ПО.ЕЛЕМ :СП1 :СП2 :СУМ
АКО :СП1 = [ ] ТО ИЗХОД :СУМ
ИЗХОД СУМ.ПО.ЕЛЕМ БЕЗПЪРВИ :СП1 БЕЗПЪРВИ :СП2 ОТЗАД ОСТАТЪК
( ( ПЪРВИ :СП1 ) + ( ПЪРВИ :СП2 ) ) 2 :СУМ
КРАЙ
ЗА НЕЧЕТНИ :СП :N :ДВ.СТ
АКО :СП = [ ] ТО ИЗХОД :ДВ.СТ
АКО ПЪРВИ :СП = О ИЗХОД НЕЧЕТНИ БЕЗПЪРВИ :СП ( :N 1 ) .ДВ.СТ
ИЗХОД НЕЧЕТНИ БЕЗПЪРВИ :СП ( :N — 1 ) ДВ.СТ + СТЕПЕН2 :N 1
КРАЙ
ЗА ВХ.ЧИСЛО :ЛГ :ДГ
НАПРАВИ ”В ВХОД
АКО НЕ :В = [ ] ТО НАПРАВИ "В ПЪРВИ :В
АКО ЧИСЛО? :В ТО АКО ВСИЧКИ ( :В < :ДГ ) ( :В > :ЛГ ) ТО ИЗХОД :В
( ИЗВЕДИ [ВЪВЕДЕТЕ ЧИСЛО МЕЖДУ] ( :ЛГ + I ) [И] ( :ДГ - - 1 ) ” )
ИЗХОД ВХ.ЧИСЛО :ЛГ :ДГ
КРАЙ
ЗА ИЗВАДКА :СП1 :СП2 :N
АКО :N > 3 ТО ИЗХОД :СП2
АКО :N = ТЕД ТО ИЗХОД ИЗВАДКА БЕЗПЪРВИ :СП1 ОТЗАД ( ( ПЪРВИ
:СП1 ) — :БРОЙ ) :СП2 ( :N + 1 )
ИЗХОД ИЗВАДКА БЕЗПЪРВИ :СП1 СТЗАД ПЪРВИ :СП1 :СП2 ( ;N + 1 )
КРАЙ
ЗА ВЗЕМАНЕ ТЕД :БРОЙ
РИС.ПРЪЧИЦИ О ТЕД :БРОЙ
НАПРАВИ "ПРЪЧИЦИ ИЗВАДКА ;ПРЪЧИЦИ [ ] 1
КРАЙ
ЗА ДВ.ЧИСЛО :N :СТ.1О :СТ.2
АКО :N > 4 ТО ИЗХОД :СТ.2
ИЗХОД ДВ.ЧИСЛО ( :N + 1 ) ( ЧАСТНО :СТ.1О 2 ) ( ОТПРЕД ( ОСТАТЪК
:СТ.1О 2 ) СТ.2 )
КРАЙ
ЗА ДВОИЧНИ :СП.1О :СП.2
АКО :СП.1О = ( ] ТО ИЗХОД :СП.2
ИЗХОД ДВОИЧНИ БЕЗПЪРВИ :СП.1О ОТЗАД ( ДВ.ЧИСЛО О ПЪРВИ :СП.1О
[ ] ) :СП.2
КРАЙ
ЗА СЪОТВЕТСТВИЕ :СП :N
АКО :СП = | ] ТО ИЗХОД [ ]
201
АКО ПРОИЗВ ПЪРВИ :СП ПОСЛЕДЕН :ПОЗИЦИИ [ ] = ПОСЛЕДЕН :НОЗИ-
НИИ ТО ИЗХОД СПИСЪК :N ПЪРВИ ПОЗИЦИИ
ИЗХОД СЪОТВЕТСТВИЕ БЕЗПЪРВИ :СП :N + I
КРАЙ
ЗА СУМИРАНЕ :СП :СУМ.СП
АКО :СП = [ ] ТО ИЗХОД СПИСЪК ( НЕЧЕТНИ :СУМ.СП 4 0 ) СУМ.СП
ИЗХОД СУМИРАНЕ БЕЗПЪРВИ :СП СУМ ПО.ЕЛЕМ ПЪРВИ :СП :СУМ.СП [ ]
КРАЙ
ЗА АНАЛИЗ СП
НАПРАВИ "ПОЗИЦИИ СУМИРАНЕ :СП [0 0 0 0 0]
АКО ПЪРВИ ПОЗИЦИИ = 0 ИЗХОД [ ]
ИЗХОД СЪОТВЕТСТВИЕ :СП I
КРАЙ
ЗА ПРЪЧИЦА
ПОВТОРИ 2 [НАПРЕД 20 НАЛЯВО 90 НАПРЕД I НАЛЯВО 90]
НАЛЯВО 90 ВДИГНИ НАПРЕД 9 СПУСНИ НАДЯСНО 90
КРАЙ
ЗА ЕЛЕМЕНТ НОМЕР :СП :N
АКО НОМЕР = :N ТО ИЗХОД ПЪРВИ :СП
ИЗХОД ЕЛЕМЕНТ :НОМЕР БЕЗПЪРВИ :СП N + I
КРАЙ
ЗА РИС.ПРЪЧИЦИ :М ТЕД :БРОЙ
МОЛИВ :М
ВДИГНИ
ДО ( — 144 ) + ( ( ЕЛЕМЕНТ ТЕД :ПРЪЧИЦИ ! ) » 9 ) 54 - ( ТЕД * 30 )
СПУСНИ
ПОВТОРИ :БРОЙ [ПРЪЧИЦА]
МОЛИВ 1
КРАЙ
ЗА ДЪЛЖИНА СП
АКО :СП = [ ] ТО ИЗХОД 0
ИЗХОД I + ДЪЛЖИНА БЕЗПЪРВИ :СП
КРАЙ
ЗА НОВ.НИМ
ТЕКСТ
ИЗВЕДИ [ЗДРАВЕЙТЕ]
ИЗВЕДИ [ ]
ИЗВЕДИ [ ]
ИЗВЕДИ [ВЪВЕДЕТЕ ИМЕЮ НА УЧАСТНИК N: 1]
ПРОВЕРКА.ВХОД
НАПРАВИ "УЧАСТНИК! АКО.КОМПЮТЪР :ВХ
ИЗВЕДИ [ ]
ИЗВЕДИ [ВЪВЕДЕТЕ ИМЕТО НА УЧАСТНИК N: 2]
ПРОВЕРКА.ВХОД
НАПРАВИ "УЧАСТНИК2 АКО КОМПЮТЪР :ВХ
НАЧАЛО
ИГРА.НИМ :УЧАСТНИК1 :УЧАСТНИК2
КРАЙ
•02
ЗА НАЧАЛО
РИС.РАМКА
НАПРАВИ "ПРЪЧИЦИ РЕДОВЕ I [|
РИС.РЕДОВЕ I :ПРЪЧИЦИ
КРАЙ
БРОЙ.ЗНАКОВЕ
ЗА ПРОВЕРКА.СИМВОЛ
НАПРАВИ "ВХ ВХОДЗН
ИЗВЕДИ :ВХ
КОРЕКТЕН.ВХОД
КРАЙ
ЗА НОВА.БУКВА
ИЗВЕДИ [КОЯ Е ТЯ?]
ПРОВЕРКА.СИМ ВОЛ
НАПРАВИ "БУКВА :ВХ
ОТГОВОР
КРАЙ
ЗА БУКВИ :Д Т
АКО :Д = " ТО ИЗХОД Т
АКО ПЪРВИ :Д = :БУКВА ТО ИЗХОД БУКВИ БЕЗПЪРВИ Д Р + I
ИЗХОД БУКВИ БЕЗПЪРВИ Д Т
КРАЙ
ЗА ОТГОВОР
( ИЗВЕДИ "ИМА БРОЙ :РЕДОВЕ ["] :БУКВА [" В ТЕКСТА ] )
АКО АКО.ДА.ИЛИ.НЕ |ИСКАТЕ ЛИ ДА ПРОВЕРИТЕ ДРУГА БУКВА.' (ДА
НЕ)] = [ДА] НОВА.БУКВА СТОП
КРАЕ!
ЗА ВХОД.РЕДОВЕ
ИЗВЕДИ [ВЪВЕДЕТЕ РЕД:]
НАПРАВИ "РЕД ВХ
АКО НЕ ( ТЕД = [ ] ) ТО АКО ПЪРВИ ПЪРВИ РЕД = "# ТО ОТГОВОР СТОП
НАПРАВИ "РЕДОВЕ ОБЕДИНЕНИЕ :РЕДОВЕ ТЕД
ВХОД.РЕДОВЕ
КРАЙ
ЗА КОРЕКТЕН.ВХОД
АКО :ВХ = " ТО ИЗВЕДИ [МОЛЯ. ВЪВЕДЕТЕ БУКВА!] КОРЕКТЕН.ВХОД
КРАЙ
ЗА АКО.ДА.ИЛИ.НЕ :ВЪПРОС
ИЗВЕДИ :ВЪПРОС
НАПРАВИ "ОТГ ВХОД
АКО НЯКОЕОТ :ОТГ = [ДА] :ОТГ = [НЕ] ТО ИЗХОД ОТГ
ИЗВЕДИ [ОТГОВОРЕТЕ С "ДА" ИЛИ "НЕ".]
ИЗХОД АКО.ДА.ИЛИ.НЕ :ВЪПРОС
КРАЙ
ЗА БРОЙ :Т
АКО Т = " ТО ИЗХОД О
АКО :Т = [ ] ТО ИЗХОД О
203
АКО СПИСЪК? :T ТО ИЗХОД ( БРОЙ ПЪРВИ :Т ) + ( БРОЙ БЕЗПЪРВИ :Т )
АКО ПЪРВИ :Т = БУКВА ИЗХОД 1 + БРОЙ БЕЗПЪРВИ :Т
ИЗХОД БРОЙ БЕЗПЪРВИ :Т
КРАЙ
ЗА БРОЙ.ЗНАКОВЕ :БУКВА
ТЕКСТ
ИЗВЕДИ [ВЪВЕЖДАЙТЕ ТЕКСТА РЕД ПО РЕД.]
НАПРАВИ "РЕДОВЕ[]
ВХОД.РЕДОВЕ
КРАЙ
6. ЧЕСТО СРЕЩАНИ ОБОБЩЕНИЯ ЗА ГРЕШКА
Съобщенията за грешки ще ни помогнат да разберете къде сте сбър-
кали. По-долу ще видите примери на такива съобщения, с конто начинае-
щите най-често се сблъскват. Анализирайте и описвайге в тстрадките си
ситуациите, при конто са се появявали съобщенията за грешки.
1. <съобщение> В РЕДА < номер на ред>
НА НИВО <номер на ниво> НА симе на процедура>
Ако например искате да изпълните процедурата
ЗА ФИГУРА
НАПРЕД 100 НАДЯСНО90
НАПРЕД 50 НАЛЯВО 90
НАПРЕД 100
КРАЙ
ще получите съобщение;
КАКВО ЗНАЧИ НАДЯСНО90 В РЕДА
НАПРЕД 100 НАДЯСНО90
НА НИВО 1 НА ФИГУРА
2. ДУМАТА <име> Е ЗАПАЗЕНА ЗА ЛОГО
Причина га е, че използвате за име на процедура дума от речника на
Лого, което не се допуска. Когато пишете например процедура за черта-
не на графика на функция, не можете да назовете тази процедура ГРА-
ФИКА.
3. симе на процедура> ИЗИСКВА ПОВЕЧЕ ВХОДОВЕ
Броят на входовете е по-малък от необходимия. Това съобщение се
появява и когато вход, различен от първия, започва със знак — и не е
ограден със скоби, например:
ДО 5 -20
4. ДИСКЕТАТА Е ПО ВРЕДЕН А
Това съобщение може да се появи не само когаю дискетата ви е
повредена, но и когато е запълнена. Появява се и когато има инструкция
за работа с дискетното устройство, но в него няма дискета.
5. НЯМА ФАЙЛ симе на файл>
Допускали сте грешка в името на файла или пък файлът, който гър-
сите, не се намира на тази дискета.
УМЪТ МИ НЕ ГО ПОБИРА!
Използвали сте цялата работна памет. Трябва или да изтриете ни-
кои процедури, конто не са ви необходими, или да запазите съдържание-
то на работната памет във файл и да я изчистите с инструкцията ОТНО-
ВО.
7. РЕЗУЛТАТ: с данни >
Има три ситуации, в конто се появява такова съобщение:
а) Ако въведете само число, дума или списък, без да сте ги вклю или
в инструкция.
б) Ако сте дали излишен вход на дадена инструкция. Компютърът
„взема“ толкова входове, колкою са му необходими, а първият излишен
вход се появява след РЕЗУЛТАТ:. Например, ако сте дали инструкцията:
НАПРЕД 50 50
костенурката ще измине напред 50 стъпки и ще се появи съобщение.
РЕЗУЛТАТ: 50
в) Ако правите пресмятания в команден режим и не сте обявили
какво да се прави с резултата. Например, ако въведете 2 + 2, ще получите
съобщение:
РЕЗУЛТАТ: 4
8. НЯМА ПРОМЕНЛИВА С ИМЕ <име>
Съобщението се появява, когато в дадена инструкция се използва
стойност на променлива, а такава променлива не е дефинирана.
9. КАКВО ЗНАЧИ <име>
Съобщението се появява, когато в дадена инструкция се използва
име на процедура, която не е дефинирана.
7. КАК ДА ИЗПОЛЗВАМЕ ПРОГРАМИТЕ
ЗА РИСУВАНЕ, АНИМАЦИЯ И МУЗИКА
РЕД.РИСУНКИ
Програмата се зарежда и привежда в действие с помощта на командите:
ЗАРЕДИ ’ РЕД.РИСУНКИ
РЕД.РИСУНКИ
На екрана се появява мигаща точка, която изпълнява ролята на кур-
сор. Ако натиснем управляващ клавиш за движение, курсорът се пре-
мества с една стопка в избраната посока:
204
205
и премества курсора на север; премества курсора на изток; премества курсора на юг; премества курсора на запад; премества курсора на североизток;
Lsj
м
1 й
1 °
1 > премества курсора на югоизток; премества курсора на югозапад; премества курсора на северозапад.
н
У
Тук посоките съответстват на посоките върху географска карта. У и
равляващите клавиши за движение са избрани съобразно разположешк
ТО им вър в с 0 ку клави дейс дейсз 1 1, атур гва а ва а 2 ап н нг > га. И алоп 1ЛО1Г 3 31 44 [Ч 1ОЛЗ но в но н 4 ва а а > г се ком* кома 5 И 1н; ЦЕ и клав! аата [ата 6 плите: ВДИГНИ; СПУСНИ;
задават цвят на молива'.
задава фон с последния избран цвят;
дава справка за управляващите клавиши;
- | Ц | спира изпълнението на програмата РЕД.РИ-
- С показва на екрана графика и текст;
- Ф показва на екрана само графика;
RPT | повтаря многократно действието на някой друг управля
ваш клавиш.
За да начертаем например вертикална линия, натискаме едновремеп
но клавишите |~ и | | rpt | , докато линията стане дълга колкою
искаме.
При желание можем да спрем редактирането и да изпълним прош
волни процедури (например да допълним картината с обекти, кош о
имат геометрична форма). За да продължим да рисуваме, задаваме ко
мандата РИСУВАП.
Когато спрем програмата. можем да запазим нарисуваното на ди
скега и по-късно пак да го редактираме с помощта на програмата РЕД.
РИСУНКИ.
РЕД.ОБРАЗИ
Програмата се зарежда и се привежда в дейст вие с помощта на команди-
те:
ЗАРЕДИ 'РЕД.ОБРАЗЙ
РЕД.ОБРАЗИ
206
Както и при програмата РЕД.РИСУНКИ, на екрана се появява ми-
। аша точка (курсор), която се управлява с клавишите за движение
и 9 й 9 К 9 м 9 О н У и 9 j
Използваз се и други управляващи клавиши: в | действа аналогично на командата ВДИГНИ; С | действа аналогично на командата СПУСНИ; QCB | изтрива последната начертана точка; | МК | -1 Д ] изтрива точката, върху която се намира курсо- рът; мк ] _ 1 к 1 изтрива всичко от курсора до края на фигурата;
МК | - У премества курсора напред по контура;
МК - X премества курсора назад по контура;
МК — А прсмесзва курсора в началото на контура;
1 МК — та премества курсора в края на контура;
1 МК — та j копира нарисуваното от мястото на курсора до
края на контура;
изменят размера на образа;
| МК |- I Ц спира изпълнението на програмата ред.обра-
зи; 2Z~
| МК ] - [ с | показва на екрана графика и текст;
МК ]-| Ф | показва на екрана само графика.
____След като прекъснем редактирането с помощта на | МК |
| ц ] , можем да запазим редактирания образ върху дискета. За тази
цел при въпроса на компютъра
ИМЕ НА ОБРАЗА?
трябва да запишем името, под което този образ ще се запази. Например
ИМЕ НА ОБРАЗА? СЛОН
Образи може да се получават и като се сглобяват отделни елементи,
запазени предварително на дискета. Това става с клавиша
го натиснем, на екрана се появява въпрос:
та.
Ако
ФИГУРА?
Като отговор се записва името на поредния елемент оз образа. Тога-
ва този елемент ще се появи на определеното от курсора място.
207
Ако искаме да нарисуваме друга фигура, например кон, трябва отно-
во да се върнем към програмата РЕД.ОБРАЗИ.
За да можем да преврыцаме костенурката в някой от обратите, зала
зени на дискета, трябва най-напред да зададем командите:
ЗАРЕДИ ” ВКЛ.ОБРАЗИ
НАЧАЛО
След това трябва да заредим образите в паметта на компютъра с
помощта на командата ВКЛЮЧИ. Например, ако сме нарисували слон и
кон и сме ги залазили съответно във файловете СЛОН и КОН, задаваме
командите:
ВКЛЮЧИ "СЛОН
ВКЛЮЧИ КОН
След като заредим тези образи, записваме:
ПРЕХВЪРЛИ
С тази команда информацията за образите се прехвърля на подходя
що място в паметта на компютъра.
Сега вече можем да сменяме образа на костенурката. Това става с
помощта на командата ОБРАЗ. Например, за да превърнем костенурка-
та в слон, трябва да запишем:
ОБРАЗ :СЛОН
Мащабът на новия образ се задава с командата МАЩАБ, входът
на която е цяло число между 1 и 9. Например с командата МАЩАБ 3
слонът ще стане три пъти по-голям.
След като костенурката смени своя образ, тя може да се обръща
само на ъгли, кратни на 90. При командата ОБРАЗ 0 костенурката си
зъзвръща първоначалния образ.
МУЗИКАЛЕН РЕДАКТОР
След зареждането в паметта и приключването на демонстрационната
част се влиза в следното меню:
<-ДВИЖЕНИЕ -> ДЮБАВЯНЕ В(МЪКВАНЕ С(КОК
Т(РИЕНЕ 3(АЛИЧАВАНЕ И(ЗХОД К(ОПИРАНЕ
Оттук могат да се избират следните команди:
<- | ( мк - X ) връща въведения нотен текст с една позиция
назад.
(| мк |-1 у |) премества въведения нотен текст с една по-
зиция напред.
| С | извършва скок в началото, в края на текста или на посочена
нота от текста.
L т I служи за изтриване на нотния текст от нотата, чийто номер
посочим, до нотата, над която е курсорът (включително).
3 заличава нотата, която се намира под курсора.
к копира нотен текст. От клавиатурата трябва да се посочат
номерата на началната и крайната нота на областта, която ще се копира.
Самото копиране се извършва след мястото, определено от курсора.
| Д | влиза се в режим на добавяне на нотен текст. Въвеждането
на нотите става с помощта на следните клавиши:
| з |, [ Ъ | ,| ц [, | ж ], | Б | , | Н |, | М | —- първа октава;
[ А | ,| С | ,| Д | ,|~Ф~] ,| Г |, | X |, [ й | — втора октава;
— трета октава.
Продължителността на нотите може да се променя от цяла нота до
трийсетивторинка със следните клавиши:
2
3
4
Паузи:
I]
цяла нота;
половинка нота;
четвъртинка нота;
осминка нота;
шестнайсетинка нота;
трийсетивторинка нота.
цяла пауза;
половина пауза;
четвъртина пауза;
осмина пауза;
шестнайсетина пауза.
Други управляващи клавиши:
|~^~] служи за въвеждане на нота с точка. Използва се
средствено преди да се иабере самата нота.
служи за въвеждане на диези. Използва се както
непо-
| < [ служи за въвеждане на бемол. Използва се както । ,~|
* служи за въвеждане на повторение. С него се показва нача-
лото на повторението.
14. Информатика за начинаещи — част I)
служи за въвеждане на край на повторението.
)
I I връща написаното с една позиция назад, като последилia
нота се изтрива.
показва инструкциите към програмата.
1 осв I изключва звука. При въвеждане на нотите те не се изсвир ват. При повторно натискане на [ осв | звукът се включва.
| п | МОЛИ. дава възможност за автоматично въвеждане на диези и бе
L отменя диеза или бемола пред нота, за която съответния i
знак би се въвел автоматично.
| МК | — | е | връща управлението към предишното меню.
От това меню има още две команди: j в | С тази команда се влиза в режим на вмъкване. Използва! се сьщите клавиши както в режим на добавяне. Вмъкването се извършва след указаната от курсора нота. | и | След избиране на тази команда се влиза в друго меню. То
има следното съдържание: Р(ЕДАКТИРАНЕ 3(АПИС Ч(ЕТЕНЕ ГЦРОСВИРВАНЕ Г(РАФИКА Ф(ИНАЛ ОСТНОВО Т(РИЕНЕ К(АТАЛОГ
ш (редактиране) връща в предишното меню.
|_ф_ 1 (финал) изход от програмата.
LoJ изпълнява отново програмата.
1 3 (запис) записва въведения нотен текст върху дискета.
Гч (четене) зарежда нотен текст от дискета. Курсорът е върху
последната нота. | Т | (триене) изтрива предварително записан на дискетата но-
тсн текст.
LK_. (каталог) дава каталога на дискетата.
Гл_ (просвирване) при натискането на този клавиш на екрана
се изписва:
ПРОСВИРВАНЕ: Н(ОВО ТЕМПО Т(РАНСПОНИРАНЕ
Оттук може да се зададе темпото на изпълнение, като се натисне клави-
шът | н | - Тем пата са:
LARGO, LENTO, ADAGIO бавни
ANDANTE, MODERATO, ALLEGRETTO умерени
ALLEGRO, VIVO, VIVACE — бърЗИ
С помощта на клавиша | Т | мелодията може да се транспонира.
210
Трябва да се зададе броят на полутоновете, с конто да се irixi.piiiii
гранспонирането и да се определи посоката му.
Просвирването може да бъде спряно, като се натисне клавиш ы ia
интервал. С иегова помощ можем да просвирим мелодията нота по нога.
Нормалното изпълнение продължава, ако натиснем някой друг клавиш.
С помощта на осв се излиза от режима.
| Г | (графика) начертава графиката на мелодичната линия на
въведения нотен текст. Ако дадем команда за просвирване на мелодията
веднага, след като графиката бъде начертана, една движеща се точка ще
следи текущата нота.
211
8. СЪДЪРЖАНИЕ НА ДИСКЕТИТЕ
Дискета 1
УЧЕБНИ ПРОГРАММ ТЕМА УЧЕБНИ ПРИМЕРИ ТЕМА
НИМ 2 КООРД.ГРАФИКА 5
животни . * 9 ПОСТРОИТ.ЗАДАЧИ 10
ПРОВЕРКА.ЗНАНИЯ 9 БУБОЛЕЧКИ 10
КОСМОС 13 ФИГУРИ 17
ЖАБИ 14 ГЕОМЕТР.ПРЕОБР 21
СРЕДНА.ДЪЛЖИНА 23 ОБРАБОТКА.ДУМИ 22,23,24,25
МАГИЧЕСКА.ТАБЛИЦА 26 РОБОТ 23
НОВ.НИМ 26 ПОЗИЦ.СИСТЕМИ 27,28,30
БРОЙ.ЗНАКОВЕ 28 КОДИРАНЕ 29
Дискета 2
МУЗИКАЛЕН РЕДАКТОР
7,8
212
9. АЗБУЧЕН ПОКАЗАЛЕЦ
А
АБСЦ 7., 14.
АЗИМУТ 11.. 21.
АКО 5.. 6., 7., 8., 11.. 17., 18., 19., 20., 21.,
22., 23., 24., 25., 27.
AM 7.
абсциса 7., 11., 14.
текуща на точката 7.
азбука 21., 25., 27.
кирилица 22.
латиница 22.
алгоритъм 1., 10., И., 15.. 17., 20., 23..26.
на програма 11.
аналогия 25.
анимация 7., 22., 27.
апостроф
двоен 21.
единичен 21.
архитект 1.
архитектура 1.
Б
Б1.КЪМ.Б2 11.
Б2.КЪМ.БЗ 11.
БЗ.КЪМ.Б4 11.
Б4.КЪМ.Б1 II.
БАВНО 7.
БЕЗ 13.
БЕЗПОСЛЕДЕН 21., 22.. 24.
БЕЗПОСЛЕДНИТЕ 22.
БЕЗПЪРВИ 21., 22., 23.. 24.. 25.. 27.
БЕЗПЪРВИТЕ 22.
БОРЧЕ 7.
БПЛ 2L
БПР 2L. 27.
БРОЙ 18.
БРОЙ.ОБРАТНО 18.
БРОЯЧ 18.
бекар 10.
бемол 9., 10.
блок-схема 1.
брой 2., 6., 9., 20., 26.
на клечки 2.
на позиции 8.
на страни 6.
на числа 6.
буква 3., 9., 21., 22., 25.. 26.
латинска 7., 25., 27.
В
ВДИГНИ 4„ 7., 11., 14., 17., 18., 21.
ВЕКТОРИ 14.
ВЕНЧЕЛИСТЧЕ 13.
ВЕЧЕН.КАЛЕНДАР 20.
ВЗАИМНО.ПРОСТИ 20.
ВКЛ.ОБРАЗИ 7.
ВКЛЮЧИ 7., 16.
ВМЪКВАНЕ 8.
ВРЪЩАНЕ 8.
ВСЕЛЕНА 17.
ВЪРВИ 7.
ВЪРТЕЛЕЖКА 8
ВЪТРЕШНА? 7.
ВЯРНО 7.
вариант 2., 3., 7., 26.
вектор 4.. 11.. 12.. 14.
на преместване 4., 14., 16
височина 3., 17.
на тон 10.
на триъгълник 20.
врсме 14., 16.
вход 3., 5., 6., 7., 11., 13., 18.. 20., 22.,
23.,24., 25.. 27.
на команда 3.. 6., 11.
на операция 21.
на процедура 7., 12.. 13.. 20.. 21.
въпрос 1., 5., 8., 13., 19.
Г
ГРАФИКА 4., 8., 10.. 15.. 21.
ГРАФИЧЕН 16., 17.
глагол 22.
среднеанглийски 2.
глас 8.
компютърен 8.
година 7.
големина 5., 7., 14.. 25.
на сила 14., 15.
на ъгъл 11.
г радус 7., 11.. 13.
грамофон 9., 10.
граница 3.
на текст 10.
граф 3.. 8.. 15.. 17.
на програма 17.
графика 3.
на мелодична линия 10.
на функция 4.
грешка 1.. 3.. 10.. 13., 16., 21., 25.
д
ДВИЖЕНИЕ 8.. 11.. 15., 16.. 17.
ДВИЖЕНИЕ 1 17.
213
ДВИЖЕНИЕ? 17.
ДВИЖИ.СЕ 7.
ДЕКОДИРАН 27.
ДЕН 20.
ДЕШИФРИРАН 27.
ДО 4., 11., 14., 17., 21., 23.
ДОАБСЦ 7., 14., 21.
ДОБАВЯНЕ 8.
ДОКР 13.
ДООРД 14.. 21.
ДУМА 24.
ДЪЛЖ.ДЪГА 13.
ДЪЛЖ.ОКР 12., 13
ДЪЛЖ.ПЕТ.ОКР 12.
ДЪЛЖИНА 23.
ДЯСНАДЪГА 1., 2.
ДЯСНАОКР 17.
данни 21.
движение 5., 7., 11., 14., 15.
праволинейно 15., 16.
равнозакъснително 5.
равномерно 15., 16.
равноускорително 5., 15., 16.
разнопосочно 14.
двоеточие 9.
деветоъгълник 1.
действие 3., 12., 16.
на операция 20., 25.
на процедура 7., 18., 23.
на сила 15.
декодиране 27.
деление 3., 20.
с остатък 26.
делител 7.
общ 20.
дефиниция
на операция 25.
дещифриране 27.
диагонал 14., 17.
на квадрат 14.
диаграма
кръгова 12., 24.
диало! 2., 8., 23.
диаметър 3.
диапазон
на мелодия 8., 9
диез 9., 10.
дискета 7., 10., 15., 16., 17., 22., 24.
дроб 20.
несъкратима 20.
дума 3., 5., 7., 11., 22.. 23., 25., 26.
английска 24.
българска 22.
входна 23., 25.
двоична 27.
двукоренна 22.
празна 21., 22., 23., 24., 25.
руска 24.
дъга 13.
дължина 7., 11., 12., 13., 23., 25., 27.
на вектор 14.
на дума 6., 20., 23., 24.
на дъга 13.
на катет 3., 11., 12.
на окръжност 13.
на отсечка 19.
на страна 6., И., 12.. 20., 26.
на триъгълник 20.
на хипотенуза 3., 11.
средна 23.
Е
ЕЛЕМ? 23.
ЕЛХА 7.
единица 20.
астрономичеека 3.
време 14.
мярка 11., 14.
език 1., 23.
Ада 27.
Алгол 27.
Бейсик 27.
Лого 1., 3., 10.. 11., 12., 20., 21., 22., 25.
Паска л 27.
Пл I 27.
Пролог 27.
Фортран 27.
алгоритмичен 1.
английски 18., 22.. 23.. 24.
български 22., 23., 24., 25.
естествен 1., 17.
за програмиране 1., 3., 7., 10., 24., 27.
машинен 27.
руски 18.. 22.. 23.. 24.
екватор 3.
екран 1., 2., 3., 4., 5„ 6„ 7., 8., 9., 10., 11.,
12.,13., 14., 16., 17., 18., 19., 20., 21., 22., 26.
на компютър 4., 12., 14., 15.
експеримент 4.. 5., 7., 12., 14., 18., 21., 23.
електрон 2., 3.
елемент 15., 27.
химичен 3., 8.
енергия
потенциална 14.
ефект 7.
забавящ 7.
Ж
ЖАБИ 15.
ЖИВОТНИ 8„ 13.
ЖИВОТНО 1 4.
214
ЖИВОТНО2 4.
ЖИВОТНОЗ 4.
3
ЗА 1„ 2., 3.. 4„ 5., 6.. 7., 8., 11., 13., 14., 15.,
16., 17., 18., 19.. 20., 21.. 22., 23.. 24., 25.,
27.
ЗАБАВИ 7.
ЗАБАВЯНЕ 5.
ЗАБРАВИ 7„ 13.
ЗАГЛАВИЯ 15.
ЗАКРЪГЛЕНО 3.
ЗАМЯНА 24.
ЗАПАЗИ 15., 16.
ЗАПАЗИКАРТ 24.
ЗАПИС 10.
ЗАПИСВАНЕ 10.
ЗАР 6.
ЗАРЕДИ 2., 7.. 8„ 14., 15., 16., 17., 23., 26.
ЗАРЕДИКАРТ 24.
ЗВЕЗДА 6.
ЗВЕЗДИ 13., 17.
ЗНАК 7., 27.
ЗНАНИЯ 13.
задание 1.
задача 1„ 3., 5., 12., 15., 19., 22., 23.
за построение 11.
закон
комутативен 22.
запетая 16.
запис 3.
компютърен 9.
на мелодия 9.
звук 7.
знак 3., 6.. 7.. 9., 10., 16.. 21., 22., 23., 24.,
25., 27.
въпросителен 14.
за бекар 9., 10.
за повторение 9.
легато 9., 10.
потен 9., 10.
знаменател 20.
значение 26.
И
ИВИЦА 13.
ИЗБОР 6., 7., 17., 21., 23.
ИЗВ.СЛУЧ 21.
ИЗВЕДИ 3., 5., 6., 7., 11., 12., 13., 14., 15..
16., 18., 19., 20., 21., 22., 23., 24., 25., 27.
ИЗВЕДИ.ЧИСЛО 13.
ИЗВЕЖДАЙ 20., 21.
ИЗМ.ПР.ТРИЪГ 11.
ИЗПИТАНИЕ 5.
ИЗТРИЙ 13.
ИЗХОД 3„ 5., 7„ 8., 11., 13., 19., 20., 21
22., 23., 24., 25., 27.
ИЛЮСТРИРАНЕ 15., 16., 17.
ИЛЮСТРИРАНЕ1 15., 16., 17.
ИЛЮСТРИРАНЕ2 15., 16., 17.
ИНАЧЕ 7.
ивица 7.
игра 2., 6., 8., 14., 15., 16., 23., 24., 26.
Космос 14.
китаиска 2.
компютьрна 14.
математическа 2.
на шах 2.
шрач 2., 8.
изваждане 3.
изпълнение 3., 5., 6., 13., 20., 27.
на команда 3., 11., 12., 16.
на мелодия 15., 17.
на операция 6., 7., 22., 23., 25.
на програма 13., 14., 16., 17., 25.
на процедура 7., 12., 17., 18., 19., 20.,
24
израз 12.
аритметичен 7.
изречение 1., 7., 18.. 22.. 25., 27.
изтриване 10.
изход 7.
име 8., 11, 21., 24., 25., 26.
на мелодия 10.
на операция 25.
на параметър 13.
на променлива 12.
съществително 22.
индекс 18.
инерция 14.
инструмент 10.
музикален 9., 10.
интервал 4., 6., 7., 19., 21., 23., 24.
информатика 12.
информация 1., 8., 12.. 13., 27.
К
КАЛЕЙДОСКОП 24.
КАРТИНА 13.
КАТАЛОГ 8., 10.. 13.
КВАДРАТ 5„ 18., 21.
КОД 25., 27.
КОД1 25., 27.
КОДИРАН 27.
КОМАНДА 15.
КОМАНДИ 15.
КОПИЕ 10. КОПИРАНЕ 9.
КОРЕН2 3„ 11., 21.. 22.. 23.
КОСМОС 14., 15.
КОСТЕНУРКА 7.
КРАЙ 1., 2., 3., 4., 5„ 6„ 7., 8.. 11., 13., 14.,
215
15., 16., 17., 1».. 19., 20., 21., 22., 23., 24.,
25., 27.
КУРСОР 21.
КЪМ 11.
КЪЩА 13.
калкулатор 3.
каталог
на дискета 10.
катет 3., 11.
квадрат 6., 7., 11.. 14., 15., 17., 21., 26.
китайски 15.
на число 3.
километър 3.
кирилица 25., 27.
клавиатура
на компютър 25.
клавиш 9., 10., 14., 15., 16.
за интервал 10.
за смяна на регистъра 9.
клетка 12.
клечка 2.
ключ 9., 10.
за декодиране 27.
код 25.
двоичен 21., 27.
числов 25., 27.
кодиране 27.
колектив 1.
команда 3., 4., 5., 6., 7.. 8„ 11., 12., 13., 14.,
15., 16., 17., 18., 19., 20., 21., 24., 26.
за вземане на решение 18., 19.
за проверка 11., 18., 19.
условна 7.
коментар 16.
компютър 1., 2., 3., 5., 6., 8., 9., 10., 11.,
12., 13., 14., 16., 18., 19., 20., 21., 22., 23.,
24., 25., 26., 27.
константа 12.
контур 12.
координата 4., 7., 11., 14, 17., 19., 20.
на вектор 14.
на точка 4, 11., 17.
копие 10.
на процедура 19.
копиране 9., 10.
корен
квадратен 3.
костенурка 1., 2., 4., 5., 6., 7., 11., 12., 14.,
16., 19., 21., 22.
водна 7.
край 10., 14.
на екраи 7.
на повторение 9.
на текст 23.
кратно 20.
крива 5.
затворена 2.
кръг 3
вписан 1.
курсор 9., 10.
кълбо
земно 3.
Л
ЛОДКА 1 7.
ЛОДКА2 7.
ЛОДКАТА 7.
ЛУНА 13.
ЛЯВАДЪГА 1., 2.
латиница 25., 27.
легато 9., 10.
линия
графична 10.
затворена 20.
крива 20.
начупена 4.
лице
на кръг 13., 19.
на триъгълник 20.
логика 8.
М
МАГИСТРАЛА 13., 15.
МАГИЧЕСКА.ТАБЛИЦА 26.
МАЩАБ 16., 21.
МЕЛОДИЯ 24.
МИ ШЕНА 15.
МОЛИВ 3., 7., 11., 17., 18.
МУЗИКА 27.
маса 14., 15., 16.
математик 1.
математика 4.
машина 2.
пишеща 9.
мащаб 3., 4.
мелодия 9., 10., 22., 23., 24.
меню 9., 10.
на програма 9.
мерна единица 14.
метод
за композиране 6.
микрокомпютър 27.
многоъгълник 6.
множество
от знакове 24.
модел
на процедура 19.
телескопичен 18., 19., 24.
молив 2.
на костенурката 17.
морфеми 21., 22.
216
мрежа
квадратна 16.
модулна 6.
Н
НАДЯСНО 1„ 2., 3., 5.. 6.. 7., 8.. 11., 13.,
14., 17., 18., 20., 21., 23.
НАЗАД 7., 8., 11., 18., 23.
НАЛЯВО 1., 2., 7., 8., 11., 18., 21.
НАПРАВИ 6., 7., 11., 12., 13., 14., 15., 16.
19., 20., 21., 22., 23., 24.. 25., 27.
НАПРЕД 1., 3., 4., 5., 6., 7., 8., 11., 13., 14.,
16., 17., 18., 20., 21., 23.
НАЧАЛО 7., II., 14., 16., 17., 21., 23.
НЕВЯРНО 7.
НИМ 2., 15.
НОВ.ЗН 27.
НОВ.ЗНАК 27.
НОВ.НИМ 26.
НОД 20.
НОД1 20.
НОК 20.
НОК1 20.
НОМЕР 25.
НЯКОЕОТ 7.
наредба
азбучна 25.
естествеиа на буквите 25.
естествена на числата 25.
на числови кодове 25.
речникова 25.
наставка 22.
начало 4., 9.
на координатна система 7., 11.
низ 21., 24.
входен 24.
номер 9., 20., 22., 27.
на буква 22., 25.
на позиция 9.
на поле 6.
на стълб 26.
нота 9., 10., 24., 27.
осминка 9., 10., 24.
половинка 9, 24.
трийсетивторинка 9.
цяла 9, 24.
четвъртинка 9., 10, 24.
шестнайсетинка 9, 24.
нула 3., 9., 20., 21., 24.
О
ОБЕДИН 24.
ОБР 20., 21.
ОБРАЗ 7., 16.
ОБРАТЕН 24.
ОБРАТНО 20.
ОБЪРНИ 11., 21., 23.
ОКРЪЖНОСТ 13.
ОРБИТА 13.. 14., 15.
ОРД 7., 14.
ОСТАТЪК 20.
ОТНОВО 7., 9., 10., 12., 13.
ОТПЕЧАТАЙ 13., 15.
ОТСТР 24.
ОХЛЮВ 5., II.
обединение
на множества 24.
обект 7., 14., 19., 23.
обработка
на думи 21., 22., 24.
образ 4., 7., 16.
на костенурката 7., 22.
симетричен 4.
обръгцение
рекурсивно 18.
означение 3.
окончание 22.
окръжност 11., 12., 13., 17.
концентрична 17.
октава 9., 10.
втора 24., 27.
първа 9., 24., 27.
трета 24.
операция 3., 5., 6., 7., 11., 13., 17., 19., 20.
21., 22., 23., 24., 25., 26., 27.
аритметична 3., 21., 23.
за декодиране 27.
за кодиране 27.
за обработка на думи 21., 22., 24.
за проверка 20.
за сьбиране на числа 24.
логическа 7., 19., 20., 25.
математическа 3.
нерекурсивна 19.
рекурсивна 19., 23.
описание 12., 20., 24., 28.
на движение 5.
на операция 11., 22., 23., 25.
на програма 20.
на процедура 1., 18., 19., 24.
нерекурсивна 19.
рекурсивна 19.
орбита 1.
кръгова 16.
ордината 7., 11., 14.
текуща 7.
ос
абсцисна 4., 7.
ординатна 4.
основа 2.
на триъгълник 20.
217
остатък 20
отговор 3., 5., 6., Я.
отсечка 4., 7., 14.
П
ПЛАВА 7.
ПЛАВНО 7.
ПЛАНЕТИ 17.
ПЛУВАЙ 7.
ПО.БЛИЗКО? 23
ПОВТОРИ 1., 2., 3., 6., 7., 8., 12., 13., 16.,
17., 18., 19., 20., 21., 24.
ПОЗИЦИЯ 17.
ПОЛИ 20.
ПОСЛЕДЕН 21., 22., 24
ПР.ТРИЪГ 11.
ПРЕВОД 27.
ПРЕД? 25.
ПРЕДХОЖДА? 25.
ПРЕМЕСТВАНЕ 14.
ПРЕСМ.Б! 15., 16., 17.
ПРЕСМ.52 15., 16., 17.
ПРЕСМЯТАНЕ 15., 16., 17.
ПРЕХВЪРЛИ 7., 16.
ПРИБАВИ1 13.
ПРИБЛ.РАВНИ? 11.
ПРИСТАНИЩЕ 7.
ПРОБЕРИ 6.
ПРОВЕРИ.СТРАНА 11
ПРОВЕРКА.ЗНАНИЯ 8.
ПРОСВИРВАНЕ 9., 10.
ПРОЦЕДУРА! 18.
ПРОЦЕДУРА2 18.
ПРОЦЕДУРАЗ 18.
ПЪРВИ 21., 22., 23., 24., 25., 27.
ПЪТ 13.
памет 2„ 8., 12., 13., 17.
локална 12., 13.. 18.
на компютър 7.
работна 2., 8., 12., 13., 16., 19., 22.
панел 1.
параметър 2., 4., 6., 7., 12., 13., 16., 17., 18.,
19., 20., 23., 25., 27.
партия 2.
партньор 2.
пауза 9., 10.
шестнайсе 1 инка 10.
периметър
на триъгълник 19.
песен 9., 10.
петолиние 9., 10., 24.
пирамида 2.
планета 3.
повторение 9.
подреждане 19.
поза 7.
позиция 9., 10.
крайна 10.
на нота 9.
начална 10.
печеливша 26.
показател
степенен 3.
покой 14.
полукръг 1.
полупериметър 20.
полуравнина 7.
полутон 9.
понятие
географско 24
поправка 1.
посока 11., 14., 23.
на движение 7.. 15.
потребител 1.
правило 15.
превод
буквален 3.
представка 22.
преместване 7.
пресмятане 3., 5., 13., 15., 20., 26.
приближение 3.
пример 3., 7.
проверка 1., 5., 16., 19., 25.
програма 1., 2., 3., 6., 7., 8., 9., 10., 11, 13,
14., 15., 16., 20., 21., 22., 23., 25., 26., 27.
за включване на образ 7.
за чертане 17.
Музикален редактор 9., 10.
на компютър 17.
програмиране 1., 12.
програмист 1., 9.
проект 1., 7.. 16.
на програма 1., 15.
произведение 19.
променлива 12., 13., 14., 16., 25.
глобална 12., 13., 16., 27.
локална 12., 13.
просвирване 10.
процедура 1., 2., 3., 4., 5., 6., 7., 8., 11., 12.
13., 14., 15., 16., 17., 18., 19., 20., 21., 22.
23., 24., 25.
за рисуване 4
за чертане 11., 15., 17., 18.
рекурсивна 5., 6., 13., 16., 18., 19., 24.
с параметри 11.
процес 5.
на hi ра 8.
път 5., 14., 16.
Р
РАЗМЕР 7„ 18.
РАЗРЕДЕН 24.
218
РАЗСТОЯНИЕ 11., 21., 23.
РАКЕТА 15.. 16., 17.
РАСТЕНИЯ 8.
РЕД.ОБРАЗИ 1., 7., 16.
РЕД.РИСУНКИ 1. 7, 12., 13., 17.
РЕДАКТИРАЙ 12., 13.
ВСИЧКО 12., 13.
РЕДАКТИРАНЕ 8., 10.
РЕЗУЛТАТ 15., 16., 17.
РОТАЦИЯ 21.
работа 4.
довършителна 1.
равенство 15., 16.. 19., 23.
радиус 13., 17., 19.
на окръжност 12.
разлика 5.. 20.
размер 6., 7., 16., 17
тактов 9., 10.
разряд 26.
разстояние 3., 12., 14., 15.. 23.
регистър 9.
ред 2., 3., 14., 17., 18., 21.. 23., 26.
азбучен 25.
на мрежа 6.
на процедура 11., 16.. 19
обратен 24.
програмен 5.
редактора не
на мелодия 10.
редактор 10.
музикален 9., 10., 22.
редица 19
от числа 26.
режим 10.
команден 19.
на вмъкване 10.
на добавяие 9., 10.
на редактиране 10.
резултат 2„ 3.. 4„ 5., 6., 8., 11., 12., 13., 18.
19., 20.. 21.. 22., 23., 24., 25., 27.
от операция 7., 11., 21., 22., 23., 24., 25.
рекурсия 18., 22.
речник 11 , 24.
решение 5.
С
СЕЧЕНИЕ 24
СИМ 21.
СИМЕТРИЯ О 21
СИМЕТРИЯ X 21.
СИМЕТРИЯ.Y 21.
СКАКАЛЕЦ 7.
СКАЧАЙ 7.
СКОК 7., 9., 10.
СКРИЙ 4., 7., 11
СЛЕД? 25.
СЛЕДВА? 25.
СЛЕДИ 19.
СПУСНИ 4., 7., 11., 14., 17., 18., 21
СР.ДЪЛЖИНА 23.
СРАВНЯВАНЕ 20
СРЕДНА.ДЪЛЖИНА 23.
СТАР.ЗН 27.
СТАР.ЗНАК 27.
СТЕПЕН2 3.
СТЕПЕНЗ 3.
СТОП 5., 6. 7., 11., 17., 18., 20., 21., 22.
СТЪЛБА 5.
СТЪПКА 7.
СУМА 19.
СЪБ. ВЕКТОРИ 14
СЪЩ.ИМЕ 22.
сграда 1.
секунда 5.
серия 5.
сечение
на множества 24.
сигнал
звуков 7.
сила 14., 15., 16.
система 10., 26
координатна 4 , 6., 11., 16.
позиционна 2.
позиционна двоична 26.
позиционна десетична 26., 27.
позиционна осмична 26.
позиционна шестична 26.
програмна 9.
скоба 3„ 9.. 16., 23., 24.. 26.
затворена 24.
крыла 26.
скорост 5., 7., 14, 15., 16., 23.
втора космическа 14.
крайна 15., 16.
на работа 2.
начална 15., 16.
постоянна 11., 15.
първа космическа 14.
средна 15., 16
следа 7., 17.
сметач 3.
спирала 11.
СПИСЪК
на дейности 9.
на процедури 15.
справочник 20.
среда
на отсечка 4
сричка 21
станция
орбитална 14.
статия 1.
219
степен 3., 19.
на сложност 3.
стихотворение 23., 24.
стойност 4., ~1., 12., 13., 16., 18., 20., 25.
абсолютна 3.. 19.
логически
на израз 19.
на ордината 7.
на параметър 5., 7.
на променлива 12., 13., 14., 21.
на процедура 13.
на сила '4.
нотна 9.
текуща 12., 14.
страна 8., 11., 20.
на триъгълник 11.
строеж 3.
груб 1.
на атом 2.
на програма 16.
структура
на програма 15.
стълб 26.
на таблица 26.
стъпка 3., 4., 5., 6., 7., 11., 12. 13.
на костенурката 3., 11., 14.
сума 5., 6., 14., 20., 24., 26.
четна 26.
схема 2., 8., 9., 12., 16., 19.
сценарий
на филм 7.
сьбираемо 20.
събиране 3.
на числа 24.
съединяване
на думи 24.
съобщение 2., 10., 12., 19., 21., 26., 27.
кодирано 27.
състезание 2.
Т
ТАЙНА 8.
ТО 7.
ТОПЛО.СТУДЕНО 15.
ТОТО2 6.
ТРАНСЛАЦИЯ 21.
ТРАНСПОНИРАНЕ 9.
ТРИЕНЕ 9., 10.
ТРИЪП 11.
ТРИЪГ2 11.
ТРИЪГЗ 11.
ТЪРСИ 23.
таблица 3., 6., 26.
магическа 26.
такт 6., 9., 10.
тактика 6.
игрова 2.
печеливша 2., 26.
текст 1., 8., 9., 10., 21., 23., 27.
кодиран 27.
научен 23.
нотен 9., 10.
тема 7.
темпо 9., 10.
тон 9., 10.
точка 4., 6.. 7., 10.. 11., 12., 14., 16.
вьтрешна 7.
фнксирапа 3.
траектория
на движение 11.
трайност 9., 10.
на нота 9., 10., 24.
транспортир 11.
триъгълник 7., 11., 12., 15., 20.
правоъгълен 3., 11., 12.
равностранен 20.
турнир 2.
тяло
на процедура 18.
У
УМЕН.ХОД 2.
УСКОРЕНИЕ 16.
УСКОРЯВАНЕ 5.
УСКОРЯВАНЕ1 5.
УСКОРЯВАНЕ2 5
УСКОРЯВАНЕЗ 5.
УСКОРЯВАНЕ4 5.
УСКОРЯВАНЕ5 5.
УСМИВКА 1.
УСТРОЙСТВО 13.
умножение 3.
уравнение
квадратно 23.
ускорение 14., 15.
условие 5., 7.
за спиране 18.
логическо 7.
на задача 4.
устройство
сметачно 3.
учебник 2., 23.
ученик 2., 8.
Ф
ФАКТОРИЕЛ 19.
ФИГУРА 21.. 24.
ФИГУРА 1 2.. 5., 13.. 18.
ФИГУРА 10 18.
ФИГУРА 2 2„ 5., 13., 18.
220
ФИГУРА 3 2 . 5.. 18
ФИГУРА 4 2.. 18.
ФИГУРА 5 2..
ФИГУРА 6 2.. 18.
ФИГУРА 7 18.
ФИГУРА 8 18.
ФИГУРА 9 18.
ФИНАЛ 9., 10.
ФОН 7.
файл 13., 26.
факториел 19.
фехтовка 7.
фигура 1., 4., 6., 7.. 11., 12., 13., 14., 16.
17.. 21.
гсометрична 18.
филм 7.
анимационен 7.
фон 7., 17.
форма 7.
експоненциална 3.
отрицателна 5.
формула 3., 11., 12., 15.. 20.
структурна 15.
фрагмент 2., 10.
музикален 10., 27.
фраза 2.
X
ХИМ.ЕЛЕМЕНТИ 8.
ХИПОТЕНУЗА 3.
ХРАНИЛКА? 7
ХУДОЖНИК 15.
хипотенуза 3., 11.
хистограма 6., 23.
ход 2., 15., 16., 26.
ц
ЦВЕТЕ 1.
ЦЕНТЪР 11
ЦИКЪЛ 27.
ЦИЛИНДЪР 13.
ЦЯЛО 3.
ЦЯЛО.ЧИСЛО? 19.
цвят 3 ,6.
център 17.
на екран 4.
на координатна система 7.
на окръжност 17.
цифра 3., 8., 14., 20., 21., 25., 26.
Ч
ЧАСГДОКР 17
ЧАСТНО 20
ЧЕРВЕЙ 7.
ЧЕРЕН 3.
ЧЕРТЕЖ 15
ЧЕТЕНЕ 9., 10.
ЧИСЛО 2.
ЧИСЛО? 6.
част 3.
частно 20.
черта
тактова 9., 10.
чертеж Г, 4„ 7., 11., 14.. 17.. 23.
честота
на сума 6.
четвъртинка 10., 24.
четириъгълник 4.
числител 20.
число 2., 3., 5., 6., 7., 11., 12 13 19
21., 22.. 23., 25., 26., 27.
двоично 25., 26.
десетично 26.
дробно 3.. 14.
естествено 19., 20., 25.
нечетно /6.
отрицателно 3.
положително 3., 11., 20.
просто 20.
рационално 4
случайно 6.
средно аритмстично 19
трицифрено 2.
цяло 3„ 4., 6., 19., 20., 26
четно 5. 20., 26.
шестцифрено 2.
Ш
ШИФРИРАН 27.
шестнайсетинка 10., 24.
шестоъгьлник
правилен 26.
ширина 17.
шифриране 27.
шифър 27.
Ъ
ьгъл 5., 6., 7., 11., 12., 14., 23.
остър 11, 12,
прилежат 11.
централен 12., 13.
221
СЪДЪРЖАНИЕ
ПРЕД ГОВОР
1 Програмиране 5
2. Математическа игра 8
3. Числа и операции с тях 12
4. Работа в координатна система 21
5. Команди за проверка и взсмане на решения 27
6. Случайни числа 33
7. Анимация 41
8. Структуриране на информация 51
9. Компютърен запис на мелодии 57
10. Редактиране на мелодии 64
11. Задачи за построение 71
12. Процедури и променливи 79
13. Взаимодействие на процедурите 85
14 Експерименти 93
15. Анализ на задачи и проектиране на програми 98
16. Изграждане на програми 103
17. Усъвършенст ване на програми 106
18. Рекурсия 118
19. Рекурсивни операции с числа 118
20. Алгоритъм на Евклид 123
21. Операции с думи 130
22. Обработка на думи 136
23. Измерване дължината на думи 140
24. Съединяване на думи 146
25. Наредба на думи 152
26. Игри с двоични числа 156
27. Кодиране на информация 163
ПРИЛОЖЕНИЯ
1. Команди и операции 168
2. Управляващи клавиши 179
3. Бълг арско-анг лийски Лою речник 181
4 Аныийско-бьлтарски Лого речник 183
5. Описание на програмите 185
6. Чесю срсшани съобшения за грешка 204
7. Как да използваме програмите за рисуване, анимация и музика 205
8. Сьдьржание на дискетите 212
9. Азбучсн показалец 213
Дискечата към книгата ще се разпространява чрез търговските бази на ПСП „Уч1ехпром"
Румен Василев Николов
Евгения Йовкова Сендова
ИНФОРМАТИКА
ЗА НАЧИНАВШИ - ЧАСТ II
ИЛИ
ДА СИ ДОЙДЕМ НА ДУМАТА
Рецензента: Иван Георгиев Георгиев, Лиляна Йорданова Спасова
Редактор Светла Караджова
Художник на корицата Светла Благоева
Художник на илюстрациите Доньо Донев
Художник-редактор Красимира Коцева
Технически редактор Мария Зашева
Коректор Стефка Прокопова
Калиграф Йорданка Тодорова
Код: 01/9532126332/2012-4-89
Българска. Издание I. Дадена за набор на 24.1.1989 г. Подписана за печат на
10.VIII.1989 г. Излязла от печат на 28.VIII.1989 г. Формат 60x84/16. Печ. коли 14,00.
Изд. коли 13,06. УИК 15,76- Тираж 12 000 + 102. Поръчка № 31 35. Цена 1,34 лв.
Държавно издателство ,,Народна просвета” - София
Набор ЕЦФН - София
Държавна печатница „Балкан” - София
Румен Василев Николов е научен сътрудник в СУ „Кли-
мент Охридски". Завършил е Факултета по математика и механика, спе-
циалност ,,Математическо осигуряване на ЕИМ". Кандидат е на матема-
тическите науки. Темата на дисертацията му е свързана с приложението
на компютрите в образованието. С проблемите на обучението по инфор-
матика в училище се занимава от 1981 г. Автор е на първия у нас ек-
спериментален учебник по информатика-с-използване на езика Лого —
издание на ПГО към МНП и БАН, и съавтор на други учебни помагала.
Преподава информатика на студенти, ученици и учители. Участва в про-
вежд ан ет о на експерименти в училищата на ПГО и в разработванато на
учебни програмни средства.
Евгения Йовкова Сендова работи като научен сътрудник
в ИМ с ИЦ при БАН. Завършила е Факултета по математика, специал-
ност „Изчислителна математика". Занимавала се е с проблемите на
моделирането на музикални и биологички пронеси. От 1983 г. сътрудни-
чи активно на ПГО към МНП и БАН в областта на началното обучение
по информатика — участва в изготвянето и експериментирането на
учебници, в из дава нет о на учебни материали и в подготовката и квали-
фикацията на учители по информатика. Член е на Техническия комитет
ТС 3.5 к ЯЛ Международната организация за обработка на информация
(IFIP), който се занимава с проблемите на обучението по информатика
в началното училище.
Пена 1.34 лв.