DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

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

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

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

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

Рік:
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:07

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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