Решить паскаль 1) переменные x,y,i,k описаны как var i, k: integer; x,y: real; верна ли запись k: = 81; y: = 1; for i: = 1 to sqrt (k) do y: = 2*y; ответ обосновать 2)сколько раз выполняется цикл, и что будет выводится на печать? var i, k: char; k: = 'z'; for i: = 'a' to 'b' do if k write(k); 3)сколько раз выполняется цикл, и что будет выводится на печать? var f, g: boolean; begin g: = false; for f: = false to g do g: = not f; writeln(g)end.
В операторе цикла 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. Это значение и будет выведено.