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 описанием ошибок, с которыми Вы столкнулись при выполнении лабораторной работы.


 

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

36029. Художественное образование как феномен культуры 34 KB
  Содержание художественного образования включает: формирование культурноисторической компетентности подразумевающей изучение теории и истории искусства разных эпох и народов; формирование художественнопрактической компетентности подразумевающей овладение средствами художественной выразительности различных видов искусств; формирование художественного вкуса и оценочных критериев в контексте духовнонравственных и эстетических идеалов. Реализация содержания художественного образования происходит на трех уровнях: формирование отношения...
36030. Формы взаимодействия организмов 34 KB
  Ряд исследователей относят к симбиозу любое сожительство в том числе комменсализм паразитизм а к мутуализму взаимовыгодное сожительство. Подобно паразитизму и симбиозу комменсализм обычно связан с добыванием пищи или поиском необходимого укрытия. Паразитизм форма взаимоотношений между организмами растениями животными микроорганизмами относящимися к разным видам из которых один паразит использует другого хозяина в качестве среды обитания и источника пищи возлагая при всём этом частично или полностью на хозяина регуляцию...
36031. Классификация видов экономического анализа. Особенности в содержании, информационной базе и организации отдельных видов экономического анализа 34 KB
  Классификация видов экономического анализа. Особенности в содержании информационной базе и организации отдельных видов экономического анализа По времени: 1. Ретроспективный исторический посмертный анализ; 2. Оперативный ситуационный анализ; 3.
36032. Происхождение РЯ и основные этапы его становления 31 KB
  В своем историческом развитии русский язык прошел несколько этапов: 1 выделение восточнославянских племен предков русских украинцев и белорусов из общеславянского единства и образование древнерусского языка VI XIV вв. 2 распад древнерусского языка и возникновение языка русской народности XIV XVII вв. и 3 формирование и развитие национального русского языка 2я половина XVII XX в. Первый этап формирования будущего русского языка связан с Киевской Русью феодальным государством восточнославянских племен диалекты которых...
36033. Предмет изучения стилистики 33.5 KB
  Существуют стилистика языка и стилистика речи лингвостилистика и литературоведческая стилистика стилистика от автора и стилистика восприятия стилистика декодирования и др. Стилистика языка исследует с одной стороны специфику языковых подсистем называемых функциональными стилями и подъязыками и характеризующихся своеобразием словаря фразеологии и синтаксиса и с другой стороны экспрессивные эмоциональные и оценочные свойства различных языковых средств. Стилистика речи изучает отдельные реальные тексты рассматривая каким образом...
36034. Глобальные экологические проблемы современности. Пути их преодоления. Концепция устойчивого развития 33 KB
  Концепция устойчивого развития 1 Утилизация радиоактивных отходов Решение:Новые ядерные технологии сконструированны таким системным научным методом согласованного взаимодействия единства противоположностей процессов синтезараспада становятся управляемыми и безотходными. Концепция устойчивого развития основывается на пяти основных принципах. Триединая концепция устойчивого развития – объединение 3х основных точек зрения экономическая социальная экологическая. развития у недоминирующих культур.
36036. Политическая мысль эпохи Возрождения. Н. Макиавелли 31.5 KB
  Идеал 2х направлений: национально независимое суверенное госво в форме республики. В борьбе двух зарождавшихся идеологий либерализма и коммунизма победил либерализм и стал господствующей идеологией в 20 в. Он вводит понятие для определения госва stto госво – это пол оргя обва а политика – умение управлять. Определил предмет п науки – учреждение государств сохранение и управление им создание армии ведение войны.
36037. ассортименту. Под номенклатурой понимается укрупненный перечень изделий предусмотренный планом к выполнен. 33.5 KB
  В начале строится таблица где весь V продукции структурирован по группам видам изделий. Шапка: вид продукции изделие А Б Объем продукции в оптимальных стабильных ценах в к плану единицы измерения оптимальной цены за ед. выпуск продукции в натуральном выражении план и факт выпуск продукции в стоим. 1 Кср =  объемов продукции которая пошла в зачет по номенклатуре  продукции по плану.