а) 1000 бит и 1 Кбайт
1 Кбайт = 1024 байт = 1024*8 бит =8192 бит
1000 бит < 1 Кбайт
b) 1536 бит и 1,5 Кбайт
1,5 Кбайт = 1,5* 8192 = 12288 бит
1536 бит < 1,5 Кбайт
c) 220 байт и 0,25 Кбайт
0.25 Кбайт = 1024*0.25 байт = 256 байт
220 байт < 0,25 Кбайт
С = 45
Это цикл, который будет повторяться пока b не равно 10, как только b = 10 выводится значение переменной с
Не такое оно и сложное.
Главная проблема - то, что между словами может быть несколько пробелов.
Устраним её, написав функцию, которая оставляла бы между словами по 1 пробелу:
function RemoveSpaces(str : string) : string;
begin
//Тут цикл for, переписанный через while
var iter := 1;
//Проходим по строке
while (iter < str.Length) do
begin
//Если видим 2 пробела подряд, удаляем 1 и откатывает итератор.
if (str[iter] = ' ') and (str[iter + 1] = ' ') then
begin
str := str.Remove(iter, 1);
iter -= 1;
end;
iter += 1;
end;
RemoveSpaces := str;
end;
Теперь мы можем получить кол-во слов очень просто:
function CalcWords(str : string) : integer;
begin
CalcWords := RemoveSpaces(str).Split(' ').Count();
end;
Т.е. мы делим строку на массив через пробелы, и считаем кол-во элементов массива.
полный код: https://pastebin.com/A63ggdWm
Возьмем число 56 и его надо перевести из 10-ой в 2-ую. Тут надо делить на 2 с остатком
56:2= 28+0-остаток
28:2=14+0
14:2=7+0
7:2= 3+1
3:2=1+1
1:2= 1+0
и записываем остатки снизу вверх
011000
Да да да
да да нет
да нет да
да нет нет
нет да да
нет нет да
нет нет нет
нет да нет