РОБОТА З МАСИВАМИ В С++

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКНІ
Факультет:
Програмна Інженерія
Кафедра:
Не вказано

Інформація про роботу

Рік:
2015
Тип роботи:
Лабораторна робота
Предмет:
Основи програмування та алгоритмічні мови
Варіант:
1

Частина тексту файла (без зображень, графіків і формул):

.0МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ Національний університет “Львівська політехніка” / Звіт До лабораторної роботи № 6 На тему: «РОБОТА З МАСИВАМИ В С++» З дисципліни «Основи програмування» Лектор: 1.МЕТА РОБОТИ Мета роботи – навчитися організовувати такі структури даних як масиви та освоїти основні методи програмування алгоритмів обробки масивів даних засобами мови С++. 2.ТЕОРЕТИЧНІ ВІДОМОСТІ 1. Що таке масив? Які типи масивів Ви знаєте? Масив – це сукупність однотипних змінних, розміщених у послідовно пронумерованих суміжних комірках пам'яті. Масиви бувають статичні, фіксовані автоматичні та динамічні. 2. Який загальний вигляд опису одновимірного масиву? А двовимірного? Загальний вигляд одновимірного масиву: тип ім’я_масиву[розмір] Загальний вигляд двовимірного масиву: тип ім’я_масиву [розмір1][розмір2] 3. Що таке вказівник? Яка відмінність вказівника від звичайної змінної? Вказівник— тип даних в комп'ютерних . Значення вказівника посилається на інше значення, що записане будь-де в пам'яті комп'ютера (фактично містить його адресу). 4. Яку роль відіграє ім’я масиву? Як можна його використати? Ім’я масиву є вказівником на його перший елемент. Тому ім'я масиву можна використати в якості бази для зміщення вказівника.. 5. Як здійснюється ініціалізація масиву? Які особливості ініціалізації багатовимірних масивів? Ініціалізацію масиву можна здійснити: при оголошенні масиву або ввести значення з клавіатури. Ініціалізація двовимірного масиву здійснюється по рядках. 6. Опишіть відомі Вам способи доступу до елементів одновимірного масиву. У С++ доступ до елементів масиву здійснюється за допомогою спеціального оператора []. В квадратних дужках вказується індекс елемента масиву, а перед ними – його ім'я. Також для доступу до елементів використовують вказівники. 7. Як можна організувати контроль виходу індексів за межі допустимого діапазону? Якщо вказати в квадратних дужках неправильний розмір, все одно компілятор автоматично обчислить правильний розмір. Наприклад, при оголошенні: int numbs[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8} Компілятор «вважатиме», що масив містить 9 елементів. Однак, при цьому виникне проблема при наступному присвоєнні: numbs[10] = 10; Компілятор розпізнає помилку, коли присвоюється більше чисел, ніж задано елементів масиву: int numbs[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10} При цьому видається повідомлення «Занадто багато ініціалізаторів». 8. Як зберігаються в пам’яті багатовимірні масиви? Багатовимірні масив, як і будь-які інші, зберігається в послідовних комірках пам'яті, а тому його можна представити як одномірний, пам’ятаючи, що ім'я масиву – це вказівник на його перший елемент. 9. Як визначити скільки оперативної пам’яті займає масив? Об’єм пам'яті, який займає масив, рівний добутку розміру типу елементів масиву та кількості елементів в масиві. Наприклад, якщо масив містить 16 чисел типу int і тип int займає в пам’яті 2 байти, то цілий масив займатиме 2×16 = 32 байти. 10. Як здійснюється доступ до елементів багатовимірного масиву за допомогою індексів? А за допомогою вказівників? Звертаються до елементів масиву так: ім’я_масиву [індекс1][індекс2] Або нехай двовимірний масив mas має розмірність n*m. Тоді елемент mas[i][j] можна представити як *(*mas+n*i+j). З іншого боку, вираз mas[i] є вказівником на перший елемент і-ого рядка, а тому *[mas[i]+j] – це j-ий елемент і-ого рядка. 11. Напишіть два різних оператора на С++, які б присвоювали вказівнику ptr адресу першого елемента четвертого рядка двовимірного масиву x[5]7]. *(*x+5*1+4) або *[х[1]+4] 12. Напишіть два різних оператора на С++, які інкрементують шостий елемент масиву array, використовуючи механізм індексації та вказівника зі зміщенням, відповідно. cout « —array[5];  cout « —*(array + 5); 3.ІНДИВІДУВАЛЬНЕ ЗАВДАННЯ ДОДАТОК 1 Написати програму для обробки даних, організованих у масив, згідно завдання наведеного варіанту. У програмі використати такі форми звертання до елементів масиву: ( на основі індексів, ( через розадресоване ім’я масиву і зміщення елемента. 6.З клавіатури ввести масив дійсних чисел. Утворити новий масив, кожен елемент якого дорівнює півсумі значень двох сусідніх елементів введеного вектора. Визначити номер мінімального елемента нового вектора. КОД ПРОГРАМИ #include <iostream> #include <conio.h> #include <math.h> #include <stdlib.h> using namespace std; void main() { const int n= 5; const int k= 5; int x[n],y[k], max,min,l=0, suma=0; for(int i=0; i<n; i++) cin>>*(x+i); for(int i=0, j=0; i<n; i++) { max=min=y[0]; y[j]=(*(x+i)+*(x+i+1))/2; cout<<"y["<<j<<"]"<<y[j]<<" "<<endl; if(y[j]<min){ min=y[j]; l=j; } j++; } cout<<"\n"; cout<<"y["<<l<<"]"<<"min= "<<min; system("pause"); } РЕЗУЛЬТАТИ / ДОДАТОК 2 Написати програму для обробки даних, організованих у масив, згідно завдання наведеного варіанту. У програмах використати різні форми звертання до елементів багатовимірних масивів, у тому числі за допомогою конструкцій “вказівник на масив” і “вказівник на вказівник”. Враховувати, що кожен рядок матриці можна опрацьовувати як окремий елемент. Ввести прямокутну матрицю цілих чисел. Вилучити з матриці рядок і стовпчик, на перетині яких знаходиться її найменший елемент. КОД ПРОГРАМИ #include <iostream> #include <conio.h> #include<stdlib.h> #include <iomanip> using namespace std; void main() { const int N= 3; const int M = 4; int x[N][M], min,i_min,j_min,i ,j; for(int i = 0; i < N; i++) for(int j = 0; j < M;j++) { cout<<"Enter the "<<(j+1)<<" element of "<<(i+1)<<" row"<<endl; cin>>x[i][j]; } for(int i=0; i<N; i++){ for(int j=0; j<M; j++){ cout<<*(*x+i*M +j) <<" "; } cout<<endl; } cout<<endl; min=x[0][0]; i_min=j_min=0; for(int i = 0; i < N; i++) for(int j = 0; j < M;j++) { if(x[i][j]<min) {min= *(*x + i*M+ j); i_min=i;j_min=j;} } for( int i=0; i<N; i++){ for( int j=0; j<M; j++){ if((i_min!=i)&&(j_min!=j)) cout<<x[i][j]<<" "; } cout<<endl; } system("pause"); } РЕЗУЛЬТАТИ / ВИСНОВОК На цій лабораторні роботі я навчилася працювати з одновимірними та багатовимірними масивами і виконувати операції над ними. Також я дізналася, що таке вказівники ,як вони працюють і для чого вони потрібні. БЛОК-СХЕМА №1 / БЛОК-СХЕМА №2
Антиботан аватар за замовчуванням

02.11.2015 19:11-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!