
- •6.050103 «Програмна інженерія»
- •Одновимірні масиви
- •Теоретичні відомостi
- •Поняття масиву
- •Оголошення масиву
- •Доступ до елементів масиву
- •Обробка масивів
- •Приклад програми
- •Варіанти завдань
- •Контрольні питання
- •Багатовимірні масиви
- •Теоретичні відомостi
- •Обробка матриць
- •Масиви-параметри
- •Приклад програми
- •Варіанти завдань
- •Контрольні питання
- •Теоретичні відомості
- •Поняття рядка
- •Операції з рядками
- •Приклад програми
- •Варіанти завдань
- •Контрольні питання
- •Теоретичні відомості
- •Поняття структури
- •Оголошення структури
- •Доступ до полів структур
- •Обробка структур
- •Приклад програми
- •Варіанти завдань
- •Теоретичні відомостi
- •Приклад програми
- •Варіанти завдань
- •Бінарні файли
- •Теоретичні відомостi
- •Потоки і файли
- •Приклади програм
- •Варіанти завдань
- •Текстові файли
- •Теоретичні відомостi
- •Приклади програми
- •Варіанти завдань
- •Теоретичні відомостi
- •Приклади програм
- •Варіанти завдань
- •8.1 Теоретичні відомостi
- •8.2 Приклади програм
- •8.3. Варіанти завдань
- •Порядок виконання роботи та зміст звіту
- •Список рекомендованої літератури
- •1.1. Одновимірні масиви ............................................................................... 3
МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ
«КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ»
Основи програмування
Методичні вказівки до комп’ютерного практикуму
Частина 2
Для студентів напряму підготовки
6.050103 «Програмна інженерія»
кафедри автоматизованих систем обробки інформації і управління
всіх форм навчання
Рекомендовано
Вченою радою факультету
інформатики та обчислювальної
техніки НТУУ «КПІ»
Протокол №12 від 28.05.2012р.
Київ
НТУУ «КПІ»
2012
Основи програмування. Методичні вказівки до комп’ютерного практикуму. Частина 2 / Уклад.: І.П. Муха – К.: НТУУ «КПІ», 2012. – 140с.
Методичні вказівки призначені для набуття студентами практичних навичок процедурного програмування мовами Pascal та С++. Розглядаються принципи організації структурованих типів даних: масивів, рядків, записів, списків, дерев. Наведені теоретичні відомості за темами лабораторних робіт, що супроводжуються прикладами, та індивідуальні завдання.
Укладачі І.П. Муха, к.т.н., доцент
Відповідальний редактор Скоробагатько М.В., доцент
Рецензент Корочкін О.В., к.т.н., доцент
кафедри обчислювальної техніки
За редакцією укладачів
Комп’ютерний практикум № 1
МАСИВИ
Одновимірні масиви
Мета роботи - вивчити особливості обробки одновимірних масивів.
Теоретичні відомостi
Поняття масиву
Масив в програмуванні - це упорядкована сукупність елементів одного типу. Масив визначається іменем та кількістю компонентів (елементів). Для обробки масиву у програмі використовують змінну (ім’я масиву) відповідного структурованого типу, який конструюють із раніше описаних або стандартних простих типів.
Відмінні риси масиву як структури даних: однотипність елементів, їх фіксований розмір (кількість елементів), довільна структура елементів.
Оголошення масиву
Одновимірний масив оголошується в C/C++ наступним чином:
тип ім'я[кількість].
Ім’я – це ідентифікатор масиву; тип - задає тип елементів масиву. Елементами масиву не можуть бути функції і елементи типу void. Кількість в квадратних дужках задає кількість елементів масиву.
Наприклад,
int a[3];
double b[10].
Формат визначення масиву у C/С++:
тип ім’я[кількість]={список_значень}.
Наприклад,
char c[3] = {'a', 'k', 'c'};
float b[5] = {5.7, 0.4, 3.9, 2.7, 1.8}.
Особливості визначення:
кількість елементів масиву при оголошенні може бути опущена (визначається кількістю елементів в списку початкових значень), наприклад,
char a[]={'a','b','c'};
якщо початкових значень менше, ніж елементів в масиві, всі інші елементи автоматично ініціалізуються 0, наприклад,
int d[10]={5,8,19,34}; 5, 8, 19, 34, 0, 0, 0, 0, 0, 0
Для недопущення подальшої зміни значень елементів масиву треба визначити його з ключовим словом const, наприклад,
const int m[]={3,5,7,1}.
Доступ до елементів масиву
Масиви, як цілісні структури, можуть виступати як операнди тільки в операціях "дорівнює", "не дорівнює" та в операторі присвоювання. При цьому відповідні масиви повинні бути ідентичними за структурою (мати однакові типи індексів і типи компонент). Всі інші дії виконуються тільки з елементами масивів відповідно до їх типу.
Доступ до окремого елемента масиву, зазвичай, здійснюється шляхом вказання імені масиву і відповідного індексу:
ім'я_масиву[індекс].
Наприклад,
m[5], k[2003].
При цьому, на відміну від Pascal, де індексація елементів масиву визначається типом індексу, у мові С++ вона є стандартною і починається з 0.
У С++ доступ до елементів масиву може здійснюватися також за покажчиком, оскільки ім’я масиву – покажчик на його перший елемент. Наприклад,
int m[9];
int *p;
p = &m[0];
p++; //перехід до наступного елемента.
При організації доступу до елементів масиву за покажчиком використовуються наступні операції роботи з покажчиками:
операція інкремента (++) – значення покажчика збільшується на кількість байт, що визначається типом, на який він вказує;
операція декремента (--) – значення покажчика зменшується на кількість байт, що визначається типом, на який він вказує;
додавання цілого числа (+) - задає логічне зміщення на кількість байт, яка необхідна для розміщення заданого числа об’єктів, на які посилається покажчик;
скорочене додавання цілого числа (+=) - задає фізичне зміщення на кількість байт, яка необхідна для розміщення заданого числа об’єктів, на які посилається покажчик;
скорочене віднімання цілого числа (-=) - задає фізичне зміщення на кількість байт, яка необхідна для розміщення заданого числа об’єктів, на які посилається покажчик;
віднімання цілого числа (-) - задає логічне зміщення на кількість байт, яка необхідна для розміщення заданого числа об’єктів, на які посилається покажчик;
віднімання покажчиків - визначення значення різниці номерів елементів масиву, на які вказують покажчики.
Наприклад,
float m[7],n,*mPtr1,*mPtr2;
mPtr1=&m[0];
mPtr2=m;
mPtr1+=5; // зміщення вперед на 4 об’єкта (дійсних числа)
mPtr1 --; // перехід до попереднього елемента масиву
mPtr2 ++; // перехід до наступного елемента масиву
cout<<*(mPtr2+3)<<“\n”; // покажчик-зміщення вперед
cout<<*(mPtr1-2)<<“\n”; // покажчик-зміщення назад
mPtr1 -= 1; // зміщення назад на 1 об’єкт (дійснех число)
n = mPtr1-mPtr2; // відстань між елементами масиву