===== PascalABC.NET =====
= 1 =
begin
var n := ReadInteger('N =');
var A := ArrRandom(n, -99, 99);
A.Println;
// собственно, решение
var s := A.Sum; // сумма всех элементов массива
var L := new List<integer>; // то, что войдет в массив В
// берем каждого претендента и сравниваем его с остальной суммой
for var i := 0 to A.High do
if (Abs(A[i] mod 10) = 5) and (A[i] > s - A[i]) then
L.Add(A[i]);
var B := L.ToArray;
if B.Length > 0 then
Print('Особые элементы:');
B.Print
end
else
Print('Нет "особых" элементов');
end.
= 2 =
var A := ArrRandom(n, -10, 10);
var D := new Dictionary<integer, integer>; // словарь
foreach var k in A do // перебор элементов
if D.ContainsKey(k) then
D[k] += 1 // +1, если такой элемент был
D.Add(k, 1); // 1, если элемент встретился впервые
D.Count(p -> p.Value > 1).Print
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Proj
{
class Program
static void Main(string[] args)
WorkWithFiles();
Console.ReadKey();
}
private static void WorkWithFiles()
string firstPath = Console.ReadLine(),
secondPath = Console.ReadLine(),
resultPath = Console.ReadLine();
List<int> resultArray = new List<int>();
resultArray.AddRange(FindNumbersInFile(firstPath, x => x % 2 == 0));
resultArray.AddRange(FindNumbersInFile(secondPath, x => x % 2 != 0));
PrintResult(resultArray, resultPath);
private static List<int> FindNumbersInFile(string PATH, Predicate<int> predicate)
if (File.Exists(PATH))
var firstFileNumbers = File.ReadAllText(PATH).Split(' ').Select(int.Parse).ToList();
resultArray.AddRange(firstFileNumbers.Where(x => predicate(x)));
throw new Exception($"Incorrect file path: {PATH}");
return resultArray;
private static void PrintResult(List<int> resultList, string PATH)
using (StreamWriter sw = File.CreateText(PATH))
sw.Write("Even: ");
foreach (var n in resultList.Where(x => x % 2 == 0).ToList())
sw.Write($"{n}; ");
sw.WriteLine();
sw.Write("\nOdd: ");
foreach (var n in resultList.Where(x => x % 2 != 0).ToList())
===== PascalABC.NET =====
= 1 =
begin
var n := ReadInteger('N =');
var A := ArrRandom(n, -99, 99);
A.Println;
// собственно, решение
var s := A.Sum; // сумма всех элементов массива
var L := new List<integer>; // то, что войдет в массив В
// берем каждого претендента и сравниваем его с остальной суммой
for var i := 0 to A.High do
if (Abs(A[i] mod 10) = 5) and (A[i] > s - A[i]) then
L.Add(A[i]);
var B := L.ToArray;
if B.Length > 0 then
begin
Print('Особые элементы:');
B.Print
end
else
Print('Нет "особых" элементов');
end.
= 2 =
begin
var n := ReadInteger('N =');
var A := ArrRandom(n, -10, 10);
A.Println;
// собственно, решение
var D := new Dictionary<integer, integer>; // словарь
foreach var k in A do // перебор элементов
if D.ContainsKey(k) then
D[k] += 1 // +1, если такой элемент был
else
D.Add(k, 1); // 1, если элемент встретился впервые
D.Count(p -> p.Value > 1).Print
end.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Proj
{
class Program
{
static void Main(string[] args)
{
WorkWithFiles();
Console.ReadKey();
}
private static void WorkWithFiles()
{
string firstPath = Console.ReadLine(),
secondPath = Console.ReadLine(),
resultPath = Console.ReadLine();
List<int> resultArray = new List<int>();
resultArray.AddRange(FindNumbersInFile(firstPath, x => x % 2 == 0));
resultArray.AddRange(FindNumbersInFile(secondPath, x => x % 2 != 0));
PrintResult(resultArray, resultPath);
}
private static List<int> FindNumbersInFile(string PATH, Predicate<int> predicate)
{
List<int> resultArray = new List<int>();
if (File.Exists(PATH))
{
var firstFileNumbers = File.ReadAllText(PATH).Split(' ').Select(int.Parse).ToList();
resultArray.AddRange(firstFileNumbers.Where(x => predicate(x)));
}
else
{
throw new Exception($"Incorrect file path: {PATH}");
}
return resultArray;
}
private static void PrintResult(List<int> resultList, string PATH)
{
using (StreamWriter sw = File.CreateText(PATH))
{
sw.Write("Even: ");
foreach (var n in resultList.Where(x => x % 2 == 0).ToList())
{
sw.Write($"{n}; ");
}
sw.WriteLine();
sw.Write("\nOdd: ");
foreach (var n in resultList.Where(x => x % 2 != 0).ToList())
{
sw.Write($"{n}; ");
}
}
}
}