Слайд 1Системне програмування
Лекція № 2
Лектор Артамонов Є.Б.
Слайд 2Рейтинг мов програмування
(http://www.tiobe.com/)
Слайд 3Поняття типу містить у собі наступну інформацію про елемент даних:
припустимий набір значень, який об'єкт цього типу може приймати в
процесі роботи програми (сукупність усіх зазначених значень ми будемо називати областю визначення типу);
склад операцій, що дозволено виконувати над об'єктами даного типу;
спосіб представлення елемента даних в пам'яті машини;
правила виконання операції з припустимого для цього типу набору операцій.
Слайд 4Рейтинг dou.ua
(http://dou.ua/lenta/articles/language-rating-jan-2015/)
Слайд 5Групи основних типів:
цілі числа різної довжини зі знаком і без;
дійсні
числа різної довжини;
символи, представлені у форматі стандарту ASCII;
рядки.
Слайд 6Типи даних в С-подібних мовах
опис в С-подібних - це рядки
програми, що визначають імена і характеристики елементів даних, які беруть
участь у роботі алгоритму.
інструкція опису даних має наступний формат:
type-specifier identifier <, identifier...>;
Слайд 7 type-specifier identifier ;
де sc-specifier є опис класу
пам'яті
type-specifier - опис типу;
identifier - ім'я (ідентифікатор) змінної.
Типи даних в С-подібних мовах
Слайд 8Для більшості компіляторів мови С припустимими є використання типів, які
показані в наступній таблиці. В таблиці в круглих дужках
зазначена довжина елемента даних кожного типу в байтах (1 байт = 8 біт) і область припустимих значень
Типи даних в С-подібних мовах
Слайд 9Розглянемо деякі приклади опису даних у програмі.
int
a, b, c; /* Змінні a,
b, c оголошені */ /* мають тип int */
float alpha, beta; /* Змінні alpha і beta оголошені */
/* мають тип float */
Слайд 10Оскільки внутрішні машинні представлення даних тих самих типів для різних
ЕОМ можуть бути різними, то виникають труднощі при необхідності забезпечити
належну мобільність програмного забезпечення.
Бажано використовувати, де це необхідно, операцію визначення пам'яті.
Наприклад: sizeof (name)
де name є або ідентифікатор змінної, або ім'я типу даних.
a = sizeof(int);
змінна a приймає значення, рівне кількості байт пам'яті, необхідних для представлення будь-якої величини типу int для конкретної ЕОМ.
Слайд 11Константи в мові С
Константами в мові Сі можуть бути
числа (цілі і дійсні), символи і рядки символів, які дозволено
використовувати в програмі в змісті їхніх значень. Нижче розглянуті припустимі формати запису констант чотирьох зазначених видів.
Цілі константи
Константи з плаваючою крапкою
Символьні константи
Слайд 12Автоматичне перетворювання типів і операція приведення
Якщо до складу арифметичного
або умовного виразу входять операнди різних типів, то компілятор автоматично
виконує їхнє приведення до загального типу. Незважаючи на те, що в ряді випадків характер перетворення залежить від виду конкретної операції і типу операндів, існує загальний набір стандартних правил перетворення
Слайд 13Правила перетворення типу
якщо операція виконується над даними двох різних
типів, обидві величини приводяться до "вищого" типу;
в операторі присвоювання кінцевий
результат обчислення виразу в правій частині приводиться до типу змінної, якій повинне бути привласнене значення.
Слайд 14Правила перетворення типу
Послідовність імен типів, упорядкованих від "вищого" типу
до "нижчого", виглядає так: double, float, long, int, short
і char.
Застосування ключового слова unsigned підвищує ранг відповідного типу даних зі знаком.
Слайд 15Операція приведення типів
У мові Сі мається можливість точно вказати
тип даних, до якого необхідно привести деяку величину. Ця можливість
реалізується в операції приведення типів у такий спосіб:
перед даною величиною в круглих дужках записується ім'я необхідного типу.
Слайд 16Операція приведення типів
наприклад, змінна res має тип int. Тоді
значення арифметичного вираження
res = 2.7 + 1.5
відповідно до загальних
правил перетворення типів, дорівнює 4.
При застосуванні явної операції приведення типу до обох операндів у правій частині
res = (int)2.7 + (int)1.5
одержимо результат, рівний 3.
Слайд 17Особливості роботи з масивами
Приклад C++ (це змінна, яка зберігає безліч
значень під одним ім'ям, але кожному значенню привласнений свій індекс)
int
my_array[6];
Приклад C# (упорядкована сукупність елементів одного типу)
int[] a, b, c;
double[] x = {5.5, 6.6, 7.7};
int[] d = new int[5];
Слайд 18Домашнє завдання 2.1
Провести аналіз роботи з масивами в наступних мовах
програмування:
- C/C++
- Java
- C#
- PHP
- JavaScript
- Objective-C
- Python
- Ruby
Слайд 19Домашнє завдання 2.2
Типи данних
- описати структуру типів даних для
мов програмування зі списку: C/C++, Java, C#, PHP, JavaScript, Objective-C,
Python, Ruby
- звести данні до порівняльної таблиці
Слайд 20Використані матеріали
http://interwebdev.com.ua/view_articles.php?id=38
http://dou.ua/lenta/articles/language-rating-jan-2015/
http://easy-code.ru/lesson/arrays-in-cpp
http://skillcoding.com/Default.aspx?id=185
Слайд 21Дякую за увагу!!!
Зустрінемось на лекції через 2 тижні
Знайти лектора можна
в аудиторії 5-214
або
за e-mail-ом: eart@ukr.net
або
ICQ: 271578579
або
http://eart.ho.ua/CD_SP