Created
May 14, 2022 20:37
-
-
Save gmakc-094423/3523291ff7242da142de24aefff5aafc to your computer and use it in GitHub Desktop.
Домашнее задание к семинару № 7
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Задача 47: Задайте двумерный массив размером m×n, заполненный случайными вещественными числами. | |
// m = 3, n = 4. | |
// 0,5 7 -2 -0,2 | |
// 1 -3,3 8 -9,9 | |
// 8 7,8 -7,1 9 | |
Console.WriteLine($"Задача 47: Задайте двумерный массив размером m x n, заполненный случайными вещественными числами."); | |
Console.Write("Введите m: "); | |
int m = Convert.ToInt32(Console.ReadLine()); | |
Console.Write("Введите n: "); | |
int n = Convert.ToInt32(Console.ReadLine()); | |
Console.Clear(); | |
Console.WriteLine($"m = {m}, n = {n}."); | |
double[,] array = new double[m, n]; | |
CreateArrayDouble(array); | |
WriteArray(array); | |
Console.WriteLine(); | |
void CreateArrayDouble(double[,] array) | |
{ | |
for (int i = 0; i < m; i++) | |
{ | |
for (int j = 0; j < n; j++) | |
{ | |
array[i, j] = new Random().NextDouble() * 20 - 10; | |
} | |
} | |
} | |
void WriteArray (double[,] array){ | |
for (int i = 0; i < m; i++) | |
{ | |
for (int j = 0; j < n; j++) | |
{ | |
double alignNumber = Math.Round(array[i, j], 1); | |
Console.Write(alignNumber + " "); | |
} | |
Console.WriteLine(); | |
} | |
} | |
// Задача 50: Напишите программу, которая на вход принимает позиции элемента в двумерном массиве, и возвращает значение этого элемента или же указание, что такого элемента нет. | |
// Например, задан массив: | |
// 1 4 7 2 | |
// 5 9 2 3 | |
// 8 4 2 4 | |
// 17 -> такого числа в массиве нет | |
Console.WriteLine($"Задача 50: Напишите программу, которая на вход принимает позиции элемента в двумерном массиве, и возвращает значение этого элемента или же указание, что такого элемента нет."); | |
Console.Write("\nMассив возьмем из предыдущей задачи (№ 47).\n"); | |
Console.Write("Введите координаты позиции элемента, разделенных запятой: "); | |
string? positionElement = Console.ReadLine(); | |
positionElement = RemovingSpaces(positionElement); | |
int[] position = ParserString(positionElement); | |
if(position[0] <= m | |
&& position[1] <= n | |
&& position[0] >= 0 | |
&& position[1] >= 0) | |
{ | |
double result = array[position[0]-1, position[1]-1]; | |
Console.Write($"Значение элемента: {result}"); | |
} | |
else Console.Write($"такого элемента в массиве нет."); | |
int[] ParserString(string input) | |
{ | |
int countNumbers = 1; | |
for (int i = 0; i < input.Length; i++) | |
{ | |
if (input[i] == ',') | |
countNumbers++; | |
} | |
int[] numbers = new int[countNumbers]; | |
int numberIndex = 0; | |
for(int i = 0; i < input.Length; i++) | |
{ | |
string subString = String.Empty; | |
while (input[i] != ',') | |
{ | |
subString += input[i].ToString(); | |
if (i >= input.Length - 1) | |
break; | |
i++; | |
} | |
numbers[numberIndex] = Convert.ToInt32(subString); | |
numberIndex++; | |
} | |
return numbers; | |
} | |
string RemovingSpaces (string input) | |
{ | |
string output = String.Empty; | |
for (int i = 0; i < input.Length; i++) | |
{ | |
if (input[i] != ' ') | |
{ | |
output += input[i]; | |
} | |
} | |
return output; | |
} | |
// Задача 52: Задайте двумерный массив из целых чисел. Найдите среднее арифметическое элементов в каждом столбце. | |
// Например, задан массив: | |
// 1 4 7 2 | |
// 5 9 2 3 | |
// 8 4 2 4 | |
// Среднее арифметическое каждого столбца: 4,6; 5,6; 3,6; 3 | |
Console.WriteLine($"\n\nЗадача 52: Задайте двумерный массив из целых чисел. Найдите среднее арифметическое элементов в каждом столбце."); | |
Console.Write("\nMассив возьмем из предыдущей задачи (№ 47), преобразовав double в int32.\n"); | |
int[,] arrayWhole = new int[m, n]; | |
arrayWhole = TransformationArrayWhole(array); | |
WriteArrayInt(arrayWhole); | |
Console.Write($"\nCреднее арифметическое:\n"); | |
for (int i = 0; i < n; i++) | |
{ | |
double arithmeticMean = 0; | |
for (int j = 0; j < m; j++) | |
{ | |
arithmeticMean += arrayWhole[j, i]; | |
} | |
arithmeticMean = Math.Round(arithmeticMean / m, 1); | |
Console.WriteLine($"столбца № {i+1} {arithmeticMean}"); | |
} | |
int[,] TransformationArrayWhole (double[,] array) | |
{ | |
int[,] arrayWhole = new int[array.GetLength(0), array.GetLength(1)]; | |
for (int i = 0; i < array.GetLength(0); i++) | |
{ | |
for (int j = 0; j < array.GetLength(1); j++) | |
{ | |
arrayWhole[i, j] = Convert.ToInt32(array[i, j]); | |
} | |
} | |
return arrayWhole; | |
} | |
void WriteArrayInt (int[,] arrayWhole){ | |
for (int i = 0; i < m; i++) | |
{ | |
for (int j = 0; j < n; j++) | |
{ | |
Console.Write(arrayWhole[i, j] + " "); | |
} | |
Console.WriteLine(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment