Cоставить программку записи в массив B номеров четных частей массива A.Как
Cоставить программку записи в массив B номеров четных частей массива A.
Как можно проще, пожалуйста
2 ответа
Berkesova Svetlana
Const
N = 13;
Var
A,B:array[1..N] of integer;
i,j:integer;
Begin
j:=0;
Write('Массив A(',N,'):');
For i:= 1 to N do
Begin
A[i]:=random(N);
Write(' ',A[i]);
if A[i] mod 2 = 0 then
Begin
j:=j+1;
B[j]:=i;
End;
End;
WriteLn;
Write('Массив B(',j,'):');
For i:= 1 to j do
Write(' ',B[i])
End.
Пример работы программки:
Массив A(13): 1 11 9 11 12 2 6 12 0 10 8 11 10
Массив B(8): 5 6 7 8 9 10 11 13
N = 13;
Var
A,B:array[1..N] of integer;
i,j:integer;
Begin
j:=0;
Write('Массив A(',N,'):');
For i:= 1 to N do
Begin
A[i]:=random(N);
Write(' ',A[i]);
if A[i] mod 2 = 0 then
Begin
j:=j+1;
B[j]:=i;
End;
End;
WriteLn;
Write('Массив B(',j,'):');
For i:= 1 to j do
Write(' ',B[i])
End.
Пример работы программки:
Массив A(13): 1 11 9 11 12 2 6 12 0 10 8 11 10
Массив B(8): 5 6 7 8 9 10 11 13
Timur Sosnovkin
1. Современное решение
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программка не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println;
var b:=a.Select((x,i)-gt;(x,i)).Where(xi-gt;xi[0].IsEven)
.Select(xi-gt;xi[1]+1).ToArray;
b.Println
end.
Пример работы
n= 15
46 -35 43 17 34 48 17 46 15 -45 13 -50 -46 13 42
1 5 6 8 12 13 15
2. Школьное решение в стиле "ТурбоПаскаль 1983г."
const
nn=500;
var
i,n,k:integer;
a,b:array[1..nn] of integer;
begin
Write('n=');
Read(n);
Randomize;
k:=0;
for i:=1 to n do begin
a[i]:=Random(101)-50;
Write(a[i],' ');
if a[i] mod 2 = 0 then begin
k:=k+1;
b[k]:=i
end
end;
Writeln;
for i:=1 to k do
Write(b[i],' ');
Writeln
end.
Может, оно кому-то проще, но 23 строчки против 5 - очевидно не упрощение)))
Не разговаривая о том, что длиннее писать и больше шансов наделать ошибок.
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программка не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println;
var b:=a.Select((x,i)-gt;(x,i)).Where(xi-gt;xi[0].IsEven)
.Select(xi-gt;xi[1]+1).ToArray;
b.Println
end.
Пример работы
n= 15
46 -35 43 17 34 48 17 46 15 -45 13 -50 -46 13 42
1 5 6 8 12 13 15
2. Школьное решение в стиле "ТурбоПаскаль 1983г."
const
nn=500;
var
i,n,k:integer;
a,b:array[1..nn] of integer;
begin
Write('n=');
Read(n);
Randomize;
k:=0;
for i:=1 to n do begin
a[i]:=Random(101)-50;
Write(a[i],' ');
if a[i] mod 2 = 0 then begin
k:=k+1;
b[k]:=i
end
end;
Writeln;
for i:=1 to k do
Write(b[i],' ');
Writeln
end.
Может, оно кому-то проще, но 23 строчки против 5 - очевидно не упрощение)))
Не разговаривая о том, что длиннее писать и больше шансов наделать ошибок.
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
выпиши в свою тетрадь те правила этикета которые тебе не были
Разные вопросы.
Анна хорошо учится у неё много подруг свободное от учёбы время
Обществознание.
10) Килограмм конфет дороже килограмма печенья на 52 р. За 8
Математика.
Во сколько раз число атомов кислорода в земной коре больше числа
Химия.
Составить монолог от имени дневника двоечника 7-10 предложений
Русский язык.
Рассматривая литературный язык как сложное взаимодействие книжного языка и разговорного,В.И.Чернышёв горячо
Разные вопросы.
Облако тегов