<
  • Главная
Статьи

НОУ ІНТУЇТ | лекція | масиви

  1. Заняття 2. Двовимірні масиви У двовимірного масиву є два індексу: - номер рядка, - номер стовпчика....

Заняття 2. Двовимірні масиви

У двовимірного масиву є два індексу: У двовимірного масиву є два індексу:   - номер рядка,   - номер стовпчика - номер рядка, - номер стовпчика.

Індексація двовимірного масиву представлена ​​на Мал. 6.4 .


Мал.6.4.

Індексація двовимірного масиву

Для використання двовимірного масиву в програмі необхідно:

  1. Оголосити масив в функції main (): тип_даних імя_массіва [кількість рядків] [кількість стовпців]; double a [5] [9]; // двовимірний масив з 5 рядків, 9 стовпців
  2. Проініціалізувати масив;
  3. Провести обчислення, дослідження.

Способи ініціалізації двовимірного масиву Способи ініціалізації двовимірного масиву   представлені в   таблиці 6 представлені в таблиці 6.4 . Звернемо увагу на те, що числа і відомі заздалегідь і в програмі не фігуруватимуть.

Таблиця 6.4. Способи ініціалізації двовимірного масиву a [n] [m] Частина блок-схеми Частина програми 1. з файлу: double a [n] [m]; int i, j; fstream file; file.open ( "1.txt", ios :: in); for (i = 0; i <n; i = i + 1) {for (j = 0; j <m; j = j + 1) {file >> a [i] [j]; }} File.close (); 2. по заданій формулі Таблиця 6 : Double a [n] [m]; int i, j; for (i = 0; i <n; i = i + 1) {for (j = 0; j <m; j = j + 1) {a [i] [j] = f (i, j); }}

Примітка. Двовимірний масив також можна проинициализировать і заздалегідь визначеними числами, і з клавіатури. Але ці методи незручні для двовимірних масивів, тому що вони містять занадто багато елементів.

Висновок двовимірного масиву на екран представлений в табл. 6.5 .

Таблиця 6.5. Висновок двовимірного масиву на екран Частина блок-схеми Частина програми for (i = 0; i <n; i = i + 1) {for (j = 0; j <m; j = j + 1) {cout << setw ( 6) << a [i] [j]; } Cout << endl; }

Принципи знаходження таких величин, як сума, твір, мінімальне, максимальне значення, представлені в табл. 6.6 .

Таблиця 6.6. Принципи дослідження двовимірного масиву Частина блок-схеми Частина програми 1. знаходження суми: s = 0; for (i = 0; i <n; i = i + 1) {for (j = 0; j <m; j = j + 1) {s = s + a [i] [j]; }} Cout << "s =" << s << endl; 2. знаходження твори: p = 1; for (i = 0; i <n; i = i + 1) {for (j = 0; j <m; j = j + 1) {p = p * a [i] [j]; }} Cout << "p =" << p << endl; 3. знаходження середнього арифметичного і кількості елементів: s = 0, k = 0; for (i = 0; i <n; i = i + 1) {for (j = 0; j <m; j = j + 1) {s = s + a [i] [j]; k = k + 1; }} S = s / k; cout << "s =" << s << endl; cout << "k =" << k << endl; 4. знаходження максимального елемента: max = -10E10; imax = 0; jmax = 0; for (i = 0; i <n; i = i + 1) {for (j = 0; j <m; j = j + 1) {if (a [i] [j]> max) {max = a [i] [j]; imax = i; jmax = j; }}} Cout << "max =" << max << endl; cout << "imax =" << imax << endl; cout << "jmax =" << jmax << endl; 5. знаходження мінімального елемента: min = 10E10; imin = 0; jmin = 0; for (i = 0; i <n; i = i + 1) {for (j = 0; j <m; j = j + 1) {if (a [i] [j] <min) {min = a [i] [j]; imin = i; jmin = j; }}} Cout << "min =" << min << endl; cout << "imin =" << imin << endl; cout << "jmin =" << jmin << endl; 6. поміняти елементи Таблиця 6 і місцями: tmp = a [i1] [j1]; a [i1] [j1] = a [i2] [j2]; a [i2] [j2] = tmp; 7. поміняти місцями рядки і : For (j = 0; j <m; j = j + 1) {tmp = a [i1] [j]; a [i1] [j] = a [i2] [j]; a [i2] [j] = tmp; } 8. поміняти місцями стовпчики і : For (i = 0; i <n; i = i + 1) {tmp = a [i] [j1]; a [i] [j1] = a [i] [j2]; a [i] [j2] = tmp; } 9. обчислення формули : S = 0; for (i = 0; i <n; i = i + 1) {s = s + f (a [i] [j], i, j); } Cout << "s =" << s << endl;

Умови для дослідження квадратної матриці (кількість рядків і стовпців збігається):

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

Приклад 3. Масив Приклад 3 заданий формулою . Знайти суму елементів у другому рядку, поміняти місцями першу і третю рядки, знайти твір по формулі .

Рішення. Дану задачу можна розбити на кілька етапів:

  1. задати масив за формулою і вивести його на екран;
  2. знайти суму елементів у другому рядку і вивести її на екран;
  3. поміняти місцями першу і третю рядки;
  4. вивести на екран змінений масив;
  5. знайти твір по формулі і вивести його на екран.

Кожен зазначений етап вирішується за допомогою циклів. Всі цикли доцільно використовувати з передумовою (в програмі - оператор for). На першому етапі слід організувати двовимірний цикл по Кожен зазначений етап вирішується за допомогою циклів , по , Тому що необхідно задати значеннями і вивести на екран весь масив. На другому етапі перед циклом необхідно задати , А в тілі циклу по налічувати значення . індекс задаємо як 1, що відповідає другому рядку. Слід зазначити, що не можна вважати суму з якоїсь певної рядку (стовпці, діагоналі) всередині двовимірного циклу, тому що в цьому випадку буде більше в рази (залежить від кількості рядків / стовпців) .На третьому етапі індекси рядків беремо - для першого рядка, - для третього рядка. Заміна рядків організовується в одновимірному циклі по . На четвертому етапі матриця а повинна бути відображена на екрані. Нам потрібно показати, що заміна рядків виконана верно.На п'ятому етапі перед циклом слід задати , А в тілі циклу налічувати твір. Цикл організуємо одновимірний по від 0 до 2 включно, тому що згідно з формулою змінюється тільки .

Блок-схема для прикладу 3 приведена на Мал. 6.5 .


Мал.6.5.

Блок-схема для прикладу 3

Код програми (Visual Studio) з оператором for:

// proga29.cpp: визначає точку входу для консольного застосування. // #include "stdafx.h" #include <iostream> #include <iomanip> using namespace std; int main () {double a [6] [8]; double S, tmp, P; int i, j; cout << "Massiv a:" << endl; for (i = 0; i <6; i = i + 1) {for (j = 0; j <8; j = j + 1) {a [i] [j] = 3.0 * i-5.0 * j; cout << setw (5) << a [i] [j]; } Cout << endl; } S = 0; for (j = 0; j <8; j = j + 1) {S = S + a [1] [j]; } Cout << "S =" << S << endl; for (j = 0; j <8; j = j + 1) {tmp = a [0] [j]; a [0] [j] = a [2] [j]; a [2] [j] = tmp; } For (i = 0; i <6; i = i + 1) {for (j = 0; j <8; j = j + 1) {cout << setw (5) << a [i] [j ]; } Cout << endl; } P = 1; for (i = 0; i <= 2; i = i + 1) {P = P * (a [i] [1] -a [i] [0]); } Cout << "P =" << P << endl; return 0; } Результат виконання програми:

короткі підсумки

Найпоширенішими видами масивів є одномірні і двовимірні масиви. Статичні масиви легко задавати і використовувати в програмі. Цикли роблять роботу з масивами зручною і доступною.

питання

  1. Що таке масив?
  2. Перерахуйте види масивів.
  3. Що таке індекс?
  4. Як домогтися відображення масиву на екрані у вигляді рівної таблиці?

вправи

  1. Одновимірна масив задати в програмі. Знайти максимальний з негативних елементів і поміняти його місцями з останнім.
  2. Одновимірна масив задати з клавіатури. Знайти суму негативних, кількість позитивних і твір ненульових елементів.
  3. Одновимірна масив задати числами. Знайти середнє арифметичне елементів, що задовольняють умові .
  4. Одновимірна масив задати за формулою . Знайти кількість елементів, що задовольняють умові , Мінімальний елемент.
  5. матрицю задати за формулою . Знайти новий одновимірний масив з творів елементів кожного рядка матриці . Знайти максимальний елемент серед позитивних елементів матриці . Замінити третій елемент в першому рядку матриці на знайдений максимальний елемент.
  6. матрицю задати за формулою . Знайти суму позитивних елементів над головною діагоналлю матриці. Знайти максимальний елемент серед негативних елементів 4-ої рядка. Замінити знайдений максимальний елемент значенням суми.
  7. матрицю задати за формулою . Поміняти місцями першу і останню рядки матриці. підрахувати для елементів кожного рядка матриці за формулою: , де - номер рядка.
Що таке індекс?
Як домогтися відображення масиву на екрані у вигляді рівної таблиці?


Новости
    Без плагина
    На сайте WordPress имеется файл, именуемый как .htaccess. Многие пользователи не предают ему особого внимания и не используют все его возможности. На самом деле файл .htaccess – это дополнительные конфигурации

    Плагин подписки wordpress
    Очень трудно найти один плагин подписки wordpress , который объединил бы в себе все виды подписок, которые так необходимы сайту. Именно поэтому я решил сделать подборку лучших плагинов, которые смогут

    Слайд-шоу с помощью плагина для WordPress UnPointZero Slider
    Плагин для cms WordPress UnPointZero Slider – новостной слайдер. Он отражает в форме слайд-шоу изображения со ссылками на ваши статьи и краткие выдержки оттуда. Его можно установить и на новостной сайт,

    Плагины для Wordpress
    С помощью этого плагина вы легко сможете интегрировать Google диск на ваш WordPress сайт или блог . Gravity Forms — лучший плагин для создания форм на WordPress, от самых простых (например, форма

    Подписки плагином JetPack: размещение и редакция формы подписки
    Вступление Здравствуйте! В этой статье я покажу, как использовать плагин JetPack для создания пользовательской формы подписки и как эту формы подписки плагином JetPack добавлять в статьи сайта, а при

    Чистка сайта WordPress плагином WP-optimize
    От автора Со временем использования система WordPress накапливает не нужные файлы, комментарии и неиспользуемые данные в базе данных. Эти файлы и данные создаются в процессе работы и нужны для этого,

    Возможности Jetpack плагина
    Вступление Возможности Jetpack плагина это более 30 функциональных модуля плагина, делающего его универсальным плагином WordPress, заменяющего аналогичные сторонние плагины. Jetpack один заменяет десятки

    Резервное копирование WordPress сайта без плагинов
    Вступление Резервное копирование WordPress это второе, что нужно научиться делать после установки WordPress. Можно сколько угодно говорить о безопасности сайта и его защите, но лучшего варианта защиты

    Плагины на приват для Майнкрафт ПЕ
    > > Плагины на приват для Майнкрафт ПЕ Порой всем нам хочется попробовать себя в роли администратора сервера и испытать эту ответственность, но, к сожалению, вы не всегда все знаете о создании

    Плагин WordPress Database Backup. Архивация базы данных блога на WordPress
    Привет друзья! Сегодня на очереди еще один простой, НО, необходимый и полезный плагин — плагин WordPress Database Backup , который с легкостью и самостоятельно произведет процесс, который научно называется:

  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью