NETMouse projects

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » NETMouse projects » ABCNET » Ссылка на скачивание и примеры кода


Ссылка на скачивание и примеры кода

Сообщений 1 страница 26 из 26

1

Вы можете скачать ABCNET здесь.

Задачи брались отсюда.

Открыть тему-обсуждение

Теги: abcnet

0

2

Массивы

Задача 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.

0

3

Задача 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.

0

4

Задача 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.

0

5

Задача 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.

0

6

Задача 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.

0

7

Задача 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.

0

8

Задача 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.

0

9

Задача 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.

0

10

Задача 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.

0

11

Задача 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.

0

12

Задача 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.

0

13

Задача 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.

0

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.

0

15

Задача 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.

0

16

Матрицы

Задача 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.

0

17

Задача 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.

0

18

Задача 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.

0

19

Задача 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.

0

20

Задача 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.

0

21

Задача 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.

0

22

Задача 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.

0

23

Задача 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.

0

24

Задача 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.

0

25

Задача 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.

0

26

Задача 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.

0


Вы здесь » NETMouse projects » ABCNET » Ссылка на скачивание и примеры кода


Рейтинг форумов | Создать форум бесплатно