Академический Документы
Профессиональный Документы
Культура Документы
3
Содержание
Введение ................................................................................................................... 5
1 Нормативные ссылки ........................................................................................... 6
2 Одномерные массивы .......................................................................................... 7
2.1 Краткие сведения .......................................................................................... 7
2.2 Постановка задач ........................................................................................... 8
2.3 Математические решения............................................................................. 8
2.4 Блок-схемы алгоритмов ................................................................................ 9
2.5 Программная реализация ........................................................................... 12
2.6 Скриншоты выполнения программ ........................................................... 15
3 Двумерные массивы ........................................................................................... 16
3.1 Краткие сведения ........................................................................................ 16
3.2 Постановка задач ......................................................................................... 17
3.3 Математические решения........................................................................... 17
3.4 Блох-схемы алгоритмов .............................................................................. 18
3.5 Программная реализация ........................................................................... 20
3.6 Скриншоты выполнения программ ........................................................... 22
Заключение ............................................................................................................ 23
Список использованных источников .................................................................. 24
Приложение А – Проверка на оригинальность .................................................. 25
4
Введение
5
1 Нормативные ссылки
6
2 Одномерные массивы
7
2.2 Постановка задач
8
2.4 Блок-схемы алгоритмов
9
На рисунке 2.2 показана первая часть блок-схемы программы задания 2:
10
На рисунке 2.3 показана вторая часть блок-схемы программы задания 2:
11
2.5 Программная реализация
namespace _1._1
{
internal class Program
{
static void Main(string[] args)
{
Console.Write("Введите размерность массива: ");
int n = Convert.ToInt32(Console.ReadLine());
int[] A = new int[n];
int max = A[0];
Random random = new Random();
Console.Write("Массив целых чисел:");
for (int i = 0; i < n; i++)
{
A[i] = random.Next(-100, 100);
Console.Write(A[i] + " ");
}
// Находим максимальный элемент массива
for (int i = 1; i < n; i++)
{
if (A[i] > max)
{
max = A[i];
}
}
// Выводим элементы, которые являются одновременно
двухразрядными и отрицательными числами
Console.WriteLine("\nЭлементы, которые являются
одновременно двухразрядными и отрицательными числами:");
foreach (int num in A)
{
if (num < -9 && num > -100)
{
Console.Write(num + " ");
}
}
// Выводим элементы, которые меньше половины
максимального элемента массива
12
Console.WriteLine("\nЭлементы, которые меньше
половины максимального элемента массива:");
foreach (int num in A)
{
if (num < max / 2)
{
Console.Write(num + " ");
}
}
Console.ReadKey();
}
}
}
namespace _1._2
{
internal class Program
{
static void Main(string[] args)
{
Console.Write("Введите размерность массива: ");
int q = Convert.ToInt32(Console.ReadLine());
int[] massive = new int[q];
Random random = new Random();
Console.WriteLine("Массив:");
for (int i = 0; i < q; i++)
{
massive[i] = random.Next(-100, 100);
Console.Write(" " + massive[i]);
}
// Находим количество четных элементов в массиве
int count = 0;
foreach (int num in massive)
{
if (num % 2 == 0)
{
count++;
}
}
//Временный массив для четных элементов
int[] evenMassive = new int[count];
13
int index = 0;
foreach (int num in massive)
{
if (num % 2 == 0)
{
evenMassive[index] = num;
index++;
}
}
// Сортируем временный массив четных элементов
методом пузырька
for (int i = 0; i < evenMassive.Length; i++)
{
for (int j = i + 1; j < evenMassive.Length; j++)
{
if (evenMassive[i] > evenMassive[j])
{
int temp = evenMassive[i];
evenMassive[i] = evenMassive[j];
evenMassive[j] = temp;
}
}
}
// Перезаписываем отсортированные четные элементы
обратно в исходный массив
index = 0;
for (int i = 0; i < q; i++)
{
if (massive[i] % 2 == 0)
{
massive[i] = evenMassive[index];
index++;
}
}
// Выводим отсортированный массив
Console.WriteLine("\nОтсортированный массив с
отсортированными четными элементами:");
foreach (int num in massive)
{
Console.Write(num + " ");
}
Console.ReadKey();
}
}
}
14
2.6 Скриншоты выполнения программ
15
3 Двумерные массивы
16
Как правило, при решении задач с двумерными массивами
используется два вложенных друг в друга цикла for, которые перебирают
значения массива: внешний цикл перебирает строки, внутренний – столбцы.
17
3.4 Блох-схемы алгоритмов
18
На рисунке 3.2 представлена блок-схема метода GetElement программы
задания 2:
19
3.5 Программная реализация
namespace ConsoleApp2
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Введите размерность матрицы");
Console.Write("Число строк = ");
int n = Convert.ToInt32(Console.ReadLine());
Console.Write("Число столбцов = ");
int t = Convert.ToInt32(Console.ReadLine());
int count = 0;
int[,] A = new int[n, t];
Random random = new Random();
Console.WriteLine("Массив:");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < t; j++)
{
A[i, j] = random.Next(-100,100);
Console.Write(" " + A[i, j]);
}
Console.WriteLine();
}
for (int i = 0; i < n - 2; i++)
{
for (int j = 0; j < t - 2; j++)
{
if (A[i, j] % 2 != 0 && A[i + 1, j + 1] % 2
!= 0 && A[i + 2, j + 2] % 2 != 0)
{
count++;
}
}
}
Console.WriteLine("Число окон, в которых все
элементы главной диагонали являются нечетными: " + count);
Console.ReadKey();
}
20
}
}
namespace _2._2
{
internal class Program
{
static void Main(string[] args)
{
Console.Write("Количество строк матрицы = ");
int k = Convert.ToInt32(Console.ReadLine());
Console.Write("Количество столбцов матрицы = ");
int l = Convert.ToInt32(Console.ReadLine());
int[,] M = new int[k, l];
for (int i = 0; i < k; i++)
{
for (int j = 0; j < l; j++)
{
M[i, j] = GetElement(i, j);
}
}
for (int i = 0; i < k; i++)
{
for (int j = 0; j < l; j++)
{
Console.Write(M[i, j] + " ");
}
Console.WriteLine();
}
Console.ReadKey();
}
static int GetElement(int i, int j)
{
if (i % 2 == 1)
return j % 4 + 1;
else
return (j + 2) % 4 + 1;
}
}
}
21
3.6 Скриншоты выполнения программ
22
Заключение
23
Список использованных источников
24
Приложение А – Проверка на оригинальность
25