C++: Лекція 3
Розробка і|та| модифікація програм
Комп'ютерні програми - це набір інструкцій, що пояснюють|тлумачать| комп'ютеру, як вирішувати ту або іншу задачу.
Програма C_SAL.CPP виводить на екран картинку - гімнаста (назвемо|накликатимемо| його Сел).
Код програми :
#include "franca.h"
athlete Sal;
void mainprog()
{
Sal.ready();
Sal.say("Hi"!);
}
#include - цей рядок повідомляє компілятор (точніше його складову частину - препроцесор), що він повинен вставити в це місце інші рядки, що знаходяться у файлі franca.h, розташованому|схильному| в тому каталозі, де знаходяться|перебувають| файли проекту (C:\FRANCA ). Цю інструкцію називають директивою.
athlete Sal - це спеціальний об'єкт. У файлі franca.h задається особливий тип або клас об'єктів, який ми назвемо athlete (гімнаст). Таким чином, цей рядок пояснює компілятору, що Sal (Сел) - це об'єкт класу athlete.
void mainprog() - початок|начало| опису основної послідовності дій, яку ви задаєте своєму комп'ютеру. Ці дії складаються з|із| інструкцій, що розташовані|укладених| між фігурними дужками ({}).
Насправді основна послідовність дій позначається функцією main() або winmain(). Ім'я mainprog() використовується тільки|лише| для навчання.
Sal.ready() - це рядок вказує|указує| Сэлу підготуватися до виконання вправ. Для цього ми посилаємо повідомлення|сполучення| ready об'єкту Sal. Формат пересилки повідомлення|сполучення| складається з|із| імен об'єкту (Sal) і|та| повідомлення|сполучення| (ready), між якими ставиться крапка, а слідом за ім'ям повідомлення|сполучення| розташовуються круглі дужки. Sal.say("Hi"!) - це інше повідомлення|сполучення|, посилане Сэлу.
Sal.say("Hi!") - це рядок вказує|указує| Сэлу сказати "Hi" (привіт). На екрані буде виїдено повідомлення|сполучення| "Hi".
Відправка повідомлень|сполучень|
Спробуємо написати свою програму. Для цього будемо наказувати комп'ютеру працювати з|із| так званими об'єктами (objects).
Об'єкта Sal можна спостерігати на екрані в декількох позиціях (так запрограмував розробник програм) :
ready (готов)
up (руки вгору|угору|)
left (руки вліво)
right (руки вправо)
При відправці об'єкту Sal відповідного повідомлення|сполучення| він займатиме|посідатиме| необхідну позицію. Ми створили нашого гімнаста таким, що він розуміє тільки|лише| повідомлення|сполучення| ready, up, left і right , та |та| реагує на них, займаючи|посідати| задану в повідомленні|сполученні| позицію.
Інструкції
Інструкції (statements) - це вказівки вашому комп'ютеру. Деякі інструкції є повідомлення|сполучення| об'єктів.
Повідомлення - це зрозумілі об'єктам інструкції. Комп'ютер (і його об'єкти) одноразово може виконати тільки|лише| одну інструкцію. У одному рядку можна написати декілька інструкцій підряд, але|та| зрозуміліше розміщувати кожну інструкцію в окремому рядку.
Можна використовувати тільки|лише| ті повідомлення|сполучення|, які розуміє об'єкт. У нашому випадку це повідомлення|сполучення| ready, up, Left і|та| right. Якщо ви попросите Сэла, наприклад, лягти|полягти| на підлогу, то він цього не зробить, оскільки не знає, що означає таке повідомлення|сполучення|!
На мал. показані усі можливі дії Сэла.
Деякі програми можуть працювати з|із| декількома об'єктами. Наприклад, можуть бути два гімнасти: Сел і|та| Салі. Перед тим, як послати|надіслати| повідомлення|сполучення|, необхідно|треба| вказати ім’я об'єкту (ідентифікувати його).
Sal. ready();
Компілятор C++ розрізняє прописні і|та| рядкові букви|літери|. Ім'я Sal і|та| sal - це імена двох різних об'єктів. Тобто|цебто|, необхідно|треба| враховувати чутливість до регістра|реєстру| символів.
Кожна виконувана інструкція у вашій програмі повинна закінчуватися крапкою з комою (є|наявний| ряд|низка| винятків, наприклад інструкції include і|та| void main()).
Щоб послати|надіслати| об'єкту повідомлення|сполучення|, треба послідовно написати ім'я об'єкту, точку|крапку|, само повідомлення|сполучення| (наприклад, ready) і|та| відкриваючи|відчиняє| та|та| закриваючи|зачиняє| дужки (згодом всередину цих дужок ми навчимося що-небудь вставляти). Наприклад:
Sal. ready();
Ця інструкція наказує|пропонує| Сэлу зайняти|посідати| позицію готовності.
Жучки
Щонайменша помилка (на зразок неправильного написання імені, пропуску точки|крапки| і|та| т. д.) примушує|заставляє| комп'ютер видавати повідомлення|сполучення| про помилку або працювати неправильно. Комп'ютер завжди виконує тільки|лише| те, що йому наказано.
На жаргоні програміста такі помилки називаються жучками (bugs).
Клас athlete
Ви можете оголошувати об'єкти класу athlete і|та| використовувати їх у своїх програмах.
Кожен об'єкт займає|посідає| на екрані квадратну комірку. Перший об'єкт займає|посідає| ліву верхню комірку, а кожен наступний оголошуваний вами об'єкт займає|посідає| наступну комірку|комірку|.
Форма цих об'єктів відповідає повідомленням|сполученням|:
ready
up
left
right
Гімнасти вміють "говорити". Щоб це сталося, пошліть|надішліть| гімнастові повідомлення|сполучення| say (вклавши текст повідомлення|сполучення| в круглі дужки і|та| парні лапки).
Аргументи
Аргументи (arguments) дозволяють розширити рамки повідомлень|сполучень|. Наприклад, можна змінювати|зраджувати| швидкість, з|із| якою працюють гімнасти, задаючи число секунд, яке гімнаст повинен знаходитися|перебувати| в тій або іншій позиції. Повідомлення|сполучення| say теж|також| має аргумент, що визначає те, що вимовляє|виголошує| гімнаст.
Рухи можуть виконуватися швидше або повільніше. Щоб ввести|запроваджувати| в повідомлення|сполучення| необхідну швидкість, як аргумент усередині|всередині| дужок, треба просто вказати число секунд.
Приклад. Написати програму, за допомогою якої Сэл залишаться 5 секунд з|із| піднятою лівою рукою, а потім на 8 секунд з піднятими вгору руками:
#include "franca.h"
athlete Sal;
void mainprog()
{
Sal.left(5);
Sal.up(8);
}
Аргументи, відповідні повідомленням|сполученням| ready, up, left і|та| right, можуть бути дробовими. Наприклад
Sal.left(0.5);
Якщо ви не вказали аргумент, то за умовчанням він вважається рівним одній секунді.
Якщо як аргумент ви використовуєте нуль, то комп'ютер виконає операцію максимально швидко.
У повідомленнях|сполученнях| ready, up, Left і|та| right використовуються чисельні аргументи, тобто|цебто| числа, що означають|позначають| значення проміжку часу.
З іншого боку, в повідомленні|сполученні| say можна вказувати|указувати| і символи - послідовність з|із| букв|літер|, цифр і|та| знаків. Символи на екран розташовані в повній|цілковитій| відповідності з|із| тим, як вони задані усередині|всередині| парних лапок.
Якщо ви зберігаєте модифіковану програму, то можете втратити|загубити| оригінал! Щоб цього не сталося, виберіть команду
File >Save As
І дайте файлу нове ім'я.
Примусимо Сэла ще раз щось сказати, наприклад hello:
Sal.say("hello");
Але|та| якщо ми забудемо поставити лапки тобто напишемо
Sal.say(hello);
те це повідомлення|сполучення| спричине помилку, оскільки аргумент hello може виявитися ім'ям якого-небудь|будь-якого| об'єкту і|та| ваш комп'ютер не зрозуміє, що ви від нього хочете: вивести на екран слово "hello" або вміст деякого об'єкту hello. Таким чином, лапки повідомляють комп'ютер, що ви хочете вивести на екран в точності те, що знаходиться|перебуває| усередині|всередині| лапок.
Працюючи в C++, для позначення тексту, що виводиться на екран, ви завжди повинні використовувати лапки.
Оформлення програм на C++
Для того, щоб не лише|не тільки| ви, але і інші могли розібратися у ваших програмах, потрібно дотримуватися деяких правил. Один із способів - вставка коментарів. Вони ігноруються і|та| не впливають на роботу програми. Враховуйте, що об'єм|обсяг| і|та| складність ваших програм будуть увесь час|весь час| рости|зростати|.
У C++ перед коментарям ставиться подвійна коса риска (//), увесь текст за якою в рядку розглядається|розглядує| як коментар.
Наприклад, після додавання|добавляти| коментарів наша перша програма виглядатиме таким чином:
//********************************************************
// Програма C_Sal.CPP
//
// Ця програма показує на екрані гімнаста
// Складена Paulo Franca, 21.08.2011
// Останнє доопрацювання|доробка| 21.08.2011
//
//********************************************************
#include "franca.h"
athlete Sal; // Оголошуємо Сэла як гімнаста