русс | укр

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

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

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

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


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

Вычисление выражений


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


Арифметические операции

В языке C# имеются обычные для всех языков арифметические операции - "+, -, *, /, %". Все они перегружены. Операции "+" и "-" могут быть унарными и бинарными. Унарные операции приписывания знака арифметическому выражению имеют наивысший приоритет среди арифметических операций. К следующему приоритету относятся арифметические операции типа умножения, к которому относятся три операции - умножения, деления и взятия остатка. Все эти операции перегружены и определены для разных подтипов арифметического типа. Следует, однако, помнить, что арифметические операции не определены над короткими числами (byte, short) и начинаются с типа int.

Операция деления "/" над целыми типами осуществляет деление нацело, для типов с плавающей и фиксированной точкой - обычное деление. Операция "%" возвращает остаток от деления нацело и определена не только над целыми типами, но и над типами с плавающей точкой. Тип результата зависит от типов операндов. Приведу пример вычислений с различными арифметическими типами:

/// <summary>/// Арифметические операции/// </summary>public void Ariphmetica(){ byte b1 = 7, b2 = 3, b3; b3 = (byte)(b1 / b2); int n = -7, m = 3, p, q, r; p = n / m; q = n % m; r = p*m + q; Console.WriteLine("Операции над типом int"); Console.WriteLine( "n = {0}, m = {1}, p = n/m = {2}, " + "q = n % m = {3}, r = p*m + q = {4}", n, m, p, q, r); Console.WriteLine("Операции над типом double"); double x = 7.5, y = 3.5, u, v, w; u = x / y; v = u * y; w = x % y; Console.WriteLine( "x = {0}, y = {1}, u = x/y = {2}, " + "v = u*y = {3}, w = x % y = {4}", x, y, u, v, w); Console.WriteLine("Операции над типом decimal"); decimal d1 = 7.5M, d2 = 3.5M, d3, d4, d5; d3 = d1 / d2; d4 = d3 * d2; d5 = d1 % d2; Console.WriteLine( "d1 = {0}, d2 = {1}, d3 = d1/d2 = {2}, " + "d4 = d3*d2 = {3}, d5 = d1 % d2 = {4}", d1, d2, d3, d4, d5);}//Ariphmetica

Результаты вычислений при вызове этого метода показаны на рис. 3.3.




увеличить изображение
Рис. 3.3. Результаты работы метода Ariphmetica

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

Как уже говорилось, при записи выражения от программиста требуется знание всех операций, которые могут применяться в построении выражений, знание их точной семантики, понимание тех преобразований операндов, которые могут осуществляться при выполнении операций. Но есть и другие не менее важные цели, которые следует ставить на этом этапе.



<== предыдущая лекция | следующая лекция ==>
Проверяемые и непроверяемые блоки и выражения | Именованные константы


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


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

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

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


 


Полезен материал? Поделись:

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

 
 

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

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