Рівень мови програмування
В даний час в світі існує декілька сотень реально використовуваних мов програмування. Для кожного є своя сфера застосування.
Будь-який алгоритм, як ми знаємо, є послідовність розпоряджень, виконавши які можна за кінцеве число кроків перейти від початкових даних до результату. Залежно від ступеня деталізації розпоряджень зазвичай визначається рівень мови програмування — чим менше деталізація, тим вище рівень мови.
По цьому критерію можна виділити наступні рівні мов програмування:
машинні;
машинно-орієнтовані (асемблери) ;
машинно-незалежні (мови високого рівня).
Машинні мови і машинно-орієнтовані мови — це мови низького рівня, що вимагають вказівки дрібних деталей процесу обробки даних. Мови ж високого рівня імітують природні мови, використовуючи деякі слова розмовної мови і загальноприйняті математичні символи. Ці мови зручніші для людини.
Мови високого рівня діляться на:
процедурні (алгоритмічні) (Basic, Pascal, C і ін.), які призначені для однозначного опису алгоритмів; для вирішення завдання процедурні мови вимагають в тій або іншій формі явно записати процедуру її рішення;
логічні (Prolog, Lisp і ін.), які орієнтовані не на розробку алгоритму рішення задачі, а на систематичний і формалізований опис завдання з тим, щоб рішення виходило з складеного опису;
об'єктно-орієнтовані (Object Pascal, C++, Java і ін.), в основі яких лежить поняття об'єкту, що поєднує в собі дані і дії над нами. Програма на об'єктно-орієнтованій мові, вирішуючи деяку задачу, по суті описує частину світу, що відноситься до цього завдання. Опис дійсності у формі системи взаємодіючих об'єктів природніший, ніж у формі взаємодіючих процедур.
Достоїнства і недоліки машинних мов
Кожен комп'ютер має своя машинну мову, тобто свою сукупність машинних команд, яка відрізняється кількістю адрес в команді, призначенням інформації, що задається в адресах, набором операцій, які може виконати машина і ін.
При програмуванні на машинній мові програміст може тримати під своїм контролем кожну команду і кожен елемент пам'яті, використовувати всі можливості наявних машинних операцій.
Але процес написання програми на машинній мові дуже трудомісткий і утомливий. Програма виходить громіздкою, важкооглядовою, її важко відлагоджувати, змінювати і розвивати.
Тому у разі, коли потрібно мати ефективну програму, яка в максимальному ступені враховує специфіку конкретного комп'ютера, замість машинних мов використовують близькі до них машино-орієнтовані мови (асемблери).
Мова асемблера
Мова асемблера — це машино-залежна мова низького рівня, в якому короткі мнемонічні імена відповідають окремим машинним командам. Використовується для представлення в легкій для читання формі програм, записаних в машинному коді.
Мова асемблера дозволяє програмістові користуватися текстовими мнемонічними (тобто що легко запам'ятовуються людиною) кодами, на свій розсуд привласнювати символічні імена регістрам комп'ютера і пам'яті, а також задавати зручні для себе способи адресації. Крім того, він дозволяє використовувати різні системи числення (наприклад, десяткову або шістнадцетерічну) для уявлення числових констант, використовувати в програмі коментарі і ін.
Програми, написані на мові асемблера, вимагають значно меншого об'єму пам'яті і часу виконання. Знання програмістом мови асемблера і машинного коду дає йому розуміння архітектури машини. Не дивлячись на те, що більшість фахівців в області програмного забезпечення розробляють програми на мовах високого рівня, таких, як Object Pascal або C, найбільш могутнє і ефективне програмне забезпечення повністю або частково написане на мові асемблера.
Мови високого рівня були розроблені для того, щоб звільнити програміста від обліку технічних особливостей конкретних комп'ютерів, їх архітектури. В протилежність цьому, мова асемблера розроблена з метою врахувати конкретну специфіку процесора. Отже, для того, щоб написати програму на мові асемблера для конкретного комп'ютера, важливо знати його архітектуру.
Як приклад приведемо програму на мові асемблера для IBM РС. Програма обчислює значення а = b + з для цілих а, b і з:
.MODEL SMALL .DATA b DW 5 c DW 3 a DW ? .CODE begin MOV AX,@DATA MOV DS,AX MOV AX,B ADD AX,C MOV A,AX MOV AH,4CH INT 21H END begin | Директива .MODEL задає механізм розподілу пам'яті під дані і команди. Директива .DATA визначає початок ділянки програми з даними. Директиви DW задають типи змінних і їх значення. Директива .CODE визначає початок ділянки програми з командами. Команди MOV Ax,@data і MOV Ds,ax записують адресу сегменту даних в регістр DS (Data Segment). Для обчислення а використовуються команди MOV AX, B, ADD AX, C і MOV A, AX. У директиві END задана мітка першої виконуваної програми програми begin. |
Переклад програми з мови асемблера на машинну мову здійснюється спеціальною програмою, яка називається асемблером і є, по суті, простим транслятором.
Переваги алгоритмічних мов перед машинними
Основні переваги такі:
алфавіт алгоритмічної мови значно ширший за алфавіт машинної мови, що істотно підвищує наочність тексту програми;
набір операцій, допустимих для використання, не залежить від набору машинних операцій, а вибирається з міркувань зручності формулювання алгоритмів вирішення завдань певного класу;
формат пропозицій достатньо гнучкий і зручний для використання, що дозволяє за допомогою однієї пропозиції задати достатньо змістовний етап обробки даних;
необхідні операції задаються за допомогою загальноприйнятих математичних позначень;
даним в алгоритмічних мовах привласнюються індивідуальні імена, вибирані програмістом;
у мові може бути передбачений значно ширший набір типів даних в порівнянні з набором машинних типів даних.
Таким чином, алгоритмічні мови значною мірою є машинно-незалежними. Вони полегшують роботу програміста і підвищують надійність створюваних програм.
Компоненти алгоритмічної мови
Алгоритмічну мову (як і будь-яку іншу мову) утворюють три його складові: алфавіт, синтаксис і семантика.
Алфавіт — це фіксований для даної мови набір основних символів, тобто "букв алфавіту", з яких повинен складатися будь-який текст на цій мові, — ніякі інші символи в тексті не допускаються.
Синтаксис — це правила побудови фраз, що дозволяють визначити, правильно або неправильно написана та або інша фраза. Точніше кажучи, синтаксисом мови є набір правив, що встановлюють, які комбінації символів є осмисленими пропозиціями на цій мові.
Семантика визначає смислове значення пропозицій мови. Будучи системою правил тлумачення окремих мовних конструкцій, семантика встановлює, які послідовності дій описуються тими або іншими фразами мови і, зрештою, який алгоритм визначений даним текстом на алгоритмічній мові.
Поняття використовувані алгоритмічними мовами
Кожне поняття алгоритмічної мови має на увазі деяку синтаксичну одиницю (конструкцію) і визначувані нею властивості програмних об'єктів або процесу обробки даних.
Поняття мови визначається у взаємодії синтаксичних і семантичних правил. Синтаксичні правила показують, як утворюється дане поняття з інших понять і букв алфавіту, а семантичні правила визначають властивості даного поняття
Основними поняттями в алгоритмічних мовах зазвичай є наступні.
1. Імена (ідентифікатори) — уживаються для позначення об'єктів програми (змінних, масивів, функцій і ін.).
2. Операції. Типи операцій:
арифметичні операції + , — * , / і ін. ;
логічні операції і , або , не ;
операції відношення < , > , <= , >= = , <> ;
операція зчеплення (інакше, "приєднання", "конкатенації" ) символьних значень один з одним з утворенням одного довгого рядка; зображається знаком "+".
3. Дані — величини, що обробляються програмою. Є три основні види даних: константи, змінні і масиви.
Константи — це дані, які зафіксовані в тексті програми і не змінюються в процесі її виконання.
Приклади констант:
числові 7.5 , 12 ;
логічні так (істина), немає (брехня);
символьні (містять рівно один символ) "А" , "+" ;
літерні (містять довільну кількість символів) "a0", "Мир", "" (порожній рядок).
Змінні позначаються іменами і можуть змінювати свої значення в ході виконання програми. Змінні бувають цілі, речові, логічні, символьні і літерні.
Масиви — послідовності однотипних елементів, число яких фіксоване і яким привласнено одне ім'я. Положення елементу в масиві однозначно визначається його індексами (одним, у разі одновимірного масиву, або декількома, якщо масив багатовимірний). Іноді масиви називають таблицями.
4. Вирази — призначаються для виконання необхідних обчислень, складаються з констант, змінних, покажчиків функцій (наприклад, exp(x)), об'єднаних знаками операцій.
Вирази записуються у вигляді лінійних послідовностей символів (без підрядкових і надрядкових символів, "багатоповерхових" дробів і так далі), що дозволяє вводити їх в комп'ютер, послідовно натискаючи на відповідні клавіші клавіатури.
Розрізняють вирази арифметичні, логічні і рядкові.
Арифметичні вирази служать для визначення одного числового значення. Наприклад, (1+sin(x)) /2. Значення цього виразу при x=0 дорівнює 0.5, а при x=p/2 — одиниці.
Логічні вирази описують деякі умови, які можуть задовольнятися або не задовольнятися. Таким чином, логічний вираз може набувати тільки два значення — "істину" або "брехню" (та чи ні). Розглянемо як приклад логічний вираз x*x + y*y < r*r, що визначає приналежність крапки з координатами (x, у) внутрішньої області круга радіусом r з центром на початку координат. При x=1, y=1, r=2 значення цього виразу — "істина", а при x=2, y=2, r=1 — "брехня".
Рядкові (літерні) вирази, значеннями яких є тексти. У рядкові вирази можуть входити літерні і рядкові константи, літерні і рядкові змінні, літерні функції, розділені знаками операції зчеплення. Наприклад, А + У означає приєднання рядка В до кінця рядка А . Якщо А = "кущ ", а В = "зелений", те значення виразу А + У є "кущ зелений".
5. Оператори (команди). Оператор — це найбільш крупне і змістовне поняття мови: кожен оператор є закінченою фразою мови і визначає деякий цілком закінчений етап обробки даних. До складу операторів входять:
ключові слова;
дані;
вирази і так далі
Оператори підрозділяються на виконуваних і невиконуваних. Невиконувані оператори призначені для опису даних і структури програми, а виконувані — для виконання різних дій (наприклад, оператор привласнення, оператори введення і виводу, умовний оператор, оператори циклу, оператор процедури і ін.).
Стандартні функції
При вирішенні різних завдань за допомогою комп'ютера буває необхідно обчислити логарифм або модуль числа, синус кута і так далі
Обчислення функцій, що часто вживаються, здійснюються за допомогою підпрограм, званих стандартними функціями, які заздалегідь запрограмовані і вбудовані в транслятор мови.
Таблиця стандартних функцій шкільної алгоритмічної мови
Назва іматематичнепозначенняфункції | Покажчикфункції | |
Абсолютна величина (модуль) | | х | | abs(x) |
Коріньквадратний |
| sqrt(x) |
Натуральнийлогарифм | ln x | ln(x) |
Десятковийлогарифм | lg x | lg(x) |
Експонента (ступіньчисла е ~ 2.72) | ex | exp(x) |
Знак числа x ( - 1, якщо х<0; 0, якщоx = 0; 1, якщоx >0) | sign x | sign(x) |
Цілачастиначисла х (тобто максимальне цілечисло,не більшех) |
| int(x) |
Мінімумз чисел х таy |
| min(x,y) |
Максимум з чисел х таy |
| max(x,y) |
Частное відділенняцілогох на цілеy |
| div(x,y) |
Залишок від діленняцілогох на цілеy |
| mod(x,y) |
Випадкове число в диапазонівід0 до х - 1 |
| rnd(x) |
Синус (кутв радіанах) | sin x | sin(x) |
Косинус (кутв радіанах) | cos x | cos(x) |
Тангенс (кутв радіанах) | tg x | tg(x) |
Котангенс (кутв радіанах) | ctg x | ctg(x) |
Арксинус (головнезначенняв радіанах) | arcsin x | arcsin(x) |
Арккосинус (головнезначенняв радіанах) | arccos x | arccos(x) |
Арктангенс (головнезначенняв радіанах) | arctg x | arctg(x) |
Арккотангенс (головнезначенняв радіанах) | arcctg x | arcctg(x) |
Як аргументи функцій можна використовувати константи, змінні і вирази. Наприклад:
sin ( 3.05 ) min ( a, 5) | sin ( x ) min ( a, b ) | sin ( 2 * y + t / 2 ) min ( a + b , a * b ) | sin((exp(x) + 1) ** 2) min(min(a, b), min(c, d)) |
Кожна мова програмування має свій набір стандартних функцій.
Арифметичні вирази
Арифметичні вирази записуються по наступних правилах:
Не можна опускати знак множення між співмножниками і ставити поряд два знаки операцій.
Індекси елементів масивів записуються в квадратних (шкільний АЯ, Pascal, З) або круглих (Basic) дужках.
Для позначення змінних використовуються букви латинського алфавіту.
Операції виконуються в порядку старшинства: спочатку обчислення функцій, потім піднесення до ступеня, потім множення і ділення і в останню чергу — складання і віднімання.
Операції одного старшинства виконуються зліва направо. Проте, в шкільній АМ є одне виключення з цього правила: операції піднесення до ступеня виконуються зправа наліво. Так, вираз 2**(3**2) в шкільній АМ обчислюється як 2**(3**2)= 512. У мові Qbasic аналогічний вираз 2^3^2 обчислюється як (2^3)^2 = 64. А в мові Pascal взагалі не передбачена операція піднесення до ступеня, в Pascal x^y записується як exp(y*ln(x)), а x^y^z як exp(exp(z*ln(y))*ln(x)).
Приклади запису арифметичних виразів
Математичнийзапис | Запис на школьнійалгоритмичній мові |
| x * y / z |
| x / ( y * z ) або x / y / z |
| ( a**3 + b**3 ) / ( b*c ) |
| ( a[i+1] + b[i-1] ) / ( 2*x*y ) |
| ( -b + sqrt(b*b - 4*a*c)) / ( 2*a ) |
(x<0) | sign(x) * abs(x) ** (1/5) |
| 0.49 * exp(a*a - b*b) + ln(cos(a*a)) ** 3 |
| x/(1 + x*x/(3 + (2*x)**3)) |
Типові помилки в записі виразів:
5x + 1 a + sin x ((a + b)/c**3 | Пропущений знак множення між 5 і х Аргумент x функції sin x не поміщений в дужки Не вистачає закриваючої дужки |
- Іі. Електронні обчислювальні машини (еом)
- 2.1. Класифікація еом за розміром
- 2.2. Класифікація персональних еом
- 2.3. Класифікація пк за сферою застосування
- Ііі. Персональні комп’ютери. Особливості їх складу, конструкції і конфігурації.
- Питання для самоперевірки
- 1.3 Призначення, конструкція і характеристики пристроїв персональних комп’ютерів: системний блок, блок живлення, мікропроцесор, материнська плата, оперативна пам’ять
- Питання для самоперевірки
- 1.4 Призначення, конструкція і характеристики пристроїв персональних комп’ютерів: накопичувачі, адаптери
- 1.5 Призначення, конструкція і характеристики пристроїв персональних комп’ютерів: звукові карти, монітор, клавіатура
- 1.6 Призначення, конструкція і характеристики пристроїв персональних комп’ютерів: принтер, модеми, сканери, джерела безперебійного живлення
- Artec viewstation as6e
- Artec viewstation at12 scsi
- Artec viewscan a2000d
- Boeder compact colour 1200 (65137)
- 2. Операційна система windows xp. Основні поняття на принципи роботи у системі.
- 2.1 Історія Windows
- 2.2 Файлова система та структура.
- Запитання для контролю.
- 2.3 Основні принципи роботи з системою
- 2.4 Робота з файлами та папками.
- Переміщення та копіювання папок та файлів
- Пошук файлів та папок
- Приклад контрольного завдання за темою Основи роботи в ос Windows xp
- 3. Введение в microsoft office.
- 3.1 Microsoft word.
- 3.1.1 Запуск і ознайомлення з пакетом
- 3.1.1.1 Введення в Microsoft Word.
- 3.1.1.2 Меню і панелі інструментів Word.
- 3.1.1.4 Початок роботи з документом.
- 3.1.2. Налаштування параметрів сторінки
- 3.1.2.1 Завдання режиму сторінки
- 3.1.2.2Налаштування масштабу документа
- 3.1.2.3 Попередній перегляд файлу
- 3.1.2.4. Друк документа
- 3.1.2.5. Установка параметрів сторінки
- 3.1.2.6 Додавання колонтитулів
- 3.1.3. Набір і редагування тексту. Шрифт.
- 3.1.3.1 Налаштування шрифтів
- 3.1.3.2 Робота з шрифтами
- 3.1.3.3 Вставка символу в документ
- 3.1.3.4. Виділення фрагмента тексту
- 3.1.4. Набір і редагування тексту. Абзац.
- 3.1.4.1. Завдання вирівнювання і інтервалів
- 3.1.4.2. Завдання відступів
- 3.1.4.3. Оформлення тексту в декілька колонок
- 3.1.4.4. Створення списків
- 3.1.4.5. Вставка розриву сторінки або розділу
- 3.1.4.6. Відміна і повторення виконаних дій.
- 3.1.4.7. Копіювання і переміщення інформації.
- 3.1.5. Вставка об'єктів.
- 3.1.5.1 Створення простих формул
- 3.1.5.2. Запис формул за допомогою редактора формул
- 3.1.5.3. Вставка об'єктів Wordart.
- 3.1.5.4. Робота з ClipArt
- 3.1.5.5. Створення графічних об'єктів.
- 3.1.6. Робота з таблицями.
- 3.1.6.1 Створення таблиці.
- 3.1.6.2 Основні комбінації клавіш для роботи з таблицями.
- 3.1.6.3 Зміна таблиці.
- 3.1.6.4 Форматування таблиці
- 3.1.6.5. Написання формул і побудова діаграм.
- 3.2 Текстовий редактор Open Office org Writer
- 3.2.1 Робота з документами
- Комбінації клавіш для переміщення в межах тексту
- Питання для самоперевірки
- 3.2.2 Форматування тексту
- 3.2.3 Створення таблиць та діаграм
- 3.2.4 Вставка об’єктів у документ
- Питання для самоперевірки
- 3.2.5 Призначення стилів і їх використання в документах
- Питання для самоперевірки
- 3.2.6 Засоби підготовки і представлення презентацій
- 4. Електронні таблиці (ms Excel та oo Calc)
- 4.1.Загальні положення
- 4.2.Типи даних, введення та форматування даних у ет
- 4.3. Редагування даних в ет
- 4.4. Функції та обчислення у ет
- 4.5. Організація графічної інформації
- 4.6. Робота з базами даних (списками)
- 4.7. Аналіз даних
- 5. Загальні поняття баз даних.
- 5.1 Бази даних
- 5.1.1 Поняття бази даних і субд
- 5.1.2 Ієрархічна модель даних
- 5.1.3 Мережева модель даних
- 5.1.4 Реляційна модель даних
- 5.1.5 Рівні моделі даних.
- 5.2. Інфологичеська модель даних "суть-зв'язок"
- 5.2.1 Поняття, використовувані в інфологичному моделюванні.
- 5.2.2 Основні класи суті.
- 5.2.3 Er- діаграми і мова інфологичеського моделювання (яім)
- 5.2.4 Види зв'язків
- 5.3. Реляційна база даних
- 5.3.1 Основні поняття, використовувані в реляційних базах даних
- 5.3.2 Правила побудови реляційних баз даних
- 5.3.3 Поняття універсального відношення
- 5.3.4 Нормалізація
- 5.3.5 Процедура проектування
- 5.4. Microsoft Access. Создание таблиц
- 5.4.1ЗапускпрограммыMicrosoft Access
- 5.4.2 Створення таблиць
- 5.4.2.1 Режим таблиць
- 5.4.2.2 Режим конструктора
- 5.4.2.3 Майстер таблиць
- 5.4.3. Види представлення таблиці
- 5.4.4. Редагування проекту таблиці
- 5.5. Визначення зв'язків між таблицями
- 5.6. Створення запитів
- 5.6.1 Створення запитів в режимі конструктора
- 5.6.2 Приклади запитів
- 5.6.3 Створення запитів в режимі sql
- 5.6.4 Інструкції sql
- 5.7. Access. Створення форм
- 5.7.1 Майстер форм.
- 5.7.2 Режим Конструктора
- 5.7.3 Заповнення Форми в режимі конструктора
- 5.7.4 Виклик однієї форми з іншої
- 5.7.5 Додавання в Примітку форми поточної дати і час
- 5.8. Access. Створення звітів
- 5.8.1 Кроки створення звіту в режимі Майстра звітів
- 5.8.2 Створення звітів в режимі Конструктора
- 6. Комп'ютерні мережі
- 6.1. Введене
- 6.2. Класифікації мереж
- 6.2.1. Класифікація за розміром охопленої території :
- 6.2.2. Класифікація за типом функціональної взаємодії
- 6.2.3. Класифікація за типом мережевої топології.
- 6.3. Огляд мережевого устаткування.
- 6.3.1 Крайове устаткування лінії зв'язку.
- 6.3.2 Проміжне мережеве устаткування.
- 6.3.3 Комутатор
- 6.3.4 Маршрутизатор
- 6.3.5 Шлюзи
- 6.3.6 Кабельні системи
- 6.3.7 Безпровідні технології
- 6.4.Вимоги, що пред'являються до мереж
- 6.5. Глобальна мережа Internet (інтернет). Www.
- Ip -телефония.
- 7. Основи алгоритмізації і програмування
- 7.1. Стадії рішення завдань на комп'ютері
- 7.2. Алгоритми.
- Команди шкільного ам
- Кін Базові структури алгоритмів.
- Лінійні алгоритми
- Розвилка
- Вкладені цикли
- Приклад вкладених циклів «поки»
- Програмний спосіб запису алгоритмів
- Рівень мови програмування
- Логічні вирази
- Література