Скачать презентацию Лекція Тема Мова програмування С с Гроза П Скачать презентацию Лекція Тема Мова програмування С с Гроза П

Лекция 2 - Мова програмування С shov.ppt

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

Лекція Тема. Мова програмування С (с) Гроза П. М. Лекція Тема. Мова програмування С (с) Гроза П. М.

Навчальні питання 1. Загальна характеристика мови С 2. Підготовка до виконання і виконання програм Навчальні питання 1. Загальна характеристика мови С 2. Підготовка до виконання і виконання програм 3. Елементи мови С 4. Базові типи даних (с) Гроза П. М. 2

Література 1. 2. Керниган Б. , Ритчи Д. Язык программирования Си ДПер. с англ. Література 1. 2. Керниган Б. , Ритчи Д. Язык программирования Си ДПер. с англ. , 3 -е изд. , испр. — СПб. : "Невский Диалект", 2001. - 352 с: ил. Язык програмирования С++. Лекция и упражнения. Учебник: Перевод с анг. /Стивен Прата – СПб. : ООО «Диа. Софт. ЮП» , 2005. -1104 с. (с) Гроза П. М. 3

1. Загальна характеристика мови С (с) Гроза П. М. 1. Загальна характеристика мови С (с) Гроза П. М.

Мова C — універсальна, процедурна, імперативна мова програмування загального призначення Розроблена у 1972 році Мова C — універсальна, процедурна, імперативна мова програмування загального призначення Розроблена у 1972 році Денісом Рітчі у Bell Telephone Laboratories для написання ОС UNIX В 1974 р. мовою С написано ядро ОС UNIX для ЕОМ PDP-1 (с) Гроза П. М. 5

Характеристика мови 1. Найпопулярніша мова програмування за ü кількістю написаного на ній ПЗ ü Характеристика мови 1. Найпопулярніша мова програмування за ü кількістю написаного на ній ПЗ ü кількістю програмістів , що працюють на ній 2. Компілятори С для багатьох ОС та апаратних архітектурах 3. Вплив на інші мови програмування, особливо на C++, Java та C# (с) Гроза П. М. 6

Використання для програмування мікропроцесорів ядра ОС утиліт та драйверів для ОС компіляторів для мов Використання для програмування мікропроцесорів ядра ОС утиліт та драйверів для ОС компіляторів для мов програмування бібліотек для мов програмування прикладних програм (с) Гроза П. М. 7

Головна мета мови Мова низькорівневих можливостей прямолінійна реалізація компіляції низькорівневий доступ до оперативної пам'яті Головна мета мови Мова низькорівневих можливостей прямолінійна реалізація компіляції низькорівневий доступ до оперативної пам'яті елементу мови - кілька інструкцій машинної мови не вимагає динамічної підтримки Мова машинно-незалежного програмування стандартизована компілюється на різних апаратних платформах та ОС доступна для великої кількості платформ (с) Гроза П. М. 8

Основні переваги перед асемблером висока швидкість розробки програм універсальність краща документуємість і читаність алгоритму Основні переваги перед асемблером висока швидкість розробки програм універсальність краща документуємість і читаність алгоритму наявність бібліотек функцій підтримка обчислень із плаваючою точкою Додатково можливість низькорівневого програмування дозволяє оперувати апаратними засобами властивості мови високого рівня - дозволяють створювати легко читаємий та модифікуємий програмний код можливість використання асемблерних вставок (с) Гроза П. М. 9

Мінімалізм С “С робить так, щоб вам було легко вистрілити собі в ногу” Бярн Мінімалізм С “С робить так, щоб вам було легко вистрілити собі в ногу” Бярн Страуструп (с) Гроза П. М. Не вимагає виконання перевірок компілятором умов, які не відбудуться у правильно написаній програмі Забезпечує прямий доступ до адреси любого об'єкту Вирази коду можуть бути переведені у прості машинні операції 10

Специфічні властивості С змінні приховані у вкладених блоках слабка типізація низькорівневий доступ до оперативної Специфічні властивості С змінні приховані у вкладених блоках слабка типізація низькорівневий доступ до оперативної пам'яті вказівники на функції і дані підтримують динамічний поліморфізм розглядається масив індексів як вторинне поняття стандартизований препроцесор C для макроозначення функціональність мови і делегування математичних функцій бібліотекам відносно невелика кількість зарезервованих слів код ефективно працює на обмеженому апаратному забезпеченні, надаючи високу функціональність (с) Гроза П. М. 11

Відсутні можливості здійснення не скалярних операцій автоматичного керування пам'яттю перевірки меж масиву використання вкладених Відсутні можливості здійснення не скалярних операцій автоматичного керування пам'яттю перевірки меж масиву використання вкладених функцій обробки виключних ситуацій перевантаження функцій або операторів підтримки об'єктно-орієнтованого програмування вбудованої підтримки багатозадачності та роботи з мережами використання стандартних бібліотек для роботи з графікою (с) Гроза П. М. 12

Бібліотеки - набір функцій, котрі містяться в одному файлі Бібліотека включає заголовочний файл (*. Бібліотеки - набір функцій, котрі містяться в одному файлі Бібліотека включає заголовочний файл (*. h) у якому містить ü прототипи функцій у бібліотеці ü декларації спеціальних типів даних і макросимволів (с) Гроза П. М. 13

Оголошення бібліотеки Рис. 2. 1 Загальна бібліотека С - stdlib. h (с) Гроза П. Оголошення бібліотеки Рис. 2. 1 Загальна бібліотека С - stdlib. h (с) Гроза П. М. 14

Пов'язані мови C++ і Objective-C – для забезпечення об'єктноорієнтованих можливостей С++ - розроблена на Пов'язані мови C++ і Objective-C – для забезпечення об'єктноорієнтованих можливостей С++ - розроблена на основі С, і отримана додавання Б’ярном Страуструпом до неї об'єктноорієнтованої функціональності із C-подібним синтаксисом (с) Гроза П. М. 15

Питання 16 Питання 16

2. Підготовка до виконання і виконання програм (с) Гроза П. М. 2. Підготовка до виконання і виконання програм (с) Гроза П. М.

Створення С програми в середовищі UNIX та Windows Рис. 2. 2 а (с) Гроза Створення С програми в середовищі UNIX та Windows Рис. 2. 2 а (с) Гроза П. М. Рис. 2. 2 б 18

Етапи підготовки програми на С введення тексту програми у файл “name. с” компіляція програми. Етапи підготовки програми на С введення тексту програми у файл “name. с” компіляція програми. Створюється об'єктний модуль – “name. obj”, або повідомлення про помилки побудова завантажувального модуля включає ü об'єктні модулі ü модулі з зовнішніх бібліотек (с) Гроза П. М. – “name. eхе”, 19

Інтегровані середовища розробки С-програм Devcpp - інтегроване середовище (IDE) на С и C++ для Інтегровані середовища розробки С-програм Devcpp - інтегроване середовище (IDE) на С и C++ для ОС Windows C++ Builder - програмний продукт, інструмент швидкої розробки додатків (RAD), IDE на C++, для ОС Windows Borland C++ - IDE на С та C++ для DOS, Windows Visual C++ - IDE на C++ , фірма Microsoft. Безкоштовний додаток Visual C++ Express Edition KDevelop - вільне середовище для ОС UNIXподібних, розробляється з 1998 році (с) Гроза П. М. 20

Загальна структура С програми Мінімальна програма на мові С main( ) { return 0; Загальна структура С програми Мінімальна програма на мові С main( ) { return 0; } Рис. 2. 3 (с) Гроза П. М. 21

Питання 22 Питання 22

3. Елементи мови С (с) Гроза П. М. 3. Елементи мови С (с) Гроза П. М.

Структурні елементи мови С 1. Алфавіт 2. Імена об'єктів програми (ідентифікатори) 3. Ключові слова Структурні елементи мови С 1. Алфавіт 2. Імена об'єктів програми (ідентифікатори) 3. Ключові слова 4. Коментарі 5. Константи 6. Операції і вирази 7. Оператори 8. Опис (с) Гроза П. М. 24

1. Алфавіт - Букви і цифри великі букви латинського алфавіту ABCDEFGHIJKLMNOPQRSTUVWXYZ малі букви латинського 1. Алфавіт - Букви і цифри великі букви латинського алфавіту ABCDEFGHIJKLMNOPQRSTUVWXYZ малі букви латинського алфавіту abcdefghijklmnopqrstuvwxyz десяткові цифри 0123456789 Спеціальні символи пробіл ! " # % & ' ( ) * + , -. / : ; < = > ? [ ] ^ _ { | } ~ (с) Гроза П. М. 25

2. Імена об'єктів програми - послідовності букв і цифр, які починаються з букви, причому 2. Імена об'єктів програми - послідовності букв і цифр, які починаються з букви, причому символ підкреслення Примітка. Великі і малі букви вважаються різними Рекомендується ü ü (с) Гроза П. М. великі букви - імена констант малі букви - для змінних і функцій 26

3. Ключові слова - визначені ідентифікатори спеціального значення Примітка. Імена об'єктів програми не повинні 3. Ключові слова - визначені ідентифікатори спеціального значення Примітка. Імена об'єктів програми не повинні збігатися з ключовими словами типи даних char float short typedef void double int signed union enum long struct unsigned класи пам'яті auto extern register static оператори break default for return while case do goto sizeof continue else if switch спеціальні const far huge pascal cdecl fortran near volatile (с) Гроза П. М. 27

4. Коментар - послідовність символів, які ігноруються компілятором Форма запису (с) Гроза П. М. 4. Коментар - послідовність символів, які ігноруються компілятором Форма запису (с) Гроза П. М. /* Characters */ 28

5. Константи числа (цілі і дійсні) символи рядки символів Примітка Значення константи не змінюється 5. Константи числа (цілі і дійсні) символи рядки символів Примітка Значення константи не змінюється в процесі роботи програми Спеціальні директиви мови для створення символічних імен #define PI 3, 1415 (с) Гроза П. М. 29

6. Операції і вирази Операція – дії програми над визначеними об'єктами - арифметичні операції 6. Операції і вирази Операція – дії програми над визначеними об'єктами - арифметичні операції + - * / % ++ -- операції відношення == != < > <= >= - логічні операції ! || && - побітові операції ~ << >> & | ^ - операції присвоювання = += -= *= /= %= <<= >>= &= ^= |= - операції над масивами [ ] - операції над структурами й об'єднаннями -> - інші операції ? : , sizeof (type specifier) ( ) Операнди - об'єкти програми, що беруть участь в операції Вираз - комбінація одного або кількох оперантів і символів операцій Оператор - вирази, що закінчується “; ” (с) Гроза П. М. 30

7. Оператори оператори циклу умовний оператор і перемикач оператори передачі керування for ( ) 7. Оператори оператори циклу умовний оператор і перемикач оператори передачі керування for ( ) , case: goto (с) Гроза П. М. break continue while, do - while if ( ) – else, switch ( ) – return 31

8. Опис - це рядок програми, що визначає ім'я і характеристику функції, змінної, типу 8. Опис - це рядок програми, що визначає ім'я і характеристику функції, змінної, типу і символічних констант int funchion(float *, int); (с) Гроза П. М. 32

Питання 33 Питання 33

4. Базові типи даних (с) Гроза П. М. 4. Базові типи даних (с) Гроза П. М.

Базові типи даних Таблиця 1 Тип Семантика и довжина Діапазон char Символ зі знаком Базові типи даних Таблиця 1 Тип Семантика и довжина Діапазон char Символ зі знаком (1) от -128 до 127 int Ціле (2) от -32768 до 32767 short Коротке ціле (2) от -32768 до 32767 long Довге ціле (4) от -2147483648 до 2147483647 unsigned char Символьне без знака (1) от 0 до 255 unsigned Ціле без знака (2) от 0 до 65535 unsigned short Коротке ціле без знака (2) от 0 до 65535 unsigned long Довге ціле без знака (4) от 0 до 4 294 967 297 float Число з плаваючою комою (4) ±(3. 4 -10~38. . . 3. 4 -1038) double Число з плаваючою комою з подвійною точністю long double (с) Гроза П. М. ±(1. 7 -10~308. . . 1. 7 -10308) (8) Довге число з плаваючою комою з подвійною точністю (10) ±(3. 4 -10~4932. . . 3. 4 -104932) 35

Перетворення типу Перед виконанням операції молодший тип “підтягується” до старшого Приклад double ft, sd; Перетворення типу Перед виконанням операції молодший тип “підтягується” до старшого Приклад double ft, sd; unsigned char ch; unsigned long in; int i; sd = ft*(i+ch/in); Примусове перетворення типу 1) (новий тип) вираз; 2) новий тип (вираз); Приклад char letter = ‘а’; int nasc = int (letter); long iasc = (long) letter; (с) Гроза П. М. 36

Питання 37 Питання 37