Перший урок
Чи то дядько Микола голосно розповідав тітці Люді про те, що Барсик теж зацікавився комп’ютером і Маркіз йому щось там показував, і якийсь горобець (з тих, які вовтузилися і лементували на вишнях чи сливах, що ростуть вздовж межі) щось почув, чи то курка завітала в хату (таке часто трапляється, коли друзі зайняті собою і комп’ютером), але на другий день уся навколишня пташина спільнота навперебій обговорювала вчорашню подію: «Маркіз вчив Барсика комп’ютера».
- Що за дурня? Зачем воно йому нада, — з презирством каркала старезна Ворона, яка для «вагомості» й авторитету своїх накаркань мала звичку вживити російські слова, — що йому не хватає? Наївся — грайся, не хочеш гратися —• поспи, і день минув.
Та найбільше лементувала квочка:
- Це що ж, моїх таких малесеньких, таких ніжних, таких пухнастеньких курчаточок буде якийсь кіт-мурмило вчити? А чим же їм допоможу? Я як була такою, нас такого не вчили. Хто це придумав? Навіщо курці комп’ютер? Куд-куди господарі дивляться?
- Прогрес не зупинити, — насмішкувато продеркотів зі старого горіха дятел, що викликало нову хвилю лементу, аж дядько Микола вибіг надвір, подивитися, що ж то сталося.
Барсик, який усю ніч зважував усі «за» і «проти» своїх бажань і занять, вирішив не здаватися.
Нарешті прийшов Маркіз, і лемент вщух. Поза плечі, поза вуха ми активно обговорюємо, засуджуємо, сміливо робимо висновки, особливо коли предмет обговорення нам мало відомий або зовсім невідомий, а ось в очі, відкрито заявити чогось не вистачає чи сміливості, чи нахабства... Чого саме? А може, то ми не остаточно впевнені у своїй правоті? А може, боїмося чогось, когось?...
Барсик одразу ж, як тільки його побачив, потяг друга до купи піску і показав свою роботу. Маркіз лагідним угуканням виявляв своє задоволення, що його вчорашні старання не пропали марно. «З Барсика вийде здібний учень», —
муркотів собі під ніс Кіт. Задоволення Маркіза передалося Барсикові гордістю за себе, що у свою чергу викликало нестримне бажання щось робити, щось вчити, далі і більше.
- А сьогодні будемо говорити про Паскаль- програму та її структуру, — врешті-решт проговорив Кіт, — ти вчора вже бачив найпростішу програму.
Маркіз знову стебелинкою, але вже на піску, написав відому вам програму і продовжив повчання:
- Паскаль-програма складається з таких обов’язкових частин: заголовка — перший рядок тексту програми, блоку описів та блоку операторів (команд), що складають власне програму.
- Я зрозумів, — вихопився Барсик, — синє слово «Програма» — заголовок програми, програмний блок — усе те, що записано між словами «початок» і «кінець», до речі, вони теж сині, а де ж блок описів?
- Зрозумів, та не все точно пригадав, — повчав Маркіз. — Заголовок програми — це не тільки обов’язкове службове слово «Програма», а й те слово, що записане чорними літерами, яке називають власним іменем. Службове слово «програма» для всіх програм одне, ним починається кожна програма, а імена програм різні, унікальні для кожної.
- Зрозумів, зрозумів, — перебив його Барсик і почав перераховувати всіх знайомих йому котів, — це як кіт Маркіз, кіт Мурчиш, кіт Пушок, є і кіт Барсик... Тут першим йде «службове слово» «Кіт», а наступне — власне ім’я. Так?
- Майже так, — підтримав його Маркіз, але все-таки знайшов що зауважити, — тільки всі службові слова ми вчора домовилися писати якою мовою? І ще домовилися пам’ятати їх українські відповідники, тобто переклад. Правда? А тепер розповідай, що ти вивчив сьогодні.
- Текст програми розпочинається із заголовка, заголовок містить, в порядку написання, службове слово «Program» і власне ім’я програми. Після заголовка йдуть блок описів і сама програма. Так?
- Так, — відповів Маркіз. — А як ти напишеш англійською слова «початок» і «кінець»?
- «Begin» — початок, «End» — кінець, а що тут такого? —- гордовито перепитав Барсик.
- Якщо це кінець програми, то обов’язково в кінці слова End треба ставити крапку, — уточнив Маркіз. — Кінець і крапка, а між цими словами пишуть команди, які і складають власне програму. Яку команду ти вже знаєш і що вона означає?
- Команда «write» означає «вивести», — бадьоро відповів Барсик.
- Слово «write» шкільним словником перекладається «писати», а «вивести» комп’ютер розуміє як «писати па екрані», — уточнив Маркіз.
- То що ж все-таки з блоком описів? — знову згадав Барсик.
- Поки наші господарі не пішли на город, — розпочав Маркіз, — поговоримо про типи змінних, тоді ти зрозумієш, що таке блок описів і навіщо він у програмі. Ось ти вмієш рахувати, додавати і віднімати числа. І комп’ютер уміє все це робити, тільки потрібно дати йому команду на виконання. А щоб він знав, що і як робити — потрібна програма. Як ти, наприклад, порахуєш, скільки курчат зараз біля квочки? Ти будеш рахувати їх не по одному, а групками, як зараз, дивись: двоє, троє, ще двоє, одне і ще четверо збоку. Що тепер треба зробити?
- Треба додати числа 2 + 3 + 2 + 1+ 4, буде 12, я й так знаю, скільки у нас курчат, — якось невпевнено почав Барсик. — А до чого тут комп’ютер?
Маркіз, не зважаючи на ос.таннє запитання, продовжував:
- Як ти розумієш, люди придумали і створили комп’ютер для того, щоб полегшити процес обчислень. Спочатку комп’ютери навіть називали електронними обчислювальними машинами, а вже пізніше, коли зросли їх потужності, розширилися і можливості використання. З’явилися різноманітні прикладні програми, які були об’єднані в інтегровані пакети програм. Тепер від користувача не вимагається спеціальних знань з програмування та комп’ютерної інженерії, але в деяких випадках інтегровані програми не задовольняють користувача. Ось тоді доводиться складати спеціальну програму.Повернемося до нашого прикладу з курчатами. Якщо подивитися зараз на розміщення курчат навколо квочки, то кількість груп змінилася і кількість курчат у кожній групі змінилася. Отже, число доданків у цій задачі є величина не стала, тобто змінна. Так само і значення кожного доданка — величина змінна, а ось кількість. курчат на сьогоднішній день — величина стала. Таким чином, ми постійно маємо справу зі сталими і змінними величинами. Сталими (постійними) є кількість лап і вух, а ось кількість мух, що сидять на тобі, -— величина змінна, — пожартував Маркіз. — Тепер ти наведи якийсь приклад сталих і змінних величин, а я з’ясую, як ти мене зрозумів.
Ну що, наприклад, — непевно розпочав Барсик, але тут його осяяло, — кількість вікон у нашій хаті — величина стала, а кількість горобців на'вишні — змінна.
- Поки що непогано, — зауважив Маркіз і продовжив: — змінні величини люди позначають буквами, а запис, що містить букви і числа та знаки математичних дій над ними, називають виразом. Якщо вираз містить тільки числа і знаки дій, то це числовий вираз, наприклад, той, що ти сформулював для обчислення кількості курчат: 2 + + 3 + 2 + 1+ 4,а якщо потрібно буде додати два числа, значення яких наперед не відомі, то ми це запишемо так: а + Ь, де а —перший доданок, b — другий доданок, а а + Ь — їх сума. Сталі величини теж інколи позначають буквами, особливо часто це зустрічається в запису виразів, які називають формулами. Формулами, а не формами! Ти що, вже дрімаєш? Розпарився на сонечку?
Барсик, не відчуваючи провини, мовчки протер очі, пригладив вуса і чесно зізнався:
- Я не знаю, що таке формула...
- Формула — це вираз, що показує залежність однієї величини від інших. Записують формулу сталими і змінними. Вона містить знак «дорівнює», — пояснив Маркіз, — наприклад, відомі
формули S = vt, V = abc для обчислення суми двох доданків можна записати формулу с = а +в.
- Тут змінні а і в означають доданки, а с — позначає їх суму? — запитав Барсик. — А де ж у формулі сталі величини?
- Не кожна формула містить сталі. Наприклад, у формулі довжини кола С = 2πR — стала величина, що показує, у скільки разів довжина кола більша за його діаметр, — пояснив Маркіз.
- А діаметр кола — це два його радіуси. Так? Тому у формулі є ще й число 2. Правда ж? — радісно застрибав Барсик.
- Так, так, — відповів Маркіз, — тому продовжимо, слухай і запам’ятовуй. У блоці описів для запису сталих величин використовують службове слово const, наприклад, const п = 7; name = Барсик, 7 днів у тижні, ім’я — Барсик, а для опису змінних — службове слово var. Повтори.
- У блоці описів для опису сталих величин, — почав Барсик, як зразковий учень, — пишуть const, а для опису змінних — var.
А тепер поговоримо про типи змінних, — кивнувши на знак згоди, продовжив Маркіз: —Змінні бувають числові і рядкові. Числові використовують для позначення цілих або дробових чисел, рядкові позначають окремі символи, слова або й речення. Для того щоб вказати, що число а ціле, використовують службове слово Integer, а якщо дробове — то це число типу Real, рядкові величини — величини типу String. Наприклад:
var а, b: Integer; с: Real; Bars:String;
Поясни, як ти зрозумів цей запис.
- Та «легко», — почав жартома Барсик, але вловивши серйозний погляд товариша, змінив тон. — Блок опису змінних: змінні а і в цілого типу, число с — дробове, змінна Bars — слово.
- Непогано, — скупо похвалив його Маркіз. — Що ж, тепер напишемо програму, а випробуємо її за нагоди на комп’ютері. Я писатиму, а ти мовчки читай і подумки коментуй прочитане.
- Отож, дивись, читай і думай, — відповів Маркіз і написав:
Program Summa;
var a,b,c: Integer;
begin
write('Введіть перший доданок'); read(а);
write ('Введіть другий доданок') -;
read(b);
с:=а+в;
write('їх сума',с);
end.
Поки Маркіз писав, Барсик бурмотів про себе:
- Перший рядок — заголовок програми, програма називається Сума, отже, будемо щось додавати. Другий рядок — опис змінних, їх три, і всі вони цілі числа. Далі — початок програми. Даємо команду «Пиши ’’Введіть перший доданок”», а далі — якесь незнайоме слово. Вічно якісь загадки. Потім — знову команда «Пиши ’’Введіть другий доданок”» і знову те саме невідоме слово. О, на тобі, якась незвична формула: і двокрапка, і знак рівності. Ще раз команда «Пиши ”їх сума”» і ще до чогось змінна с. 0, нарешті, кінець програми, бо є службове слово «Кінець» і крапка.
Маркіз усе те чув, тому, закінчивши писати, почав пояснювати:
- Ця програма буде обчислювати суму двох цілих чисел, як ти здогадався, це числа а і в. Значення їх можуть бути будь-які цілі числа. Комп’ютер напише «Введіть перший доданок» і зупиниться, чекатиме, поки ти не введеш з клавіатури якесь число і не натиснеш клавішу Enter. Команда Read(a) означає «Читай значення цілочисельної змінної а». Те, що а — ціле число, комп’ютер знає з блоку описів, а читати значення змінних у цьому випадку він може з клавіатури. Отже, ти на клавіатурі набираєш якесь ціле число, а щоб комп’ютер зрозумів, що ти закінчив набір і зчитав це число, потрібно натиснути клавішу Enter. Після введення значення другого доданка була незрозуміла тобі формула? Та це не формула. Цей запис читають так: «Змінній с присвоїти значення суми а + Ь». П’ятий рядок програми — команда присвоювання значення змінній с, що можна трактувати так: до значення змінної а додати значення змінної Ь, а результат присвоїти змінній с . Запам’ятай: «присвоїти значення — це не те саме, що «дорівнює». У деяких наших програмах буде зустрічатися команда а: =a+d чи і: =і + 1, що з точки зору математики є повним абсурдом, а ось у програмах це звучить, наприклад, так: «змінній а присвоїти значення на d більше від попереднього» чи «значення змінної і збільшити на 1». Таким чином, на сьогодні маємо дві нові команди: ввести значення змінної та змінній присвоїти значення. Крім того, вміємо описати змінні, що використовує програма. А тепер, поки наші господарі все ще чекають, доки не зійшла роса, постарайся все це осмислити і запам’ятати.
Тільки тепер Маркіз подумав, що так довго він ще не говорив, тому й вирішив перепочити, та й Барсикові час дати таку можливість. Останньому все почуте здалося зрозумілим, і він горів від нетерпіння — скоріше б вже побачити, як же воно буде виконуватися комп’ютером, невже все буде так, як говорить Маркіз? Ех, чого ж це господарі так довго збираються? А вголос почав доповідати:
Записуємо програму. Запускаємо на виконання. Комп’ютер напише: «Введіть перший доданок» і буде чекати, що ж я введу. Я на клавіатурі наберу число, наприклад, 12 і натисну клавішу Enter. Комп’ютер зчитає це число і напише: «Введіть другий доданок». Я наберу на клавіатурі, скажімо, 6 і натисну Enter. Комп’ютер виконає додавання 12 + 6 і значення суми 18 присвоїть
с, після чого напише «їх сума», кома, 18, а вже тоді з’явиться табличка з повідомленням «Програма успішно виконана». Так?
- Так, та не так. Виконуючи команду write ('їх сума ', с);, комп’ютер напише «їх сума 18» без коми, про яку ти говорив, а кома розділяє аргументи процедури виведення. У цьому прикладі в дужках записано два аргументи, які слід вивести: рядкова константа «їх сума», записана в дужках, та значення змінної с. Запам’ятай: аргументи (величини, що записані в дужках після імені процедури) розділяються комами, скільки б їх не було, а команди (ми їх писали в стовпчик, хоч можна було б і в рядок) — знаком «крапка з комою», — повчально відповів Маркіз, а себе зловив на думці, що він дедалі більше входить у роль учителя. І чого б це?
Дядько Микола, який увесь цей час порався на подвір’ї, ходив до хати на сніданок, знову щось робив по господарству, нарешті звернув увагу і на наших знайомих.
- Чого б це ви гралися в піску, — жартома запитав він, — коли комп’ютер простоює?
Цього було досить, щоб наші друзі стрімголов кинулися до хати. Маркіз уперед, Барсик — за ним. На порозі тітка Люда, яка саме виносила майбутнім програмістам сніданок, мало не перечепилася через Маркіза. Барсик нерішуче зупинився. «До комп’ютера страх як тягне, — подумав він, — і сніданок пропускати не можна. Він же без догляду не встоїть — кури вмить розтягнуть все, що є, одна юшка зостанеться». На його щастя, Маркіз теж вирішив підкріпитися, тому заняття було перерване сніданком. Однією наукою ситим не будеш.
Маркіз наситився першим і, задоволено облизуючись, запитально глянув на товариша. Барсик зрозумів, що і йому слід закінчувати. Так, мовчки переглядаючись, вони дійшли до порогу хати.
- Може, вам комп’ютер увімкнути? — запитала тітка Люда, яка знову зустрілася їм на тому ж порозі. Маркіз лише заперечливо похитав головою і першим переступив поріг.
Після того як комп’ютер було ввімкнено і друзі влаштувалися у кріслі біля нього, Маркіз завантажив середовище програмування і швиденько набрав програму, текст якої було складено ще на купі піску. Барсик спробував був заявити, що він дуже хоче сам писати, на що Маркіз слушно зауважив, що він це зробить швидше і без помилок.
- А тепер дивись, — проговорив Маркіз, клацаючи мишкою по синьому трикутнику панелі інструментів.
Комп’ютер, як і сподівався Барсик, написав у вікні результатів «Введіть перший доданок», а у вікні програми на рядку read (а) ; з’явилася зелена смужка. «Комп’ютер чекає введення якогось числа, — здогадався він, — і світло зелене, отже, можна рухатися далі. Можна чи ні?» — німе питання світилося в його погляді.
- Чого ж ти ще чекаєш? Вводь якесь число, — підганяв його Маркіз.
Барсик спочатку розгубився, та оскільки він сидів у кріслі праворуч від Маркіза, на додатковому полі клавіш сміливо набрав цифри 1, за нею 2 і натиснув Enter. Комп’ютер мовчки «проковтнув» введене число і вивів у вікні результатів «Введіть другий доданок». Зелена смужка перестрибнула на рядок read(b) ;. Тепер Барсик вже не розгубився, а як досвідчений комп’ютерщик сміливо набрав цифри 4 і 6 та знову натиснув Enter. Комп’ютер проковтнув ще й це число, миттєво у вікні результатів написав «їх сума 58» і викинув віконце-табличку: «Програма успішно виконана. OK».
- Бачив?-Що скажеш? Усе зрозумів? — почав допитувати його Маркіз.
- Бачив, напевно, не все..., але, здається мені, щось зрозумів, — трохи невпевнено відповів Барсик.
- А тепер дещо змінимо в нашій програмі, — сказав Маркіз і почав щось витирати і переписувати.
Барсикові кортіло ще і ще раз позапускати програму, вводити інші числа, але Маркіз вже встиг добряче зіпсувати таку хорошу програму.
- Ти пам’ятаєш текст попередньої програми? — запитав кіт. — Подивись, як я її модифікував.
«Ну і слівця ж у тебе», — все ще невдоволено подумав Барсик і почав читати:
Program Summa;
var a,b,c: Integer;
begin
write('Введіть через пропуск два чис
ла' ) ;
read(a,b);
с:=а+Ь;
write('їх сума ', с) ;
end.
Що скажеш? — нетерпляче почав був Маркіз, але не втримався і почав пояснювати: — Тепер доданки можна вводити один за одним через пропуск, не натискуючи клавішу Enter після кожного з чисел, а тільки один раз •— у кінці набору. А якщо навіть, за звичкою, після набору першого числа і натиснеш, комп’ютер все одно чекатиме введення другого числа. Ось так. І програма стала коротшою.
Барсик хотів зауважити, що та, перша, була кращою і зрозумілішою йому, але тільки запитав:
- То команда введення значень read — теж процедура? І можна в дужках записувати навіть два аргументи?
- І два, і три, і десять, аби вони були описані у блоці описів, — задоволено відповів Маркіз і додав. — Запускай! Я хочу, щоб ти переконався, що ця програма працює не гірше від попередньої.
Барсик відважно клацнув по кнопці пуску програми (синьому трикутничку). Комп’ютер у вікні результатів, як і очікувалось, написав: «Введіть через пропуск два числа» і встановив зелену смужку на команді read (а, Ь) ;, а сам чекав введення вже двох чисел. Тепер Барсик вирішив вводити лише одноцифрові числа, тому натиснув клавішу з цифрою 5, потім довгу клавішу пропуску. Зелена смужка у вікні програми навіть не поворухнулась. «Чекає на друге число», — подумав він і натиснув клавішу з цифрою 4, а потім, усміхнувшись сам собі, — клавішу Enter. Що б ви думали, комп’ютер, вивів: «їх сума 9» і зразу ж викинув табличку: «Програма успішно виконана. ОК.
Тепер ти зможеш сам написати програму, яка обчислювала б добуток двох чисел, — майже урочисто розпочав він і додав: — добуток — результат дії множення. А ти вмієш множити? — вловивши поглядом стверджувальний кивок товариша, продовжив: — Нехай перший множник буде а, другий множник — Ь, а їх добуток — с. У програмуванні знак дії множення — клавіші Shift і «8», ще кажуть «зірочка». Вперед, вперед, мій юний друже.
Барсик, нічого не підозрюючи, натиснув на
кнопку панелі інструментів — і сталося непе- редбачуване: комп’ютер викинув повідомлення у вигляді віконця з кнопками.
- Що ж тепер мені робити? — розпачливо запитав Барсик і звільнив місце біля комп’ютера.
- Комп’ютер пропонує зберегти нашу програму. Що будемо робити — зберігати чи ні? -т- хитро примружився Маркіз.
- Звичайно, зберігати, — не роздумуючи відповів Барсик, — а то як?
Маркіз клацнув по кнопці Да і відкрилося вікно Сохранить как..., в нижньому білому рядку якого від нетерпіння мерехтів текстовий курсор. Кіт написав слово «Сума» і клацнув у правому нижньому кутку вікна по кнопці Сохранить. Нарешті відкрилась чиста сторінка вікна програм і Барсик почав писати:
Program Dobutoc;
var a,b,c: Integer;
begin
write('Введіть через пропуск два числа' ) ;
read(a,b); с:=a*b;
write('їх добуток ',c);
end.
То тільки на папері все чисто і правильно, а якби ви знали, скільки часу, зусиль і старання потрібно було Барсикові, щоб написати цих 8 рядків! Написати їх він написав, але щоразу, коли запускав програму на виконання, з’являвся червоний рядок і повідомлення про помилку. Маркіз як міг, допомагав другові у цій скруті. Тільки спільними зусиллями вдалося налагодити програму, і вона запрацювала. Барсик вводив різні числа, комп’ютер, тільки завдяки цій програмі, обчислював їх добуток і, на диво, жодного разу не помилився. Маркіз не втручався: «Нехай малий потішиться...»
- Давай напишемо ще одну програму, — через деякий час запропонував вже сам Барсик. — Яка б віднімала від одного числа інше.
- Результат дії віднімання називається різницею, — уточнив Маркіз і запитав: — Ти вже продумав текст майбутньої програми? Звичайно, — запевнив його Барсик. — Потрібно змінити ім’я програми, команду присвоювання записати так: с:=а-Ь;, а в процедурі виведення результатів написати «їх різниця». Ось і все. Правда? Тільки ти, будь ласка, збережи програму Dobutoc, бо я ще до пуття не вмію це робити.
- Якщо, як ти кажеш, ці програми мало чим відрізняються одна від одної, то програму Dobutoc збережемо у файлі, ім’я якого теж «Добуток», — розмірковував Маркіз, — ось дивись: клацаємо по команді Файл', у списку, що відкрився, клацаємо по команді Сохранить как..., у нижньому рядку вікна Сохранить, який називається Имя файла (тут навіть текстовий курсор вже стоїть) пишемо слово Добуток і клацаємо по кнопці Сохранить. Твоя програма Dobutoc вже зберігається на вінчестері комп’ютера, а з текстом програми, яка залишилася у вікні програм середовища ALGO, можеш робити все, що завгодно.
- Ти диви... як зручно! — вигукнув Барсик і через кілька хвилин програма вже мала вигляд:
Program Riznyca;
var a,b,c: Integer;
begin
write('Введіть через пропуск два числа');
read(a,b);
c:=a-b;
write('їх різниця ',с);
end.
Цього разу обійшлося без помилок, і Барсик, з мовчазної згоди Маркіза, почав експлуатувати програму. Ні, він не вводив величезні числа, він писав тільки те, що сам міг обчислити. Програма працювала чудово. Барсик був безмежно задоволений, та знову сталося непередбачуване. Він, скоріше за все через неуважність, ввів числа 3 і 5 і, як завжди, натиснув Enter. Комп’ютер, не довго думаючи, вивів число —2, чого Барсик від нього аж ніяк не очікував. Що ж це таке? Різниця між числами 3 і 5 складає 2 одиниці — це навіть курчата знають. З на 2 менше, ніж 5; 5 на 2 більше, ніж 3. Хіба не так? Щось воно не те. Барсик запитально глянув на Маркіза.
Тут не має помилки, — впевнено відповів на німе запитання Кіт, — ти ж від меншого числа віднімав більше — ось і отримав від’ємне число, — читаючи по очах нерозуміння товариша, продовжив: — Так, так, якщо від меншого числа відняти більше, то різниця буде від’ємною. Невже ти не так і дробові? Пам’ятаєш, узимку дядя Микола Артемові на віконному термометрі показував? Ти ж тоді теж під ногами крутився. Ну, пригадай, як дядько Микола пояснював: «Якщо зараз, вдень проти сонця, температура +3°, а до вечора понизиться на 5°, то які будуть покази термометра?» Що буде показувати термометр? Подумав? Говори вже.
— Термометр покаже 2° морозу, — невпевнено почав Барсик.
- А як ти визначив, що то буде 2° морозу, а не тепла? — не вгавав Маркіз.
- Бо стовпчик термометра тоді буде нижче нульової позначки, — Барсик не розумів, до чого тут термометр. Може, Маркіз перегрівся?
- Так ось, ті числа шкали термометра, які записані нижче нульової позначки, і є від’ємними, а ті, котрі вище нуля — додатні, а число 0 розділяє на шкалі додатні і від’ємні числа. Запам’ятай і усвідом це.
- Якщо ж ми покладемо термометр на стіл чи на підлогу (уявляєш), то шкала термометра — це, люди кажуть, числовий відрізок, тобто відрізок числової прямої, на якій обов’язково повинен бути початок — точка, що позначає число 0, вказано напрямок зростання та відкладено одиничний відрізок, довжина якого дорівнює одиниці виміру...
- Одиничний відрізок на термометрі — це поділка величиною в один градус? — перебив його Барсик. — Напрям зростання на термометрі я уявляю — це вгору, а якщо термометр лежить, то куди зростати?
- Люди домовилися, що напрямок зростання на горизонтальній числовій прямій — вправо, як поділки на лінійці, — відповів Маркіз.
- А на вертикальній — вгору? — знову запитав Барсик і вже впевнено заявив: — Ну, звичайно, вгору! А як же інакше — все росте вгору: і дерева, і трава...
Маркіз хотів навести контрприклад, що корінь дерева, морква, буряк ростуть вниз, але вирішив не заплутувати меншого товариша, тому лиш кивнув головою і продовжив:
- Числа, які знаходяться на числовій прямій правіше від нуля, додатні.
- А ті, які лівіше від нуля, від’ємні? Так? — знову випередив його Барсик. — А щоб показати, що число від’ємне, перед ним ставлять знак «-» і читають його знак «мінус», а потім саме число?
- Так. Так. А якщо ти, — передражнив його Маркіз, — усе зрозумів, то збережи програму Riznyca з іменем файла «Різниця». Якщо пам’ятаєш, зроби сам.
Барсик, поглядаючи на товариша, невпевнено почав виконувати дії зі збереження програми.
Чим ближче до обіду, тим повільніше працює голова. Це правило сформулював Барсік. Маркіз невдоволено фиркнув, закрив середовище програмування, вимкнув комп’ютер і подався на двір слідом за Барсіком…
Попивши води, Маркіз подався в тінь під горіхом, але на півдорозі його покликав Барсик, який щось швидко дописував на піску:
— Я тут склав був програму ділення двох чисел, а ось як записати знак ділення — не знаю.
Слеш у режимі латинського алфавіту, остання справа клавіша третього ряду, а результат ділення називається частка, — машинально відповів Маркіз і, ніби прокинувшись від своїх лінивих роздумів, зацікавлено повернув до купи піску, де продовжував вовтузитись Барсик.
Перше, що він побачив, був оновлений текст програми:
Program Dilennja;
var a,b,c: Integer;
begin
write('Введіть через пропуск два числа');
read(a,b);
с:=a/b;
write('їх частка ', с) ;
end.
- Ти, виявляється, молодець, — похвалив товариша Маркіз. — Ти й ділити вмієш? Ніколи й не думав, але цю програму комп’ютер не захоче виконувати, — і вже хотів був іти, — сієста все- таки не відміняється, та й обід не за горами... — додав жартома.
Але Барсик не міг залишати питання відкритим:
- Як так — не' захоче виконувати? Перші три виконував, — тут сяйнула здогадка, — а може, він ділити не вміє?
- Ділити комп’ютер уміє, — запевнив Маркіз. — Справа в тому, що при діленні цілих чисел частка не завжди ціле число. Сума двох цілих чисел -— ціле число, різниця — ціле, добуток — ціле, а от частка — інколи ціле, інколи дробове. Наприклад, дядько Микола дає нам три рибини на двох. Як порівно їх розділити на двох нас?
- Кожен отримає по одній рибині... — повільно роздумуючи, промовив Барсик.
- Так ми з’їмо дві рибини, а як бути з третьою? — усміхаючись запитав Маркіз.
- А третя дістанеться тому, хто першим з’їв першу, — миттєво знайшов відповідь Барсик.
- Але ж умова була —- всім порівну, — не здавався Маркіз, — третю доведеться ділити навпіл. Так ми будемо мати по півтори рибини: по одній і ще по половині тієї злощасної третьої. Отже, частка від ділення в цьому прикладі — число дробове, а ще кажуть «раціональне», «дійсне», тому змінна с — змінна дійсного типу, типу Real. Зрозумів?
- Дядько Микола ніколи не дає нам риби, не порахувавши. Він усе зробить, щоб було порівну, — зауважив Барсик, на що Маркіз відповів:
А тітка Люда сосиску поділить навпіл, щоб було всім порівну. Та забудь про приклад, краще внеси зміни у свою програму. Чому ж ти вагаєшся? Дивись, — і сам вніс такі зміни:
Program Dilennja;
Var
a,b: Integer; с: Real;
begin
write('Введіть через пропуск два числа');
read(а,b);
с:=a/b;
write('їх частка ', с) ;
end.
- Тепер зрозумів, що від тебе вимагалось?
- Зрозумів, зрозумів, — запевнив Барсик. — Я не знав, як описати змінні — у стовпчик чи в рядок. А тепер зрозумів: кожен тип змінних описується окремим рядком.
- Залишилось випробувати цю програму на комп’ютері, — сказав Маркіз і, примруживши очі чи то від сонця, чи то від лукавства, додав: — але можу наперед розчарувати — виведення результатів не задовольнять тебе. Ось побачиш.
Інтрига просто проковтнула Барсика. Непомітно для себе, не відчуваючи смаку, він з’їв обід. Усі його думки були спрямовані на одне: «Коли вже мояша буде попрацювати на комп’ютері? Ну коли вже...» І ця мить нарешті настала. Тітка Люда, виносячи помиї, змилувалася над нашими знайомими:
- Та йдіть вже до хати, а то чисто знудилися без своїх програм.
Вдруге просити не довелося. Барсик, а за ним Маркіз кинулися до кімнати і сіли в крісло. Барсик увімкнув комп’ютер (як же довго цей Windows завантажується!), завантажив середовище програмування, завантажив програму Dobutoc, вніс зміни, щоб програма ділила числа, запустив програму, ввів числа 6 і 2, та замість очікуваного, результату 3 комп’ютер написав купу якихось чисел. Він запитально глянув на Маркіза. Погладжуючи в задумі вуса, той почав:
- Тепер час поговорити про формат виведення дійсного числа на екран. Зараз результат записано у стандартному вигляді дійсного числа, а щоб виведення здійснювалося у звичній формі, процедуру виведення результату запишемо так: write('їх частка ',с:5:2);. Тут число 5 означає, що для виведення значення змінної с ми відвели 5 знаків, число 2 — число десяткових знаків, тобто з точністю до сотих. Зрозумів? Ану, запускай. Далі все пішло як по маслу. Барсик навіть сам сформулював правила ділення чисел з однаковими і різними знаками, зберіг текст програми у файлі під іменем «Ділення» і зі словами Маркіза «Вважаю, що на сьогодні з тебе досить» другий день занять, можна вважати, успішно завершився. Насправді Барсик і сам був не проти вже віддатися звичним справам, та й час вже м’язи розім’яти. Спільними зусиллями було закрито всі вікна програм і вимкнено комп’ютер. Друзі гайнули надвір. Було раннє надвечір’я...