Next:4.2
Независимая обработка элементов
Up:4.1
Средства для организации циклических вычислений
Previous:4.1.5
Пошаговая разработка программ
(1) while read(X) do end;
(2) while true do read(X) end;
(3) while Z do Z := X
0; X := X+1 end;
(4) while X
1 while Z # 0 do read(X,Z) end end;
(5) repeat until false;
(6) while false do end;
(7) repeat Z := X = Y; X := X + 1 until Z;
(8) repeat read(X); write(X) until Eof;
(9) for I := 0 to 2 do X := Sqr(X) end;
(10) for I := 10 to 2 by 1 do X :=
Sqr(X) end;
(11) for X := 'A' to 'Z' do write(X) end;
(12) for X := 1.0 to 10 do write(X) end.
2. Укажите, какие из следующих программ не содержат ошибок:
module A; var X,Y : real; begin for X := 1 to 10 do read(Y); write(Y) end end;
module B; var I,J : integer; begin I := 1 ; while I 10 do J := 1; while J 10 do write(I,J); J := J+1; I := I+1 end;
module C; var I,J : integer; begin for I := 9 to 1 by -1 do for J := 1 to 9 do writeln(I:2, '': 2, J:2, '=':2,I J:2) end end;
module D; var X : char; I : integer;
begin while false do end; repeat until
true; for X := 1 to 3 do for I := 10 to
1 by -1 do end end end.
3. Пусть A и B -- произвольные значения целого типа. Укажите, какие из приведенных ниже высказываний истинны:
(1) for I := 1 to 10 do write(I) end{ I
= 10 },
(2) for I := 10 downto 1 do write(I) end
{ I = 0 },
(3) for I := 1 to 10 do write(I) end {
I = 11 },
(4) { X = A } while true do write(X) end { X =
A },
(5) { X = A } while true do write(X) end { X =
B },
(6) repeat X := X+1 until X = 0 {X = 0 },
(7) {X = A} while Y = B do read(Y); write(X,Y)end
{X=A, Y=B}
(8) {X=A} while Y = B do read(Y); write(X,Y)
end
{X=A, Y
B}.
4. Сформулируйте правило вывода свойств для оператора цикла с условием на окончание.
5. Проанализируйте завершаемость следующих циклов:
(1) while X
0 do X := X-1end;
(2) repeat X := X-1 until X = 0;
(3) while X
0 do X := X+1end;
(4) repeat Z := X; X := Y; Y := Z+2 until X
Y;
(5) while N1
do
if ~ odd(N) then N:=N div 2 + 1
else N:=N+1end
end;
6. Докажите завершаемость следующих операторов цикла:
(1) while N1
do
if odd(N) then N:=N+1 else N:=N div 2end end;
(2) { N0,
M0
} while N # 0
do K:=M; M:=N; N:=K mod N end;
(3) { N0,
M0
} while M # N
do if MN
then
M:=M-N else N:=N-M end end;
(4) while N0
do
if odd(N) then Z:=ZX;
N:=N-1 else X:=Sqr(X); N:=N div 2
end end;
(5) while ~ Eof do Read(X) end;
7. Для программы
module Цикл;
var N, I : integer; A, X, S, B : real;
begin Read(N,A,X); S := 0; B := 1;
for I := 1 to N do B := BN;
S := S+B end;
write ('Ответ = ', A
S)
end Цикл.
укажите последовательность состояний памяти и выходную последовательность при условии, что на входе задана последовательность
(1) 3 0.1 0.3 ,
(2) 3 2.5 0.8 ,
(3) 4 5.0 0.5 ,
(4) 3 1.0 0.01 ,
(5) 0 1.2 0.4 ,
(6) 2 3.4 0.2 .
Next:4.2
Независимая обработка элементов
Up:4.1
Средства для организации циклических вычислений
Previous:4.1.5
Пошаговая разработка программ