Исправления для задачи обработки двухмерного массива - 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();
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д