Для начала переведем в десятичную 7*1+2*9+1*81=106. Перенесем 24 вправо 106-24=82. Число = Нужно 82 перевести в другую систему, вопрос в какую. Честно говоря взял наугад 7 (основание должно быть явно меньше 10 и даже 9). Делим нацело 82/7=11 + 5 остаток (это будет младший разряд) теперь делим 11/7=1+4 (остаток будет второй цифрой) и единичка (на 7 больше не делится) будет самым старшим разрядом.
Теперь, как я понял, нужно перевести в троичную (если другое число, не 82, то переведите по примеру). 82/3=27+1(остаток, младший разряд), 27/3=9+0(0 это следующий разряд), 9/3=3+0 (0 это третий разряд), 3/3=1+0 (0 это четвертый разряд), и осталась единичка, которая на 3 не делится (нет целой части от деления). Это будет самый старший разряд. Получили.
1. Запись НЕ ВЕРНА. В операторе цикла for i:= 1 to sqrt(k) do значение, возвращаемое функцией sqrt имеет тип real, а в этом операторе все значения должны приводиться к целочисленному типу. Автоматическое приведение типа real к integer в языке Паскаль невозможно, его нужно осуществлять явно при функции Trunc() или Round().
2. НИ РАЗУ И НИЧЕГО НЕ БУДЕТ НАПЕЧАТАНО. Программа не откомпилируется из-за ошибок, которых в операторе if k write(k); сразу две. Первая - после k пропущено ключевое слово then. Вторая состоит в том, что после if должно следовать логическое выражение, а k имеет тип char, но не boolean.
3. ОДИН РАЗ, БУДЕТ ВЫВЕДЕНО True. В цикле должны быть значения порядкового типа и тип boolean этому требованию удовлетворяет. При входе в цикл f=false, цикл выполняется, затем f=true и цикл завершается. При однократном проходе по циклу выполнится оператор g:= not f и g получит значение true. Это значение и будет выведено.
Объяснение:
Для начала переведем в десятичную 7*1+2*9+1*81=106. Перенесем 24 вправо 106-24=82. Число = Нужно 82 перевести в другую систему, вопрос в какую. Честно говоря взял наугад 7 (основание должно быть явно меньше 10 и даже 9). Делим нацело 82/7=11 + 5 остаток (это будет младший разряд) теперь делим 11/7=1+4 (остаток будет второй цифрой) и единичка (на 7 больше не делится) будет самым старшим разрядом.
Теперь, как я понял, нужно перевести в троичную (если другое число, не 82, то переведите по примеру). 82/3=27+1(остаток, младший разряд), 27/3=9+0(0 это следующий разряд), 9/3=3+0 (0 это третий разряд), 3/3=1+0 (0 это четвертый разряд), и осталась единичка, которая на 3 не делится (нет целой части от деления). Это будет самый старший разряд. Получили.
В операторе цикла for i:= 1 to sqrt(k) do значение, возвращаемое функцией sqrt имеет тип real, а в этом операторе все значения должны приводиться к целочисленному типу. Автоматическое приведение типа real к integer в языке Паскаль невозможно, его нужно осуществлять явно при функции Trunc() или Round().
2. НИ РАЗУ И НИЧЕГО НЕ БУДЕТ НАПЕЧАТАНО. Программа не откомпилируется из-за ошибок, которых в операторе if k write(k); сразу две.
Первая - после k пропущено ключевое слово then.
Вторая состоит в том, что после if должно следовать логическое выражение, а k имеет тип char, но не boolean.
3. ОДИН РАЗ, БУДЕТ ВЫВЕДЕНО True.
В цикле должны быть значения порядкового типа и тип boolean этому требованию удовлетворяет. При входе в цикл f=false, цикл выполняется, затем f=true и цикл завершается. При однократном проходе по циклу выполнится оператор g:= not f и g получит значение true. Это значение и будет выведено.