Var a:integer;
begin
write('a = ');
readln(a);
writeln('Укажите направление перевода:');
writeln('1 - бит -> байт, Кбайт, Мбайт');
writeln('2 - байт -> бит, Кбайт, Мбайт');
writeln('3 - Кбайт -> бит, байт, Мбайт');
writeln('4 - Мбайт -> бит, байт, Кбайт');
readln(n);
case n of
1: writeln(a,' бит = ',a/8,' байт, ',a/8/1024,' Кбайт, ',a/8/1024/1024,' Мбайт');
2: writeln(a,' байт = ',a*8,' бит, ',a/1024,' Кбайт, ',a/1024/1024,' Мбайт');
3: writeln(a,' Кбайт = ',a*8*1024,' бит, ',a*1024,' байт, ',a/1024,' Мбайт');
4: writeln(a,' Мбайт = ',a*8*1024*1024,' бит, ',a*1024*1024,' байт, ',a*1024,' Кбайт');
else writeln('Неверный номер');
end;
end.
Пример:
a = 2048
Укажите направление перевода:
1 - бит -> байт, Кбайт, Мбайт
2 - байт -> бит, Кбайт, Мбайт
3 - Кбайт -> бит, байт, Мбайт
4 - Мбайт -> бит, байт, Кбайт
3
2048 Кбайт = 16777216 бит, 2097152 байт, 2 Мбайт
<em>// PascalABC.NET 3.2, сборка 1417 от 28.03.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var a:=ArrRandom(ReadInteger('n='),-20,20); a.Println;
Writeln(a[:a.IndexMax].Where(x->(x>=1) and (x<=12)).Count)
end.
<u>Пример</u>
n= 15
3 12 -1 10 -7 18 10 19 8 9 -2 4 0 19 13
4
<em>А вот так учат писать эту же программу в школе...</em>
const
nn=100;
var
a:array[1..nn] of integer;
i,n,imax,k:integer;
begin
Randomize;
Write('n='); Read(n);
for i:=1 to n do begin
a[i]:=Random(41)-20;
Write(a[i],' ');
end;
Writeln;
imax:=1;
for i:=2 to n do
if a[i]>a[imax] then imax:=i;
k:=0;
for i:=1 to imax do
if (a[i]>=1) and (a[i]<=12) then k:=k+1;
Writeln(k)
end.
<u>Вот отсюда и вопрос: для чего учить писать длинно, сложно и малопонятно?</u>