Visual basic 2018 починаємо з нуля, світ пк, видавництво «відкриті системи»

В процесі так званого візуального програмування велика частина коду створюється комп'ютерною програмою. Користувачеві залишається лише водити мишею по екрану і вписувати значення в відведені вікна. У такому режимі дуже складно навчитися програмувати «від і до». На думку спадає порівняння з області кулінарії.

Реєстрація на конференцію

З одного боку, можна зробити лазанью, використовуючи шаблонний напівфабрикат, з іншого - такий підхід малопридатний при навчанні майбутніх кухарів.

Visual basic 2010 починаємо з нуля, світ пк, видавництво «відкриті системи»

Втім, починати програмувати можна і на Visual Basic. Головне, не відволікатися на графічний інтерфейс і створювати перші програми у вигляді консольних додатків. Підручники та самовчителі, присвячені програмуванню в консолі, ви навряд чи знайдете, і тому ми постараємося навчити вас його азам на сторінках нашого журналу. Причому в зрозумілому форматі.

Visual basic 2010 починаємо з нуля, світ пк, видавництво «відкриті системи»

Тепер в головну процедуру (між другою і третьою рядками) вставте код нашої гри - трохи нижче ми його розберемо по частинах (див. Лістинг).

У цьому місці недосвідчений новачок покрутить пальцем біля скроні, а бувалий програміст щиро посміхнеться. Цифри ліворуч - це класика. Рядки коду на мові Бейсік нумеровались з 1964 р коли в першому керівництві по мові програмування Beginner's All Purpose Symbolic Instruction Code (BASIC) були представлені три команди:

Зараз це швидше атавізм, а в минулому столітті наявність строкової нумерації обумовлювалося певною метою. Ми ж будемо використовувати її, щоб було зручніше розбирати код по цеглинці.

Рядок 10. За допомогою оператора DIM оголошуються ім'я і тип однієї або декількох змінних. В даному випадку ми оголосили три цілочисельних змінних: i - будемо використовувати в циклі; n - загадане число; p - наші варіанти задуманого числа.

Visual basic 2010 починаємо з нуля, світ пк, видавництво «відкриті системи»

Рядки 20 і 30 ми пояснимо в парі. Функція RND () повертає випадкове дійсне число (типу Single) в діапазоні від до 1. Ми помножили випадкове число на 100, щоб розширити діапазон від до 100. А ось функція Math.Round (), по суті, зайва в нашій програмі, але все ж нехай буде. Вона округлює число, до цілого значення. Однак змінна n оголошена як целочисленная, а значить, при виконанні програми дрібна частина задуманого числа обрізалася б автоматично. Функція Randomize () ініціалізує генерацію випадкових чисел, інакше задумане число завжди буде одним і тим же.

Рядки 40 і 50 забезпечують висновок привітальних фраз на екран в режимі консолі.

Рядки з 60 по 180 ключові в нашому коді - це циклічна конструкція. Команди з 70 по 170 називаються тілом циклу. Нашому циклу судилося повторитися 7 разів - ті самі 7 спроб відгадати задумане число. З кожним проходом (итерацией) циклу значення лічильника i буде збільшуватися з 1 до 7 в рядку 180. Причому значення змінної i буде відігравати важливу роль в рядку 190, але про це трохи пізніше.

Зверніть увагу на вже знайомий оператор в рядку 80. Тут виводиться рядок формується динамічно, в залежності від значення змінної i. А функція Str (i) перетворює числову змінну в звичайну рядок, щоб з'явилася інформативна фраза «Це твоя 1-я спроба. Вводь число: ».

Visual basic 2010 починаємо з нуля, світ пк, видавництво «відкриті системи»

Користувач вводить значення в змінну p в 90-му рядку. Якщо тут запровадити не число, а будь-якої іншої символ, вийде помилка. Надалі ми будемо вчитися обробляти подібні варіанти подій, а поки не станемо зупинятися на цьому.

Конструкція з 100-ї по 170-й рядок називається розгалуженням. Залежно від виконання того чи іншого умови здійснюються ті чи інші команди. Припустимо, ви вгадали і введене p дорівнює задуманому n. Тоді комп'ютер виконає оператори з 110-ї і 120-ї рядків. До речі, команда Exit For потрібна, щоб в разі перемоги завершити виконання запущеного циклу 60-180 і передати управління оператору в рядку 190.

Рядок 140 буде задіяна в роботі алгоритму, якщо введене p виявиться більше задуманого n. А рядок 160 виповниться, якщо введене p виявиться менше задуманого n. Правда, все просто?

Конструкція з розгалуженням в рядках з 190-ї по 220-ю спрацює, якщо на виході з циклу значення лічильника i дорівнюватиме 8. Пояснимо: якщо б ви вгадали задумане число на останній, 7-й, спробі, то значення i дорівнювало б 7 . А якщо воно дорівнює 8, то, значить, цикл завершився сам собою, «щасливий» оператор Exit For з рядка 120 не виконувався.

Ну і останній оператор з рядка 230 очікує введення в консоль будь-якого одного (!) Символу. Якби не він, то написане консольний додаток відпрацювало б без помилок і відразу ж закрилося. До речі, спробуйте замість Console.ReadKey () написати оператор GoTo 30. Запустіть налагодження додатка клавішею. Що вийшло в результаті? Якщо щось не зрозуміли, встаньте курсором на GoTo і натисніть клавішу - «Допомога» вам в допомогу.

А наступного разу ми запрограмуємо ще більш цікаву консольную гру.