Описание двумерного массива в программе

Работа с двумерными массивами— это работа с массивами, состоящими из комплекта одномерных массивов.

Введение

Когда необходимо решить задачу, сопряжённую с обработкой большого объёма информационных данных одного типа, с использованием разных переменных, не прошедших процедуру сортировки, то возникает большое количество проблем при попытке программными средствами осуществить процесс решения. Чтобы облегчить программную реализацию алгоритмов решения таких задач, в аналогичных ситуациях в языках программирования применяют специализированные средства, которые называются массивами.

Замечание 2

Массив представляет собой выделенный участок памяти, содержащий совокупность объектов одного типа и обладающий своим собственным именем.

Массив определяется следующими признаками:

  1. Элементы массива. Под элементом понимается значение, хранящееся в предназначенной для него ячейке памяти, которая расположена в пределах массива и имеет конкретный адрес ячейки памяти.
  2. Массив имеет определённый адрес, являющийся адресом первого компонента массива.
  3. Массив обладает именем, которое считается признаком его идентификации, дающим возможность обращения к элементам массива.
  4. Размер массива. Под размером массива понимается количество входящих в массив компонентов.
  5. Размер элемента массива. Это количество байтов, занимаемых одним компонентом массива.
  6. Размер массива. Это количество байтов, отведённых в памяти для хранения всего комплекта компонентов массива. То есть, длина или величина массива определяется как произведение размера одного элемента массива на их суммарное число.

Любой элемент массива характеризуется следующими параметрами:

Двумерный массив что это. Многомерные массивы. Пример. Теория. Что такое массив. Array. C++ #30

«Работа с двумерными массивами»
Готовые курсовые работы и рефераты
Решение учебных вопросов в 2 клика
Помощь в написании учебной работы

Понятие двумерного массива аналогично понятию матрицы в математике. Применительно к языкам программирования, двумерный массив — это массив, у которого в качестве элементов выступают одномерные массивы.

Работа с двумерными массивами

С точки зрения размеров массивы подразделяются на одномерные, двумерные и многомерные. Под многомерными понимаются массивы, которые имеют больше одного индекса. Многомерные массивы могут быть представлены как набор элементов, которые расположены по разным координатам. В частности, двумерный массив в графике можно изобразить следующим образом:

1[][][][][] 2[][][][][] 3[][][][][]

Паскаль — Урок 11: Двумерные массивы

Последний урок паскаль был написан аж 7 марта, тогда мы разбирали одномерные массивы. Сегодня мы узнаем, что такое двумерный массив в паскале, как он описывается и что он из себя представляет. Подробнее далее.

Читайте также:
Название игровой программы к 23 февраля

Итак, что же такое двумерный массив? Для лёгкого восприятия представим одномерный массив как линию, а которой все элементы идут друг за другом горизонтально, а двумерный как квадрат, в котором элементы расположены как горизонтально, так и вертикально. Двумерный массив состоит из строчек и столбцов, их также называют матрицей или матричным массивом.

Двумерные массивы вывод. Заполнение. Двумерный массив циклы. C++ для начинающих. #32

Как описываются двумерные массивы? Для записи двумерных массивов есть несколько способов, я рассмотрю 2 из них.

1 способ описание массива: array [1..m, 1..n] of тип переменных в массиве (integer/real/byte);

2 способ описания массива: array [1..m] of array [1..n] of тип переменных в массиве;

Сначала описываются строки (1..m), а потом столбцы (1..n).

Во втором способе описывается как бы два одномерных массива, которые вместе образуют один двумерный.

Двумерный массив может описываться в разделе Type, для последующего обращения к нему несколько раз или же в разделе описания переменных Var, хочу обратить внимание, что вместо m и n можно подставить и числа, а можно и пользоваться константами.

Пример задания двумерного массива в разделе описания переменных:

Const
m = 100;
n = 100;
var
a: Array [1..m, 1..n] of integer;

В этом случае мы задали двумерный массив a размера 100 на 100, то есть у нас получилась квадратная матрица.

Пример задания матричного массива при помощи раздела Type:

Const
m = 100;
n = 100;
Type
Matrix = Array [1..m, 1..n] of integer;
var
a: Matrix;
b:Matrix;

Во втором примере мы задали два одинаковых матричных массива размерами 100 на 100, при описании массива b нам не пришлось снова описывать его размеры и тип данных.

Как обращаться к ячейке-переменной двумерного массива?

Чтобы обратиться к двумерному массиву, нужно указать сначала номер строки, а потом номер столбца следующим образом:

x:=a[i,j];

x-любая переменная, a — название массива, i-номер строки, j — номер столбца.

Причём i и j может быть как переменными, так и целыми числами.

Пример записи данных в массив:

For i:= 1 to n do //задание в цикле номера строки
For j:=1 to m do //задание в цикле номера столбца
a[i,j]:=random (100);

//присваивание ячейке с номером строки i и номером столбца j случайного значения

Массивы

У двумерного массива имеется два индекса: i– номер строки, j– номер столбца.

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

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


Рис. 6.4. Индексация двумерного массива

Для использования двумерного массива в программе необходимо:

  1. Объявить массив в функции main() :
Читайте также:
Какая программа для скачивания видео с ВК

тип_данных имя_массива [количество строк][количество столбцов]; double a[5][9]; // двумерный массив из 5 строк, 9 столбцов

Способы инициализации двумерного массива a[n][m]представлены в таблице 6.4. Обратим внимание на то, что числа nи mизвестны заранее и в программе фигурировать не будут.

double a[n][m]; int i,j; fstream file; file.open(«1.txt», ios::in); for(i=0; i>a[i][j]; > > file.close();

double a[n][m]; int i,j; for(i=0; i >

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

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

for(i=0; i cout

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

s=0; for(i=0; i > cout

2. нахождение произведения: Описание двумерного массива в программе p=1; for(i=0; i > cout 3. нахождение среднего арифметического и количества элементов: Описание двумерного массива в программе s=0, k=0; for(i=0; i > s=s/k; cout 4. нахождение максимального элемента: Описание двумерного массива в программе max=-10E10; imax=0; jmax=0; for(i=0; imax) < max=a[i][j]; imax=i; jmax=j; >> > cout 5. нахождение минимального элемента: Описание двумерного массива в программе min=10E10; imin=0; jmin=0; for(i=0; i > > cout 6. поменять элементы i1, j1и i2, j2местами: Описание двумерного массива в программе tmp=a[i1][j1]; a[i1][j1]=a[i2][j2]; a[i2][j2]=tmp;

for(j=0; j

for(i=0; i

s=0; for(i=0; i cout

Условия для исследования квадратной матрицы (количество строк и столбцов совпадает):

    для элементов на главной диагонали: i=j; для элементов над главной диагональю: i<j; для элементов под главной диагональю: i>j; для элементов на побочной диагонали: i+j=n-1; для элементов над побочной диагональю: i+j<n-1; для элементов под побочной диагональю: i+j>n-1.

Примечание. Если требуется определить, например, сумму элементов, находящихся над главной диагональю, то задаем двумерный цикл по i, jи в теле цикла ставим дополнительное условие «i<j«

Пример 3. Массива(6, 8)задан формулой а_<i,j>=3i-5j. Найти сумму элементов во второй строке, поменять местами первую и третью строки, найти произведение по формуле P=prod^2_<i=0>(a_-a_)

.

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

    задать массив по формуле и вывести его на экран; найти сумму элементов во второй строке и вывести ее на экран; поменять местами первую и третью строки; вывести на экран измененный массив; найти произведение по формуле и вывести его на экран.

Каждый указанный этап решается с помощью циклов. Все циклы целесообразно использовать с предусловием (в программе – оператор for).

На первом этапе следует организовать двумерный цикл по i, по j, т.к. необходимо задать значениями и вывести на экран весь массив. На втором этапе перед циклом необходимо задать S=0

, а в теле цикла по jнасчитывать значениеS.

Читайте также:
Почему при установке программы выдает ошибку

Индексiзадаем как 1, что соответствует второй строке. Следует отметить, что нельзя считать сумму по какой-то определенной строке (столбце, диагонали) внутри двумерного цикла, т.к. в этом случае Sбудет больше в разы (зависит от количества строк/столбцов).На третьем этапе индексы строк берем i=0– для первой строки, i=2– для третьей строки.

Замена строк организуется в одномерном цикле по j. На четвертом этапе матрица а должна быть отображена на экране. Нам требуется показать, что замена строк выполнена верно.На пятом этапе перед циклом следует задать P=1, а в теле цикла насчитывать произведение. Цикл организуем одномерный по iот 0 до 2 включительно, т.к. согласно формуле изменяется только i.

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

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

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

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

// proga29.cpp: определяет точку входа для консольного приложения. // #include «stdafx.h» #include #include using namespace std; int main() < double a[6][8]; double S, tmp, P; int i, j; coutcout S=0; for(j=0; j cout for(i=0; i cout P=1; for(i=0; i cout<

div xmlns_edi=»http://www.intuit.ru/2010/edi» >

Результат выполнения программы:

Краткие итоги

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

Вопросы

  1. Что такое массив?
  2. Перечислите виды массивов.
  3. Что такое индекс?
  4. Как добиться отображения массива на экране в виде ровной таблицы?

Упражнения

  1. Одномерный массив Х(8)задать в программе. Найти максимальный из отрицательных элементов и поменять его местами с последним.
  2. Одномерный массив Х(10)задать с клавиатуры. Найти сумму отрицательных, количество положительных и произведение ненулевых элементов.
  3. Одномерный массив Х(15)задать числами. Найти среднее арифметическое элементов, удовлетворяющих условию cos(x_i)<0.
  4. Одномерный массив Х(12)задать по формуле X[i]=ln(i+0,1). Найти количество элементов, удовлетворяющих условию -0,5<sin(x_i)le 0, минимальный элемент.
  5. Матрицу А(5,5)задать по формуле A[i,j]=4sin(7,1i+j). Найти новый одномерный массив Сиз произведений элементов каждой строки матрицы А. Найти максимальный элемент среди положительных элементов матрицы А. Заменить третий элемент в первой строке матрицы Ана найденный максимальный элемент.
  6. Матрицу А(7,7)задать по формуле А[i,j]=sin(0,1j+i). Найти сумму положительных элементов над главной диагональю матрицы. Найти максимальный элемент среди отрицательных элементов 4-ой строки. Заменить найденный максимальный элемент значением суммы.
  7. Матрицу А(5,3)задать по формуле А[i,j]=sin(i+0,4)+cos(j+0,2). Поменять местами первую и последнюю строки матрицы. Подсчитать S_iдля элементов каждой строки матрицы по формуле: S_i=5+sum^2_<j=0>frac+a^2_>, где i– номер строки.

Источник: intuit.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru