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


 

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

21384. Приемное устройство обнаружения 116.44 KB
  1 кГц; режим АВТОМАТ. 10 кГц. Технические характеристики Разрешающая способность прибора: в режиме ПОНОРАМА: 1МГц – в поддиапазоне 300 кГц – в секторе; в полосе анализа 250 кГц – 8 кГц; в полосе анализа 1 МГц – 30 кГц; в полосе анализа 50 кГц – 3 кГц. Время анализа: в пределах поддиапазона – 1 сек; в пределах сектора – 03 сек; в полосах обзора 1 МГц 250 кГц 50 кГц – 30 мс.
21385. Приемное устройство обнаружения. Приемник дискретный АШ404 57 KB
  Приемное устройство обнаружения предназначено для автоматической настройки на заданную частоту определения вида модуляции и спектрального анализа сигнала. Прибор АШ – 404 предназначен для автоматической настройки на разведанную частоту ее усиления и уточнения определения вида модуляции принимаемого сигнала и формирования усиленной 1ПЧ необходимой для работы анализатора спектра. Прибор позволяет автоматически определять вид модуляции принимаемого сигнала. Блок приемного устройства производит селекцию усиление принимаемого сигнала и его...
21386. Передающее устройство ВГ-020 37.25 KB
  Диапазон частот передатчика 100 – 400 МГц. Мощность на выходе передатчика не менее 1000 Вт. Время перестройки передатчика на любую частоту 2 мс. Потребляемая мощность передатчика не более 16 кВт без системы охлаждения.
21387. Система электропитания станции. Меры безопасности при работе на станции помех 58.25 KB
  Устройство и принцип работы АСП Р 934У Занятие №6Система электропитания станции. Меры безопасности при работе на станции помех Вопрос№1 Назначение технические характеристики состав устройство и принцип работы системы электропитания. Система электропитания станции предназначена для обеспечения питанием аппаратуры изделия защиты цепей питания от коротких замыканий и перегрузок коммутации цепей а также защиты обслуживающего персонала от поражения электрическим током. Технические характеристики Система электропитания обеспечивает...
21388. ПРАВО СОБСТВЕННОСТИ И ДРУГИЕ ВЕЩНЫЕ ПРАВА 23.75 KB
  наиболее крупные структурные подразделения отдельной отрасли права Это совокупность ГП норм регулирующих отношения собственности Содержание этих норм направленных на регулирование отношений собственности все цело определяются специфическими особенностями Частные имущественные отношения собственности отличаются от других ЧИО ПОНЯТИЕ ОТНОШЕНИЙ СОБСТВЕННОСТИ Собственность как экономическая категория Большинство экономистов и юристов давно поняли что собственность это не вещь и не отношение к вещи а это отношения которые складываются между...
21389. Другие вещные права 21.76 KB
  Вещное право предоставляет управмочнному лицу юр возможность удовлетворять свои потребости за счёт непосредственного взаимодейтсвия с вещью. Вещное право это право не на какуюто вещь право на поведение других. Для удовлетворения потребностей человек нуждается в вещах но зачем ему право если у него есть вещь а это объясняется следующим что удовлетворенияе потребностей в обещстве и любое вещное право и нужно чтобы обеспечить такое повдееие со строны окружающ с при котором можно было бы бесперпятсвенно удовлторять свои потребности за...
21390. ОСНОВАНИЕ ВОЗНИКНОВЕНИЕ И ПРЕКРАЩЕНИЕ ВЕЩНЫХ И ДРУГИХ ПРАВ 23.58 KB
  право собственности т. такой критерий не работает Мы опираемся на критерий воли собственника ПЕРВОНАЧАЛЬНЫЕ СПОСОБЫ Производство изготовление создание вещей: статья 218 ГК: лицо создавшее вещь для себя с соблюдением требования закона становится собственником этой вещи при этом для движимой вещи право собственности в момент ее создания а для недвижимости статья 219 ГК: право собственности на здания сооружения и другое вновь созданное имущество подлежащее гос регистрации возникает с момента такой регистрации Спецификация: изготовление...
21391. ГРАЖДАНСКОЕ ПРАВО КАК ОТРАСЛЬ ПРАВА 26.5 KB
  надо выявить те свойства которые входят в предмет одной отрасли гражданского права Легальное определение статья 2 ГК РФ: перечень наиболее типычных общественных отношений входящих в ГП: отношения собственности обязательственные отношения результаты по поводу интеллектуальной деятельности; предмет ГП входят имущественные и личные неимущественные отношения основанные на равенстве автономии воли и имущественной самостоятельности их участников Определяются внешние признаки В научном определении включаются сущностные признаки т. все обществеенные...
21392. ПРИНЦИПЫ ГРАЖДАНСКОГО ПРАВА 19.19 KB
  их применение все цело зависит от усмотрения участников ГО статья 617; императивных норм гораздо меньше один из недостатков что их еще достаточно много что явно не оправданно статья 807договор займа реальный договор Пункт 1 статья 9 субъекты ГП по своему усмотрению осуществляют принадлежащие им субъективные права в плановой экономике не редко субъекты осуществляли свои права по указанию другихсвобода усмотрения при осуществлении ими своих субъективных прав не безгранична и существует статья 10 пределы осуществления гражданских прав...