напечатать корни из чисел от
/* Задача: напечатать корни из чисел от 1 до 100.
Новая информация: Нам понадобится новый тип данных - ДЕЙСТВИТЕЛЬНЫЕ ЧИСЛА. Это числа, имеющие дробную часть (после точки). Как мы уже знаем, целые - это int. буква - это char. действительное число - это double. (есть еще слово float, но им пользоваться не рекомендуется).
Для вычисления корня используется итерационный алгоритм Герона.
q = корень из x;
q[0] := x; q[n+1] := 1/2 * ( q[n] + x/q[n] );
Главное тут не впасть в ошибку, не клюнуть на q[n] и не завести массив. Нам не нужны результаты каждой итерации, нам нужен только конечный ответ. Поэтому нам будет вполне достаточно ОДНОЙ, но изменяющейся в цикле, ячейки q. */
#include
/* Еще одно новое ключевое слово - const. Обозначает константы. В отличие от переменных, такие имена нельзя изменять. То есть, если где-то потом попробовать написать epsilon = ... ; то это будет ошибкой. */ const double epsilon = 0.0000001; /* точность вычислений */
/* Функция вычисления модуля числа */ double doubleabs(double x){ if(x < 0) return -x; else return x; }
/* Функция вычисления квадратного корня */ double sqrt(double x){
double sq = x;
/* Такая конструкция есть просто склейка двух строк: double sq; sq = x; Называется это "объявление переменной с инициализацией". */
while(doubleabs(sq*sq - x) >= epsilon){ sq = 0.5 * (sq + x/sq); } return sq; }
void main() { int n;
for(n=1; n <= 100; n++) printf("sqrt(%d)=%lf\n", n, sqrt((double) n) );
}
/* Здесь в операторе printf() мы печатаем ДВА выражения. ФОРМАТ ЗНАЧЕНИЕ ------ -------- %d -- n %lf -- sqrt((double) n)
По формату %d печатаются значения типа int. По формату %c печатаются значения типа char. По формату %lf (или %g) печатаются значения типа double.
Что значит "напечатать значение выражения sqrt(xxx)" ? Это значит: - вызвать функцию sqrt() с аргументом, равным xxx; - вычислить ее; - возвращенное ею значение напечатать по формату %lf, то есть как действительное число.
Заметьте, что тут возвращаемое значение НЕ присваивается никакой переменной, мы не собираемся его хранить.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий