Чтобы выражение было истинным, необходимо, чтобы (х > 4) и ((х < 10) или (х < 13)) были истинными одновременно. Чтобы ((х < 10) или (х < 13)) было истинными, необходимо, чтобы либо (х < 10), либо (х < 13) были истинными, либо оба одновременно. => 13>x>4 => Всего 8 чисел (12, 11, 10, 9, 8, 7, 6, 5)
Можно проверить: (12 > 4) и ((12 < 10) или (12 < 13)) =1 и (0 или 1)=1и1=1 (11 > 4) и ((11 < 10) или (11 < 13)) =1 и (0 или 1)=1и1=1 (10 > 4) и ((10 < 10) или (10 < 13)) =1 и (0 или 1)=1и1=1 (9 > 4) и ((9 < 10) или (9 < 13)) =1 и (1 или 1)=1и1=1 (8 > 4) и ((8 < 10) или (8 < 13)) =1 и (1 или 1)=1и1=1 (7 > 4) и ((7 < 10) или (7 < 13)) =1 и (1 или 1)=1и1=1 (6 > 4) и ((6< 10) или (6 < 13)) =1 и (1 или 1)=1и1=1 (5 > 4) и ((5 < 10) или (5 < 13)) =1 и (1 или 1)=1и1=1
Это рекурсивный вызов процедуры. При первом вызове F(7) по условию if n>1 then ... будет вызов этой же процедуры f(n div 2); или f(3), далее, т.к. 3>1, то снова будет вызвана процедура f(3 div 2) или f(1), теперь не выполняется условие n>1, следовательно, будет выполнен оператор write ('**'); - напечатаются две звездочки, после выхода из процедуры продолжится выполнение процедуры при втором вызове - будут напечатаны еще 2 звездочки, затем продолжится выполнение при первом вызове - еще будут напечатаны 2 звездочки. В результате вызова f(7) будут напечатаны 6 звездочек .
(х > 4) и ((х < 10) или (х < 13)) были истинными одновременно.
Чтобы ((х < 10) или (х < 13)) было истинными, необходимо, чтобы либо (х < 10), либо (х < 13) были истинными, либо оба одновременно. =>
13>x>4 => Всего 8 чисел (12, 11, 10, 9, 8, 7, 6, 5)
Можно проверить:
(12 > 4) и ((12 < 10) или (12 < 13)) =1 и (0 или 1)=1и1=1
(11 > 4) и ((11 < 10) или (11 < 13)) =1 и (0 или 1)=1и1=1
(10 > 4) и ((10 < 10) или (10 < 13)) =1 и (0 или 1)=1и1=1
(9 > 4) и ((9 < 10) или (9 < 13)) =1 и (1 или 1)=1и1=1
(8 > 4) и ((8 < 10) или (8 < 13)) =1 и (1 или 1)=1и1=1
(7 > 4) и ((7 < 10) или (7 < 13)) =1 и (1 или 1)=1и1=1
(6 > 4) и ((6< 10) или (6 < 13)) =1 и (1 или 1)=1и1=1
(5 > 4) и ((5 < 10) или (5 < 13)) =1 и (1 или 1)=1и1=1
ответ: 8
if n>1 then ... будет вызов этой же процедуры f(n div 2); или f(3), далее, т.к. 3>1, то снова будет вызвана процедура f(3 div 2) или f(1), теперь не выполняется условие n>1, следовательно, будет выполнен оператор write ('**'); - напечатаются две звездочки, после выхода из процедуры продолжится выполнение процедуры при втором вызове - будут напечатаны еще 2 звездочки, затем продолжится выполнение при первом вызове - еще будут напечатаны 2 звездочки. В результате вызова f(7) будут напечатаны 6 звездочек .