4283

Работа с массивами в языке С++

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

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

Работа с массивами в языке С++ 1 Цель работы Получение практических навыков в работе с массивами. В ходе выполнения работы необходимо создать программу, которая определяет и инициализирует двумерный массив целых значений и затем выполняет след...

Украинкский

2012-11-15

70.5 KB

22 чел.

Работа с массивами в языке С++

1 Цель работы 

Получение практических навыков в работе с массивами.

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

  •  чтение данных с консоли;
  •  преобразование исходного массива в соответствии с шагом один из индивидуального задания;
  •  создание и заполнение нового (одномерного) массива типа double  элементами, полученными в соответствии с шагом два из индивидуального задания;
  •  вывод результатов (оба массива).

Программа должна выводить ошибки, если преобразование или заполнение массивов невозможно.

При создании одномерного динамического массива используется оператор new и удаляется он перед концом программы с помощью оператора delete.

Таблица 1.1 – Индивидуальные задания

Номер студента в списке

Преобразование исходного массива (шаг один)

Заполнение нового массива преобразованными элементами исходного массива (шаг два). Результир. массив должен содержать:

Количество строк m

Количество столбцов n

1

Удвоить нечетные элементы

Квадратные корни минимальных положительных элементов строк

4

3

2

Четные элементы заменить их квадратами

Кубические корни минимальных элементов столбцов

3

5

3

Нулевые элементы заменить на единицы

Натуральные логарифмы максимальных положительных элементов строк

3

4

4

Удвоить четные элементы

Натуральные логарифмы минимальных положительных элементов столбцов

4

5

5

Все элементы заменить на их модули

Минимальные элементы столбцов

5

4

6

Утроить четные элементы

Кубические корни диагональных элементов

3

3


7

Все положительные элементы заменить их десятичные логарифмы

Суммы отрицательных элементов столбцов

4

5

8

Все отрицательные элементы заменить на их квадраты

Квадратные корни диагональных элементов

4

4

9

Все положительные элементы заменить на их натуральные логарифмы

Произведение отрицательных элементов строк

5

4

10

Все положительные элементы заменить на их квадратные корни

Максимальные положительные элементы строк

3

5

11

Удвоить положительные четные элементы

Кубические корни максимальных элементов столбцов

5

4

12

Утроить отрицательные нечетные элементы

Квадратные корни минимальных положительных элементов столбцов

3

4

13

Удвоить отрицательные нечетные элементы

Сумму десятичных логарифмов положительных элементов строк

4

3

14

Утроить положительные четные элементы

Частное от деления максимальных положительных элементов столбцов на их десятичные логарифмы

3

5

Чтобы использовать стандартные математические функции вам необходимо подключить заголовочный файл cmath. В таблице 1.2  представлены некоторые используемые функции.

Таблица 1.2 – Используемые функции

double sqrt(double x);

Берет квадратный корень положительного числа

double pow(double x, double y);

Возводит x в степень y

double log(double x);

Вычисляет натуральный логарифм

double log10(double x);

Вычисляет десятичный логарифм.

int abs(int x);

Возвращает модуль целого числа

double fabs(double x);

Возвращает модуль вещественного числа

double sin(double x);

Вычисляет синус числа

double cos(double x);

Вычисляет косинус числа

double atan(double x);

Вычисляет тангенс числа

2 Теоретические сведения

2.1Массивы

Массивы относятся к так называемым сложным, или составным типам данных. Массив - это структура данных, состоящая из элементов одного типа. В отличие от других структур данных (например, списков), элементы массивов всегда последовательно расположены в памяти.

При объявлении массива после идентификатора в квадратных скобках задается константа (в частности именованная или константное выражение) - число элементов массива:

int a[5];        // Массив из пяти элементов типа int

const int n = 5;

double a1[n];    // Массив из пяти элементов типа double 

Число элементов массива нельзя задавать переменной или неконстантным выражением. Массив может инициализироваться списком значений в фигурных скобках:

int b[4] = {1, 2, 3, 4};

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

int c[] = {1, 2, 3}; // Массив из трех элементов типа int 

Если размерность массива больше числа значений в списке, то не инициализированные явно элементы массива будут установлены в 0 (значение по умолчанию). Если размерность массива меньше числа значений в списке, возникнет ошибка компиляции.

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

Доступ к каждому элементу осуществляется по его номеру в массиве (индексу), который указывается после имени массива в квадратных скобках. В качестве индекса массива может использоваться любое выражение, которое приводится к целочисленному значению. Индексы элементов массива всегда начинаются с 0, индекс последнего элемента на единицу меньше числа элементов в массиве. Размерность массива известна транслятору только в момент определения массива. При использовании стандартных массивов невозможен какой-либо автоматический контроль выхода за пределы массива.

2.2 Многомерные массивы

Массивы с размерностью 2 и более рассматриваются как массивы массивов и для каждого измерения указывается число элементов:

double aa[2][2] = {1, 2, 3, 4}; // Матрица 2 * 2

То же самое, но более наглядно:

double aa[2][2] = {{1, 2},

                  {3, 4}};

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

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

int i = 0, j = 1;

aa[i][j] = i + j;

Элементы многомерных массивов в памяти выстраиваются в одномерную структуру (массив), в которой в начале стоят элементы первой строки, потом второй и т.д.

3 Порядок выполнения работы

1. Разработать алгоритм для решения поставленной задачи.

2. Разработать программу для решения поставленной задачи (использовать условные операторы и операторы цикла).

3. Проверить работоспособность программы на тестовых данных.

4. Сохранить результаты работы. Оформить отчет по лабораторной работе.

Содержание отчета:

  1.  Титульный лист.
  2.  Название лабораторной работы.
  3.  Цель лабораторной работы.
  4.  Ход выполнения работы (включить алгоритм решения задачи; программный код; пример использования программы).
  5.  Выводы по проделанной работе c описанием ошибок, с которыми Вы столкнулись при выполнении лабораторной работы.


 

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

62105. Теорема Виета 31.88 KB
  В соответствии с этим можно выделить следующие структурные элементы данного урока: 1 проверка домашнего задания; 2 подведение учащихся к теореме Виета; 3 формулирование теоремы Виета; 4 доказательство теоремы Виета...
62112. Повторение на уроках истории в дореволюционной школе 42.49 KB
  Необходимо постоянное классное повторение ил урока в урок всего самого первостепенного самого существенного что позволит ученикам видеть в истории нечто целое. Повторение это не механическое воспроизведение изученного...
62113. Позакласна робота з інформатики 36.59 KB
  Можна виділити основні вимоги до організації позакласної роботи в школі: залучення до позакласної діяльності учнів з урахуванням їхніх інтересів і здібностей; органічна єдність навчальної і позакласної діяльності...