Var n,i,j,s:integer; begin write('n=');readln(n); for i:=1 to n do begin s:=0; for j:=1 to i div 2 do if i mod j = 0 then s:=s+j; if i=s then write(i,' '); end; writeln; end.
russstep
25.08.2020
Задача Требуется написать программу, вычисляющую значение какой-либо функции у = f(x). Допустим, такой:
у = x – 2, если x > 0, y = 0, если x = 0, y = |x|, если x < 0. Решение При определении значений подобных функций переменная y вычисляется по-разному (по разным формулам) в зависимости от значения x.
Такие задачи решаются с конструкции условного оператора if - else. Поскольку в данном случае мы имеем три условия (x > 0, x = 0 и x < 0), то потребуется использование еще вложенной конструкции if - else, т. к. в языке Pascal нет оператора множественного ветвления (оператор case в данном случае не подходит).
В языке программирования Паскаль (да и в других тоже) желательно вложенные конструкции if - else помещать во внешнюю ветку else, а не if. Так проще не запутаться.
Таким образом, алгоритм вычисления значения функции может быть таким:
Если x > 0, то у = x - 2 Иначе (ниже идет вложенная конструкция) Если x = 0, то y = 0 Иначе y = |x|. В последнем пункте можно опустить оператор if с проверкой, что x < 0, так как если ход выполнения программы дошел до этого пункта, то x уже другим быть и не может (варианты, когда он больше или равен нулю, уже были исключены).
Если не трудно отблагодари
siyaniemoskva
25.08.2020
Задача Требуется написать программу, вычисляющую значение какой-либо функции у = f(x). Допустим, такой:
у = x – 2, если x > 0, y = 0, если x = 0, y = |x|, если x < 0. Решение При определении значений подобных функций переменная y вычисляется по-разному (по разным формулам) в зависимости от значения x.
Такие задачи решаются с конструкции условного оператора if - else. Поскольку в данном случае мы имеем три условия (x > 0, x = 0 и x < 0), то потребуется использование еще вложенной конструкции if - else, т. к. в языке Pascal нет оператора множественного ветвления (оператор case в данном случае не подходит).
В языке программирования Паскаль (да и в других тоже) желательно вложенные конструкции if - else помещать во внешнюю ветку else, а не if. Так проще не запутаться.
Таким образом, алгоритм вычисления значения функции может быть таким:
Если x > 0, то у = x - 2 Иначе (ниже идет вложенная конструкция) Если x = 0, то y = 0 Иначе y = |x|. В последнем пункте можно опустить оператор if с проверкой, что x < 0, так как если ход выполнения программы дошел до этого пункта, то x уже другим быть и не может (варианты, когда он больше или равен нулю, уже были исключены).
Если не трудно отблагодари
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Паскаль! в промежутке от 1 до n вывести все числа, сумма делителей которых(включая 1 и не включая само число) равна самому числу.
begin
write('n=');readln(n);
for i:=1 to n do
begin
s:=0;
for j:=1 to i div 2 do
if i mod j = 0 then s:=s+j;
if i=s then write(i,' ');
end;
writeln;
end.