Помогите составить программу заполнения массива, состоящего из 17 элементов, случайными...

0 голосов
58 просмотров

Помогите составить программу заполнения массива, состоящего из 17 элементов, случайными целыми числами их промежутка [-50;+50]. Вывести на экран сначала все элементы массива, а затем с новой строки элементы с четными индексами.


Информатика (15 баллов) | 58 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Последняя часть вопроса поставлена некорректно. Массив может в общем случае индексироваться, начиная с любого целого числа, например, с нуля или с единицы. В случае индексирования от нуля, четные индексы будут иметь первый, третий, пятый и т.д. по порядку элементы, а при нумерации от единицы - второй, четвертый, шестой и т.д.
Будем считать, что индекс массива совпадает с порядковым номером элемента, т.е. индексация в массиве идет от единицы, тогда выводу подлежат второй, четвертый, шестой и т.д. элементы.

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<br>    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

(142k баллов)