alvs9
?>

Чему будет равна переменная «a» при X:=12 после выполнения фрагмента программы с условным оператором: If x>0 then a:=2*x else a:= 3*x?

Информатика

Ответы

vikka30

24

Объяснение:

Выполняется программа после then а=2*x и так х умножается на 2 и получается 24

shoora
Можно конечно поизвращаться и придумать интересный алгоритм, но можно просто написать в лоб цикл с проверкой.

#include <iostream>
int main(){
    int num_1, num_2;
    cin >> num_1 >> num_2;
    for (int i = num_1 + 1; i != num_2; i++) {
        int cur = i, num = i;
        int res = 0;
        while (cur != 0) {
            int mod_n = cur % 10;
            if (mod_n == 0) {
                break;
            }
            if (num % mod_n == 0) {
                res = 1;
            }
            else {
                res = 0;
                break;
            }
            cur /= 10;
        }
        if (res) {
            cout << i << ' ';
        }
    }
}

Коротко, в двух словах, о чем тут код. 
мы проходим по циклу от A до B, для каждого числа, в цикле проверяем, делится ли оно на цифры из которых состоит. Для этого мы запоминаем в отдельную переменную cur наше число, и проверяем остаток от деления на 10 (т.е. самую левую цифру), после мы в cur записываем тоже число, но без последней цифры.
на примере 124. проверяем на делимость на 4, потом запоминаем 12, проверяем на делимость на 2, потом запоминаем 1, проверяем на делимость на 1, потом записываем 0. Как только видим 0 прекращаем. 
Дальше в цикле есть проверка на то, что если хоть раз что-то не поделилось, то переходим к след. числу
sve707ta
По хорошему, вам достаточно загуглить слова "логика преобразования". 
Как мы знаем, в логических выражениях '+' - это '∨', а '*' - это '∧' (строго говоря это не всегда так, и логика множеств и функций в этом не совпадают, но тут нам это неважно). Я буду писать ∨ и ∧ т.к. тут это правильнее и стоит сразу привыкать к общепринятым обозначениям.
Рассмотрим внимательнее это выражение
(a ∨ (a ∧ b)) ∧ (¬(a ∧ b) ∨ b)
Воспользуемся правилом Де-Моргана, которое гласит:
¬( a ∧ b) = ¬a ∨ ¬b
подставим
(a ∨ (a ∧ b)) ∧ (¬a ∨ ¬b ∨ b)
Дальше отметим, что 
¬b ∨ b = 1
(a ∨ (a ∧ b)) ∧ (¬a ∨ 1)
Так же знаем, что A ∨ 1 = 1, а A ∧ 1 = A, A ∨ A = A
(a ∨ (a ∧ b)) ∧ 1 = (a ∨ (a ∧ b))
Следовательно наше выражение пришло к виду
a ∨ (a ∧ b) , также, используя дистрибутивность можно написать это выражение как 
a ∨ (a ∧ b) = ( a ∨ a) ∧ ( a ∨ b) = a ∧ (a ∨ b)

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Чему будет равна переменная «a» при X:=12 после выполнения фрагмента программы с условным оператором: If x>0 then a:=2*x else a:= 3*x?
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

agrilandrussia
archala
ekb676
shilinmikhaillg
moisalexx7
Shevchenko
alexandergulyamov
Isaeva_Marin1010
Ruslanovich1217
Суханова1532
gbfedak220
Усошина1059
vuyakovleva
VSArsentev
DJXEz80