Skip to content

Instantly share code, notes, and snippets.

@gmakc-094423
Created May 14, 2022 20:37
Show Gist options
  • Save gmakc-094423/3523291ff7242da142de24aefff5aafc to your computer and use it in GitHub Desktop.
Save gmakc-094423/3523291ff7242da142de24aefff5aafc to your computer and use it in GitHub Desktop.
Домашнее задание к семинару № 7
// Задача 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