русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Программа оценки машинного нуля.


Дата добавления: 2013-12-23; просмотров: 1538; Нарушение авторских прав


Else

оператор_2;

 

Здесь в случае истинности выражения-условия выполняется только оператор_1, при нулевом значении выражения-условия выполняется только оператор_2. Например:

Оператор в сокращенном варианте оператора if, и оператор_1 и оператор_2 в полном операторе if могут быть как отдельными, так и составными операторами.

Несмотря на традиционность условного оператора, проиллюстрируем его выполнение схемами (рис, 2.2).

 

 

Рис. 2.2. Схемы условных операторов (выражение-условие - условие после if): а - сокращенная форма; б - полная форма

 

Итак, что в условных операторах в качестве любого из операторов (после условия или после else) может использоваться составной оператор. Например, при решении алгебраического уравнения 2-й степени ах2+bх+с=0 действительные корни имеются только в случае, если дискриминант (b2-4ас) неотрицателен. Следующий фрагмент программы иллюстрирует использование условного оператора при определении действительных корней x1, х2 квадратного уравнения:

 

 

Во фрагменте предполагается, что переменные d, b, a, x1, х2 - вещественные (типа float либо double). До приведенных операторов переменные а, b, с получили конкретные значения, для которых выполняются вычисления. В условном операторе после if находится составной оператор, после else - только один оператор - вызов функции printf( ). При вычислении корней используется библиотечная функция sqrt( ) из стандартной библиотеки компилятора. Ее прототип находится в заголовочном файле math.h (см. Приложение 3).

Метки и пустой оператор. Метка - это идентификатор, помещаемый слева от оператора и отделенный от него двоеточием ":". Например,

Чтобы можно было поставить метку в любом месте программы (или задать пустое тело цикла), в язык Си введен пустой оператор, изображаемый только одним символом ";". Таким образом, можно записать такой помеченный пустой оператор:



 

Оператор перехода. Оператор безусловного перехода имеет следующий вид:

goto идентификатор;

 

где идентификатор - одна из меток программы. Например:

goto СОН; или goto МЕТКА;

 

Введенных средств языка Си вполне достаточно для написания примитивных программ, которые не требуют ввода исходных данных. Алгоритмы такого сорта достаточно редко применяются, но для иллюстрации некоторых особенностей разработки и выполнения программ рассмотрим следующую задачу.

Программа оценки машинного нуля. В вычислительных задачах при программировании итерационных алгоритмов, завершающихся при достижении заданной точности, часто нужна оценка "машинного нуля", т.е. числового значения, меньше которого невозможно задавать точность данного алгоритма. Абсолютное значение "машинного нуля" зависит от разрядной сетки применяемой ЭВМ, от принятой в конкретном трансляторе точности представления вещественных чисел и от значений, используемых для оценки точности. Следующая программа оценивает абсолютное значение "машинного нуля" относительно близких (по модулю) к единице переменных типа float:

 

 

В строках программы слева помещены порядковые номера, которых нет в исходном тексте. Номера добавлены только для удобства ссылок на операторы. Строка 1 - комментарий с названием программы. Комментарии в строках 4, 5, 6 поясняют назначение переменных. Объяснить работу программы проще всего с помощью трассировочной таблицы (табл. 2.1).

Во втором столбце таблицы указаны номера строк с исполняемыми операторами. Значения переменных даны после выполнения соответствующего оператора. Только что измененное значение переменной в таблице выделено. После подготовительных присваиваний (строки 6, 7) циклически выполняются операторы 8-11 до тех пор, пока истинно отношение el>1.0, проверяемое в условном операторе. При каждой итерации значение переменной е уменьшается вдвое, и наконец, прибавление (в строке 9) к 1.0 значения е не изменит результата, т.е. el станет равно 1.0.

При использовании компилятора Turbo С получен следующий результат:

При использовании в строке 5 для определения переменных е, el типа double,т.е. при использовании двойной точности, получен иной результат:

Оба результата не хуже значений, приведенных в Приложении 2, для предельных констант FLT_EPSILON и DBL_EPSILON.

Таблица 2.1



<== предыдущая лекция | следующая лекция ==>
Деление операторов языка Си на группы. | Переключатели


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.