Ссылка на скачивание и примеры кода
Сообщений 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.