Составить блок-схему и написать программу на языке C для задачи: Найти сумму делителей натурального числа.
Подходит ли прикрепленная блок схема к этому заданию?
include int sum( int n) { int summa = 0; for( int i = 1; i < n; i++ ) if(n % i == 0 ) summa += i; return summa; } int main () {printf("vvedite N="); scanf("%d",&n); printf("Summa deliteley chisla %d = %d", n, sum(n)); }
Математика:
Подкоренное выражение всегда больше либо равно нулю.
Так как у нас модуль, то в этой части примера решение есть при всех x (модуль убирает минус).
Далее, дробь.
Знаменатель должен быть не равен нулю.
a)
b)
Получается, математические ограничение для х:
Так, с математикой разобрались.
Информатика:
if (x<>0) and (x<>-4) then в 9 строчке
sqr - это возведение в квадрат
sqrt - квадратный корень
(от англ. слов square и square root)
То есть:
a:=y-sqrt(abs(x)); в 11 строчке
И ошибка в 13 строчке:
c:=ln(abs(a*b));
(было c:=ln(abs(a*c);)
Собственно, минус бесконечность выдавало именно из-за ошибки в 13 строчке.
Умножали a на c.
Так как с не было определенно, то c=0.
А значит a*c=0.
Натуральный логарифм от нуля равен минус бесконечности.
Готово!