- •Конспект студента. Коротка хронологія найважливіших етапів розвитку мови :
- •Алфавіт мови.
- •Ідентифікатори
- •Ключові слова
- •Управляючі послідовності
- •Концепція типу даних
- •Основні типи даних
- •Діапазони значень простих типів даних для ibm pc
- •Символьний тип (char)
- •Розширений символьний тип (wchar_t)
- •Логічний тип (bool)
- •Змінні. Клас пам'яті.
- •Типи з плаваючою крапкою (float, double і long double)
- •Перетворення типів.
- •Структура програми
- •Проста програма
- •Змінні і вирази
- •Область дії ідентифікатора
- •Вирази.
- •Порядок обчислення виразів
- •Бітові операції.
- •Введення і виведення даних.
- •Стежте за помилками переповнювання
- •Стежте за помилками неспівпадання типів
- •Читання символьних даних
- •Читання слів з клавіатури
- •Форматування введення-виведення засобами мови с Функція printf()
- •Функція scanf()
- •If (вираз) оператор 1; [else оператор 2;]
Бітові операції.
Наприклад 1 | 2 в результаті дають 3 оскільки в двійковому вигляді 1 це 01, 2 - це 10, відповідно операція АБО дає 11 або 3 в десятковій системі (ми опустили нулі зліва).
Аналогічно виконуються порозрядні операції І, ВИКЛЮЧАЮЧЕ АБО і заперечення. Приклади:
3 | 1 результат 3
4 & 7 результат 4
4 ^ 7 результат 3
0 & 0xF результат 0
~0x00F0 результат 0xFF0F
Наприклад, двійкове представлення короткого цілого числа 3 -0000000000000011. Результатом операції 3 « 2 (зрушення вліво) буде двійкове число 0000000000001100 або в десятковому записі 12. Аналогічно, зрушивши число 9 (у двійковому вигляді 0000000000001001) управо на 2 розряди (записується 9 » 2) одержимо 0000000000000010, тобто 2.
При зрушенні вліво, число доповнюється нулями справа. При зрушенні управо біт, яким доповнюється число, залежить від того, знакове воно або беззнакове. Для беззнакових чисел при зрушенні управо вони завжди доповнюються нульовим бітом. Якщо ж число знакове, то значення найлівішого біта числа використовується для доповнення. Це пояснюється тим, що найлівіший біт якраз і є знаком - 0 означає плюс і 1 означає мінус.
Таким чином, якщо
short x = 0xFF00;
unsigned short у = 0xFF00;
то результатом x » 2 буде 0xFFC0 (двійкове уявлення 1111111111000000), а результатом у » 2 буде 0х3РС0 (двійкове уявлення 0011111111000000)
Для типу bool
// істина, якщо обидві змінні condl і cond2 істинні
condl && cond2
// істинно, якщо хоч би одна із змінних істина
condl || cond2
// результат протилежний значенню condl
! condl
Введення і виведення даних.
Декілька попередніх зауважень про введення/виведення. У мові C++ немає вбудованих засобів введення/виведення — він здійснюється за допомогою функцій, типів і об'єктів, що містяться в стандартних бібліотеках. Використовується два способи: функції, успадковані з мови С, і об'єкти C++.
Основні функції введення/виведення в стилі С
int scanf (const char* format ... ) // введення
int printf(const char* format ... ) // виведення
Вони виконують форматоване введення і виведення довільної кількості величин відповідно до рядка формату format. Рядок формату містить символи, які при виведенні копіюються в потік (на екран) або запрошуються з потоку (з клавіатури) при введенні, і специфікації перетворення, що починаються із знаку %, які при введенні і виведенні замінюються конкретними величинами.
Приклад програми, що використовує функції введення/виведення в стилі С:
#include <stdio.h>
int main()
{
int i;
printf("Введіть ціле число\n");
scanf("%d" &i);
printf("Ви ввели число %d, спасибі!", i);
return 0;
}
Перший рядок цієї програми — директива препроцесора, по якій в текст програми вставляється заголовний файл <stdio.h>, що містить опис використаних в програмі функцій введення/виведення (в даному випадку кутові дужки є елементом мови). Всі директиви препроцесора починаються із знаку #.
Третій рядок — опис змінної цілого типу з ім'ям i.
Функція printf в четвертому рядку виводить запрошення «Введіть ціле число» і переходить на новий рядок відповідно до управляючій послідовності \n. Функція scanf заносить введене з клавіатури ціле число в змінну i (знак & означає операцію отримання адреси), а наступний оператор виводить на екран вказаний в ньому рядок, замінивши специфікацію перетворення на значення цього числа.
А ось як виглядає та ж програма з використанням бібліотеки класів C++:
#include <iostream.h>
int main()
{
int i ;
cout « "Введіть ціле число\n";
cin » i;
cout « "Ви ввели число " « i « ", спасибі!";
return 0;
}
