Тема: Массивы
Цель: Закрепление навыков применения генератора случайных чисел, массивов строк
Время выполнения: 6 часов
Теоретический материал
Иногда в качестве элементов массива используют случайные числа, которые можно получить с помощью функции Random(), которая генерирует случайное число в диапазоне 0..1.
Перед первым обращением к функции Random() необходимо вызовом процедуры Random инициализировать программный генератор случайных чисел.
Пример ввода одномерного массива A с использованием программного генератора случайных чисел:
static void Main(string[] args)
{
int n = 0, N=10; // Переменные типа int
Console.WriteLine();
Random r = new Random(); // Для случайных чисел
int[] A = new int[N]; // Массив типа int
Console.WriteLine("Создан массив A случайных целых чисел");
Console.WriteLine();
Console.WriteLine ("Номер n" + " Значение A[n]");
for (n = 0; n < N; n++)
{
A[n] = r.Next(0, 100); // Генерация случайного числа в диапазоне от 0 до 99
Console.WriteLine(" {0} {1,10}", n, A[n] );
}
Console.WriteLine();
Console.WriteLine("Нажмите любую клавишу");
Console.ReadKey(); // Пауза
}
Задания
Создать консольное приложение, реализующее выполнение следующих задач, листинг-программу с комментариями записать, блок-схему зарисовать.
1. Вычислить наименьший элемент Mmin массива M и его порядковый номер Nmin. Размерность массива N=10. В программе элементы массива создаются генератором случайных чисел.
int n = 0, N = 10, Nmin = 0, Mmin = 0;
Console.WriteLine();
Random r = new Random(); // Для случайных чисел
int[] M = new int[N]; // Массив типа int
Console.WriteLine("Создан массив M случайных целых чисел");
Console.WriteLine();
Console.Write("Номер n" + " Значение M[n]");
Console.WriteLine();
for (n = 0; n < N; n++)
{
M[n] = r.Next(0, 100); // Генерация случайного числа
Console.WriteLine(" {0} {1,10}", n, M[n]);
}
Mmin = M[0]; // Предположение
Nmin = 0;
for (n = 1; n < N; n++)
if (M[n] < Mmin) // Обнаружение минимума
{
Mmin = M[n];
Nmin = n;
}
Console.WriteLine();
Console.WriteLine("Результаты");
Console.WriteLine();
Console.Write("Nmin="); // Вывод Nin
Console.WriteLine(Nmin.ToString());
Console.Write("Mmin="); // Вывод Mmin
Console.WriteLine(Mmin.ToString());
Console.WriteLine();
Console.WriteLine("Нажмите любую клавишу");
Console.ReadKey(); // Пауза
Блок-схема алгоритма решения задачи представлена на рисунке 7.
Рисунок 7 – Блок-схема алгоритма решения задачи
2. Вывести квадратную матрицу X размером RxC в виде таблицы. Найти максимальное значение элемента и его координаты: номер строки R и номер столбца C.
{
int r=0, R=0, Rmax=0, c=0, C=0, Cmax=0, Mmax=0;
// Переменные типа int
Console.WriteLine("Введите число строк R и столбцов матрицы");
Console.Write("Число строк R="); // Введите R
R = Convert.ToInt32(Console.ReadLine());
Console.Write("Число столбцов C="); // Введите C
C = Convert.ToInt32(Console.ReadLine());
Console.WriteLine();
Random rnd = new Random(); // Для случайных чисел
int[ , ] M = new int[R, C]; // Матрица M[R,C] типа int
for (r = 0; r < R; r++) // Внешний цикл по строкам
{
for (c = 0; c < C; c++) // Внутренний цикл по столбцам
{
int Mm = rnd.Next(0, 100); // Генерация случайного числа от 0 до 99
M[r,c] = Mm;
if (M[r,c] > Mmax) // Обнаружение максимума
{
Mmax = M[r,c]; // Значение максимума
Rmax = r; // Номер строки
Cmax = c; // Номер столбца
}
}
} // Вывод матрицы
Console.WriteLine("Создана матрица M[R,C] случайных целых чисел");
Console.WriteLine();
for (r = 0; r < R; r++)
{
for (c = 0; c < C; c++)
{
Console.Write(M[r, c].ToString("D2")+" ");
}
Console.WriteLine();
}
Console.WriteLine();
Console.WriteLine("Результаты");
Console.WriteLine();
Console.Write("Максимальное значение Mmax="); // Вывод Mmax
Console.WriteLine(Mmax.ToString());
Console.Write("Номер строки Rmax="); // Вывод Rmax
Console.WriteLine(Rmax.ToString());
Console.Write("Номер столбца Cmax="); // Вывод Cmax
Console.WriteLine(Cmax.ToString());
Console.ReadKey(); // Пауза
}
3. В заданном строковом массиве заменить одни слова на другие.
string[ ] str = {"Это ","очень ","простой ","тест." };
Console.WriteLine("Исходный массив: ");
Console.WriteLine();
for (int i=0; i < str.Length; i++)
Console.Write(str[i] + " ");
Console.WriteLine("\n"); //Вывод на печать через клавишу Tab
// Изменяем строку
str[1]="тоже ";
str[3]="тест, не правда ли?";
Console.WriteLine("Модифицированный массив: ");
Console.WriteLine();
for (int i=0; i < str.Length; i++)
Console.Write(str[i]+" ");
Console.ReadKey(); // Пауза
4. Ввести массив символов и заменить один из символов, например 'a' на другой, например 'x'. Подсчитать количество замен.
char[] Q = new char[10];
char a, x; int c=0; // Количество замен
Console.WriteLine("Ввод символов в массив Q");
for (int k = 0; k < 10; k++)
{
Console.Write("Введите {0}", k);
Console.WriteLine(" элемент массива Q");
Q[k] = Convert.ToChar(Console.ReadLine());
}
Console.WriteLine();
Console.WriteLine("Исходный массив Q: ");
foreach (char k in (char[])Q)
Console.Write("{0} ", k); //вывод элементов массива Q
Console.WriteLine();
for (int k=0; k < 10; k++)
if (Q[k] == 'a') // символ, который надо найти
{
Q[k] = 'x'; // символ, на который надо заменить
c = c + 1; // количество замен
}
Console.WriteLine();
Console.WriteLine("Модифицированный массив Q: ");
foreach (char k in (char[])Q)
Console.Write("{0} ", k); //вывод элементов массива S
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("Количество замен ={0} ", c);
Console.ReadKey(); // Пауза
Блок-схема алгоритма решения задачи представлена на рисунке 8.
Рисунок 8 – Блок-схема алгоритма решения задачи
Скачано с www.znanio.ru
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.