Срез - это набор элементов списка, массива или строки.
Приведем в пример программу, демонстрирующую срезы в PascalABC.NET, а также решения задач с использованием срезов.
begin
var a:=Arr(10, 11, 12, 13, 14, 15, 16, 17, 18);
a.Println(); // вывод массива // [10, 11, 12, 13, 14, 15, 16, 17, 18]
a[1:3].Println(); // срез по индексам [1, 3) с шагом 1 // [11, 12]
a[2:8:3].println(); // срез по индексам [2, 8) с шагом 3 // [12, 15]
a[7:2:-1].Println(); // срез по индексам [7, 2) с шагом -1 // [17, 16, 15, 14, 13]
a[::-1].Println(); // реверс массива
end.
Задача 1. В массиве удалить каждый второй элемент.
Пусть имеется массив [12, 13, 14, 15, 16]
Результат [12, 14, 16]
begin
var a:=Arr(12, 13, 14, 15, 16);
a:=a[::2];
a.Println();
end.
Задача 2. В массиве найти минимальный элемент среди элементов, у которых индексы кратны 3.
Пусть имеется массив [100, 12, 14, 23, 45, 200, 27, 21]
То есть среди элементов 100, 23, 27 найти минимальный.
begin
var a:=Arr(100, 12, 14, 23, 45, 200, 27, 21);
var m:=a[0::3].Min;
println(m);
end.
Задача 3. В массиве удалить элемент с индексом k (k меньше количества элементов массива).
begin
var a:=Arr(100, 12, 14, 23, 45, 200, 27, 21);
var k:=random(a.Length);//k зададим случайно
if k < a.Length-1 then a:=a[:k]+a[k+1:]
else a:=a[:a.Length-1];
a.Println;
println('удалили элемент с индексом ',k);
end.
Задача 4. В массив вставить элемент на место с индексом k (k меньше количества элементов массива).
begin
var a:=Arr(100, 12, 14, 23, 45, 200, 27, 21);
var k:=random(a.Length);//зададим случайно
setlength(a, a.Length);
var d:=Random(100); //число зададим случайно
if k < a.Length then a:=a[:k] + Arr(d) + a[k:]
else a:=a[:a.Length-1] + Arr(d);
a.Println;
println('вставили число ',d,' на место с индексом ',k);
end.
Динамические массивы в Паскале Читать |
Найти число пар соседних элементов массива, оканчивающихся нулем. Язык Паскаль. Читать |
Найти максимум/минимум в массиве. Программа на языке Паскаль. Читать |
Массивы в языке Паскаль. Решение задач. 8 класс (сумма, произведение, среднее арифметическое, минимум/максимум с условием) Читать |
Язык Паскаль. Найти количество различных чисел в массиве из N элементов (2 способа решения) Читать |