194) логическая функция f задаётся выражением ((x ^ w) v (w ^ z)) (три равно) ((z > y) ^ (y > на рисунке частично заполненный фрагмент таблицы истинности функции f, содержащий неповторяющиеся строки. определите, какому столбцу таблицы истинности функции f соответствует каждая из переменных x, y, z, w.
Во-первых, в операторе вывода стоит вызов функции ups, которой в качестве второго аргумента передается неизвестная переменная a. Если имелся в виду символ "а", его надо было заключить в одинарные кавычки.
Во-вторых, в теле функции ups определяется значение n в цикле. Даже, если искомый символ найден и n получит значение позиции этого символа в слове, то если слово просмотрено не полностью, следующий же проход по циклу снова сбросит n в ноль. Следовательно, эта функция будет выдавать верный результат только если искомая буква - последняя в слове.
var
slovo: string;
i: integer;
function ups(var s: string; ch: char): integer;
var
i, n: integer;
begin
i:=1;
n:=0;
while (i<=length(s)) and (n=0) do
begin
if s[i] = ch then n := i;
i:=i+1
end;
ups:=n
end;
begin
writeln('vvedite slovo');
readln(slovo); writeln('N = ', ups(slovo, 'a'));
end.
Замечание: в языке Паскаль имеется функция Pos, производящая поиск подстроки в строке...
$result = array();
$arr = array ('310'=>0.5, '311'=>0.375, '312'=>0.1);
function rec($str) {
$sum = 0;
foreach ($str as $i) #Вычисляем уже имеющуюся сумму
$sum += $GLOBALS["arr"][$i];
if ($sum == 1.5)
$GLOBALS["result"][] = $str;
if ($sum > 1.5) return;
foreach ($GLOBALS["arr"] as $key=>$value) {
$hello = $str; #Не знаю, насколько это легально, но заработало только так...
$hello[] = $key;
rec($hello);
}
}
if (min(array_values($arr)) <= 0) die(); #Бесконечнная рекурсия должна быть предотвращена
rec(array());
foreach ($result as &$value) #Переделываем массив массивов в массив строк
$value = implode(', ', $value);
unset($value);
print_r($result);
?>