1.
var
A: array [1..10] of integer;
max, i: integer;
begin
for i:=1 to 10 do // заполнение массива
A[i] := random(100) - 50;
max := -51;
for i:=1 to 10 do // обработка массива
if (A[i] < 0) and (A[i] > max) then
max := A[i];
writeln(max);
end.
2.
var
A: array [1..1000] of integer;
kol, i, N: integer;
begin
readln(N);
for i:=1 to N do // заполнение массива
A[i] := random(100) - 50;
for i:=1 to N do // обработка массива
if A[i] mod 2 = 0 then
inc(kol);
writeln(kol);
end.
const
AOper: array [0..3] of string = ('+', '-', '*', '/');
var
a, b, Oper: Integer;
r: Real;
begin
Randomize; // инициализация датчика случайных чисел
a := Random (1001);
b := Random (1001);
Oper := Random (4);
case Oper of
0: r := a + b;
1: r := a - b;
2: r := a * b;
3:if b <> 0 then begin
r := a / b;
end else begin
WriteLn ('Произошла ошибка при делении на ноль');
Exit;
end
else r := -1;
end;
WriteLn (a);
WriteLn (b);
WriteLn (Aoper [Oper]);
if (r >= 0) and (r - Trunc (r) = 0) then begin // если в результате получилось положительное целое число
WriteLn ('yes');
WriteLn (r :6 :0);
end else
WriteLn (' no');
ReadLn;
end.
Объяснение:
r - Trunc (r) // это выделение дробной части числа
Ну смотри: есть число. Допустим это 25 для того, чтобы записать любое число у нас есть 10 цифр (0-9). А теперь представим, что цифр только 2(0 и 1).
Но число должно быть записано.
Для числа 0(в десятичной системе) у нас есть число 0 в двоичной.
Для числа 1(в десятичной системе) у нас есть число 1 в двоичной.
Пока все хорошо, но для числа 2 в десятичной у нас нет цифры 2 в двоичной (у нас только 1 и 0)
Так что же делать? Ровно то, что мы делаем, когда кончаются цифры в десятичной системе, переходим на следующей разряд:
2 в десятичной равно 10 в двоичной.
3 в десятичной - 11 в двоичной
4 в десятичной - 100 в двоичной и так далее.
Законы на это действуют такие же, как и на десятичную систему счисления, просто законы эти для нас так очевидны, что мы их не замечаем.
Далее. Ну цифры, ну и что? Да всё. Мы живём в цифровую эпоху и называется она не просто так. Каждый символ набранный на компе или на телефоне - это просто некое число, которому соответствует какая-то картинка(сам символ). Но для того, что бы интерпретировать символы однозначно, нам нужно, что бы каждый символ занимал определенное количество разрядов. Чаще всего на один символ уходит 8 разрядов. С десятичных разрядов можно закодировать числа от 00000000 до 99999999, т.е. 100000000 значений.
Но в двоичной системе она может занимать диапазон от 00000000 до 11111111 и все это в двоичной системе и это 256 значений. Кароче, символов, которыми мы располагаем 256. Это мощность алфавита, т.е. то сколько символов мы можем использовать. Так, например, мощность русского алфавита - 33 символа строчных, 33 заглавных и пробел, т.е. 67 символов. Иногда 256 символов катастрофически не хватает. Например для китайских иероглифов или арабской вязи. Да плюс это все ещё нужно совмещать. Так что умные люди придумали другие стандарты, например utf-8, который, в зависимости от обстоятельств, может занимать от 8 бит (двоичных разрядов) , до 64 бит (для эмодзи и т.п)
Как же вычислить, мощность алфавита?
Она вычисляется так: 2 возводим в степень числа бит. Так для 2^8= 256.
Таким же образом кодируется не только текст, но и изображения.
Есть изображение 512 на 256 px. Px - это что-то вроде буквы в тексте. Всего этих букв 256 в строке, а строк 512. Каждая буква в этом "тексте" - цвет. Если на цвет выделить 1 бит, то цветов будет только 2, ведь 2^1=2. Изображение будет черно-белым. Но если на пиксель выделить 3 бита, цветов может быть 8.
Примерно тоже самое со звуком. Но тут немного сложнее. При записи звука происходят измерения его громкости раз в какой-то момент времени. Обычно (для задач) таких измерений около 50000 в секунду. На каждое измерение в свою очередь тоже тратятся разряды. Обычно они кратны 8. Итак, допустим, что произвели запись 2 секунды звука с частотой дискретизации 50000 гц (измерений в секунду) и на каждое измерение потратили 24 бита. Сколько данных будет занимать такой файл? 2*50000 это число измерений произошедших за 2 секунды. Каждое измерение заняло 24 бита, а значит весь этот файл будет "весить" 2*50000*24 бита.
Если вспомнить, что 8 бит - 1 байт, можно перевести все в байты. А если вспомнить, что в 1 кбайте 1024 байт, то можно продолжить дальше.