Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Питання для роздумів. Алгоритмічні оператори — це такі оператори, що використовуються для організації послідовності виконуваних виконавцем дій




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

Присвоєння змінній значення

Для присвоєння змінній деякого значення використовується оператор присвоювання.

Насамперед давайте розберемося, що таке оператор взагалі, а вже потім — що таке оператор присвоювання.

Поняття оператора є одним з основних у мовах програмування операторного типу. (У дужках помітимо, що далеко не всі мови програмування відносяться до цього типу: прикладом можуть служити неоператорні мови Лисп і Пролог.)

Оператори — це «цеглини», з яких будується програма. А програма, як ми вже знаємо, являє собою опис алгоритму рішення задачі, що повинна бути сприйнята виконавцем цього алгоритму. Алгоритм складається з окремих, іноді простих, а іноді і не дуже простих, дій — розпоряджень. Програма пишеться визначеною мовою програмування у відповідності зі строгими синтаксичними правилами цієї мови.

Оператор — це така синтаксична одиниця мови програмування, що використовується в програмі для виконання окремого розпорядження.

Оператори поділяються на дві категорії, до першої відносяться алгоритмічні оператори, до другої — функціональні.

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

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

Оператор присвоювання — один з перших операторів, що нами має бути розглянутим.

Синтаксичне правило (чи просто синтаксис) (У розд. 3.2 ми вже розглядали одне синтаксичне правило — для оператора Dim) для цього оператора виглядає так:

[Let] Ім’яЗмінної = ЗначенняЗмінної

Нагадаємо, що прямокутними дужками в правилах синтаксису ми обрамляємо такі конструкції, що можуть бути відсутніми. (У переважній більшості випадків ключове слово Let перед ім'ям змінної в операторі присвоювання не використовується.)

Напівжирним шрифтом у правилах синтаксису ми будемо виділяти ключові слова, зокрема, імена операторів. Перша буква ключового слова — прописна, інші — рядкові.

Курсивом у синтаксичних правилах ми будемо виділяти імена, параметри й інші змінювані конструкції.

Конструкція Ім’яЗмінної, що знаходиться ліворуч від знака рівності, — це ім'я змінної, якій привласнюється значення.

Конструкція ЗначенняЗмінної праворуч від знака рівності — це або те, що знаходиться в діапазоні можливих значень для даного типу перемінної, або вираз, значення якого повинно бути обчислене (Про те, що таке вираз і як обчислюється значення виразу буде йти мова в наступній главі). І в тому і в іншому випадку це значення привласнюється нашій змінній.

При виконанні оператора присвоювання змінна, ім'я якої зазначено ліворуч від знака рівності, одержує значення, рівне значенню виразу, що знаходиться праворуч від знака рівності.

Наступні два приклади — це маленькі фрагменти дійсного програмного коду, роботу якого можна перевірити в середовищі програмування Visual Basic.

Приклад 3.4. Наступні оператори присвоювання являються правильними і будуть виконані:

Код 3.1
DimVar1 As Integer, Var2 As Long DimVar3 As Single, Var4 As Double Var1 = 32000 Var2 =-2000000000 Var3 = 9E-30 Var4 = Var3

Приклад 3.5. Перший з наступних операторів присвоювання буде виконаний, а 3 наступних виконані не будуть, тому що всі 3 значення виходять за припустимий діапазон:

Код 3.2
DimVar1 As Integer, Var2 As Long Dim Var3 As Single, Var4 As Double Var4 = 9E-300 Var1 = 33000 Var2 =-3000000000 Var3 = Var4

Між іншим, Visual Basic дозволяє робити запис програмного коду більш компактним (якщо це Вам подобається) — наприклад, записуючи декілька операторів на одному рядку. У цьому випадку між операторами повинен стояти знак: (двокрапка). Його називають роздільником. Розглянемо, наприклад, приведений вище код 3.2. Число його рядків можна довести до двох: по-перше, можна об'єднати перші два рядки в один (використовувати не два, а один оператор Dim), а по-друге, записати останні 4 оператора на одному рядку, використовуючи двокрапку:

Код 3.3
Dim Var1 As Integer, Var2 As Long, Var3 As Single, Var4 As Double Var4 = 9E-300: Var1 = 33000: Var2 = -3000000000: Var3 = Var4

Іноді виникає і зворотна задача — поділ одного рядка на частини (перенос запису одного оператора на новий рядок, якщо цей запис здається Вам занадто довгим). У цьому випадку використовується символ переносу (знак _підкреслення), що ставиться після пробілу. Наприклад, код 3.3 може бути записаний не в два, а в три рядки:

Код 3.4
Dim Var1 As Integer, Var2 As Long, Var3 As Single, _ Var4 As Double Var4 = 9E-300: Var1 = 33000: Var2 = -3000000000: Var3 = Var4

Приклад 3.6. Побудуємо наступний Windows-додаток. На його екранній формі два текстових поля — зліва і справа, а також дві командні кнопки з написами ПУСК1 і ПУСК2. На лівому текстовому полі (об'єкті з ім'ям Text1) — рядок з букв чорного кольору на білому фоні; на правому текстовому полі (об'єкті з ім'ям Text2) — рядок з букв білого кольору на чорному фоні (мал. 3.1).

Мал. 3.1. Вікно додатка, що демонструє обмін вмістом текстових полів, до кліка кнопки ПУСК 1

Щиглик кнопки ПУСК 1 повинний «впорядкувати» вміст полів — перенести лівий рядок праворуч, а правий — ліворуч. Колір букв і колір фона кожного поля при цьому мінятися не повинен — екранна форма повинна набути вигляду, що показаний на мал. 3.2.

Мал. 3.2. Вікно додатка, що демонструє обмін вмістом текстових полів, після кліка по кнопці ПУСК 1

Якщо ж Ви хочете, щоб при обміні вмістом текстових полів мінялися б і їхні кольори (як букв, так і фону), Ви повинні клацнути не кнопку ПУСК1, а кнопку ПУСК2. Екранна форма при цьому повинна набути вигляду, показаного на мал. 3.3.

Мал. 3.3. Вікно додатка, що демонструє обмін вмістом текстових полів, після кліку по кнопці ПУСК 2

При розробці інтерфейсу для даного додатка нам знадобляться наступні властивості двох об'єктів класу Текстове поле:

кілька властивостей, що відносяться до положення і розмірів цих об'єктів;

властивість Text — його значенням є рядки символів, що містяться в текстових полях;

властивість Font — його значенням є такі характеристики рядків, що містяться в текстових полях, як тип, розмір і накреслення шрифту;

дві властивості, що відносяться до кольору: ForeColor (Колір символів) і BackColor (Колір фону).

Встановимо значення цих властивостей (а також властивостей самої екранної форми і командних кнопок) так, як це рекомендувалося робити в попередній главі.

Після розробки інтерфейсу приступимо до програмування.

Вирішимо спочатку першу задачу — складемо алгоритм і напишемо програму для першої з двох подій — кліку кнопки ПУСК1.

Напрошується таке рішення (алгоритм).

Визначимо два змінні типи String. Назвемо їх Рядок 1 і Рядок 2. Після кліку по командній кнопці цим змінним привласнені значення: вміст текстових полів з іменами Text l і Text 2. Після цього значенню властивості поля Text l буде привласнене значення змінної Рядок 2, а значенню властивості поля Text 2 — значення змінної Рядок 1.

Код 3.5 — це програма, що описує даний алгоритм.

Код 3.5

Чи є ця програма ідеальною? Іншими словами, чи можна зробити її кращою? Виявляється, що можна. Дійсно, те, що здавалося очевидним — використання двох змінних (Рядок 1 і Рядок 2) — є надлишковим: можна обійтися всього однією! Код 3.6 демонструє це.

Код 3.6

Ви, без сумніву, виявите, що по своїй дії програми коду 3.6 нічим не відрізняється від програми коду 3.5.

Тепер вирішимо другу задачу — складемо алгоритм і напишемо програму для другої з двох подій — кліку по кнопці ПУСК 2.

Ми пропонуємо таке рішення (алгоритм).

Визначимо три змінні: одну типу String і два типи Long. Назвемо їх Рядок, КолірФону і КолірБукв. Після кліку командної кнопки цим змінним будуть привласнені значення трьох властивостей одного текстового поля з ім'ям Text l: Text, BackColor і ForeColor. Після цього відбуватиметься обмін значень цих властивостей двох текстових полів за допомогою зазначених вище змінних подібно тому, як це відбувалося при розв'язанні першої задачі (для кнопки ПУСК 1).

Код 3.7 — це програма, що описує даний алгоритм.

Код 3.7

Hові поняття:

оператор, мова операторного типу, алгоритмічні оператори, функціональні оператори, оператор присвоювання, синтаксичне правило, роздільник, символ переносу.

Як Ви думаєте, чим відрізняється зміст знака рівності в математиці від змісту цього знака в мові Бейсік?

Припустимо, змінна X оголошена як змінна типу Integer, a програмний код містить запис: X = X + 33000. Як Ви думаєте, чи не є помилковим цей запис? (Відповідь: Ні. Попереднє значення змінної може бути від’ємним, так що нове значення може і не перевищити 32000, тобто не вийти за межі припустимих значень для типу Integer.)

Як Ви думаєте, що відбуватиметься із вмістом текстових полів приклада 3.6, якщо Ви будете клацати кнопку ПУСК1 багаторазово? Багаторазово клацати кнопку ПУСК2? Клацати обидві кнопки по черзі?




Поделиться с друзьями:


Дата добавления: 2014-12-23; Просмотров: 412; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.027 сек.