Пам'ять комп'ютера найкраще уявити собі у вигляді послідовності комірок.
Кількість інформації в кожній комірці - один байт.
Байти (комірки) пам'яті пронумеровані один за іншим, починаючи з 0.
Будь-яка інформація в пам'яті може займати один або кілька байтів.
При запуску програми, вона з жорсткого диска завантажується на вільне місце в оперативну пам'ять і починає працювати. При цьому програма:
В оперативній пам'яті розміщуються:
Дані це інформація, яка необхідна для роботи команд, а також результат виконання команди. Поки ми будемо розглядати тільки числові дані.
Числа можуть бути:
Тому існують різні типи даних.
Визначаючи тип даних ми вказуємо програмі:
Команда - це опис операції, яку комп'ютер повинен виконати з даними.
Наприклад, потрібно обчислити суму чисел 2 і 3
У команди є:
Все це: і код (+), і вихідні дані (2 і 3), і результат розташовуються десь в пам'яті.
Програма починає виконуватися з першої команди і виконує всі команди ПІДРЯД. Але команди працюють з даними. Як же команді звернутися до цих даних? Вони розташовані десь в оперативній пам'яті, але ми не знаємо за якими адресами. Тому в команді замість адреси, за якою розташовані дані, вказуються імена.
Комірка в оперативній пам'яті, яка має ім'я називається змінною або константою.
Вказуючи в програмі ім'я, ми фактично вказує адресу в оперативній пам'яті.
Число, яке знаходиться в комірці оперативної пам'яті, за цією адресою (під цим ім'ям), називається значенням змінної або константи.
Значення змінної можна міняти, значення константи міняти не можна.
Для того, щоб комп'ютер вас правильно зрозумів, потрібно написати програму. Програма повинна бути написана на якійсь мові програмування.
Тому потрібно на цій мові грамотно записати послідовність команд, за допомогою яких з вхідних даних можна отримати вихідні.
Всі мови програмування діляться на два види - мови низького і високого рівня.
Мови низького рівня - програма записується на мові, близькій до машинної. Такі мови жорстко прив'язані до певного типу апаратури (у кожного типу процесора свій машинний код).
Приклад мови низького рівня - асемблер
Мови високого рівня - це мови програмування, що дозволяють записувати програму в зручному для людини вигляді. Такі мови не прив'язані до типу процесора і значно простіше у використанні.
Таких мов багато. Ми будемо займатися С++, С#, JavaScript, SQL
Фізично програма мовою високого рівня (наприклад, C++) є текстовим файлом (з розширенням .cpp), у якому записані дані та команди цієї мови в порядку, визначеному програмістом.
Програма може також містити звернення до вже написаних функцій, які зберігаються в окремих бібліотечних файлах.
Щоб комп’ютер міг зрозуміти програму, написану мовою високого рівня, потрібно її перекодувати — перекласти на машинну мову.
Це виконується спеціальними програмами, які називаються трансляторами.
Оскільки мов програмування багато, існує й багато різних трансляторів.
Транслятори бувають двох видів: компілятори та інтерпретатори.
Компілятор читає всю програму цілком, перекладає її та створює завершений варіант програми машинною мовою, який потім виконується.
Приклади мов із компіляторами: Pascal, C, C++.
Інтерпретатор перекладає й виконує програму рядок за рядком.
На відміну від компілятора, інтерпретатор не створює окремої програми машинною мовою. Розпізнавши команду вихідної мови, він одразу її виконує.
Приклади інтерпретованих мов: JavaScript, Python.
Компілятор створює не готову до виконання програму, а тільки об'єктний код (файл з розширенням *.obj).
Цей код містить результат перекладу на машинну мову тексту програми, створеної програмістом.
Але створювана програма може містити звернення до функцій стандартних бібліотек, реалізації яких описані в окремих файлах.
Для об'єднання коду створюваної програми і коду бібліотечних функцій використовується спеціальна програма, яка називається компоновщик.
В результаті компонування виходить файл *.exe
Середовище програмування об'єднує в собі:
Проект це сукупність файлів і папок об'єднаних в єдине ціле для вирішення певної задачі. Як правило, в проект входять:
Технологією програмування називають сукупність засобів, що використовуються в процесі розробки тексту програми.
За технологією програмування, мови високого рівня діляться на:
Процедурні мови призначені для однозначного опису алгоритмів.
Для вирішення завдання процедурні мови вимагають в тій чи іншій формі явно записати процедуру її рішення, тобто послідовність команд.
Найбільш відомі процедурні мови: PL/1, Pascal, C
Логічні мови орієнтовані не на запис алгоритму розв'язання задачі, а на формалізований опис умови задачі.
У цих мовах вказується що дано і що потрібно отримати. При цьому пошук рішення задачі покладається безпосередньо на ПК.
Самою відомою мовою логічного програмування є Prolog.
Основна ідея ООП полягає в зв'язуванні даних з методами, які ці дані обробляють в єдине ціле - об'єкт. Базові поняття ООП:
Об'єктно-орієнтовані мови: C++, Java, C #