17538

Дослідження багатовимірних масивів на С++

Лабораторная работа

Информатика, кибернетика и программирование

ЛАБОРАТОРНА РОБОТА № 7 Дослідження багатовимірних масивів на С. Мета лабораторної роботи ознайомитися з основними принципами роботи з багатовимірними масивами. Теоретичні положення Багатовимірний масив це масив який має дві чи більше розмірност

Украинкский

2013-07-04

184 KB

3 чел.

ЛАБОРАТОРНА  РОБОТА № 7

Дослідження багатовимірних масивів на С++.

Мета лабораторної  роботи – ознайомитися з основними принципами роботи з
багатовимі
рними масивами.

  1.  Теоретичні положення

Багатовимірний масив – це масив, який має дві чи більше розмірностей, а доступ до окремого елементу реалізовується в ньому за допомогою вказівок двох чи більше індексів.

Приклади

int d [10][20]; //масив розмірністю 10 рядків в яких 20 елементів.

Елементи двовимірного масиву визначаються іменем масиву та двома індексами: перший індекс означає номер рядка, а другий - номер стовпця, на перетині яких стоїть елемент.

Наприклад,

int a[2][3];  /*  матриця, представлена у вигляді

a[0][0]  a[0][1] a[0][2]

a[1][0]  a[1][1] a[1][2]  */

int w[3][3] = {{2,3,4},

              {3,4,8},

              {1,0,9}};

В останньому прикладі оголошений масив w[3][3]. Списки, виділені у фігурні дужки, відповідають рядкам масиву; у випадку відсутності дужок ініціалізація буде виконана неправильно.

Масиву виділяється пам'ять, необхідна для розміщення всіх його елементів. Елементи масиву з першого до останнього розміщуються в послідовних комірках пам'яті (по зростанню адрес). Між елементами масиву в пам'яті розриви відсутні. Елементи багатомірного масиву запам'ятовуються порядково.

Для того, щоб створити двовимірний масив  цілих чисел 10х12 на ім’я A потрібно написати наступне твердження:

int A[10][12];

Наприклад, наступна програма завантажує масив 4х5 добутком індексів цього масиву на С++, а потім виводить масив на екран у форматі рядків та стовпчиків.

#include <iostream>

using namespace std;

void main()

{   

int twod[4][5];

int i, j;

for(i=0; i<4; i++)

  for(j=0; j<5; j++)

     twod[i][j] = i*j;

for(i=0; i<4; i++)

  {      

   for(j=0; j<5; j++)

   cout<<twod[i][j]<<” ”;

cout<<”\n”;

  }

}

Програма виведе на екран наступну таблицю:

0  0  0  0  0

0  1  2  3  4

0  2  4  6  8

0  3  6  9  12

Обробка  елементів масиву

Обробка елементів масиву виконується в циклі, індекси елементів циклу є параметрами циклу. Для обробки багатовимірних масивів використовуються вкладені цикли.

Приклади:

  1.   ввід з клавіатури елементів масиву A[M][N]:

for ( i = 0; i < N; i++ )

 for ( j = 0; j < M; j++ ) {

   cout<<"A["<<i<<"]["<<j<<"]=";

   cin>>A[i][j];

   }

  1.  заповнення випадковими числами:

for ( i = 0; i < N; i++ )

 for ( j = 0; j < M; j++ )

   A[i][j] = rand()%25- 10

  1.  вивід на екран:

for ( i = 0; i < N; i++ ) {

 for ( j = 0; j < M; j++ )

   cout<<A[i][j]<<"  ";

 cout<<"\n";

 }

  1.  вивід на екран головну діагональ квадратної матриці з N рядків і N стовпців:

  1.  вивід на екран другу діагональ квадратної матриці з N рядків і N стовпців:

 

2.  Варіанти завдань

  1.  Ввести матрицю розмірності  m  n. Кожен елемент матриці домножити на мінімальний елемент у поточному стовпці. Вивести вихідну і отриману матриці.
  2.  Ввести дві матриці розмірності  m  n. Визначити, у якої матриці середнє арифметичне більше.
  3.  Ввести матрицю розмірності  m  n. Визначити її середнє арифметичне. Знайти координати елемента матриці, найближчого до середнього арифметичного.
  4.  Ввести матрицю розмірності  m  n. Знайти максимальний елемент матриці і його координати (індекс стовпця і індекс рядка).
  5.  Ввести матрицю розмірності  m  n. Знайти мінімальний її елемент і його координати (індекс стовпця і індекс рядка).
  6.  Ввести матрицю розмірності  m  n. Знайти максимальний її елемент елемент і його координати (індекс стовпця і індекс рядка).
  7.  Ввести квадратну матрицю. Знайти суму елементів, що лежать її головних  діагоналях.
  8.  Ввести дві матриці розмірності  m  n. Визначити їхню поелементну суму (результат записати в нову матрицю). Вивести вихідні і отриману матриці.
  9.  Ввести квадратну матрицю і число k. Розділити елементи k-го рядка матриці на діагональний елемент цього рядка. Вивести вихідну і отриману матриці.
  10.  Ввести матрицю розмірності  m  n  і число k. До елементів k-го рядка матриці додати відповідні елементи її 1-го рядка. Вивести вихідну і отриману матриці.
  11.  Ввести матрицю розмірності  m  n. Кожен елемент матриці домножити на максимальний елемент у поточному рядку. Вивести вихідну і отримані матриці.
  12.  Ввести матрицю розмірності  m  n і число k. Видалити k-й рядок з матриці. Вивести вихідну і отриману матриці.
  13.  Ввести матрицю розмірності  m  n і число k. Видалити k-й стовпець із матриці. Вивести вихідну і отриману матриці.
  14.  Ввести матрицю розмірності  m  n. Кожен елемент матриці домножити на мінімальний елемент у поточному рядку. Вивести вихідну і отримані матриці.
  15.  Ввести матрицю розмірності  m  n. Знайти суму елементів у кожному рядку. Результат записати в одновимірний масив. Вивести вихідну матрицю і отриманий одновимірний масив.
  16.  Ввести матрицю розмірності  m  n. Знайти рядок, сума елементів якого максимальна. Вивести вихідну матрицю і знайдений рядок.
  17.  Ввести матрицю розмірності  m  n. Знайти суму елементів у кожному стовпці. Результат записати в одновимірний масив. Вивести вихідну матрицю і отриманий одновимірний масив.
  18.  Ввести матрицю розмірності  m  n. Підрахувати суму елементів непарних рядків, записати результат в одновимірний масив.
  19.  Ввести квадратну матрицю. Знайти суму елементів тих рядків, у яких на головній діагоналі знаходяться від’ємні числа.
  20.  Перетворити матрицю так, щоб всі її елементи нижче головної діагоналі стали нульовими. Вивести вихідну і отриману матриці.
  21.  Ввести матрицю розмірності  m  n. Замінити всі її від’ємні елементи нулями. Підрахувати кількість замін. Вивести вихідну і отриману матриці.
  22.  Ввести квадратну матрицю. Поміняти місцями максимальний і мінімальний елементи її головної діагоналі. Вивести на екран обидві матриці.
  23.  Ввести матрицю розмірності  m  n. Підрахувати суму елементів парних рядків, записати результат в одновимірний масив.
  24.  Ввести матрицю розмірності  m  n і число k. Ті елементи масиву, які менші за k, замінити нулями. Вивести вихідну і отриману матриці.
  25.  Ввести матрицю розмірності  m  n. Знайти рядок, сума елементів якого мінімальна. Вивести вихідну матрицю і знайдений рядок.
  26.  Ввести матрицю розмірності  m  n. Змінити її так, щоб всі елементи вище головної діагоналі стали нульовими. Вивести вихідну і отриману матриці.
  27.  Ввести матрицю розмірності  m  n. Кожен елемент матриці домножити на максимальний елемент у поточному стовпці. Вивести вихідну і отримані матриці.
  28.  Ввести матрицю розмірності  m  n. Видалити її рядки і стовпці, що складаються з від’ємних елементів. Вивести вихідну і отриману матриці.
  29.  Ввести квадратну матрицю. Знайти суму елементів тих рядків, у яких на головній діагоналі знаходяться від’ємні числа.
  30.  Ввести матрицю розмірності  m  n. Видалити рядок матриці, що містить її максимальний елемент. Вивести вихідну і отриману матриці.

Контрольні питання

1. Дайте визначення типу даних та масиву. Які бувають види масиву.

2. Дайте визначення багатовимірного та одновимірного масиву.

3. Дайте визначення вказівнику

4. Виділити пам’ять для масиву, який містить 5 стовпців, 6 стрічок.

5. Перевірити чи  другий елемент у третьому рядку додатній.


 

А также другие работы, которые могут Вас заинтересовать

22711. Протиріччя у зовнішньополітичному курсі президента Дж. Кеннеді 38.5 KB
  Кеннеді. Піднесення національновизвольного руху у країнах третього світу примусило адміністрацію Кеннеді розглядати цей регіон як пріоритетний. Попри наполягання американських військовиків Кеннеді заборонив повторний повітряний наліт як і перебування американських кораблів та підводних човнів в межах 20мильної зони ЗО км від місця висадки десанту. Для Кеннеді це був важкий удар.
22712. Основні напрямки зовнішньої політики адміністрації Л. Джонсона 27.5 KB
  Він продовжив політику нормалізації відносин з СРСР: всупереч позиції конгресу надав московському урядові кредити на закупівлю хліба в американських фермерів; 1964 року оголосив доктрину наведення мостів розвиток торговельних і гуманітарних зв'язків із деякими соціалістичними країнами 1968 року підписав Договір про нерозповсюдження ядерної зброї а під завісу свого урядування готувався до переговорів щодо обмеження стратегічних озброєнь ОСО1.Джонсон все ж 1965 року проголосив нову доктрину названу його ім'ям Доктрина Джонсона яка...
22713. Доктрина ядерного стримування у зовнішній політиці США 32 KB
  Доктрина ''ядерного стримування'' у зовнішній політиці США. Ядерное оружие играет важнейшую роль в системе обороны США их союзников и друзей. Этот ядерный потенциал обладает уникальными свойствами которые позволяют США решать важные стратегические и политические задачи. Интересы США и их союзников необязательно потребуют нанесения ядерных ударов.
22714. Доктрина Джонсона 19 KB
  Доктрина Джонсона.Джонсон все ж 1965 року проголосив нову доктрину названу його ім'ям Доктрина Джонсона яка передбачала право США на військові дії на латиноамериканському континенті з метою захисту своїх громадян . Более подробно о внешней политике Джонсона см.
22715. Доктрина Ніксона 24.5 KB
  Согласно этой доктрине США обязывались и в дальнейшем участвовать в обеспечении обороны своих союзников и заявляли о своем праве определять масштабы формы и сферы своего вмешательства в региональные события руководствуясь своими национальными интересами. В послании президента Никсона Конгрессу 18 февраля 1970 эта доктрина прежде всего относившаяся к угрозе коммунистической экспансии в странах Азии получила дальнейшее развитие как руководящий принцип политики США и в других регионах. Но насущной проблемой нового президента была война во...
22716. Політика адміністрації Дж. Картера на Близькому та Середньому Сході 28.5 KB
  Картера на Близькому та Середньому Сході. Картер достаточно рано дал понять что готов искать новые возможности для решения ближневосточного конфликта. Эти сначала неловко начатые усилия развились в диалог между Израилем и Египтом который Картер решительно ускорил пригласив израильского премьерминистра Бегина и египетского президента Садата в свою загородную резиденцию КемпДевид. После тринадцатидневных переговоров в которых Картер как посредник играл решающую роль в сентябре 1978 года было заключено мирное соглашение.
22717. Політика США щодо СРСР у 1972 - 1974 рр 24.5 KB
  І лише 1973 року Сполучені Штати відмовилися від загальної військової повинності і перейшли до створення професійної армії на добровільній основі. В грудні 1969 року США зняли деяке обмеження у торговельній сфері з СРСР через місяць конгрес ратифікував підписаний 1968 року Сполученими Штатами Великобританією та Радянським Союзом Договір про непоширення ядерної зброї згодом розпочалися американорадянські попередні переговори в Гельсінкі а потім у Відні про обмеження систем протиракетної оборони та страіегічних озброєнь. 30 вересня 1971...
22718. Латиноамериканський курс адміністрації Дж. Буша (мол.) 26.5 KB
  Целью его второй поездки за пределы США будет запланированный на конец апреля в Квебеке Саммит Америк где главным вопросом значится экономическая интеграция в рамках Западного полушария. То что в случае прихода к власти Буша одним из основных направлений внешней политики США станет именно латиноамериканское не вызывало у серьезных аналитиков никаких сомнений. Уж слишком тесно переплелись в этом регионе стратегические интересы США и интересы семейства Бушей в том числе лично Джорджа Бушамладшего. С другой стороны фундаментальным...