Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Подбельский Фомин_Программирование на языке СИ_...doc
Скачиваний:
234
Добавлен:
10.08.2019
Размер:
53.81 Mб
Скачать

Вычисление биномиального коэффициента.

Вычисление биномиального коэффициента. Как известно,

где n > m > 0; n, m - целые.

Составим программу для вычисления биномиального коэффициента C , в которой используем функцию для вычисления факториала:

В основной программе функция fact() не описана. Ее прототип здесь не нужен, так как определение функции находится в том же файле, что и функция main( ), вызывающая fact( ), причем определение размещено выше вызова. Пример выполнения программы:

Вычисление объема цилиндра

В основной программе использован оператор return, прерывающий исполнение программы. Оператор return выполняется после цикла ввода исходных данных, если количество неудачных попыток ввода (значений а и b) равно 5. Задан прототип функции w( ), т.е. задан ее прототип, что необходимо, так как она возвращает значение, отличное от int, и определена стандартным образом позже (ниже), чем обращение к ней. Обращение к функции w() использовано в качестве фактического параметра функции printf( ).

Пример выполнения программы:

Вычисление площади треугольника.

Вычисление площади треугольника. Для определения площади треугольника по формуле Герона

достаточно задать длины его сторон А, В, С и, вычислив полупериметр р=(А+В+С)/2, вычислить значение площади по формуле. Однако для составления соответствующей программы необходима функция вычисления квадратного корня. Предположив, что такой функции в библиотеке стандартных математических функций нет, составим ее сами. В основу положим метод Ньютона:

где z - подкоренное выражение; х0 - начальное приближение.

Вычисления будем проводить с фиксированной относительной точностью . Для простоты условием прекращения счета будет выполнение неравенства Для вычисления абсолютного значения введем еще одну функцию с именем abs() (хотя такая функция, так же как функция для вычисления квадратного корня, есть в стандартной библиотеке). Программа может быть такой:

В программе используются три функции. Основная функция main( ) вызывает функцию sqr( ), прототип которой размещен выше вызова. Функция abs( ) не описана в основной программе, так как здесь к ней нет явных обращений. Функция abs() вызывается из функции sqr( ), поэтому ее прототип помещен в тело функции sqr( ).

В процессе выполнения программы может возникнуть аварийная ситуация, когда введены такие значения переменных а, b, с, при которых они не могут быть длинами сторон одного треугольника. При обнаружении такой ситуации выдается предупреждающее сообщение "Треугольник построить нельзя!" и основная функция main() завершается оператором return. В функции sqr( ) также есть защита от неверных исходных данных. В случае отрицательного значения подкоренного выражения (х) нужно не только прервать вычисление значения корня, но и завершить выполнение программы с соответствующим предупреждающим сообщением. Оператор return для этого неудобен, так как позволяет выйти только из той функции, в которой он выполнен. Поэтому вместо return; при отрицательном значении х в функции sqr( ) вызывается стандартная библиотечная функция exit(), прекращающая выполнение программы. Прототип (описание) функции exit() находится в заголовочном

файле stdlib.h, который включается в начало текста программы препроцессорной директивой.

Пример результатов выполнения программы: