Сложные типы данных: одномерные массивы — КиберПедия 

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Сложные типы данных: одномерные массивы

2017-10-01 512
Сложные типы данных: одномерные массивы 0.00 из 5.00 0 оценок
Заказать работу

Массив – это совокупность элементов любого одного допустимого типа. Элементы массива образуют последовательность, упорядоченную по номерам их элементов. Форма объявления массива:

имя_типа имя_массива [k1] [k2] … [kn];

где k1..kn – количество элементов массива по 1.. n измерениям.

Следует учитывать, что размер и размерность массива имеют различные значения.

Объявление целочисленного массива:

int a[5];

Объявление массива символов:

char str[7];

Массивы можно инициализировать при объявлении:

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

или

int a[ ] = {-125, 13, 34, -78, -2, 11, 45};

Обращение к элементам массива:

a[2] = 1;

a[0] = -5;

 

Задание 3. Выполните задания в соответствие с индивидуальным вариантом. Введите с клавиатуры массив-вектор А из 10 элементов. Затем нужно:

3.1. Найти наибольший элемент и поменять его местами с первым элементом. Преобразованный массив вывести на экран.

3.2. Найти наименьший элемент и поменять его местами с последним элементом. Преобразованный массив вывести на экран.

3.3. Найти произведение положительных элементов и вывести его на экран.

3.4. Найти произведение отрицательных элементов и вывести его на экран.

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

3.6. Найти сумму отрицательных элементов и вывести ее на экран.

3.7. Найти сумму элементов, больших 3 и меньших 8, и вывести ее на экран.

3.8. Найти сумму элементов, меньших 5 (по модулю), и вывести ее на экран.

3.9. Отсортировать вектор по возрастанию и убыванию методом «пузырька».

3.10. Отсортировать вектор по возрастанию и убыванию любым способом (кроме метода «пузырька»).


 

Сложные типы данных: двумерные массивы. Псевдослучайные числа

Объявление двумерного целочисленного массива:

int mas [10][20];

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

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

int a[2][4] = { {1, 2, 4, -1}, // элементы 0-ой строки

{2, 5, 7, 0}}; // элементы 1-ой строки

Обращение к элементам массива:

b[1][1] = 12;

 

Пример. Перед выполнением индивидуального задания создайте в среде Microsoft Visual Studio проект обработки двумерного массива с исходным кодом на С++:

// подключение заголовочных файлов

#include "stdio.h"

#include <stdlib.h> // библиотека с описанием функций rand, srand;

#include <iomanip.h> // для setw

#include <time.h> // содержит описание функций для работы с

// системным таймером

#include "iostream.h"

using namespace std;

 

int main(int argc, char* argv[])

{

char * str = "|--------------------------------------|\n"

"| |\n"

"| Task 5 (Example) |\n"

"| |\n"

"|--------------------------------------|\n";

cout << str;

// объявление переменных:

const int M = 5, N = 7;

float mas[M][N], max, min;

int i, j;

// установка генератора случайных чисел функцией srand

srand(time(0));

// инициализация элементов матрицы случайными числами

for (i=0; i<M; i++)

{

for (j=0; j<N; j++)

{

mas[i][j] = (float)rand()/100;

}

}

cout << "\n---------------------------------------------------\n\n\n";

// вывод элементов матрицы в виде таблицы:

for (i=0; i<M; i++)

{

cout << "\n";

for (j=0; j<N; j++)

cout << setw(3)<< mas[i][j] << "\t";

}

cout << "\n---------------------------------------------------\n";

// Поиск минимального и максимального элемента в матрице:

max = min = mas[0][0];

for (i=0; i<M; i++)

for (j=0; j<N; j++)

{

if (mas[i][j] > max)

max = mas[i][j];

if (mas[i][j] < min)

min = mas[i][j];

}

cout << "Maximum = " << setw(3)<< max;

cout << setw(3) << "\nMinimum = " << setw(3)<< min << "\n";

system("PAUSE");

return 0;

}

После набора исходного кода откомпилируйте программу, запустите ее на

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

В данном исходном коде наибольший интерес представляют функции:

rand()

srand(int)

time(0)

Функция rand() возвращает псевдослучайное число типа int. Для инициализации генератора псевдослучайных чисел применяется функция srand().

Для того чтобы последовательность псевдослучайных чисел была каждый раз новая (не повторялась при разных запусках программы), необходимо передавать в качестве параметра в функцию srand() случайное значение. Таким значением является значение, возвращаемое функцией time(0).

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

Задание 4

4.1. Даны матрица A размером m*n и вектор В размером m. Записать в главную диагональ элементы вектора, а в вектор - элементы главной диагонали. Матрицу А, вектор В и результаты вывести на экран.

4.2. Найти максимальный элемент матрицы С (размер m*n), элементы четных строк разделить на максимальный элемент, а к элементам нечетных прибавить максимальный элемент. Исходную и результирующую матрицы вывести на экран.

4.3. Найти минимальный элемент матрицы С (размер m*n) и поменять его местами с первым элементом. Исходную и результирующую матрицы вывести на экран.

4.4. Дана матрица Е размером m*n. Вычислить суммы элементов каждого столбца. Определить наибольшее значение суммы и номер соответствующего столбца. Исходную матрицу, максимальную сумму и номер столбца вывести на экран.

4.5. В матрице К размером m*n найти в каждом столбце произведение отрицательных элементов и количество нулевых элементов в матрице. Исходную матрицу, произведение и количество нулевых элементов вывести на экран.

4.6. Даны две матрицы А и В одинаковой размерности m*n. Получить матрицу C = max (a i j, b i j) и матрицу D = min (a i j, b i j). Исходные и результирующие матрицы вывести на экран.

4.7. Дана матрица Р размером m*n. Найти сумму минимальных элементов каждого столбца матрицы. Исходную матрицу и сумму вывести на экран.

4.8. Даны две матрицы: А размером m*k и В размером k*n. Получить матрицу С=A*В. Исходные и результирующие матрицы вывести на экран.

4.9. Найти сумму и произведение элементов главных диагоналей квадратной матрицы. Исходную матрицу и результаты вывести на экран.

4.10. Транспонировать (поменять местами строки и столбцы) матрицу m*n. Исходную и результирующую матрицу вывести на экран.


Поделиться с друзьями:

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

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.017 с.