Наберите текст предлагаемой программы. Обратите внимание на цикл for
! В нем необходимо найти и раскомментировать правильную строку.
$ vim pi.c
Компилируем, запускаем программу несколько раз, вводя различные значения N
:
$ gcc pi.c -o pi
$ ./pi
Что такое M_PI
? Что можно сказать о сходимости используемого в программе ряда? Насколько рассмотренный алгоритм "удобный" для вычисления \(\pi\)?
Наберите текст предлагаемой программы, обращая внимание на использование функций и макроопределений:
$ vim integral.c
Транслируйте программу, запустите её несколько раз, меняя параметры a
, b
и N
:
$ gcc integral.c -o integral
$ ./integral
Проверьте непосредственным вычислением корректность работы программы. В чём главный недостаток программы с точки зрения пользователя? Прокомментируйте заголовок цикла for
. Всё ли вам понятно в приведённом примере?
$ vim trig.c
Обратите внимание на то, что англоязычные названия общеизвестных функций могут отличаться от русскоязычной традиции, например тангенс это не \(\text{tg}\,x\), а \(\tan x\) и т.д.
Также при трансляции обратите внимание на опцию -lm
, использование которой строго обязательно, так как с её помощью мы сообщаем компоновщику, что при сборке нашей программы, надо связать с ней функции библиотеки math
.
$ gcc trig.c -o trig -lm
$ ./trig
ceil()
, floor()
, rint()
:
$ man ceil
$ man floor
$ man rint
Чем все эти функции отличаются друг от друга? После того, как ответите на этот вопрос, наберите текст программы:
$ vim rounding.c
Скомпилируйте и запустите программу несколько раз:
$ gcc rounding.c -o rounding -lm
$ ./rounding
Попробуйте ввести значения x=9.7
, x=3.1
, x=2.5
, x=3.5
. Результаты объясните.
$ vim raising.c
Скомпилируйте и запустите программу:
$ gcc raising.c -o raising -lm
$ ./raising
Объясните алгоритм работы программы. Изучите документацию по функции pow()
:
$ man pow
Какие могут возникнуть проблемы при использовании функции pow()
?
$ vim log-1.c
$ gcc log-1.c -o log-1 -lm
$ ./log-1
$ man log
$ vim log-2.c
$ gcc log-2.c -o log-2 -lm
$ ./log-2
$ vim abs-2.c
$ gcc abs-2.c -o abs-2 -lm
$ ./abs-2
$ man abs
$ man fabs
$ man cabs
$ man complex