Здавалка
Главная | Обратная связь

Формирование значений элементов массива случайным образом



Очень часто значения элементов массива вводятся с клавиатуры. Этот способ задания информации слишком трудоемок при работе с массивами больших размеров. Для отладки широкого класса алгоритмов такой ввод информации должен быть заменен на формирование элементов массива случайным образом. Для этого используют встроенные средства C# для генерации случайных чисел. Вы уже сталкивались с этими средствами в лабораторной работе 3.

Пример 8. Формирование массива случайным образом (фрагмент программы).

Random random = new Random(); for (int i=0;i<=n-1;i++)/*пробегая последовательно строки массива*/ for (int j=0;j<=m-1;j++) /*просмотрим каждую ее ячейку текущего столбца*/ X[i, j]= random.Next(1,50); /*и запишем туда случайное число, которое сформирует компьютер в диапазоне [1..50]*/

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

Так как элементы могут повторяться, то договоримся, что будем запоминать только индексы первого максимального элемента. Опишем фрагмент программы, результатом которой является значение максимального элемента и индексы первой встречи такого значения.

Пример 9. Найти максимальный элемент массива и его индексы.

Max = X[1, 1]; /*Предположим, что максимумом является первый элемент*/ Maxi = 1; /*в этом случае запомним первую строку*/ Maxj = 1; /*и первый столбец*/ for (int i=0;i<=n-1;i++) for (int j=0;j<=m-1;j++) if (X[i, j] > Max) /*если среди элементов массива нашелся больший элемент, то*/ { Max = X[i, j];/*внесем новое найденное значение в переменную Мах*/ Maxi = i; /*и не забудем запомнить индексы строки*/ Maxj = j; /*и столбца этого элемента*/ }

Определение соответствия данного массива некоторому условию

Пример 10. Определить, является ли данный квадратный массив симметричным относительно своей главной диагонали.

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

Заметим, что если массив является симметричным, то для него выполняется равенство
A[i, j]=A[j, i] для всех i=1, ..., n и j=1, ..., n. Введем булеву переменную Flag, которая примет значение False, если матрица несимметрична. Фрагмент программы будет следующим:

bool Flag = true; /*Предполагаем, что матрица симметрична*/ i = 2; while (Flag && (i<n)) { j = 1; while ((j<i) && (X[i, j]==X[j, i])) j++; Flag = (j==i); i++; } Check2 = Flag;

Контрольные задания

Во всех заданиях выводить массивы ДО преобразования и ПОСЛЕ

Задание 1.

Даны целочисленные массивы X и Y с разным количеством элементов. Найти разность между положительными и отрицательными элементами в этих массивов.

 

2. Даны массивы вещественных чисел A и B с одинаковым количеством элементов. Найти количество положительных и отрицательных элементов для каждого из массивов.

 

3. Даны целочисленные массивы S и T с разным количеством элементов. Каждый из массивов содержит несколько нулевых элементов. Найти в каком из массивов количество нулевых элементов больше.

 

4. Даны массивы вещественных чисел A и B с одинаковым количеством элементов. Найти разность между средним арифметическим каждого массива.

 

5. Даны целочисленные массивы S и T с разным количеством элементов. Найти сумму четных элементов в обоих массивах.

 

6. Даны массивы вещественных чисел A и B с одинаковым количеством элементов. Найти сумму положительных элементов в этих массивах.

 

7. Даны массивы вещественных чисел A и B с одинаковым количеством элементов. Найти сколько отрицательных элементов в этих массивах имеют четный индекс.

 

8. Даны целочисленные массивы S и T с разным количеством элементов. Найти количество элементов в этих массива равных первому элементу массива S.

 

9. Даны целочисленные массивы X и Y с разным количеством элементов. Найти минимальные элементы этих массивах среди элементов, имеющих четный индекс.

 

10. Даны целочисленные массивы X и Y с разным количеством элементов. Найти максимальные элементы в этих массивах среди элементов, имеющих нечетный индекс

 

Задание 2.

  1. Рост учеников в классе представлен в виде массива. Рост девочек кодируется знаком “+”, а рост мальчиков кодируется знаком “-”. Определите средний рост мальчиков и средний рост девочек. Переставьте элементы таким образом, чтобы сначала шли данные девочек, затем данные мальчиков.
  2. В массиве X(N) каждый элемент равен 0, 1 или 2. Переставить элементы массива так, чтобы сначала располагались все нули, затем все остальные элементы (дополнительного массива не заводить).
  3. В заданной последовательности все элементы, не равные нулю, расположить сохраняя их порядок следования, в начале последовательности, а нулевые элементы - в конце последовательности.
  4. Дан одномерный массив чисел. Определите сумму его элементов, стоящих на нечетных местах
  5. Дан одномерный массив чисел. Определите сумму элементов, больших данного числа А (А вводить с клавиатуры).
  6. Дан одномерный массив чисел. Определите сумму элементов, принадлежащих промежутку от А до В (А и В водить с клавиатуры).
  7. Задан массив размером N. Вычислить среднее значение элементов массива.
  8. Дан одномерный массив чисел, в котором есть положительные, отрицательные и нулевые элементы. Вычислить среднее арифметическое положительных элементов и заменить им последний элемент массива.
  9. Дан одномерный массив чисел, в котором есть положительные, отрицательные и нулевые элементы. Вычислить среднее арифметическое положительных элементов, значение которых больше К и заменить им первый элемент массива.
  10. Составьте программу определения количества элементов массива, больших среднего арифметического всех его элементов.
  11. В массиве А[20] есть хотя бы одно отрицательное значение элемента:
    вычислить произведение элементов массива до первого отрицательного элемента;
  12. В массиве А[20] есть хотя бы одно отрицательное значение элемента:
    вычислить сумму значений элементов массива после первого отрицательного значения.

Задание 3.

 

1. Дан двумерный массив целых чисел из 4 столбцов и 3 строк. Найти сумму элементов стоящих до первого нуля. Просмотр вести по строкам. Заменить элементы, стоящие после последнего нуля на эту сумму. Вывести массив по строкам до и после замены.

 

2. Дан двумерный массив вещественных чисел из 3 столбцов и 4 строк. Найти, сколько в каждом столбце отрицательных элементов. Вывести массив по строкам.

 

3. Дан двумерный массив вещественных чисел из 4 столбцов и 3 строк. Найти сумму максимальных элементов каждой строки. Вывести массив по строкам.

 

4. Дан двумерный массив целых чисел из 4 столбцов и 4 строк. Найти сколько нулей находится выше главной диагонали. Вывести массив по строкам.

 

5. Дан двумерный массив целых чисел из 4 столбцов и 3 строк. Найти максимальный элемент в массиве и заменить его нулем. Вывести массив по строкам до и после замены.

 

6. Дан двумерный массив вещественных чисел из 3 столбцов и 4 строк. Все элементы в массиве стоящие после минимального элемента заменить первым элементом. Замену выполнять по строкам. Вывести массив по строкам до и после замены.

 

7. Дан двумерный массив вещественных чисел из 4 столбцов и 3 строк. Первый элемент в каждом столбце заменить на среднее арифметическое от всех элементов массива. Вывести массив по строкам до и после замены.

 

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

 

9. Дан двумерный массив вещественных чисел из 4 столбцов и 3 строк. Поменять местами первый столбец и столбец и столбец, где находится максимальный элемент массива. Вывести массив по строкам до и после перестановки.

 

10. Дан двумерный массив целых чисел из 4 столбцов и 4 строк. Найти минимальный элемент в первой половине массива (просмотр вести по строкам) и во второй половине массива. Поменять местами эти минимальные элементы массива. Вывести массив по строкам до и после перестановки.

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.