Исправления для задачи обработки двухмерного массива - C#

Узнай цену своей работы

Формулировка задачи:

Я сделала работу, препод сказал что не так, объясни что делать( Использование подпрограмм в задаче на обработку двумерного массива. Реализовать представленные задачи в виде методов (функций и/или процедур). Предусмотреть удобное функциональное меню в программе. Даны действительные числа X,Y. Выполнить следующие преобразования: a) если оба числа отрицательны, то каждое число заменить его модулем; b) если отрицательное только одно из них, то оба значения увеличить на 0.5; c) если оба числа положительны и ни одно из них не принадлежит отрезку [0.5,2.0], то оба значения уменьшить в 10 раз; d) в остальных случаях числа оставить без изменения.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Lab8
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Действительные числа");
            double x, y;
            Console.WriteLine("Введите первое число:");
            Console.Write("x= ");// Вводим х
            x = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("Введите второе число");
            Console.Write("y= ");// Вводим у
            y = Convert.ToDouble(Console.ReadLine());
 
            if (x < 0 && y < 0) // Если x и y меньше нуля
            {
                x = Math.Abs(x);
                y = Math.Abs(y);
                Console.WriteLine("Ответ: х={0}; у={1}", x, y);
            }
            else if (x < 0 || y < 0)// Если отрицательно только одно из чисел
            {
                x = x + 0.5;
                y = y + 0.5;
                Console.WriteLine("Ответ: х={0}; у={1}", x, y);
            }
            else if ((x < 0.5 || x > 2.0) && (y < 0.5 || y > 2.0))//если оба числа неотрицательны и ни одно из них не принадлежит отрезку (0,5; 2,0)
            {
                x /= 10;
                y /= 10;
            }
            Console.WriteLine("Ответ: х={0}; у={1}", x, y);
        }
    }
}

Решение задачи: «Исправления для задачи обработки двухмерного массива»

textual
Листинг программы
static void Main()
{
string line;
char[] delimiterChars = { ' ', ',', '\t' };
int n; // количество строк матрицы
int[,] matr; // исходная матрица
int i, j; // индексы
// ввод матрицы из файла
using (StreamReader file = new StreamReader("dat.txt"))
{
// ввод размерности
n = int.Parse(file.ReadLine());
matr = new int[n, n]; // определение матрицы
// чтение строки из файла и преобразование в числовые данные
for (i = 0; (i < n) && ((line = file.ReadLine()) != null); i++)
{
string[] numbers = line.Split(delimiterChars);
j = 0;
foreach (string numString in numbers)
{
int x;
bool canConvert = int.TryParse(numString, out x);
if (canConvert == true)
{
matr[i, j] = x;
j++;
}
}
}
}// ввод данных закончен
// создание меню
string choice = "0";
while (choice != "4")
{
Console.WriteLine();
Console.WriteLine("1. Печать матрицы");
Console.WriteLine("2. Нахождение минимального элемента");
Console.WriteLine("3. Замена побочной диагонали нулями");
Console.WriteLine("4. Выход");
Console.WriteLine(" ");
Console.WriteLine(" Введите номер пункта меню ");
choice = Console.ReadLine();
switch (choice)
{
case "1":
Console.WriteLine(" Печать матрицы");
print_matrica(matr);
Console.WriteLine();
break;
case "2":
Console.Write("Мин. элемент = {0}",min_element(matr));
Console.WriteLine();
break;
case "3":
Console.WriteLine(" Произведена замена.");
zamena(ref matr);
Console.WriteLine();
break;
case "4":
Console.WriteLine(" До свидания!");
break;
default:
Console.WriteLine(" Введите 1, 2, 3 или 4");
Console.WriteLine();
break;
}
}
Console.ReadLine();
}// k Main
// метод нахождения минимального элемента матрицы
static int min_element(int[,] a)
{
int min_elt=a[0,0];
for (int i = 0; i < a.GetLength(0); i++)
{
for(int j=0; j< a.GetLength(1); j++)
{
if (a[i, j] < min_elt)
min_elt = a[i, j];
}
}
return min_elt;
}
// метод замены побочной диагонали нулями
static void zamena(ref int[,] a)
{
int n= a.GetLength(1);
for (int i = 0; i < a.GetLength(0); i++)
{
a[i, n – i – 1] = 0;
}
}
// метод печати матрицы
static void print_matrica(int[,] a)
{
for (int i = 0; i < a.GetLength(0); i++)
{
for (int j = 0; j < a.GetLength(1); j++)
{
Console.Write("{0} \t", a[i, j]);
}
Console.WriteLine();
}
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.8 из 5
Похожие ответы