У програмуванні, добре описати завдання незавжди означає вирішити її. Але будь-який опис завдання завжди наближає до її вирішення. Алгоритмізація і програмування останнім часом вже з великою натяжкою вважаються словами-синонімами.
Програмістів все частіше називають розробниками. Результатом програмування завжди є опис (змінні + алгоритм) рішення задачі.
Якою мовою що і як зроблено - неважливо.
Трохи зворушливу історію
Алгоритмізація і програмування спочатку йшлирука об руку, але потім їх дороги розійшлися. На цей момент багато згадувати не варто - це стосується першого. Про змінних і алгоритмах завжди потрібно чітко усвідомлювати - це стосується другого.
Благоденство сучасного програмування багато в чому зобов'язане тернистому шляху, по якому йшло розуміння інформації, опис даних і алгоритмів їх обробки в програмах.
Перші мови були прості як перфокарти, але вони працювали. Змінні, типи змінних, оголошення змінних і порядок опису був найжорсткішим чином регламентований.
Як правило, змінні ділилися на динамічні (ті, що можна міняти) і статичні (константи, їх міняти не можна).
Найпершою була змінна типу покажчик (цезаслуга кращого і "вічного" мови - "Ассемблера"). Не у всіх мовах вона зберігалася в різні часи, але в сучасному програмуванні використання покажчиків - сама довершеність коду.
Основні правила: з чого все починалося
Мінлива повинна бути описана до першоговикористання, а найчастіше на самому початку програми, а ще частіше - в конкретній секції програми. Мінлива повинна бути написана латиницею, з цифрами або без. Деякі мови допускали символ "_". Першим повинен бути символ.
Мінлива мала характерну особливість: вона повинна була знати, скільки займає байт в пам'яті і як їй вирівнятися на кордон слова, а то і подвійного слова.
Останнє було дуже важливо для математичнихпрограм. Особливості організації оперативної пам'яті і робота математичного співпроцесора зобов'язували програміста не тільки правильно і вчасно описати змінну, а й подумати, як вона розташується в оперативній пам'яті.
Прим. "Надра" оперативної пам'яті недоступні сучасного програмування в переважній більшості випадків. Раніше з організацією пам'яті доводилося суворо рахуватися.
Перші структури даних - сукупності змінних- функціонували як змінні з певною семантикою, але для доступу до них потрібно не тільки знати, скільки байт що займає, але і враховувати, що деякі типи даних компілятор автоматом вирівнював на кордон слова.
Все це призводило до серйозних помилок впрограмах. На згадку про ті суворі часи слід зазначити, що перші мови при всій їх пунктуальності і вимогливості забезпечували змінні, типи, структури даних в програмуванні та розробці безпечним синтаксичним контролем.
Якщо програма проходила синтаксичний контроль і успішно лінкуватися, проблеми з виконанням починалися тільки при фатальну помилку програміста або збої апаратури.
Наш час, інтернет-програмування
Деякі мови програмування зберегли прихильність до суворого опису змінних. Більшість допускає опис, але дозволяє змінювати тип змінної як зручно програмісту.
PHP:тут змінна в програмуванні повністю характеризується ім'ям, значенням, а ось тип залежить від місця в коді і часу, коли вона знадобилася. Декому не дуже подобається називати змінні зі знака "$", але зате можна мати такі імена: $ 1, $ 2, $ 3.
Діапазони значень перевищують необхідні межі, іпередбачено безліч можливих типів. Для переважної більшості завдань вистачає рядків, цілих чисел, іноді речових і логічних. Покажчика як такого тут немає, але можливість передати вказівку на місце змінної є.
JavaScript:змінна в програмуванні повністю характеризується тим, що її потрібно обов'язково описати, хоча в деяких випадках мова пробачить відсутність опису, шансів отримати валідний код буде мало. JavaScript просто не буде працювати з тим, що не вкладається в його синтаксис або він не зміг виконати.
Діапазони значень так само зашкалюють, але найбільшою популярністю користуються малі змінні.
Програмування на мовах, що відносяться до Інтернету побічно, тобто C #, C ++, Pascal, Delphi - суворе. У C # потрібно не тільки описати, але і форматувати.
Чим характеризуються змінні величини
Перш за все своїм ім'ям, до якого різнімови пред'являють суворі вимоги. Якщо в PHP знак $ обов'язково варто перед ім'ям змінної, то в Java це виходить за рамки угоди. Взагалі, по частині іменування змінних величин, крім ідей синтаксису мови, є маса ідей розробників.
Починаючи писати на конкретній мові, слід прислухатися до думки колег і подивитися останні ідеологічні мануали по стилю мови.
Друга характеристика змінної - її значення.Воно є завжди. Навіть якщо значення відсутній - це теж значення. Характерна риса: наприклад, PHP багато функцій, що видають в якості результату число, можуть видати результатом boolean - чим не результат?
Тип не важливий, важливо наявність, і багато конструкцій JavaScript хвилі задовольняються наявністю значення, незважаючи на його тип.
Останнє, що має значення, так це, власне, значення змінної.
Базові типи даних
В общем-то світ опису, світ змінних, незважаючи на діалекти і стилі в іменуванні, не сильно розвинувся щодо базових типів.
В основному програмісти використовують рядки (string), часто цілі числа (int, integer), при необхідності речові числа (double, real), деякі ще зберегли поняття знака (char).
Про бази даних (від малого до великого) можна навіть не говорити, там кількість варіацій основних типів передбачено на всі випадки життя, а багато типів даних успадковуються з часів Ади і Беббиджа.
В даний час сама краща змінна впрограмуванні повністю характеризується зазначенням на себе, допускаючи, що її значення, тип і взагалі хто вона така буде ясно тільки в той момент, коли вона буде потрібна.
Змінні і алгоритми
Самотня змінна в програмуванні повністю характеризується прагненням опинитися в компанії їй подібних. Це історичне явище, і мало що тут залежить від волі розробника.
Якщо створення програми починається з технічногозавдання, особливо якщо в розробці беруть фахівці, для яких в темі "алгоритмізація і програмування" перше слово має більше значення ніж друге, то змінних буде безліч. Зазвичай такий варіант зупиняється на етапі опису змінних.
Якщо створення програми починається з аналізу її основного завдання, і саме головне точка завдання береться за основу, то шансів отримати працюючий результат досить.
Описати головну точку і створити алгоритм, їїобслуговуючий, - це не просто змінна в програмуванні, тип, ім'я, значення і місце опису, а початок процесу. Важливий процес опису змінних і алгоритму, який з ними працює.
Важливо рух:
- перше наближення до мети;
- результат, аналіз і уточнення опису;
- друге наближення до мети.
Зазвичай після створення другого-третього опису приходить розуміння, з чого слід починати. І завдання пішла в роботу.
Вказівний опис змінних
Небагато варто почати програму з основнихзмінних: не імена, типи і значення відіграють головну роль. Самотня змінна, структура даних, масив і навіть об'єкт - це просто статистичне рішення задачі.
Дерево об'єктів, що описують задачу, тобто ізмінні, і алгоритми, інкапсульовані в єдиний код - об'єкт, а всі об'єкти в загальний об'єкт - систему об'єктів - ось це справа. Ось це реальне і сучасне виробництво змінних.
Такі змінні можуть взаємодіяти з себеподібними, а завдяки спадкоємства кожна з них може переміщатися по своїм родоводом гілці, тобто покажчик на те, що і де в даний момент використовується, і як він це робить - актуальне, а саме його зміст - немає. В даному випадку зміст грає свою роль, коли воно це зробить, покажчик переміщається на наступний зміст.