Функция get_parmsне возвращает значения, поэтому она объявлена типа void. Ее целью является ввод двух значений по некоторым адресам. Мы должны передать функции get_parms два параметра. Эти параметры суть адреса, по которым будут храниться значения переменных. Посмотрите: тип этих параметров не float, ссылка на тип float, т.е. эти параметры считаются адресами переменных типа float.
Именно эти адреса мы и передаем при вызове функции get_parms из функции main - &a, &b. Обратите внимание также, что при вызове встроенной функции scanf из функции get_parmsперед переменными p1 и p2 нет адресных операторов. Это потому , что p1 и p2 уже являются адресами переменных aи b.
Функция get_ratioвозвращает значение типа float, вычисленное на основе двух переданных ей значений типа float (divident - делимое и divisor - делитель). Возвращаемое значение зависит от того равен делитель нулю или нет. Оператор returnприсваивает возвращаемое значение имени функции get_ratio.
Функция put_ratioне возвращает значение , поэтому она определена типа voidи не имеет оператора return. Ее единственный параметр ratio определяет выводимую на экран информацию.
Глобальные описания
Константы, тип данных и переменных, объявленные за пределами любой функции, включая main, считаются глобальными, начиная с момента определения. Это значит, что они могут использоваться любой функцией программы, находящейся после их объявления.
Комментарии
Иногда необходимо вставить в текст программы пояснения, служащие для напоминания (разъяснения) читателю о том , что означают конкретные переменные, что делают некоторые операторы и т.д. Такие пояснения называются комментариями. Начало комментария /*, после такого знака компилятор игнорирует всю информацию до появления знака */ - конец комментария.
Лекция 17
Команды потока управления
Существуют дополнительные команды, использующиеся внутри управляющих структур.
Оператор returnпозволяет прервать выполнение функции. Используется в двух случаях:
1) если функция возвращает значение , он должен быть использован для передачи этого значения в вызывающую программу (функцию).
2) если из функции необходимо выйти до окончания ее работы, например, при обнаружении какой-либо ошибки.
Оператор breakиспользуется для аварийного выхода из цикла.
Оператор continueпредназначен для пропуска некоторых операторов тела цикла с тем , чтобы вернуться к началу цикла.
Массивы
Язык Си позволяет определять массивы (т.е. индексированные списки) данных определенного типа. Например,
intx [20];
объявляет двадцать переменных типа int. Общий вид объявления любого массива:
тип имя [количество];
Первый элемент массива имеет индекс 0. Например, x[0].
Структура
Структура представляет из себя сборочную конструкцию, включающую в себя данные различных типов. Например, объявим структуру и дадим ей имя (тип) star:
typedefstruct
{
char name[25];
char class;
short subclass;
float x, y, z;
} star;
Таким образом мы объявили структуру (struct) типа star. Поместив это объявление в начале программы, мы можем объявлять в модулях переменные типа star. Эти переменные будут структурами. Например,
star a, pol;
1. Кривоногов М.Б. Информатика. Учебное пособие. Тула: ТулГУ, 1999.89с.
2. Уэйт М. И др. Язык СИ. Руководство для начинающих. М.: Мир, 1988. 512c
3. Берри Р., Микинз Б. Язык СИ. Введение для программистов. М.: Финансы и
статистика, 1988. 191c.
Рассмотрено на заседании кафедры ПМиИ
Протокол № 3 от 17.11.1999г.
Зав. кафедрой ______________ В.И.Иванов