Program zzz; var A,B,C: array[1..20] of integer; SB,SC: integer; i,kb,kc: byte; begin kb:=0; //количесво элементов в массиве B kc:=0; //количесво элементов в массиве C SB:=0; //сумма элементов массива B SC:=0; //сумма элементов массива C For i:=1 to 20 do begin writeln('введите ',i,'-й элемент массива'); readln (A[i]); if A[i]>=0 then begin kb:=kb+1; B[kb]:=A[i]; SB:=SB+B[kb] end else begin kc:=kc+1; C[kc]:=A[i]; SC:=SC+C[kc] end end; writeln(kb:4, sb:8, kc:4, sc:8); end.
Потому что в ASCII всего 2^8 = 256 символов (обычно это цифры, символы, латиница большие и маленькие буквы, национальный алфавит большие и маленькие буквы)
в юникоде же все сложнее. UTF-16 действительно занимает 16 бит на символ и имеет в себе 2^16 = 65`536 символов, куда помещается множество алфавитов разных языков, в том числе куча иероглифов, которые в ASCII просто не помещались. Описание наборов символов есть на вики
но есть еще и UTF-8 юникодная кодировка которая организована куда сложнее, занимает по 8 бит на символ для латиницы, но дальше идет расширение. Например символы кириллицы занимают уже по 16 бит
в юникоде есть и другие типы кодировок типа UTF-32LE соответственно 32 бита на символ
так что утверждение что "код Unicode-2 байта на символ" вообще говоря сомнительно без уточнения конкретной кодировки.
var A,B,C: array[1..20] of integer; SB,SC: integer; i,kb,kc: byte;
begin
kb:=0; //количесво элементов в массиве B
kc:=0; //количесво элементов в массиве C
SB:=0; //сумма элементов массива B
SC:=0; //сумма элементов массива C
For i:=1 to 20 do begin
writeln('введите ',i,'-й элемент массива');
readln (A[i]);
if A[i]>=0
then begin kb:=kb+1; B[kb]:=A[i]; SB:=SB+B[kb] end
else begin kc:=kc+1; C[kc]:=A[i]; SC:=SC+C[kc] end
end;
writeln(kb:4, sb:8, kc:4, sc:8);
end.
в юникоде же все сложнее. UTF-16 действительно занимает 16 бит на символ и имеет в себе 2^16 = 65`536 символов, куда помещается множество алфавитов разных языков, в том числе куча иероглифов, которые в ASCII просто не помещались. Описание наборов символов есть на вики
но есть еще и UTF-8 юникодная кодировка которая организована куда сложнее, занимает по 8 бит на символ для латиницы, но дальше идет расширение. Например символы кириллицы занимают уже по 16 бит
в юникоде есть и другие типы кодировок типа UTF-32LE соответственно 32 бита на символ
так что утверждение что "код Unicode-2 байта на символ" вообще говоря сомнительно без уточнения конкретной кодировки.