Последняя часть вопроса поставлена некорректно. Массив может в общем случае индексироваться, начиная с любого целого числа, например, с нуля или с единицы. В случае индексирования от нуля, четные индексы будут иметь первый, третий, пятый и т.д. по порядку элементы, а при нумерации от единицы - второй, четвертый, шестой и т.д. Будем считать, что индекс массива совпадает с порядковым номером элемента, т.е. индексация в массиве идет от единицы, тогда выводу подлежат второй, четвертый, шестой и т.д. элементы.
1. Современный "короткий" вариант
// PascalABC.NET 3.1, сборка 1190 от 05.03.2016 begin var a:=ArrRandom(17,-50,50); a.Println; a.Where((x,i)->Odd(i)).Println end.
2. Традиционный ("школьный" вариант) - так до сих пор учат в школах
// PascalABC.NET 3.1, сборка 1190 от 05.03.2016 const n=17; var a:array[1..n] of integer; i:integer; begin Randomize; for i:=1 to n do begin a[i]:=Random(101)-50; Write(a[i],' ') end; Writeln; i:=2; while i<=n do begin Write(a[i],' '); i:=i+2 end; Writeln end.
Таблицы позволяют объединить однотипные данные в более-менее читабельную структуру, чего не делает словесное описание (как, например, приятней читать таблицу с датами и описанием исторических событий в таблице, чем читать словесную демагогию в учебиках). Таблицы позволяют ужать данные в размере, читателю сосредоточиться на главном. Они позволяют операторам обрабатывать её без каких-либо затруднений.
Еще пример: магазинные чеки. Не будет же машина (из-за технической сложности) или человек (из-за лени) писать на чеке: "продано столько-то столько-то того-то того-то ... пакет апельсинов весил шестьсот пядесят три грамма ... итд". На чеке будет табличка, где четко и точно будет написано то, что человек приобрел. Вот. Так что табличные модели, несомненно, лучше словесных.
Будем считать, что индекс массива совпадает с порядковым номером элемента, т.е. индексация в массиве идет от единицы, тогда выводу подлежат второй, четвертый, шестой и т.д. элементы.
1. Современный "короткий" вариант
// PascalABC.NET 3.1, сборка 1190 от 05.03.2016
begin
var a:=ArrRandom(17,-50,50); a.Println;
a.Where((x,i)->Odd(i)).Println
end.
Тестовое решение:
-6 35 -48 -50 -16 -36 20 16 -10 32 -4 34 46 -45 14 13 -36
35 -50 -36 16 32 34 -45 13
2. Традиционный ("школьный" вариант) - так до сих пор учат в школах
// PascalABC.NET 3.1, сборка 1190 от 05.03.2016
const
n=17;
var
a:array[1..n] of integer;
i:integer;
begin
Randomize;
for i:=1 to n do begin
a[i]:=Random(101)-50;
Write(a[i],' ')
end;
Writeln;
i:=2;
while i<=n do begin
Write(a[i],' ');
i:=i+2
end;
Writeln
end.
Тестовое решение:
27 -29 10 -35 -48 -45 0 4 -50 -13 17 -41 12 26 38 26 23
-29 -35 -45 4 -13 -41 26 26
Еще пример: магазинные чеки. Не будет же машина (из-за технической сложности) или человек (из-за лени) писать на чеке: "продано столько-то столько-то того-то того-то ... пакет апельсинов весил шестьсот пядесят три грамма ... итд". На чеке будет табличка, где четко и точно будет написано то, что человек приобрел.
Вот. Так что табличные модели, несомненно, лучше словесных.