Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
прогр 4 лаба.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
134.9 Кб
Скачать

Задание 8

Даны два целочисленных списка: L1 и L2. Сформировать новый список L из элементов, которые входят только в один из заданных списков.

Пример входа

3 -2 1 9 12 8 -1 1 1 3 5 -2 Пример вывода 9 12 8 -1 5

using System;

using System.Collections.Generic;

using System.Linq;

u sing System.Text;

namespace _4._8

{

class Program

{

static void Main(string[] args)

{

var L1 = new List<int>();

var L2 = new List<int>();

var L = new List<int>();

Random rnd = new Random();

//////////Заоносим 10 рандомных элементов в списки////////////////

for (int i = 0; i < rnd.Next(5, 10); i++)

{

L1.Add(rnd.Next(10));

}

for (int i = 0; i < rnd.Next(5, 10); i++)

{

L2.Add(rnd.Next(10));

}

L1.Sort();

L1.Sort();

///////Выводим их на экран

Console.Write("L1: ");

foreach (int element in L1)

Console.Write(element + " ");

Console.WriteLine();

Console.Write("L2: ");

foreach (int element in L2)

Console.Write(element + " ");

Console.WriteLine();

////////////Заносим в L элементы котрые входят только в один из сисков

foreach (int elem_L1 in L1)

{

if (L.BinarySearch(elem_L1) < 0)

if (L2.BinarySearch(elem_L1) < 0)

{

L.Add(elem_L1);

L.Sort();

}

}

foreach (int elem_L2 in L2)

{

if (L.BinarySearch(elem_L2) < 0)

if (L1.BinarySearch(elem_L2) < 0)

{

L.Add(elem_L2);

L.Sort();

}

}

/////////////Выводим список L

Console.Write("L: ");

foreach (int element in L)

Console.Write(element + " ");

}

}

}

/* "Для определения порядка элементов списка данный метод использует компаратор по умолчанию Comparer<T>.Default для типа T.

* Компаратор Comparer<T>.Default проверяет, реализует ли тип T универсальный интерфейс IComparable<T>, и использует

* эту реализацию, если она доступна. Если она недоступна, Comparer<T>.Default проверяет, реализует ли тип T интерфейс IComparable.

* Если тип T не реализует эти интерфейсы, Comparer<T>.Default генерирует исключение InvalidOperationException.

* Список List<T> уже должен быть отсортирован в соответствии с реализацией компаратора, в противном случае будет

* получен неверный результат." (c) MSDN */

Задание 9

Найти группы слов, записанных одними и теми же буквами, но отличающиеся их порядком. (Например: КОРМА, КОМАР). В файле используются только слова, записанные строчными латинскими буквами, отделенные друг от друга одним пробелом. Слова расположены в одной строке.

Пример входа

stop korma post komar ramka marka virus karma tops topic rekam marker

Пример вывода

stop post tops

k orma komar

ramka marka karma

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace _4._9

{

class Program

{

static void Main(string[] args)

{

string str = "stop korma post komar ramka marka virus karma tops topic rekam marker";

string[] strArr = str.Split(' ');

Program ArrUpor = new Program();

string[] strArrUpor = ArrUpor.PoAlfavitu(strArr);

for (int i = 0; i < strArrUpor.Length; i++)

{

for (int j = 0; j < strArrUpor.Length; j++)

{

if (strArrUpor[i] == strArrUpor[j])

{

Console.Write(strArr[j] + " ");

}

}

Console.WriteLine();

}

}

string[] PoAlfavitu(string[] strArr)

{

int k = 0;

string[] StrArrRezultat = new string[strArr.Length];

foreach (string slovo in strArr)

{

string SlovoPoAlf = "";

char[] BukviSlova = new char[slovo.Length];

for (int i = 0; i < slovo.Length; i++)

{

BukviSlova[i] = slovo[i];

}

IEnumerable<char> BukviSlovaPoAlfavitu = from word in BukviSlova

orderby word

select word;

foreach (char bukva in BukviSlovaPoAlfavitu)

{

SlovoPoAlf += bukva;

}

StrArrRezultat[k] = SlovoPoAlf;

k++;

}

return StrArrRezultat;

} } }