Ссылка на скачивание и примеры кода
Сообщений 1 страница 26 из 26
Поделиться22020-01-10 13:30:40
Массивы
Задача 1: Сформировать и вывести на экран последовательность из n элементов, заданных датчиком случайных чисел на интервале [-23, 34].
Версия библиотеки: 0.0.10
Решение:
using ABCNET.Extensions; using ABCNET.Utils; namespace TestProgram { internal class Program { private static void Main(string[] args) { Arr.Rand(Base.ReadInteger("N:"), -23, 34).Println(); } } }
Смотреть на GitHub Gist.
{$reference ABCNET.dll} uses ABCNET.Utils; uses ABCNET.Extensions; begin Arr.Rand(Base.ReadInteger('N:'), -23, 34).Println(); end.
Смотреть на GitHub Gist.
Поделиться32020-01-10 13:40:59
Задача 2: Найти произведение элементов одномерного массива, состоящего из n элементов. Элементы вводятся с клавиатуры.
Версия библиотеки: 0.0.10
Решение:
using ABCNET.Extensions; using ABCNET.Utils; using System.Linq; namespace TestProgram { internal class Program { private static void Main(string[] args) { Arr.ReadInteger(Base.ReadInteger("N:"), "Элемент {0}-ый:").Aggregate((a, b) => a * b).Println(); } } }
Смотреть на GitHub Gist.
{$reference ABCNET.dll} uses ABCNET.Utils; uses ABCNET.Extensions; begin Arr.ReadInteger(Base.ReadInteger('N:'), 'Элемент {0}-ый:').Aggregate((a, b) -> a * b).Println(); end.
Смотреть на GitHub Gist.
Поделиться42020-01-10 13:47:20
Задача 3: Найти сумму элементов одномерного массива. Размер произвольный. Элементы вводятся с клавиатуры.
Версия библиотеки: 0.0.10
Решение:
using ABCNET.Extensions; using ABCNET.Utils; using System.Linq; namespace TestProgram { internal class Program { private static void Main(string[] args) { Arr.ReadInteger(Base.ReadInteger("N:"), "Элемент {0}-ый:").Sum().Println(); } } }
Смотреть на GitHub Gist.
{$reference ABCNET.dll} uses ABCNET.Utils; uses ABCNET.Extensions; begin Arr.ReadInteger(Base.ReadInteger('N:'), 'Элемент {0}-ый:').Sum().Println(); end.
Смотреть на GitHub Gist.
Поделиться52020-01-10 13:50:13
Задача 4: Задан массив А, состоящий из n чисел. Найти среднее арифметическое его элементов. Элементы вводятся с клавиатуры.
Версия библиотеки: 0.0.10
Решение:
using ABCNET.Extensions; using ABCNET.Utils; using System.Linq; namespace TestProgram { internal class Program { private static void Main(string[] args) { Arr.ReadInteger(Base.ReadInteger("N:"), "Элемент {0}-ый:").Average().Println(); } } }
Смотреть на GitHub Gist.
{$reference ABCNET.dll} uses ABCNET.Utils; uses ABCNET.Extensions; begin Arr.ReadInteger(Base.ReadInteger('N:'), 'Элемент {0}-ый:').Average().Println(); end.
Смотреть на GitHub Gist.
Поделиться62020-01-10 13:59:55
Задача 5: Найти сумму элементов массива с четными номерами, содержащего N элементов. Элементы вводятся с клавиатуры.
Версия библиотеки: 0.0.10
Решение:
using ABCNET.Extensions; using ABCNET.Utils; using System.Linq; namespace TestProgram { internal class Program { private static void Main(string[] args) { Arr.ReadInteger(Base.ReadInteger("N:"), "Элемент {0}-ый:").Where((x, i) => i % 2 == 0).Sum().Println(); } } }
Смотреть на GitHub Gist.
{$reference ABCNET.dll} uses ABCNET.Utils; uses ABCNET.Extensions; begin Arr.ReadInteger(Base.ReadInteger('N:'), 'Элемент {0}-ый:').Where((x, i) -> i mod 2 = 0).Sum().Println(); end.
Смотреть на GitHub Gist.
Поделиться72020-01-10 14:02:57
Задача 6: Сформировать и вывести на экран массив, элементы которого заданы датчиком случайных чисел на интервале [-19, 26] (размер произвольный). Найти произведение элементов с нечетными номерами.
Версия библиотеки: 0.0.10
Решение:
using ABCNET.Extensions; using ABCNET.Utils; using System.Linq; namespace TestProgram { internal class Program { private static void Main(string[] args) { Arr.Rand(Base.ReadInteger("N:"), -19, 26).Println() .Where((x, i) => i % 2 != 0).Aggregate((a, b) => a * b).Println(); } } }
Смотреть на GitHub Gist.
{$reference ABCNET.dll} uses ABCNET.Utils; uses ABCNET.Extensions; begin Arr.Rand(Base.ReadInteger('N:'), -19, 26).Println() .Where((x, i) -> i mod 2 <> 0).Aggregate((a, b) -> a * b).Println(); end.
Смотреть на GitHub Gist.
Поделиться82020-01-10 14:07:33
Задача 7: Сформировать и вывести на экран массив, элементы которого заданы датчиком случайных чисел на интервале [-56, 47] (размер произвольный). Найти произведение элементов с четными номерами, которые превосходят некоторое число t.
Версия библиотеки: 0.0.10
Решение:
using ABCNET.Extensions; using ABCNET.Utils; using System.Linq; namespace TestProgram { internal class Program { private static void Main(string[] args) { int t = Base.ReadInteger("T:"); Arr.Rand(Base.ReadInteger("N:"), -56, 47).Println() .Where((x, i) => (i % 2 == 0) && (x > t)).Aggregate((a, b) => a * b).Println(); } } }
Смотреть на GitHub Gist.
{$reference ABCNET.dll} uses ABCNET.Utils; uses ABCNET.Extensions; begin var t := Base.ReadInteger('T:'); Arr.Rand(Base.ReadInteger('N:'), -56, 47).Println() .Where((x, i) -> (i mod 2 = 0) and (x > t)).Aggregate((a, b) -> a * b).Println(); end.
Смотреть на GitHub Gist.
Поделиться92020-01-10 14:11:46
Задача 8: Найти наименьший элемент одномерного массива, состоящего из n элементов. Элементы вводятся с клавиатуры.
Версия библиотеки: 0.0.10
Решение:
using ABCNET.Extensions; using ABCNET.Utils; using System.Linq; namespace TestProgram { internal class Program { private static void Main(string[] args) { Arr.ReadInteger(Base.ReadInteger("N:"), "Элемент {0}-ый:").Min().Println(); } } }
Смотреть на GitHub Gist.
{$reference ABCNET.dll} uses ABCNET.Utils; uses ABCNET.Extensions; begin Arr.ReadInteger(Base.ReadInteger('N:'), 'Элемент {0}-ый:').Min().Println(); end.
Смотреть на GitHub Gist.
Поделиться102020-01-10 14:17:27
Задача 9: Найти номер наименьшего элемента в массиве, заданного датчиком случайных чисел на интервале [-20, 25]. Размер произвольный.
Версия библиотеки: 0.0.10
Решение:
using ABCNET.Extensions; using ABCNET.Utils; namespace TestProgram { internal class Program { private static void Main(string[] args) { Arr.Rand(Base.ReadInteger("N:"), -20, 25).Println().Numerate().MinBy(x => x.Item).Index.Println(); } } }
Смотреть на GitHub Gist.
// Работает только начиная с ABCNET 0.0.15 - проблема в PascalABC.NET - сбоит со вложенными типами. {$reference ABCNET.dll} uses ABCNET.Utils; uses ABCNET.Extensions; begin Arr.Rand(Base.ReadInteger('N:'), -20, 25).Println().Numerate().MinBy(x -> x.Item).Index.Println(); end.
Смотреть на GitHub Gist.
Поделиться112020-01-10 14:24:15
Задача 10: В заданном одномерном массиве, состоящем из n целых чисел, подсчитать количество нулей.
Версия библиотеки: 0.0.10
Решение:
using ABCNET.Extensions; using ABCNET.Utils; using System.Linq; namespace TestProgram { internal class Program { private static void Main(string[] args) { Arr.ReadInteger(Base.ReadInteger("N:"), "Элемент {0}-ый:").Where(x => x == 0).Count().Println(); } } }
Смотреть на GitHub Gist.
{$reference ABCNET.dll} uses ABCNET.Utils; uses ABCNET.Extensions; begin Arr.ReadInteger(Base.ReadInteger('N:'), 'Элемент {0}-ый:').Where(x -> x = 0).Count().Println(); end.
Смотреть на GitHub Gist.
Поделиться122020-01-10 15:07:38
Задача 11: В заданном одномерном массиве, состоящем из n целых чисел, подсчитать количество четных элементов.
Версия библиотеки: 0.0.10
Решение:
using ABCNET.Extensions; using ABCNET.Utils; using System.Linq; namespace TestProgram { internal class Program { private static void Main(string[] args) { Arr.ReadInteger(Base.ReadInteger("N:"), "Элемент {0}-ый:").Where(x => x % 2 == 0).Count().Println(); } } }
Смотреть на GitHub Gist.
{$reference ABCNET.dll} uses ABCNET.Utils; uses ABCNET.Extensions; begin Arr.ReadInteger(Base.ReadInteger('N:'), 'Элемент {0}-ый:').Where(x -> x mod 2 = 0).Count().Println(); end.
Смотреть на GitHub Gist.
Поделиться132020-01-10 15:16:17
Задача 12: Найдите среднее арифметическое элементов массива, состоящего из 10 чисел, которые превышают по величине число С. Элементы вводятся с клавиатуры.
Версия библиотеки: 0.0.10
Решение:
using ABCNET.Extensions; using ABCNET.Utils; using System.Linq; namespace TestProgram { internal class Program { private static void Main(string[] args) { int c = Base.ReadInteger("C:"); Arr.ReadInteger(10, "Элемент {0}-ый:").Where(x => x > c).Average().Println(); } } }
Смотреть на GitHub Gist.
{$reference ABCNET.dll} uses ABCNET.Utils; uses ABCNET.Extensions; begin var c := Base.ReadInteger('C:'); Arr.ReadInteger(10, 'Элемент {0}-ый:').Where(x -> x > c).Average().Println(); end.
Смотреть на GitHub Gist.
Поделиться142020-01-10 15:20:14
Задача 13: Найти произведение элементов целочисленного одномерного массива с четными номерами, состоящего из n элементов. Элементы вводятся с клавиатуры.
Версия библиотеки: 0.0.10
Решение:
using ABCNET.Extensions; using ABCNET.Utils; using System.Linq; namespace TestProgram { internal class Program { private static void Main(string[] args) { Arr.ReadInteger(Base.ReadInteger("N:"), "Элемент {0}-ый:").Where((x, i) => i % 2 == 0).Aggregate((a, b) => a * b).Println(); } } }
Смотреть на GitHub Gist.
{$reference ABCNET.dll} uses ABCNET.Utils; uses ABCNET.Extensions; begin Arr.ReadInteger(Base.ReadInteger('N:'), 'Элемент {0}-ый:').Where((x, i) -> i mod 2 = 0).Aggregate((a, b) -> a * b).Println(); end.
Смотреть на GitHub Gist.
Поделиться152020-01-10 15:28:38
Задача 14: Массив А вводится с клавиатуры. Сформировать новый массив В, состоящий из четных элементов массива А. Элементы вводятся с клавиатуры. Размер n.
Версия библиотеки: 0.0.10
Решение:
using ABCNET.Utils; using System.Linq; namespace TestProgram { internal class Program { private static void Main(string[] args) { int[] a = Arr.ReadInteger(Base.ReadInteger("N:"), "Элемент {0}-ый:"); int[] b = a.Where(x => x % 2 == 0).ToArray(); } } }
Смотреть на GitHub Gist.
{$reference ABCNET.dll} uses ABCNET.Utils; uses ABCNET.Extensions; begin var a := Arr.ReadInteger(Base.ReadInteger('N:'), 'Элемент {0}-ый:'); var b := a.Where(x -> x mod 2 = 0).ToArray(); end.
Смотреть на GitHub Gist.
Поделиться162020-01-10 15:46:01
Матрицы
Задача 1: Сформировать с помощью датчика случайных чисел и вывести на экран матрицу, размером МхN. Элементы задаются на интервале [-20, 25].
Версия библиотеки: 0.0.10
Решение:
using ABCNET.Extensions; using ABCNET.Utils; namespace TestProgram { internal class Program { private static void Main(string[] args) { Matr.Rand(Base.ReadInteger("N:"), Base.ReadInteger("M:"), -20, 25).Print(); } } }
Смотреть на GitHub Gist.
{$reference ABCNET.dll} uses ABCNET.Utils; uses ABCNET.Extensions; begin Matr.Rand(Base.ReadInteger('N:'), Base.ReadInteger('M:'), -20, 25).Print(); end.
Смотреть на GitHub Gist.
Поделиться172020-01-12 10:49:14
Задача 2: В двумерном массиве, состоящем из n целых чисел, найти сумму элементов в каждой строке. Размер произвольный.
Версия библиотеки: 0.0.10
Решение:
using ABCNET.Extensions; using ABCNET.Utils; using System; namespace TestProgram { internal static class Program { public static int[] Sum(this int[,] matrix) { if (matrix == null) throw new ArgumentNullException(nameof(matrix)); int[] result = new int[matrix.GetLength(0)]; int rowsCount = matrix.GetLength(0); int colsCount = matrix.GetLength(1); for (int i = 0; i < rowsCount; i++) for (int j = 0; j < colsCount; j++) result[i] += matrix[i, j]; return result; } private static void Main(string[] args) { Matr.ReadInteger(Base.ReadInteger("N:"), Base.ReadInteger("M:"), "Элемент ({0}, {1})-ый:").Sum().Println(); } } }
Смотреть на GitHub Gist.
{$reference ABCNET.dll} uses ABCNET.Utils; uses ABCNET.Extensions; uses System; function Sum(self: array [,] of integer): array of integer; extensionmethod; begin if self = nil then raise new ArgumentNullException('self'); result := new integer[self.GetLength(0)]; var rowsCount := self.GetLength(0); var colsCount := self.GetLength(1); for var i := 0 to rowsCount - 1 do for var j := 0 to colsCount - 1 do result[i] += self[i, j]; end; begin Matr.ReadInteger(Base.ReadInteger('N:'), Base.ReadInteger('M:'), 'Элемент ({0}, {1})-ый:').Sum().Println(); end.
Смотреть на GitHub Gist.
Поделиться182020-01-12 10:58:09
Задача 3: Найти наименьший элемент двумерного массива. Размер MXN. Элементы задаются на интервале [-30, 45].
Версия библиотеки: 0.0.10
Решение:
using ABCNET.Extensions; using ABCNET.Utils; using System; namespace TestProgram { internal static class Program { public static int Min(this int[,] matrix) { if (matrix == null) throw new ArgumentNullException(nameof(matrix)); int min = int.MaxValue; int rowsCount = matrix.GetLength(0); int colsCount = matrix.GetLength(1); for (int i = 0; i < rowsCount; i++) for (int j = 0; j < colsCount; j++) if (min > matrix[i, j]) min = matrix[i, j]; return min; } private static void Main(string[] args) { Matr.Rand(Base.ReadInteger("N:"), Base.ReadInteger("M:"), -30, 45).Print().Min().Println(); } } }
Смотреть на GitHub Gist.
{$reference ABCNET.dll} uses ABCNET.Utils; uses ABCNET.Extensions; uses System; function Min(self: array [,] of integer): integer; extensionmethod; begin if self = nil then raise new ArgumentNullException('self'); result := integer.MaxValue; var rowsCount := self.GetLength(0); var colsCount := self.GetLength(1); for var i := 0 to rowsCount - 1 do for var j := 0 to colsCount - 1 do if result > self[i, j] then result := self[i, j]; end; begin Matr.Rand(Base.ReadInteger('N:'), Base.ReadInteger('M:'), -30, 45).Print().Min().Println(); end.
Смотреть на GitHub Gist.
Поделиться192020-01-12 11:05:17
Задача 4: В двумерном массиве, состоящем из целых чисел, найти наименьший элемент и номер строки, в которой он находится. Элементы вводятся с клавиатуры. Размер MXN.
Версия библиотеки: 0.0.10
Решение:
using ABCNET.Extensions; using ABCNET.Utils; using System; namespace TestProgram { internal static class Program { public static Tuple<int, int> Min(this int[,] matrix) { if (matrix == null) throw new ArgumentNullException(nameof(matrix)); int min = int.MaxValue; int minRow = 0; int rowsCount = matrix.GetLength(0); int colsCount = matrix.GetLength(1); for (int i = 0; i < rowsCount; i++) for (int j = 0; j < colsCount; j++) if (min > matrix[i, j]) { min = matrix[i, j]; minRow = i; } return Tup.New(min, minRow); } private static void Main(string[] args) { Matr.ReadInteger(Base.ReadInteger("N:"), Base.ReadInteger("M:"), "Элемент ({0}, {1})-ый:").Min().Println(); } } }
Смотреть на GitHub Gist.
{$reference ABCNET.dll} uses ABCNET.Utils; uses ABCNET.Extensions; uses System; function Min(self: array [,] of integer): (integer, integer); extensionmethod; begin if self = nil then raise new ArgumentNullException('self'); var _min := integer.MaxValue; var minRow := 0; var rowsCount := self.GetLength(0); var colsCount := self.GetLength(1); for var i := 0 to rowsCount - 1 do for var j := 0 to colsCount - 1 do if _min > self[i, j] then begin _min := self[i, j]; minRow := i; end; result := (_min, minRow); end; begin Matr.ReadInteger(Base.ReadInteger('N:'), Base.ReadInteger('M:'), 'Элемент ({0}, {1})-ый:').Min().Println(); end.
Смотреть на GitHub Gist.
Поделиться202020-01-12 11:10:36
Задача 5: Найти сумму элементов в каждой строке двумерного массива, состоящего из целых чисел. Размер MXN. Элементы задаются на интервале [-19, 30].
Версия библиотеки: 0.0.10
Решение:
using ABCNET.Extensions; using ABCNET.Utils; using System; namespace TestProgram { internal static class Program { public static int[] Sum(this int[,] matrix) { if (matrix == null) throw new ArgumentNullException(nameof(matrix)); int[] result = new int[matrix.GetLength(0)]; int rowsCount = matrix.GetLength(0); int colsCount = matrix.GetLength(1); for (int i = 0; i < rowsCount; i++) for (int j = 0; j < colsCount; j++) result[i] += matrix[i, j]; return result; } private static void Main(string[] args) { Matr.Rand(Base.ReadInteger("N:"), Base.ReadInteger("M:"), -19, 30).Print().Sum().Println(); } } }
Смотреть на GitHub Gist.
{$reference ABCNET.dll} uses ABCNET.Utils; uses ABCNET.Extensions; uses System; function Sum(self: array [,] of integer): array of integer; extensionmethod; begin if self = nil then raise new ArgumentNullException('self'); result := new integer[self.GetLength(0)]; var rowsCount := self.GetLength(0); var colsCount := self.GetLength(1); for var i := 0 to rowsCount - 1 do for var j := 0 to colsCount - 1 do result[i] += self[i, j]; end; begin Matr.Rand(Base.ReadInteger('N:'), Base.ReadInteger('M:'), -19, 30).Print().Sum().Println(); end.
Смотреть на GitHub Gist.
Поделиться212020-01-12 11:14:32
Задача 6: Подсчитать количество положительных элементов в каждой строке матрицы размером МхN, элементы которой вводятся с клавиатуры.
Версия библиотеки: 0.0.10
Решение:
using ABCNET.Extensions; using ABCNET.Utils; using System; namespace TestProgram { internal static class Program { public static int[] Count(this int[,] matrix) { if (matrix == null) throw new ArgumentNullException(nameof(matrix)); int[] result = new int[matrix.GetLength(0)]; int rowsCount = matrix.GetLength(0); int colsCount = matrix.GetLength(1); for (int i = 0; i < rowsCount; i++) for (int j = 0; j < colsCount; j++) if (matrix[i, j] > 0) result[i] += 1; return result; } private static void Main(string[] args) { Matr.ReadInteger(Base.ReadInteger("N:"), Base.ReadInteger("M:"), "Элемент ({0}, {1})-ый:").Count().Println(); } } }
Смотреть на GitHub Gist.
{$reference ABCNET.dll} uses ABCNET.Utils; uses ABCNET.Extensions; uses System; function Count(self: array [,] of integer): array of integer; extensionmethod; begin if self = nil then raise new ArgumentNullException('self'); result := new integer[self.GetLength(0)]; var rowsCount := self.GetLength(0); var colsCount := self.GetLength(1); for var i := 0 to rowsCount - 1 do for var j := 0 to colsCount - 1 do if self[i, j] > 0 then result[i] += 1; end; begin Matr.ReadInteger(Base.ReadInteger('N:'), Base.ReadInteger('M:'), 'Элемент ({0}, {1})-ый:').Count().Println(); end.
Смотреть на GitHub Gist.
Поделиться222020-01-12 11:17:44
Задача 7: Сформировать матрицу типа
1 | 0 | 0 | 0 |
0 | 1 | 0 | 0 |
0 | 0 | 1 | 0 |
0 | 0 | 0 | 1 |
Версия библиотеки: 0.0.10
Решение:
using ABCNET.Extensions; using ABCNET.Utils; namespace TestProgram { internal static class Program { private static void Main(string[] args) { Matr.Gen(4, 4, (i, j) => i == j ? 1 : 0).Print(); } } }
Смотреть на GitHub Gist.
{$reference ABCNET.dll} uses ABCNET.Utils; uses ABCNET.Extensions; begin Matr.Gen(4, 4, (i, j) -> i = j ? 1 : 0).Print(); end.
Смотреть на GitHub Gist.
Поделиться232020-01-12 11:35:31
Задача 8: Найти номер столбца массива размером МхN, в котором находится наибольшее количество отрицательных элементов. Элементы вводятся с клавиатуры.
Версия библиотеки: 0.0.10
Решение:
using ABCNET.Extensions; using ABCNET.Utils; using System; namespace TestProgram { internal static class Program { public static int[] Count(this int[,] matrix) { if (matrix == null) throw new ArgumentNullException(nameof(matrix)); int[] result = new int[matrix.GetLength(1)]; int rowsCount = matrix.GetLength(0); int colsCount = matrix.GetLength(1); for (int j = 0; j < colsCount; j++) for (int i = 0; i < rowsCount; i++) if (matrix[i, j] < 0) result[j] += 1; return result; } private static void Main(string[] args) { Matr.ReadInteger(Base.ReadInteger("N:"), Base.ReadInteger("M:"), "Элемент ({0}, {1})-ый:").Count().Numerate().MaxBy(x => x.Item).Index.Println(); } } }
Смотреть на GitHub Gist.
// Работает только начиная с ABCNET 0.0.15 - проблема в PascalABC.NET - сбоит со вложенными типами. {$reference ABCNET.dll} uses ABCNET.Utils; uses ABCNET.Extensions; uses System; function Count(self: array [,] of integer): array of integer; extensionmethod; begin if self = nil then raise new ArgumentNullException('self'); result := new integer[self.GetLength(1)]; var rowsCount := self.GetLength(0); var colsCount := self.GetLength(1); for var j := 0 to colsCount - 1 do for var i := 0 to rowsCount - 1 do if self[i, j] < 0 then result[j] += 1; end; begin Matr.ReadInteger(Base.ReadInteger('N:'), Base.ReadInteger('M:'), 'Элемент ({0}, {1})-ый:').Count().Numerate().MaxBy(x -> x.Item).Index.Println(); end.
Смотреть на GitHub Gist.
Поделиться242020-01-12 11:53:41
Задача 9: Упорядочить каждый столбец матрицы по возрастанию. Массив размером МхN, элементы которого задаются датчиком случайных чисел на интервале [-17;26].
Версия библиотеки: 0.0.10
Решение:
using ABCNET.Extensions; using ABCNET.Utils; using System; namespace TestProgram { internal static class Program { public static int[,] Sort(this int[,] matrix) { if (matrix == null) throw new ArgumentNullException(nameof(matrix)); int[,] result = (int[,])matrix.Clone(); int rowsCount = result.GetLength(0); int colsCount = result.GetLength(1); for (int j = 0; j < colsCount; j++) for (int k = 0; k < rowsCount; k++) for (int i = 0; i < rowsCount - k - 1; i++) if (result[i, j] > result[i + 1, j]) Base.Swap(ref result[i, j], ref result[i + 1, j]); return result; } private static void Main(string[] args) { Matr.Rand(Base.ReadInteger("N:"), Base.ReadInteger("M:"), -17, 26).Print().Sort().Print(); } } }
Смотреть на GitHub Gist.
{$reference ABCNET.dll} uses ABCNET.Utils; uses ABCNET.Extensions; uses System; function Sort(self: array [,] of integer): array [,] of integer; extensionmethod; type T = array [,] of integer; begin if self = nil then raise new ArgumentNullException('self'); result := T(self.Clone()); var rowsCount := result.GetLength(0); var colsCount := result.GetLength(1); for var j := 0 to colsCount - 1 do for var k := 0 to rowsCount - 1 do for var i := 0 to rowsCount - k - 2 do if result[i, j] > result[i + 1, j] then Base.Swap(result[i, j], result[i + 1, j]); end; begin Matr.Rand(Base.ReadInteger('N:'), Base.ReadInteger('M:'), -17, 26).Print().Sort().Print(); end.
Смотреть на GitHub Gist.
Поделиться252020-01-12 11:55:48
Задача 10: Сформировать матрицу
1 | 1 | 1 |
2 | 2 | 2 |
3 | 3 | 3 |
Версия библиотеки: 0.0.10
Решение:
using ABCNET.Extensions; using ABCNET.Utils; namespace TestProgram { internal static class Program { private static void Main(string[] args) { Matr.Gen(3, 3, (i, j) => i + 1).Print(); } } }
Смотреть на GitHub Gist.
{$reference ABCNET.dll} uses ABCNET.Utils; uses ABCNET.Extensions; begin Matr.Gen(3, 3, (i, j) -> i + 1).Print(); end.
Смотреть на GitHub Gist.
Поделиться262020-01-12 12:05:20
Задача 11: Найти наибольшее нечетное число в матрице размером МхN, элементы которой задаются датчиком случайных чисел на интервале [-27, 38].
Версия библиотеки: 0.0.10
Решение:
using ABCNET.Extensions; using ABCNET.Utils; using System; namespace TestProgram { internal static class Program { public static int Max(this int[,] matrix) { if (matrix == null) throw new ArgumentNullException(nameof(matrix)); int max = int.MinValue; bool oddFound = false; int rowsCount = matrix.GetLength(0); int colsCount = matrix.GetLength(1); for (int i = 0; i < rowsCount; i++) for (int j = 0; j < colsCount; j++) if ((max < matrix[i, j]) && (matrix[i, j] % 2 != 0)) { max = matrix[i, j]; oddFound = true; } if (!oddFound) throw new ArgumentException(nameof(matrix)); return max; } private static void Main(string[] args) { Matr.Rand(Base.ReadInteger("N:"), Base.ReadInteger("M:"), -27, 38).Print().Max().Println(); } } }
Смотреть на GitHub Gist.
{$reference ABCNET.dll} uses ABCNET.Utils; uses ABCNET.Extensions; uses System; function Max(self: array [,] of integer): integer; extensionmethod; begin if self = nil then raise new ArgumentNullException('self'); result := integer.MinValue; var oddFound := false; var rowsCount := self.GetLength(0); var colsCount := self.GetLength(1); for var i := 0 to rowsCount - 1 do for var j := 0 to colsCount - 1 do if (result < self[i, j]) and (self[i, j] mod 2 <> 0) then begin result := self[i, j]; oddFound := true; end; if not oddFound then raise new ArgumentException('self'); end; begin Matr.Rand(Base.ReadInteger('N:'), Base.ReadInteger('M:'), -27, 38).Print().Max().Println(); end.
Смотреть на GitHub Gist.