Задайте массив из 10 элементов с датчика случайных чисел. выведите на экран исходный массив и и номера тех элементов,которые расположены между наибольшим и наименьшим элементами
var ar:array[1..10] of integer; max,min,i,kmax,kmin:integer; begin randomize;
max:=0; min:=1000;
for i:=1 to 10 do begin ar[i]:=random(1000)+1; if (ar[i] > max) then begin max:=ar[i]; kmax:=i; end else if (ar[i] < min) then begin min:=ar[i]; kmin:=i; end; write(ar[i],' '); end;
writeln();
if (kmax > kmin) then for i:=kmin+1 to kmax-1 do write(i,' ') else if (kmax < kmin) then for i:=kmax+1 to kmin-1 do write(i,' '); end.
Десятичных цифр, как все знают, 10 :) (от 0 до 9) значит, на месте каждого из 7 знаков может стоять любой из 22+10=32 символов. тогда по формуле один символ займет логарифм по основанию 2 от 32 = 5 бит. (5 мест, на каждом из которых стоит один бит - 1 либо 0, этого хватит как раз на 2^5=32 символа) тогда на номер 7*5 = 35 бит. один байт = 8 бит. 35/8 не делится нацело, надо подобрать минимальное, чтобы делилось (это 40). значит на 1 номер приходится 40/8=5 байт. ну а на 50 номеров 5*50=250 байт. Стало быть, ответ: 3
1. Определим количество возможных символов в одном разряде номера. Поскольку используется 22 буквы и 10 цифр, то в сумме получается 32 символа. 2. Определим количество бит, необходимых для кодирования набора из 32 символов. Если считать, что символы кодируются цифрами от 0 до 31, потребуется бит. 3. Определим количество байт, которое займет один номер. В номере 7 символов, поэтому для его кодирования нужно 7х5=35 бит. В байте 8 бит, тогда для размещения 35 бит потребуется 35/8 ≈ 5 байт (округляем до целых всегда в большую сторону). 4. Определим объем памяти, отводимый для записи 50 номеров. 50х5=250 байт.
var
ar:array[1..10] of integer;
max,min,i,kmax,kmin:integer;
begin
randomize;
max:=0;
min:=1000;
for i:=1 to 10 do begin
ar[i]:=random(1000)+1;
if (ar[i] > max) then
begin max:=ar[i]; kmax:=i; end
else if (ar[i] < min) then begin min:=ar[i]; kmin:=i;
end;
write(ar[i],' ');
end;
writeln();
if (kmax > kmin) then for i:=kmin+1 to kmax-1 do write(i,' ')
else if (kmax < kmin) then for i:=kmax+1 to kmin-1 do write(i,' ');
end.
P.S. В решении выше есть далеко ни одна ошибка ;)