Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Теоретические сведения. Представление данных в виде отдельных переменных не всегда достаточно при программировании реальных задач




Представление данных в виде отдельных переменных не всегда достаточно при программировании реальных задач. Например, для представления поведения сигнала во времени или хранения информации об изображении удобно использовать специальный тип данных – массивы. Одномерные массивы можно ассоциировать с компонентами вектора, а двумерные – с матрицами. В общем случае массив – это набор элементов данных одного типа, для объявления которого используется следующий синтаксис:

<тип данных> <имя массива>[число элементов];

Например,

int array_int[100]; //одномерный массив 100 целочисленных

// элементов

double array_d[25]; //одномерный массив 25 вещественных

// элементов

Как видно из примеров, объявление массивов отличается от объявления обычных переменных наличием квадратных скобок [].Также имена массивов выбираются по тем же правилам, что и имена переменных. Обращение к отдельному элементу массива осуществляется по номеру его индекса. Следующий фрагмент программы демонстрирует запись в массив значений линейной функции f (x) = kx + b и вывода значений на экран:

double k=0.5, b = 10.0; double f[100];

for(int x=0;i < 100;i++)

{

f[i] = k*x+b; printf(“%.2f ”,f[i]);

}

В языке С предусмотрена возможность инициализации массива в момент его объявления, например, таким образом

int powers[4] = {1, 2, 4, 6};

В этом случае элементу powers[0] присваивается значение 1, powers[1] – 2, и т.д. Особенностью инициализации массивов является то, что их размер можно задавать только константами, а не переменными. Например, следующая программа приведет к ошибке при компиляции:

int N=100;

float array_f[N]; //ошибка, так нельзя

Поэтому при объявлении массивов обычно используют такой подход:

#include <stdio.h>

#define N 100

int main()

{

float array_f[N]; return 0;

}

Следует отметить, что при инициализации массивов число их элементов должно совпадать с его размерностью. Рассмотрим вариант, когда число элементов при инициализации будет меньше размерности массива.

#define SIZE 4

int data[SIZE]={512, 1024}; for(int i = 0;i < SIZE;i++)

printf(“%d, \n”,data[i]);

Результат работы программы будет следующим: 512, 1024, 0, 0

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

int data[] = {2, 16, 32, 64, 128, 256};

В результате инициализируется одномерный массив размерностью 6 элементов. Здесь остается последний вопрос: что будет, если значение индекса при обращении к элементу массива превысит его размерность? В этом случае ни программа, ни компилятор не выдадут значение об ошибке, но при этом в программе могут возникать непредвиденные ошибки. Поэтому программисту следует обращать особое внимание на то, чтобы индексы при обращении к элементам массива не выходили за его пределы. Также следует отметить, что первый элемент массива всегда имеет индекс 0, второй – 1, и т.д.

Для хранения некоторых видов информации, например, изображений удобно пользоваться двумерными массивами. Объявление двумерных массивов осуществляется следующим образом:

int array2D[100][20];//двумерный массив 100х20 элементов

Нумерация элементов также начинается с нуля, т.е. array2D[0][0] соответствует первому элементу, array2D[0][1] – элементу первой строки, второго столбца и т.д. Для начальной инициализации двумерного массива может использоваться следующая конструкция:

long array2D[3][2] = {{1, 2}, {3, 4}, {5, 6}};

или

long array2D[][] = {{1, 2}, {3, 4}, {5, 6}};

В общем случае можно задать массив любой размерности и правила работы с ними аналогичны правилам работы с одномерными и двумерными массивами.

Варианты заданий

 

 

Вариант Одномерный массив Двумерный массив
  Записать в массив значения функции f (x) = kx + b, при x = 1,2,...,100 и вывести его на экран Занести в массив значения функции f (x, y) = x + y, 0 ≤ x ≤ 20, 0 ≤ y ≤ 10 и вывести его на экран
  Записать в массив значения функции f (x) = a sin(x /100), при x = 1,2,...,100 и вывести его на экран Написать программу ввода в массив 5x4 элемента чисел и поиска в нем максимального значения
  Написать программу ввода в массив 20 чисел и поиска в нем максимального значения Занести в массив значения функции f (x, y) = 1/(x + y), 0 ≤ x ≤ 30, 1 ≤ y ≤ 20 и вывести его на экран
  Записать в массив значения функции f (x) = a cos(x / 50), при x = 1,2,...,100 и вывести его на экран Написать программу ввода в массив 6x3 элемента чисел и поиска в нем минимального значения
  Написать программу ввода в массив 10 чисел и поиска в нем минимального значения Занести в массив значения функции f (x, y) = (x + y)2, 0 ≤ x ≤ 5, 0 ≤ y ≤ 3 и вывести его на экран
  Записать в массив значения функции f (x) = x 2 + b, при x = 1,2,...,10 и вывести его на экран Написать программу ввода в массив 6x5 элементов чисел и вычисления суммы элементов полученного массива
  Написать программу ввода в массив 20 чисел и вычисления суммы элементов полученного массива Занести в массив значения функции f (x, y) = 1/((x − y)2 + 1), 0 ≤ x ≤ 5, 0 ≤ y ≤ 10 и вывести его на экран
  Написать программу ввода в массив 5 чисел и вычисления произведения элементов полученного массива Написать программу ввода в массив 3x3 элемента чисел и вычисления произведения элементов полученного массива
  Записать в массив значения функции f (x) = 1/ x + b, при x = 1,2,...,50 и вывести его на экран Занести в массив значения функции f (x, y) = x − y, 0 ≤ x ≤ 20, 0 ≤ y ≤ 10 и вывести его на экран
  Написать программу ввода в массив 10 чисел и поиска в нем модуля максимального значения Написать программу ввода в массив 4х4 элементов чисел и поиска в нем модуля максимального значения

Контрольные вопросы

 

 

1. Каким образом задаются одномерные массивы в языке С?

2. Запишите массив целых чисел с начальными значениями 1, 2 и 3.

3. Каким образом задаются двумерные массивы в языке С?

4. В чем преимущества массивов перед переменными?

5. Как записать значение в элемент массива?

6. Как отобразить элементы массива на экране монитора?

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных