- •Методичні вказівки до лабораторних робіт по курсам
- •8.092402 “Інформаційні мережі зв'язку” Затверджено
- •Протокол № __ від ____
- •Упорядники: в. П. Степанов в. П. Пчелінов
- •Загальні положення
- •1 Організація введення і виведення даних та розв’язання задач з простою змінною
- •1.1 Мета роботи
- •1.2 Вказівки до організації самостійної роботи студентів
- •1.2.1 Використання операторів введення
- •For ( [ вир1; ] [ вир2] [; вир3 ] ) оператор;,
- •1.5 Контрольні питання
- •1.6 Варіанти індивідуальних завдань
- •2 Розв’язання задач c використанням одновимірних і двовимірних масивів
- •2.1 Ціль роботи Прищепити студентам навички розв’язання задач з використанням одновимірних і двовимірних масивів, складних циклів і використання покажчиків.
- •2.2 Методичні рекомендації з організації самостійної роботи студентів
- •2.3 Використання покажчиків
- •Наиведемо програму з використанням покажчиків:
- •Int main ( )
- •Void main ( void )
- •2.4 Використання масивів і покажчиків
- •Приклад 2.4 Обчислити середнє значення позитивних елементів одновимірного масиву.
- •Int *pmas;
- •2.5 Масиви покажчиків
- •2.6 Контрольні питання
- •2.7. Варіанти індивідуальних завдань
- •3 Вирішування задач з використанням даних символьного типу
- •3.1 Ціль роботи Вивчення способів опису символьних типів даних і використання структур для обробки даних.
- •3.2 Методичні рекомендації з організації самостійної
- •Роботи студентів
- •3.2.1 Організація символьного введення - виведення
- •Device . Get (char_var);
- •3.2.2 Рядки як символьні масиви
- •3.2.3 Введення-виведення символьних масивів
- •Void main (void)
- •3.2.4 Основні функції обробки символьних типів
- •Void main (void)
- •Void del (char *st, int k, int n);
- •Void del(char *st, int, int);
- •Void main()
- •Void del(char *st,int k,int n)
- •[ Проміжки ] [знак числа] [ цифри].
- •Void main( )
- •Void main()
- •Void main()
- •Void main(void)
- •3.2 Контрольні питання і завдання
- •3.4 Варіанти індивідуальних завдань
- •4 Вирішувння задач з використанням даних типу структура
- •4.1 Ціль роботи Освоєння заходів розробки і налагодження програм з використанням
- •4.2 Методичні рекомендації з організації самостійної
- •Void main(void)
- •Void qsort (void *base , n , width,
- •Int (*fcmp) ( const void *elem1, const void *elem2) .
- •4.3 Контрольні питання
- •4.4. Індивідуальні завдання
- •5 Використання функцій при розробці програм
- •5.1 Ціль роботи
- •5.2 Методичні вказівки з організації самостійної роботи студентів
- •Void fun ( int p)
- •Void main ( )
- •Int main ( )
- •5.2.1 Використання покажчиків на функцію
- •Void main ( )
- •5.2.2 Використання масивів - параметрів функцій
- •Vоid sort (int mas [ 30 ]); .
- •Void sort ( int mas [ ], int n ) ; .
- •Void fun1 (char st [ 5]);
- •Void fun1 ( char st [5] )
- •Void fun2 ( int mat [ ] [10], int rows, int cols );
- •5.2.4 Звертання до функції і передача результату
- •Int main ( )
- •5.2.5 Перевантаження функцій
- •5.3 Контрольні питання
- •5.4 Варіанти індивідуальних завдань
- •6 Робота з файлами
- •6.1 Ціль роботи
- •6.2 Методичні вказівки по організації самостійної роботи
- •Void main ( )
- •Ifstream in ( ”file1") ;
- •Література і джерела
- •Загальні положення ...………………………………………………………….........3
- •Навчальне видання
- •8.092402 “Інформаційні мережі зв'язку”.
- •61726 Харків, просп. Леніна, 14.
Роботи студентів
При підготовці до даної лабораторної роботи рекомендується повторити типи даних, звернувши увагу на символьний тип, способи завдання рядків і на застосування структурних типів даних для вирішування практичних задач [2,c.49 - 52, с.52 - 69; конспект лекцій ] .
В усіх попередніх роботах використовувалися числові типи даних. Однак ефективність мови С++ багато в чому визначається наявністю в ньому розвитих засобів для обробки символьної інформації. У стандартній бібліотеці С++ передбачено багато функцій , що виконують прості дії із символьними даними. Тому ця мова найкраще підходить для системної роботи: написання компіляторів, інтерпретаторів, операційних систем, редакторів тексту і т.п.
У мові С++ розрізняють символьні константи і рядки.
Символьна константа — це одиночний символ, укладений в апострофи. Керуючі послідовності розглядаються як одиночний символ, наприклад: " " — проміжок, "а "— літера а, " \ " — зворотна коса риса.
Тип char використовується для зображення символу. Значенням об'єкта типу char є код у наборі символів персонального комп'ютера, що відповідає даному символу. Тип char за замовчуванням інтерпретується як однобайтова ціла величина зі знаком (діапазон значень перемінної від -128 до 127). Змінна типу unsigned char може запам'ятовувати значення в діапазоні від 0 до 255.
Рядок — це послідовність символів, укладена в лапки ("), наприклад: " Це рядок". Він зберігається в безупинній області пам'яті, у кінець якої компілятором додається нульовий символ ("\0"), що подається керуючою послідовністю "\0" і є символьним масивом . Рядки мають тип char [ ]. Число елементів масиву дорівнює числу символів у рядку плюс 1, тому що нульовий символ також є елементом масиву. Рядки можуть розташовуватися на декількох рядках. У цьому випадку ставиться зворотна дробова риса і натискається клавіша ENTER. Зворотна риса із символом нового рядка ігнорується компілятором, і наступна рядок вважається продовженням поточної.
3.2.1 Організація символьного введення - виведення
Функції символьного введення - виведення мови С++ є базовими функціями , необхідними для написання могутніх підпрограм введення - виведення даних.
Мова С++ сприймає все введення-виведення як потоки символів. Потік символів може бути організований: із клавіатури, файлу , модему і т.д. Операційна система забезпечує стикування пристроїв, а С++ може використовувати ті самі функції для введення - виведення , наприклад, як із клавіатури, так і з модему . От чому таке велике значення приділяється обробці символьних типів даних. Для обслуговування операцій над рядками використовується файл <string.h> . При організації введення-виведення в мові С++ завжди передбачається, що введення буде здійснюватися з stdin ,що означає стандартний пристрій введення (звичайно клавіатура), а виведення здійснюється на стандартний пристрій виведення (звичайно дисплей) з ім'ям stdout . Ці потоки можна перепризначити на роздрук — ім'я stdprn , послідовний порт — ім'я stdaux ,повідомлення про помилки – ім'я stderr . Оператор cout здійснює виведення на екран тільки тому, що більшість комп'ютерів за замовчуванням stdout направляє виведення на екран, а оператор cin здійснює введення з клавіатури за тою же причиною, тому що клавіатура є стандартним пристроєм введення (stdin).
Розглянемо порядок дій при перепризначенні потоку виведення даних на принтер :
підключення файлу заголовка ofstream.h ;
виконання перепризначення виведення на принтер за допомогою операторів
ofstream prn ("PRN");
prn << " Виведення до роздруку повідомлення "<< endl;
prn << name1 << name2 ... <<endl;
Такий порядок дій застосовується при компіляції як задача DOS і нижче приведена його програмна реалізація .
Приклад 3.1 Вивести дані (прізвище й ім'я) на принтер.
// P3_1.СPP — виведення прізвища й імені на принтер
#include < fstream.h>
main ( )
{
char fio [15];
char name [10];
cout << "Введіть прізвище ";
cin >> fio;
cout << "Введіть ім'я ";
cin >> name;
// Посилка імен fio і name на принтер
ofstream prn ("PRN");
prn << " Виведення імені і прізвища " << endl;
prn << name << fio << endl;
return 0;
}
Для організації символьного введення - виведення використовуються функції буферизированого (get ( ) і put ( )) і небуферизированого (getch ( ) і (putch ( )) введення – виведення, формати цих функцій наступні:
