Скачать презентацию Граматика мови C та C 1 План Скачать презентацию Граматика мови C та C 1 План

2 alfafit C.ppt

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

Граматика мови C та C++ 1 Граматика мови C та C++ 1

План лекції § Основи мови С та C++ (синтаксис, лексеми, типи змінних, структура програми, План лекції § Основи мови С та C++ (синтаксис, лексеми, типи змінних, структура програми, функції вводу-виводу); 2

Основні поняття • В тексті на будь-якій мові можна виділити чотири основних елементи – Основні поняття • В тексті на будь-якій мові можна виділити чотири основних елементи – символи, слова, словосполучення і речення • В C++ – слова = лексеми – словосполучення = вирази – речення = оператори • Лексеми утворяться із символів, вирази — з лексем і символів, оператори — із символів, виразів і лексем 3

АЛФАВІТ МОВИ Текст програми є послідовністю стрічок, що складаються з символів. • Літери латинської АЛФАВІТ МОВИ Текст програми є послідовністю стрічок, що складаються з символів. • Літери латинської абетки від a до z, A до Z; • знак _ (нижнє підкреслення), який використовують замість літери; • арабські цифри від 0 до 9; • спеціальні символи: , . ; : ? ' ! | / ~ ( ) [ ] { } < > # % ^ & - + * = 4

ЛЕКСЕМИ МОВИ Лексема • мінімальна одиниця мови, що має самостійний зміст • складається із ЛЕКСЕМИ МОВИ Лексема • мінімальна одиниця мови, що має самостійний зміст • складається із символів алфавіту, що розпізнаються компілятором Наприклад, оператор do - це лексема Зустрічаючи цю лексему, компілятор знає, який машинний код потрібно підставляти замість неї В C++ розрізняють п'ять типів лексем • ідентифікатори • службові слова • знаки операцій • літерали (константи) • розділювачі 5

ЛЕКСЕМИ МОВИ Символи із мови використовуються для побудови базових елементів – слів (лексем). СЛУЖБОВІ ЛЕКСЕМИ МОВИ Символи із мови використовуються для побудови базових елементів – слів (лексем). СЛУЖБОВІ СЛОВА asm default float new signed unsigned auto delete for operator sizeof virtual break do friend private static void case double goto protected struct volatile char else if public while class enum inline register const explicit int continue extern long switch this return typedef short union не можна використовувати як назви змінних, 6 у ролі iдентифiкаторів

ЛЕКСЕМИ МОВИ ІМЕНА (ІДЕНТИФІКАТОРИ) Ім’я – це послідовність літер і цифр, яка починається з ЛЕКСЕМИ МОВИ ІМЕНА (ІДЕНТИФІКАТОРИ) Ім’я – це послідовність літер і цифр, яка починається з літери і не містить пробілів. В іменах можна використовувати символ “_” (нижнє підкреслення). Імена (ідентифікатори) використовують для присвоєння назв таким елементам мови, як: • константи; • мітки; • власні типи даних; • змінні; • функції; • поля у записах; • модулі; • об’єкти. 7

ЛЕКСЕМИ МОВИ ІМЕНА (ІДЕНТИФІКАТОРИ) i size w 123 _foo довжина може бути будь-якою, але ЛЕКСЕМИ МОВИ ІМЕНА (ІДЕНТИФІКАТОРИ) i size w 123 _foo довжина може бути будь-якою, але багато систем розпізнають тільки 31 символ (у мові С - 8 символів) Великі та малі літери розрізняються. Sum s. Um SUM s. UM Наочність та зрозумілість file_name 8

ЛЕКСЕМИ МОВИ ІМЕНА (ІДЕНТИФІКАТОРИ) Приклади: n // чисельна змінна number // осмислене ім'я buff. ЛЕКСЕМИ МОВИ ІМЕНА (ІДЕНТИФІКАТОРИ) Приклади: n // чисельна змінна number // осмислене ім'я buff. Size // стиль об’єктно-орієнтированного програмування q 243 // складно для розуміння cout // використовується в iostream. h _my // обережно, з підкреслення часто починаються системні ідентифікатори for, 3 q, сount // невірно Ідентифікатори з подвійним символом підкреслення зарезервовані для системних цілей __sys ident і sys__ident 9

ЛЕКСЕМИ МОВИ КОНСТАНТИ • символи 'ю', '*', 'b', '�', 'n' • цілі числа 8, ЛЕКСЕМИ МОВИ КОНСТАНТИ • символи 'ю', '*', 'b', '', 'n' • цілі числа 8, 0, 19922, 023, 0 x 1 B 8 вісімкові (починаються з 0, після якого розміщуються цифри 0 -7); шістнадцяткові (починаються з 0 х або 0 Х, після яких розміщуються цифри 0 -F); • дійсні числа 5. 7, . 001, 35. , 220 е-2, 22. Е-1, . 22 Е 1 • вказівники • допускаються рядкові константи "Тут був Petro" 10

ЛЕКСЕМИ МОВИ КОНСТАНТИ (ЛІТЕРАЛИ) Послідовності символів, які починаються з символу  (обернений слеш) називаються ЛЕКСЕМИ МОВИ КОНСТАНТИ (ЛІТЕРАЛИ) Послідовності символів, які починаються з символу (обернений слеш) називаються керуючими або escape-послідовностями Приклад: "Це рядковий літерал!n" “Футбольний клуб”Карпати”” 11

ЛЕКСЕМИ МОВИ ЗНАКИ ОПЕРАЦІЙ • Арифметичні: + - * / % ++ - • ЛЕКСЕМИ МОВИ ЗНАКИ ОПЕРАЦІЙ • Арифметичні: + - * / % ++ - • операції відношення: < > <= >= == != • логічні операції: && (and) || (or) ! (not) РОЗДІЛЮВАЧІ ТА ОБМЕЖУВАЧІ , ( ) { } ; 12

Коментарі • однорядкові (Приклад: int a = 3; // ініціалізація змінної а) • багаторядкові. Коментарі • однорядкові (Приклад: int a = 3; // ініціалізація змінної а) • багаторядкові. Текст на Сі, що міститься у дужках /* та */ ігноруватиметься компілятором, тобто вважатиметься коментарем до програми. Приклад: /* функція обчислює cуму матриць */ 13

Типи даних 14 Типи даних 14

КОНСТАНТИ і ЗМІННІ Дані, які використовуються у програмі, можуть бути константами або змінними КОНСТАНТА КОНСТАНТИ і ЗМІННІ Дані, які використовуються у програмі, можуть бути константами або змінними КОНСТАНТА • Константа має стале значення, яке не змінюється у ході виконання програми • Константа може мати власне ім’я. Тип констант визначається компілятором автоматично. ЗМІННА • Змінна використовується для зберігання значення, яке може змінюватись у процесі роботи програми • Змінна має власне ім’я. Тип змінних обов'язково вказується перед тим, як їх використати. 15

Типи даних Тип даних - це діапазон значень, що можуть приймати об'єкти програми, і Типи даних Тип даних - це діапазон значень, що можуть приймати об'єкти програми, і сукупність операцій, які дозволяється виконувати над цими значеннями. Система типів Прості типі Цілі типи Дійсні типи Символьний тип Булівський тип Структуровані типи 16

Базові типи даних 1. char - символ для зберігання літери, цифри або іншого символу Базові типи даних 1. char - символ для зберігання літери, цифри або іншого символу з множини символів ASCII. 2. int - ціле від -32768 до 32767. 3. float – дійсне число з плаваючою комою одинарної точності Тип призначений для зберігання дійсних чисел. 4. double – дійсне число з плаваючою комою подвійної точності ±(1. 7 10 - 308. . . 1. 7 10+308). 17

Типи даних 18 Типи даних 18

Типи даних: СИМВОЛИ СИМВОЛЬНИЙ ТИП ДАНИХ CHAR Допустимі значення: один символ із кодової таблиці Типи даних: СИМВОЛИ СИМВОЛЬНИЙ ТИП ДАНИХ CHAR Допустимі значення: один символ із кодової таблиці (256 символів кода ASCII) або число у 8 -, 10 - чи 16 -й системі числення, яке є кодом символу у таблиці ASCII Формат збереження в оперативній памяті: 1 байт Наприклад: char s='f'; d=102; Зауважимо: 102 — це десятковий код символу 'f'. Після такого опису: char s='f'; int n=s; змінна n набуде величини 102. 19

ЛОГІЧНИЙ ТИП ДАНИХ BOOL Змінні цього типу можуть набувати лише два значення: • 0 ЛОГІЧНИЙ ТИП ДАНИХ BOOL Змінні цього типу можуть набувати лише два значення: • 0 — false — хибність; • 1 — true — істина. Вони займають 1 байт у пам'яті. Логічні операції Значення операндів (аргументів) Результат операції X Y not X X and Y X or X xor Y X 0 0 1 1 0 1 1 1 0 0 0 1 1 0 20

Оголошення змінних тип_даних ідентифікатор [ = значення ] ; int a, b, c ; Оголошення змінних тип_даних ідентифікатор [ = значення ] ; int a, b, c ; char c = 'A' ; const float pi = 3. 1415926 ; Оператор присвоєння Змінна = вираз; i = 2 + 3; c = sqrt(a*a+b*b); 21

x=x+1; можна записати коротко x+=1; або ++x; або x++; k - = 5 ; x=x+1; можна записати коротко x+=1; або ++x; або x++; k - = 5 ; // еквівалентно k=k-5 22

Структура програми 23 Структура програми 23

Основними частинами типової структури програми на Cі є такі: • директиви препроцесорної обробки; • Основними частинами типової структури програми на Cі є такі: • директиви препроцесорної обробки; • опис зовнішніх змінних (вихідних даних і результатів) та функцій; • функції програми; • головна функція — програми main(). 24

Заголовкові файли #include <iostream> #include “myclass. h” #include <cmath> Істотною особливістю мови С++ є Заголовкові файли #include #include “myclass. h” #include Істотною особливістю мови С++ є те, що програма складається з функцій, які відповідають підпрограмам (процедурам) в інших мовах програмування. Головна функція, яка має бути в кожній програмі, — це функція такого вигляду: int main() { тіло функції; } 25

Функції Функція – це синтаксично та логічно завершений самостійний фрагмент, що має ім’я та Функції Функція – це синтаксично та логічно завершений самостійний фрагмент, що має ім’я та реалізує певну задачу. Синтаксис <тип_функції> <ім’я>([список параметрів]) { < тіло функції> } Тіло – з описів операторів, кожен завершується ; Тип void - не повертає функція значення ОС, int - повертає ціле число ( 0. якщо без помилок завершено програму) 26

 • Функції введення та виведення Синтаксис функції printf(): printf( • Функції введення та виведення Синтаксис функції printf(): printf("Рядок формату"[, аргумент1[, аргумент2, [. . . ]]]); #include main (void){ int a=10, b=20, c=30; printf(" a=%d n b=%d n c=%d n", a, b, c); } #include int main(){ cout << "Hellon"; } 27

 • Функція виведення scanf( • Функція виведення scanf("Рядок формату", &аргумент1[, &аргумент2[, . . . ]]); Приклад : #include int a, b, res; main(void){ scanf("%d %d", &a, &b); res = a + b; printf("%d + %d = %dn", a, b, res); } #include int main(){ cin >> a; } 28

Приклад на С Обчислити значення функції y=f(x)=a*cos 2(kx). Де k=1. 25, а значення а Приклад на С Обчислити значення функції y=f(x)=a*cos 2(kx). Де k=1. 25, а значення а і х ввести з клавіатури. #include #include int main() { float a, x, k=1. 25, y; printf("Ввести значення a і x "); scanf("%f%f", &a, &x); y=a*pow(cos(k*x), 2); printf ("При x=%f результат y=%fn", x, y); return 0; } 29

Приклад на С++ Обчислити значення функції y=f(x)=a*cos 2(kx). Де k=1. 25, а значення а Приклад на С++ Обчислити значення функції y=f(x)=a*cos 2(kx). Де k=1. 25, а значення а і х ввести з клавіатури. #include #include using namespace std; int main() { setlocale(LC_ALL, ""); float a, x, k=1. 25, y; cout << "Ввести значення a та x "; cin >> a >> x; y=a*pow(cos(k*x), 2); cout << "При x="<

Список рекомендованої літератури Шпак З. Я. Програмування мовою С: Навчальний посібник. - Львів: Оріяна-Нова, Список рекомендованої літератури Шпак З. Я. Програмування мовою С: Навчальний посібник. - Львів: Оріяна-Нова, 2006. - 432 с. Бочков С. О. , Субботин Д. М. Язык программирования СИ для персонального компьютера/ Под общ. ред. П. И. Садчикова. - М. : Радио и связь, 1990. - 384 с. Паппас К. , Мюррей У. Программирование на С и С++. - К. : BHV "Ирина", 2000. - 320 с. Проценко В. С. , Чаленко П. Й. , Ставровський А. Б. Техніка програмування мовою Сі. - К. : Либідь, 1993. - 223 с. 31