Дан одномерный массив, отобразить элементы кратные 3 и отсортировать методом обмена - PascalABC.NET
Формулировка задачи:
Привет! Помогите, пожалуйста, решить задачу, никак не могу её решить.
Дан одномерный массив, отобразить элементы кратные 3 и отсортировать методом обмена.
Решение задачи: «Дан одномерный массив, отобразить элементы кратные 3 и отсортировать методом обмена»
textual
Листинг программы
uses System.linq;
type
g=Igrouping<integer,integer>;
var
a,b:array of integer;
begin
writeln('введите элементы массива через пробел:');
a:=ReadString.Split(new string[1](' '),System.StringSplitOptions.RemoveEmptyEntries).
Select(s->strtoint(s)).ToArray();
b:=a.Where((i:integer)->i mod 3=0).ToArray();
writeln('Элементы кратные 3:',b);
writeln('оригинальный отсортированный массив:',a.GroupBy((i:integer)->i).OrderBy((x:g)->x.key).selectmany(i->i));
writeln('полученный отсортированный массив:',b.GroupBy((i:integer)->i).OrderBy((x:g)->x.key).selectmany(i->i));
end.
Объяснение кода листинга программы
Объяснение действий в коде:
- Переменная
aинициализируется массивом, в который считываются элементы через пробел. - Переменная
bинициализируется массивом, в который попадают только элементы, кратные 3. - Выводится сообщение с элементами массива
b, которые кратны 3. - Выводится сообщение с оригинальным отсортированным массивом
a. - Выводится сообщение с полученным отсортированным массивом
b. Пояснение к коду: - В строке
a:=ReadString.Split(new string[1](' '),System.StringSplitOptions.RemoveEmptyEntries).Select(s->strtoint(s)).ToArray()считывается строка, разделенная пробелами, и преобразуется в массив целых чисел. - В строке
b:=a.Where((i:integer)->i mod 3=0).ToArray()из массиваaвыбираются только элементы, кратные 3. - В строке
writeln('Элементы кратные 3:',b)выводится сообщение с элементами массиваb, которые кратны 3. - В строке
writeln('оригинальный отсортированный массив:',a.GroupBy((i:integer)->i).OrderBy((x:g)->x.key).selectmany(i->i))сортируется и выводится оригинальный отсортированный массивa. - В строке
writeln('полученный отсортированный массив:',b.GroupBy((i:integer)->i).OrderBy((x:g)->x.key).selectmany(i->i))сортируется и выводится полученный отсортированный массивb.