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

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

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

Завдання трохи ускладнити. Будемо вважати, що товарів у нас, наприклад, мільйон одиниць. І у кожного товару є вага нетто (це чиста вага без упаковки), є додатковий вага упаковки і сумарна вага брутто. Нас буде цікавити вага кожного товару: нетто, вагу упаковки, брутто, – а також загальна вага всіх товарів на складі.

1. Рішення завдання підсумовування ваг з використанням змінних в програмуванні

Можна визначати вагу брутто як суму ваги нетто і ваги упаковки
(Брутто = нетто + вес_упаковкі). позначимо:

  • змінної A – чиста вага товару (нетто),
  • змінної B – вага упаковки.

Тоді вираз C = A + B дасть нам, очевидно, вага брутто. Здорово, завдання майже вирішена.

Але не все так просто. Адже товарів у нас мільйон. Ми порахували тільки вага брутто одного товару. Що робити з рештою? Очевидно, їх теж треба підсумовувати.

Наприклад, позначимо

  • змінної D – вага другого товару,
  • змінної E – вага упаковки другого товару.

Тоді вираз F = D + E дасть нам вага брутто другого товару. Добре, тепер ми можемо підсумувати ваги брутто двох товарів, наприклад, в такому виразі, як G = C + F, де C – вага брутто першого товару, F – вага брутто другого товару.

Ми отримали з Вами невелику програму, яка підсумовує вага 2-х товарів з мільйона. Вона виглядає наступним чином:

Мал. 1. Програма підсумовує вага 2-х товарів

У підсумку в значенні змінної G ми отримаємо вагу 2-х товарів з мільйона. Але навіть в такій самій невеликій програмі ми можемо згодом заплутатися. Подивимося на неї, скажімо, через півроку. Хіба ми згадаємо, що означає A, B, C, D, E, F? Малоймовірно.

2. Коментарі в програмуванні, що це таке і як їх пишуть

У запам’ятовуванні сенсу того, що ми запрограмували, нам можуть допомогти коментарі, які програмісти мають можливість писати в своїх програмах.

Коментарі – це нічого не значущий для комп’ютера текст, який зрозумілий тільки програмістам. Цей текст можна писати прямо в тексті програми, але щоб його відокремити від тексту програми, потрібні деякі правила.

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

Мал. 2. Коментар в програмуванні пишуть в кінці рядка для пояснення вмісту рядка

Непогано, правда? З коментарями текст в програмі зрозумілий. Але, як говорилося в старій приказці, «так-то так, та он-то як ?!» – це про того, хто будував віз прямо в хаті, і не думав про те, як він її буде виносити з хати на вулицю через маленькі низькі двері і зовсім маленькі віконця.

В чому проблема? У мільйон товарів. Їх – цілий мільйон, а ми тільки дісталися до другого товару. І скільки ж часу ми будемо йти до мільйону? Напевно, при такому підході, все життя …

3. Складні імена і ідентифікатори змінних в програмуванні

Спробуємо підійти до вирішення завдання інакше. Змінна величина в програмуванні позначається на своє ім’я або іншими словами, у змінної є ідентифікатор імені, або просто ідентифікатор. Взагалі-то, ідентифікатори в програмуванні – це не тільки ідентифікатори імен змінних. Це можуть бути, наприклад, ідентифікатори міток та інших об’єктів програм, але зараз ми не будемо про це говорити, обмежимося ідентифікаторами змінних.

  • В якості ідентифікатора змінної можуть виступати будь-які поєднання латинських букв і цифр, але першим символом ідентифікатора обов’язково повинна бути латинська буква.
  • З цифри починати ім’я змінної не можна.
  • Також ім’я змінної, її ідентифікатор повинен мати обмежену довжину. Скажімо, не більше 8 символів, хоча в різних мовах програмування ці обмеження різні. Може бути і 255 символів, наприклад, і навіть більше. Але ми поки зупинимося на 8-й символах.

Назвемо інакше вага нетто першого товару, скажімо, позначимо його ідентифікатором VESNET01, маючи на увазі, що VES – це «вага», NET – це «нетто», а 01 – це перший товар. Аналогічно можемо позначити VESUP01 – вага упаковки першого товару і VESBRT01 – вага брутто 1-го товару. Отримуємо тоді наступну програму:

Мал. 3. Програма підсумовує вага брутто 99 товарів

Ура, ми тепер змогли підсумувати вага аж 99 товарів! Просунулися ми так далеко, так як стали застосовувати складні ідентифікатори змінних, ніж просто звичні змінні A, B, C, D і т.п., які скоріше схожі на алгебраїчні, ніж на програмістські.

4. Змінні з індексами або масиви в програмуванні

Але ми все одно не підсумували мільйон ваг товарів. Нас вистачило тільки на 100. Тому що нам не вистачило довжини імені змінної. Ми обмежені 8-ю символами. Звичайно, VES можна скоротити до V, BRT – до B, NET – до N, і тим самим вивільнити ще поля. Тоді, звичайно, можна буде скласти мільйон ваг товарів, бо він випущений 5 знаків, яких вистачить якраз на 99999 варіантів, а з п’ятизначним нулем 00000 вистачить на мільйон варіантів найменування імені змінної.

Але і програма стане величезною, в ній буде мільйон рядків. Це нереально, і я слабо уявляю собі програміста, у якого вистачило б терпіння ці рядки ввести. Навіть якщо це можна робити простим копіюванням з виправленням окремих цифр. 1 мільйон виправлень, якщо одне виправлення робити за 1 секунду забере у нас 1 мільйон секунд або 1 000 000/3 600 = 278 годин / 24 години = 11,5 суток !!!

Але ж для сучасних комп’ютерів мільйон даних – це дрібниця. Вони оперують трильйонами і більш даних. Що ж робити? Треба рухатися далі в освоєнні змінних величин. Для таких великих масивів даних прості змінні величини не годяться. Потрібні так звані змінні з індексами.

В алгебрі, наприклад, є такі записи, як a1, a2, a3, b1, b2, b3 і т.д. Так чому б цьому не бути в програмуванні? Звичайно, таке там є. Такі змінні в програмуванні називаються змінними з індексами.

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

Індекси в мовах програмування зазвичай вказують в круглих дужках відразу після імені змінної, наприклад, A (1), A (2), A (3), B (1), B (2), B (3) і т.д.

Індексів може бути не один, а кілька, які вказують через кому, наприклад A (1,1), A (1,2), A (1,3), A (2,1), A (2,2), A (2,3) і т.д.

Що таке масив в програмуванні?

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

Чим відрізняється масив від змінної? У масиві під одним ідентифікатором змінної зберігається не одне число, а цілий масив даних.

Масив, в якому змінна має один індекс, називають лінійним або одновимірним масивом. Приклад одновимірного масиву: A (1), A (2), A (3).

Масив, де змінна може мати два індексу, називають двовимірним. Приклад двовимірного масиву: A (1,1), A (1,2), A (1,3), A (2,1) A (2,2), A (2,3).

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

Повернемося до майже полюбився і вже звичного виразу C = A + B. Напишемо тепер програму підсумовування, не багато не мало, мільйони ваг товарів, більше не замислюючись над «твором» імен або ідентифікаторів різних змінних:

Мал. 4. Програма підсумовує мільйон одиниць товарів

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

Все, здається просто, і ми ніби як вирішили завдання. Але не все так просто. Для комп’ютера треба заздалегідь вказати, якою буде розмірність кожного застосовуваного масиву або кожної застосовуваної в програмі змінної з індексами.

Розмірність – це максимальне значення індексу для змінної з індексом, інакше транслятор з мови програмування не зможе розпізнати нашу запис будь неописаної змінної з індексами, і видасть помилку. Чому так: подумаєш індекси, навіщо їх треба заздалегідь описувати?

Справа в тому, що під кожен елемент масиву, під кожен індекс змінної з індексом транслятор з мови програмування повинен зарезервувати в оперативній пам’яті комп’ютера одну вільну комірку пам’яті. І потім кожне значення змінної з індексом розмістити строго в свою комірку пам’яті.

Саме для цього перед виконанням програми потрібно ще поставити оператор (команду), що задає цю максимальну розмірність. Це буде зазначенням для транслятора з мови програмування на відведення відповідної кількості оперативної пам’яті під вказаний масив даних.

Наприклад, можна застосувати для позначення розмірності масиву команду Dimension (В даному контексті в перекладі з англійської мови це означає «розмірність»):

Мал. 5. Команда для позначення розмірності масиву

Або простіше, в один рядок:

Мал. 6. Вказуємо в програмі розмірність 3-х масивів

І тільки потім напишемо нашу програму:

Мал. 7. Програма підсумовує ваги товарів: в кожному рядку вага одного товару

Але і цього недостатньо. Адже не зможемо ми і в даному випадку написати програму з мільйона рядків. Але ж доведеться, якщо в кожному рядку ми підсумовуємо дані тільки по одному товару. Але нам «життя не вистачить» написати таку довгу програму, тому така програма можлива тільки теоретично, але ніяк не практично. Що ж робити?

6. Цикл або Багаторазове циклічне виконання команд в програмуванні

Для вирішення подібних завдань в мовах програмування є більш складні, і при цьому більш ефективні вираження, ніж просто привласнити змінної в лівій частині значення виразу з правої частини (рис. 7). Подібних команд безліч, але ми поки що не ставимо задачу все їх вивчити. Візьмемо поки одну команду – команду виконання програми в циклі. Що таке цикл в програмуванні для нашої задачі?

У нас є масив даних ваги нетто товару – масив A розмірністю мільйон. Також є масив B такий же розмірності. І нам треба мільйон разів скласти A (I) і B (I), де значення нової змінної I змінюється від одиниці до мільйона. Це записати просто за допомогою команд циклічного виконання програми або простіше за допомогою циклу, як кажуть програмісти:

Мал. 8. Цикл в програмуванні підсумовує товари від 1 до 1000000

У перекладі на російську:

Мал. 9. Цикл в програмуванні російською мовою

Або іншими словами, для всіх значень змінної I від одиниці з кроком по одному до мільйона підсумуйте A (I) і B (I), результат запишіть в C (I). Мільйон підсумовування! За допомогою лише одного рядка програми! А ось це вже і є справжнє програмування. Що нам тепер мільйон? Можемо і мільярд сум зробити в одній програмній рядку! А якщо треба, то і більше.

7. Лічильник в програмуванні або Багаторазове підсумовування даних в однієї змінної

Так-то так, та он-то як? А як же загальна сума? Так, згоден, потрібно до цієї простої і ефективної одній єдиному рядку програми приписати ще пару рядків, наприклад, таких, як показано нижче, і теж з використанням циклу:

Мал. 10. Лічильник в програмуванні працює за принципом лічильника в таксі

Ось таке рішення задачки, яку ми позначили на початку цієї статті про імена і ідентифікатори змінних в програмуванні, у нас вийшло. Всього чотири рядки програми, і «мільйон у нас в кишені»:

Мал. 11. Програма підсумовує вага брутто для мільйона товарів

До речі, зверніть, будь ласка, увагу на вираз в останньому рядку програми після команди Do. Йдеться про висловлення G = G + C (I).

У цьому виразі змінна G використовується як в лівій частині виразу (їй присвоюється результат обчислення), так і в правій частині виразу, оскільки її попереднє значення бере участь в черговому підсумовуванні. Така конструкція в мовах програмування називається «лічильник». Як лічильник в таксі: клац-клац-клац і весь час цифра додається. В результаті «набігає» загальна сума за поїздочку на таксі, або, в даному контексті набігає сума всіх ваг товарів.

Таке майже неможливо в алгебрі, щоб одна і та ж змінна стояла зліва і справа в вираженні. Вірніше, це там можливо, наприклад, в рівняннях. А ось в програмуванні така конструкція лічильника дуже поширена і досить часто зустрічається в текстах програм. Все-таки програмування – це не алгебра.

У підсумку наша програма займає всього 4 рядки, а робить дуже велику справу: підсумовує мільйон ваги нетто, упаковки, і брутто, а також отримує кінцевий результат – суму ваг мільйона товарів, і ця сума стає значенням змінної G.

Правда, непроста робота у програмістів ?!

Інші матеріали:

1. Як визначити термін покупки залізничних квитків за допомогою Microsoft Excel

2. Мови програмування: чому з’явилися, яскраві представники, як вибрати мову

3. Інформаційні технології: інформація або технології?

4. Російська мова програмування, а чому б і ні?

5. Як програмісти жартують

Отримуйте актуальні статті з комп’ютерної грамотності прямо на вашу поштову скриньку. вже більше 3.000 передплатників

.

Важливо: необхідно підтвердити свою підписку! У своїй пошті відкрийте лист для активації і клікніть по зазначеній там посиланням. Якщо листа немає, перевірте папку Спам.

Ссылка на основную публикацию