1. Дан одномерный массив. Запиши верный ответ.
(Считай индексы элементов массива начиная с 1.)
−17 21 0 −2 5 12
Значение элемента массива — −17.
Индекс элемента массива —
2. Дано описание массива:
var a:array [1..41] of integer;
Здесь oписан массив a из _ целочисленных значений. При выполнении этого оператора в памяти компьютера будет выделено _ ячеек целого типа.
3. Дано описание массива:
consta:[1..4]ofinteger=(10,9,60,102);
Верно ли описан массив?
верно
неверно
4. Определи заполнения массива.
randomize;fori:=1to10doa[i]:=random(95);
с оператора присваивания (случайными числами)
нет верного ответа
ввод каждого значения с клавиатуры
5. Дано описание массива:
vara:array[1..n]ofinteger;
Выбери, какие элементы массива подходят.
−4.82.8
среда четверг суббота
−803
6. Заполни пропуски в программе.
Процедура без параметров, которая печатает строку из 41 восклицательных знаков.
procedure str ;
var i : integer ;
begin
for i :=1 to
do write ('
'); writeln;
end;
begin
;
readln;
end.
Проблема в строке c:= (b*b*b);
Ты ищешь сумму кубов, а для 4-значных чисел нужно искать сумму 4-х степеней. Нужно проверять число а: если от 100 до 999, то выполняем c:= (b*b*b); а если от 1000 до 9999, то выполняем c:= (b*b*b*b);
Код ниже работает и выдаёт результат:
число Армстронга ==> 153
число Армстронга ==> 370
число Армстронга ==> 371
число Армстронга ==> 407
число Армстронга ==> 1634
число Армстронга ==> 8208
число Армстронга ==> 9474
var a,b,c,d,a2:integer;
begin
for a:=100 to 9999 do begin
d:=0;
a2:=a;
while (a2 <> 0) do begin
b:= a2 mod 10;
a2:= a2 div 10;
if a<1000 then c:= (b*b*b)
else c:= (b*b*b*b);
d:= d+c;
end;
if (a = d) then writeln('число Армстронга ==> ', a);
end;
end.
n = 20;
var
pos,neg: integer;
i,k,x: integer;
ev,un: integer;
a,b: array [1..n] of integer;
begin
for i := 1 to n do
read(a[i]);
k := 0;
pos := 0;
neg := 0;
for i := 1 to n do
begin
ev := 0;
un := 0;
x := a[i];
if x <> 0 then
if x > 0 then
if (x < pos) or (pos = 0) then
pos := x
else
else
if (x > neg) or (neg = 0) then
neg := x;
x := abs(x);
while x <> 0 do
begin
if odd(x) then
un := un + 1
else
ev := ev + 1;
x := x div 10
end;
if un = ev then
begin
k := k + 1;
b[k] := a[i]
end
end;
writeln(pos,' ',neg);
for i := 1 to k do
write(b[i],' ')
end.