Скачать презентацию Основи мови С Лекція 2 1 План Скачать презентацию Основи мови С Лекція 2 1 План

l2(p).ppt

  • Количество слайдов: 31

Основи мови С++. Лекція 2. 1 Основи мови С++. Лекція 2. 1

План 1. 2. 3. 4. 5. Основні елементи мови Структура програми Типи даних Вирази План 1. 2. 3. 4. 5. Основні елементи мови Структура програми Типи даних Вирази Операції 2

Основні елементи мови Алфавіт мови l l СABCDEFGHIJKLMNOPQRTU VWXYZ abcdefghijklmnopqrtuvwxyz 0123456789 Основні елементи мови Алфавіт мови l l СABCDEFGHIJKLMNOPQRTU VWXYZ abcdefghijklmnopqrtuvwxyz 0123456789 " ' () [] {} <>. , ; : ? ~ * + - = / | # % $ & ^ @ символ підкреслення_ 3

Лексеми l Існують наступні види лексем: l l l імена (ідентифікатори); ключові слова; знаки Лексеми l Існують наступні види лексем: l l l імена (ідентифікатори); ключові слова; знаки операцій; літерали (константи); роздільники. 4

Ключові слова 5 Ключові слова 5

Знаки операцій l l Знак операції - це один кілька символів, що визначають дію Знаки операцій l l Знак операції - це один кілька символів, що визначають дію над операндами. Усередині знаку операції пропуски не допускаються. Символи, складові знак операції, можуть бути як спеціальними, наприклад &&, | і <, так і буквеними, такими як new. Операції поділяються на унарні, бінарні і тернарну по кількості операндів, що беруть участь в них. Більшість стандартних операцій можуть бути перевизначені (перевантажені). 6

Літерали l l арифметичні (різних типів), логічні (true і false ) символьні (включаючи Escape– Літерали l l арифметичні (різних типів), логічні (true і false ) символьні (включаючи Escape– послідовності строкові. 7

Escape–послідовності l l l а b f n r t v �  ” Escape–послідовності l l l а b f n r t v ” \ Попередження (дзвінок) Повернення на одну позицію Перехід на нову сторінку Перехід на новий рядок Повернення каретки Горизонтальна табуляція Вертикальна табуляція Нуль 'Одинарна лапка Подвійна лапка Зворотній слеш 8

Директиви препроцесора і коментарі #include Директиви препроцесора і коментарі #include "myfile" l багаторядковий коментар /* моя перша програма далі оператори */ l однорядковий коментар // моя перша програма l 9

Змінні та константи Оголошення (опис) даних Оголошення констант const < назва 1> = <значення Змінні та константи Оголошення (опис) даних Оголошення констант const < назва 1> = <значення 1 >; const <тип><назва 2>=<значення 2>; l Оголошення змінних < тип змінних 1> <список змінних 1 >; … <тип змінних N > <список змінних. N >; Ініціалізація даних <тип змінних > <назва змінної 1 > = <значення 1> , …, <назва змінної N> = <значення N >, <список інших змінних >; l 10

Загальний вигляд програми С++ /*коментарі*/ #include<назва бібліотечного файлу 1 > … #include<назва бібліотечного файлу Загальний вигляд програми С++ /*коментарі*/ #include<назва бібліотечного файлу 1 > … #include<назва бібліотечного файлу N > < інші директиви препроцесору> … <оголошення глобальних змінних>; < оголошення глобальних констант>; < оголошення та створення функцій користувача>; … < тип результату функції> main ( опис формальних параметрів) { <оголошення локальних змінних >; < оголошення локальних констант >; < команди>; } 11

Типи даних l Тип даних однозначно визначає: l l множину їх можливих значень (пов'язану Типи даних l Тип даних однозначно визначає: l l множину їх можливих значень (пов'язану з внутрішнім представленням даних в пам'яті комп'ютера); допустимі дії над даними (операції і функції). 12

l l Типи мови С++ поділятються на елементарні (базові, основні) і складені. Елементарні типи l l Типи мови С++ поділятються на елементарні (базові, основні) і складені. Елементарні типи даних є неподільними і дозволяють описувати цілі, дійсні, символьні і логічні величини. На основі цих типів програміст може конструювати складені типи. Складений тип - це тип, визначений в термінах іншого типу. До складених типів відносяться масиви, структури, об'єднання, переліки, посилання, покажчики і класи. Внутрішнє представлення даних всіх типів, їх розміри і діапазони величин визначаються конкретною платформою. 13

Базові типи даних Елементарні l bool (логічний); l char (символьний); l int (цілий); l Базові типи даних Елементарні l bool (логічний); l char (символьний); l int (цілий); l float (дійсний); l double (дійсний з подвійною точністю). Існує чотири ключові слова, що уточнюють внутрішнє представлення і діапазон значень стандартних типів (Кваліфікатори) l l short (короткий); long (довгий); signed (знаковий); unsigned (беззнаковий). 14

Логічний тип l Величини логічного типу можуть приймати тільки значення true і false, що Логічний тип l Величини логічного типу можуть приймати тільки значення true і false, що є ключовими словами. Величини логічного типу можуть брати участь в арифметичних операціях. При перетворенні до цілого типу true має значення 1, false - нуль. Розмір логічного типу в стандарті не визначений і залежить від реалізації 15

Символьні типи У стандарті мови визначено три різні символьні типи: char, signed char і Символьні типи У стандарті мови визначено три різні символьні типи: char, signed char і unsigned char. Внутрішнім представленням символу є його код - ціле число. Під величину будь-якого символьного типу відводиться одна одиниця пам'яті - байт: sizeof(char)= sizeof(signed char)= sizeof(unsigned char)= 1 l Розмір байта залежить від реалізації, проте цей розмір повинен бути достатній, щоб вміщати код будь-якого символу з набору символів реалізації для даного комп'ютера. Наявність знаку у типу char теж залежить від реалізації: він може співпадати або з signed char, або з unsigned char. l Величини символьних типів застосовуються також для зберігання цілих чисел, що не перевищують межі вказаних діапазонів, і можуть брати участь в арифметичних операціях, тому їх також відносять до цілих типів. l 16

Цілі типи l l У мові С++ визначено 8 типів для зберігання цілочисельних величин: Цілі типи l l У мові С++ визначено 8 типів для зберігання цілочисельних величин: чотири знакових (signed char, short int, long int) і чотири беззнакових (unsigned char, unsigned short int, unsigned long int). За замовчуванням всі цілочисельні типи вважаються знаковими, тому специфікатор signed можна не вказувати. Ключове слово unsigned дозволяє представляти неневід‘ємні цілі числа. 17

Цілі типи Тип Назва типу Обсяг байтів Діапазон допустимих значень Ціле int 4 -2 Цілі типи Тип Назва типу Обсяг байтів Діапазон допустимих значень Ціле int 4 -2 147 483 647. . . 2 147 483 647 Коротке ціле short 2 -32 767. . . 32 767 Довге ціле long 4 -2 147 483 647. . . 2 147 483 647 Дуже довге ціле long 8 -9 223 372 036 854 775 807… 9 223 372 036 854 775 807 Символ без знаку unsigned char 1 0. . . 255 Коротке ціле без знаку unsigned short 2 0. . . 65535 Ціле без знаку unsigned int 4 0. . . 4 294 967 295 Довге ціле без знаку unsigned long 4 0. . . 4 294 967 295 Дуже довге ціле unsigned long без знаку long 8 0. . . 18 446 744 073 709 551 615 18

Дійсні типи Тип Назва типу Обсяг байтів Діапазон допустимих значень Число з рухомою крапкою Дійсні типи Тип Назва типу Обсяг байтів Діапазон допустимих значень Число з рухомою крапкою одинарної точності float 4 1. 2 Е-38. . . 3. 4 Е 38 Число з рухомою крапкою подвійної точності double 8 2. 2 Е-308. . . 1. 8 Е 308 19

Вирази l Прості вирази l l l Вираз Pi 20 rate -1. 22 Опис Вирази l Прості вирази l l l Вираз Pi 20 rate -1. 22 Опис Символьна константа Літеральна константа Змінна Літеральна константа Складні вирази l 1. 22 / 8 + 5 * rate + rate * rate / cost 20

Вирази із знаками операцій l Унарний (одномісний) вираз <знак-унарної-операциї> <операнд> l Бінарний (двомісний) <операнд Вирази із знаками операцій l Унарний (одномісний) вираз <знак-унарної-операциї> <операнд> l Бінарний (двомісний) <операнд 1><знак-бінарної-операції><операнд 2> l Тернарний (трьомістний) <операнд 1> ? <операнд 2> : <операнд 3> 21

Унарні (одномісні) операції l l l l l - арифметичне заперечення (заперечення і доповнення); Унарні (одномісні) операції l l l l l - арифметичне заперечення (заперечення і доповнення); ~ побітове логічне заперечення (доповнення); ! логічне заперечення; * розадресація (непряма адресація); & обчислення адреси; + унарний плюс; ++ збільшення (інкремент); -- зменшення (декремент); sizeof розмір. 22

Бінарні (двомісні) операції Знак операції Операція * Множення / Ділення % Додавання - Мультиплікатив Бінарні (двомісні) операції Знак операції Операція * Множення / Ділення % Додавання - Мультиплікатив ні Остача від ділення + Група операцій Віднімання Адитивні 23

Бінарні (двомісні) операції Знак операції Операція << Зсув ліворуч >> Зсув вправоруч < Менше Бінарні (двомісні) операції Знак операції Операція << Зсув ліворуч >> Зсув вправоруч < Менше <= Менше або дорівнює >= Більше або дорівнює == Дорівнює != Група операцій Операції зсуву Не дорівнює Операції відношення 24

Бінарні (двомісні) операції Знак операції Операція Група операцій & Поразрядне І (И) Поразрядні операції Бінарні (двомісні) операції Знак операції Операція Група операцій & Поразрядне І (И) Поразрядні операції | Поразрядне АБО (ИЛИ) ^ Поразрядне виключне АБО (ИЛИ) && Логічне І(И) || Логічне АБО (ИЛИ) Логічні операції 25

Бінарні (двомісні) операції Знак операції Операція Група операцій , Послідовне обчислення Послідовного обчислення = Бінарні (двомісні) операції Знак операції Операція Група операцій , Послідовне обчислення Послідовного обчислення = Присвоєння Операції присвоєння 26

Бінарні (двомісні) операції Знак операції Операція *= Множення з присвоєнням /= Група операцій Ділення Бінарні (двомісні) операції Знак операції Операція *= Множення з присвоєнням /= Група операцій Ділення з присвоєнням %= Остача від ділення з присвоєнням -= Віднімання з присвоєнням += Операції присвоєння Додавання з присвоєнням 27

Бінарні (двомісні) операції Знак операції Операція Група операцій <<= Зсув вліво з присвоєнням >>= Бінарні (двомісні) операції Знак операції Операція Група операцій <<= Зсув вліво з присвоєнням >>= Зсув вправо присвоєнням Операції присвоєння &= Поразрядне І(И) з присвоєнням |= Поразрядне АБО (ИЛИ) з присвоєнням ^= Поразрядне виключне АБО(ИЛИ) з присвоєнням 28

Приклади арифметичних унарних операцій Операція Знак Ефект Приклади Інкремент ++ Збільшує операнд на одиницю Приклади арифметичних унарних операцій Операція Знак Ефект Приклади Інкремент ++ Збільшує операнд на одиницю ++х; х++ Декремент -- Зменшує операнд на одиницю --х; х-- Приклади: x=10; y=x++; Результат виконання х дорівнює 11 у дорівнює 10 х=10; у=++х; Результат виконання х дорівнює 10 у дорівнює 11 29

Приклади бінарних арифметичних операцій Операція Знак Ефект Приклади Додавання + Додає до одного операнда Приклади бінарних арифметичних операцій Операція Знак Ефект Приклади Додавання + Додає до одного операнда інший х+у Віднімання - Віднімає один операнд від іншого х–у Множення * Множить один операнд на інший х*у Ділення / Ділить один операнд на інший х/у Остача від ділення (ділення по модулю) % Створює остачу від ділення першого оператора на інший х%у Приклад : у = 12%5 Результат 2 30

Приклад тернарної (трьохмісної) операції l формат операції <операнд_1> ? <операнд_2> : < операнд_3> Якщо Приклад тернарної (трьохмісної) операції l формат операції <операнд_1> ? <операнд_2> : < операнд_3> Якщо операнд_1 дорівнює TRUE, то весь вираз дорівнює операнд_2, інакше весь вираз дорівнює операнд_3. Приклад 1: x = y ? 1 : 100 Приклад 2: l max = (d<=b) ? b : d; l Змінній max присвоюється максимальне значенння змінних d та b. 31