Реферат: Системное программное обеспечение

Функция term() справляется с умножением и делением аналогично тому, как функция expr() со сложением и вычитанием:

double term() // умножает и складывает

{

double left = prim();

for(;;)

switch(curr_tok) {

case MUL:

get_token(); // случай '*'

left *= prim();

break;

case DIV:

get_token(); // случай '/'

double d = prim();

if (d == 0) return error("деление на 0");

left /= d;

break;

default:

return left;

}

}

Проверка отсутствия деления на нуль необходима, поскольку результат деления на нуль неопределен и, как правило, приводит к катастрофе.

Функция error() будет рассмотрена позже. Переменная d появляется в программе там, где она действительно нужна, и сразу же инициализируется.

Функция prim, обрабатывающая первичное, во многом похожа на функции expr и erm().

double number_value;

char name_string[256];

double prim() // обрабатывает первичное

{

switch (curr_tok) {

case NUMBER: // константа с плавающей точкой

К-во Просмотров: 517
Бесплатно скачать Реферат: Системное программное обеспечение