НАЧАЛО ПОКА нашлось (19) ИЛИ нашлось (299) ИЛИ нашлось (3999)
заменить (19, 2)
заменить (299, 3)
заменить (3999, 1)
КОНЕЦ ПОКА
КОНЕЦ
На вход этой программе подаётся строка длины 101, состоящая из цифры 1, за которой следуют 100 идущих подряд цифр 9. Какая строка получится в результате применения программы к этой строке
найти ошибку в программе Паскаль
begin
var s := '1' * 99 + '9' * 98;
while (pos ('19',s)> 0) (pos ('299',s)> 0)or (pos ('3999',s)> 0)do
begin
var i1:= pos ('19',s);
var i2:= pos ('299',s);
var i3:= pos ('3999',s);
if ('19'<> 0) or ('299'<> 0) or ('3999'<> 0) then
begin
delete (s,'19',2);
insert (s,'2',i1);
delete (s,'299',3);
insert (s,'3',i2);
delete (s,'3999',4);
insert (s,'1',i3);
end;
end;
writeln (s)
end.
Const N = 3;
Var A: Array [1..N, 1..N] of Integer;
d, p, n
First, nLast, I, J, K: Integer;
Begin
nFirst := 1;
nLast := N;
p := (N Div 2 + 1);
For K := 1 To p Do Begin
If K = p Then
Begin
d := p + 1;
If d > 3 Then
d := 1;
A[nFirst, nLast] := d;
Break;
End;
For J := nFirst To nLast Do
Begin
If J <= p Then
Begin
d := d + 1;
End
Else
Begin
d := d - 1;
End;
A[nFirst, J] := d;
A[nLast, J] := d;
End;
d := 0;
For I := nFirst To nLast Do
Begin
If I <= p Then
Begin
d := d + 1;
End
Else
Begin
d := d - 1;
End;
A[I, nFirst] := d;
A[I, nLast] := d;
End;
d := 0;
nFirst := n
First + 1;
nLast := nLast - 1;
End;
For I := 1 To N Do
Begin
For J := 1 To N Do
Write(A[I, J], ' ');
WriteLn;
End;
ReadLn;
End.
Рассмотрим выражение X<3. Оно истинно для 1, 2 и ложно для 3, 4
Рассмотрим первую импликацию: две истины дают истину, значит для ответов 1,2 вторую импликацию (после или) можно не рассматривать, поскольку первая часть истинна.
Для вариантов 3,4 рассмотрим вторую импликацию.
Выражения X<2 и X<1 для вариантов 3,4 дают ложь. Импликация, где оба аргумента дают ложь, истинна. Получается, что для ответов 3,4 истинна вторая импликация, а значит значение первой несущественно (для оператора или).
отсюда следует, что выражение "((X < 5)→(X < 3)) или ((X < 2)→(X < 1))" истинно при всех перечисленных значениях х: 1, 2, 3, 4