
- •Ф.Б. Рогальський, і.А. Лур'є, н.В. Корніловська
- •Ф.Б. Рогальський, і.А. Лур'є, н.В. Корніловська
- •Передмова
- •Лабораторна робота №1 Інтегроване середовище програмування системи
- •Теоретична частина
- •Компоненти інтегрованого середовища
- •Головне меню
- •Системне меню
- •Clear (Стерти) – видаляє обраний фрагмент тексту, але не заносить його в текстовий буфер.
- •Replace (Замінити) – відображає блок діалогу, що дозволяє вводити шуканий текст і текст, на який його варто замінити.
- •Size/Move (Змінити розмір/Перемістити) – використовується для того, щоб змінити розмір чи місце розташування активного вікна.
- •Створення першої програми
- •Контрольні питання
- •Мова програмування Сі Використовувані символи
- •Константи
- •Приклади цілих констант
- •Ідентифікатор
- •Використання коментарів у тексті програми
- •Типи даних та їх оголошення
- •Категорії типів даних Ключові слова для визначення основних типів даних
- •Стандартні функції
- •Специфікатори формату
- •Команди формату
- •Стандартні заголовні файли
- •Пріоритети операцій і порядок обчислень
- •Контрольні питання
- •Варіанти завдань роботи
- •Лабораторна робота № 3 Оператори управління
- •Теоретична частина
- •Умовний оператор if
- •If (вираз) оператор-1; [else оператор-2;]
- •Оператор switch
- •Оператор break
- •Оператор for
- •Оператор goto
- •Зразок виконання завдання
- •Контрольні питання
- •Оператор switch.
- •Оператор break.
- •Варіанти завдань роботи
- •Лабораторна робота № 4
- •Оператор do while
- •Оператор continue
- •Оператор return
- •Контрольні питання
- •Варіанти завдань роботи
- •Лабораторна робота № 5 Функції і прототипи функцій
- •Теоретична частина
- •Прототипи функцій
- •Метод половинного ділення
- •Зразок виконання завдання
- •Контрольні питання
- •Варіанти завдань роботи
- •Лабораторна робота № 6 Алгоритми обробки одновимірних масивів
- •Теоретична частина
- •Контрольні запитання
- •Варіанти завдань роботи
- •Лабораторна робота №7 Сортування даних
- •Теоретична частина
- •Обмінне сортування
- •Інші методи сортування
- •Контрольні питання
- •Варіанти завдань роботи
- •Лабораторна робота № 8 Алгоритми обробки двовимірних масивів
- •Теоретична частина
- •Перетворення одновимірних масивів у двовимірні та навпаки
- •Контрольні питання
- •Варіанти завдань роботи
- •Лабораторна робота n 9 Прийоми програмування з використанням покажчиків.
- •Теоретична частина
- •Зв’язок між покажчиками та масивами
- •Покажчики на багатовимірні масиви.
- •Операції з покажчиками
- •Приклад:
- •Масиви покажчиків
- •Контрольні питання
- •Методичні вказівки
- •Приклад виконання завдання по обробці рядків
- •Приклад виконання програми
- •Варіанти завдань роботи
- •Лабораторна робота n10 Директиви препроцесора.
- •Теоретична частина Препроцесор мови с
- •Директива #еrrоr
- •Директива #include
- •Директиви умовної компіляції
- •Визначені макроси.
- •Контрольні питання
- •Варіанти завдань роботи.
- •Лабораторна робота 11 Друк кодової таблиці.
- •Теоретична частина.
- •Особливості типу char
- •Файл ctype.H
- •Рекомендації зо вибору імен змінних і функцій
- •Контрольні питання
- •Додатки
- •Методика виконання роботи
- •Варіанти завдань роботи
- •Вид таблиці символів:
- •Лабораторна робота 12 Рядки. Потокове введення/виведення у мові с.
- •Теоретична частина
- •Функції для роботи з рядками
- •Рядки і числові типи даних
- •Робота з файлами
- •Контрольні питання.
- •Додатки
- •Варіанти завдань роботи .
- •Лабораторна робота 13
- •Теоретична частина.
- •Контрольні питання
- •Варіанти завдань роботи.
- •Лабораторна робота 14
- •Теоретична частина
- •Ключі доступу
- •Просте спадкування
- •Віртуальні методи
- •Механізм пізнього зв'язування
- •Абстрактні класи
- •Множинне спадкування
- •Відмінності структур і об'єднань від класів.
- •Контрольні питання.
- •Варіанти завдань роботи.
- •Література
- •Рогальський Франц Борисович
Рядки і числові типи даних
Часто доводиться перетворювати рядок у число або число в рядок. Функції, що виконують такі перетворення, оголошені в <stdlib.h>. Рядки – вихідні дані або результати перетворення – мають вигляд числових літералів. От деякі з функцій:
Int atoi (const char *s) – перетворює рядок s у int-число. Повертає 0, якщо перетворення неможливе.
double atof (const char* s) – перетворить s у double-число.
char* itoa (int v, char* s, int b) – перетворить число v у рядок s; повертає покажчик на s; параметр b – підстава системи числення, у якій буде представлене число. Значення b повинне бути в діапазоні 2–36.
char * gcvt (double v, int n, char* s) – перетворить число v у рядок s. Значення n – це кількість значущих цифр. Якщо можливо, число перетвориться у форму з фіксованою точкою, інакше – у форму з плаваючою.
Приклади використання цих функцій, а також інформацію про інші перетворюючі функції можна одержати, користуючись довідником системи програмування.
Робота з файлами
Функції для роботи з файлами оголошені в <fstream.h>. Оскільки клас fstream успадковує властивості класів iostream і ios, при роботі з файлами можна використовувати усі функції-члени і данні-члени цих класів. Файловий ввід-вивід (вивід) досягається при зв'язуванні вхідного (вихідного) потоку з файлом за допомогою змінної класу istream або fstream (перемінної класу оstream або fstream – для вводу).
Форма операторів визначення потокових змінних:
fstream ім'я_потоку(“ім'я_набору_даних”, ios::in) – для вводу,
fstream ім'я_потоку(“ім'я_набору_даних”, ios::out) – для виводу.
При такому визначенні потокових змінних відкриваютьсяпотоки. Якщо відкриття неможливе, потокова змінна має значення нуль.
Для файлів, зв'язаних з потоками, можна використовувати операції вставки і вилучення – з їх допомогою виконують форматований ввід-вивід. Неформатований (не викидає пробіли і не виконуює перетворення з зовнішньої форми представлення даних у внутрішню форму) ввід може бути виконано за допомогою наступних функцій – членів:
in get () – витягає з вхідного потоку і повертає один символ або EOF , якщо досягнуто кінець файлу.
istream& get (char&) – витягає з вхідного потоку і повертає один символ. Має нульове значення, якщо кінець файлу не досягнений.
istream& get (char * buf, int n, char delim = ‘\n’) – читає символи з потоку, поки не буде прочитано n символів або не зустрівся обмежник delim. Обмежник залишається в потоці і не включається в лічену послідовність.
istream& getline (char * buf, int n, char delim = '\n') – читає символи з потоку. Обмежник не включається в лічену послідовність. На відміну від get, обмежник витягається з потоку.
istream& read (char* buf, int n) – читає n байтів з потоку в двоїчному режимі.
ostream& put (char) – записує окремий символ у потік.
ostream& write (const char* buf, int n) – записує в потік n символів з буфера.
ostream& flush () – запис змісту потоку, тобто примусовий запис, незалежно від ступеня заповнення внутрішнього буфера потоку.
void open (char* dataname, int mode, int prot = filebuf::openprot) – відкриває набір даних і зв'язує з раніше створеною змінною потоку. Режим «для введення» задається як ios::in, режим для виводу – як ios::out, режим «для додавання» – як ios::app. Для відкриття потоку в двоїчному режимі константа ios::in поєднується (порозрядним АБО) з константою ios::binary. Приклад застосування open – у додатку.
void close () – закриває файл і відкріплює його від потоку. Оскільки звичайно файли закриваються автоматично, close застосовується, якщо файл потрібно «перевідкрити» в іншому режимі.
Функція int eof () повертає ненульове значення, якщо в потоці виявлена ознака кінця файлу.