Основы алгоритмизации и объектно-ориентированного программирования
Дозиметрические приборы предназначаются для:
контроля облучения — получения данных о поглощенных или экспозиционных дозах излучения людьми и сельскохозяйственными животными;
контроля радиоактивного заражения радиоактивными веществами людей, сельскохозяйственных животных, а также техники, транспорта, оборудования, средств индивидуальной защиты, одежды, продовольствия, воды, фуража и других объектов;
радиационной разведки — определения уровня радиации на местности.
Кроме того, с помощью дозиметрических приборов может быть определена наведенная радиоактивность в облученных нейтронными потоками различных технических средствах, предметах и грунте.
Для радиационной разведки и дозиметрического контроля на объекте используют дозиметры и измерители мощности экспозиционной дозы.
Комплекты индивидуальных дозиметров ДП-22В и ДП-24, имеющих дозиметры карманные прямо показывающие ДКП-50А, предназначенные для контроля экспозиционных доз гамма облучения, получаемых людьми при работе на зараженной радиоактивными веществами местности или при работе с открытыми и закрытыми источниками ионизирующих излучений.
Комплект дозиметров ДП-22В состоит из зарядного устройства типа ЗД-5 и 50 индивидуальных дозиметров карманных прямо показывающих типа ДКП-50А. В отличие от ДП-22В комплект дозиметров ДП-24 пять дозиметров ДКП-50А (рис.1).
Рис. 1. Дозиметр карманный прямопоказывающий, ДКП-50-А.
1—конденсатор; 2—окуляр; 3—объектив; 4—обойма; 5—внутренний электрод; 6 — малогабаритная ионизационная камера; 7-корпус; 8-держатель; 9-кольцо; 10—гайка; 11-резиновое кольцо; 12— отвинчивающийся наконечник.; 13—стекло; 14-кварцевая нить электроскопа; 15-шкала с делениями от 0 до 50 Р; 16-контакт для зарядки; 17— пружина контакта.
Зарядное устройство предназначено для зарядки дозиметров ДКП-50А. В корпусе ЗД-5 (рис.2) размещены: преобразователь напряжения, выпрямитель высокого напряжения, потенциометр-регулятор напряжения; лампочка для подсвета зарядного гнезда, микро выключатель и элементы питания. На верхней панели устройства находятся: ручка потенциометра, зарядное гнездо с колпачком и крышка отсека питания. Питание осуществляется от двух сухих элементов типа 1,6-ПМЦ-У-8, обеспечивающих непрерывную работу прибора не менее 30 ч при токе потребления 200 мА. Напряжение на выходе зарядного устройства плавно регулируется в пределах от 180 до 250 В.
Рис.2. Комплект индивидуальных дозиметров ДП-22В и зарядное устройство ЗД-5
Дозиметр карманный прямо показывающий ДКП-50А предназначен для измерения экспозиционных доз гамма-излучения. Конструктивно он выполнен в форме авторучки . Дозиметр состоит из дюралевого корпуса , в котором расположены ионизационная камера с конденсатором, электроскоп, отсчетное устройство и зарядная часть.
Основная часть дозиметра — малогабаритная ионизационная камера, к которой подключен конденсатор с электроскопом. Внешним электродом системы камера — конденсатор является дюралевый цилиндрический корпус, внутренним электродом — алюминиевый стержень.
Электроскоп образует изогнутая часть внутреннего электрода (держатель) и приклеенная к нему платинированная визирная нить (подвижной элемент).
В передней части корпуса расположено отсчетное устройство - микроскоп с 90-кратнмм увеличением, состоящий из окуляра и шкалы. Шкала имеет 25 делений. Цена одного деления соответствует двум рентгенам. Шкалу и окуляр крепят фасонной гайкой.
В задней части корпуса находится зарядная часть, состоящая из диафрагмы с подвижным контактным штырем. При нажатии штырь замыкается с внутренним электродом ионизационной камеры. При снятии нагрузки контактный штырь диафрагмой возвращается в исходное положение. Зарядную часть дозиметра предохраняет от загрязнения защитная оправа. Дозиметр крепится к карману одежды с помощью держателя.
Принцип действия дозиметра подобен действию простейшего электроскопа. В процессе зарядки дозиметра визирная нить электроскопа отклоняется от внутреннего электрода под влиянием сил электростатического отталкивания. Отклонение нити зависят от приложенного напряжения, которое при зарядке регулируют и подбирают так, чтобы изображение визирной нити совместилось с отсчетного устройства.
При воздействии гамма-излучения на заряженный дозиметр в рабочем объеме камеры возникает ионизационный ток. Ионизационный ток уменьшает первоначальный заряд конденсатора и камеры, а, следовательно, и потенциал внутреннего электрода. Изменение потенциала, измеряемого электроскопом, пропорционально экспозиционной дозе гамма-излучения. Изменение потенциала внутреннего электрода приводит к уменьшению сил электростатического отталкивания между визирной нитью и держателем электроскопа. В результате визирная нить сближается с держателем, а изображение ее перемещается по шкале отсчетного устройства. Держа дозиметр против света и наблюдая через окуляр за нитью, можно в любой момент произвести отсчет полученной экспозиционной дозы излучения.
Дозиметр ДКП-50А обеспечивает измерение индивидуальных экспозиционных доз гамма-излучения в диапазоне от 2 до 50 Р при мощности экспозиционной дозы излучения от 0,5 до 200 Р/ч. Саморазряд дозиметра в нормальных условиях не превышает двух делений за сутки.
Зарядка дозиметра ДКП-50А производится перед выходом на работу в район радиоактивного заражения (действия гамма-излучения) в следующем порядке:
отвинтить защитную оправу дозиметра (пробку со стеклом) и защитный колпачок зарядного гнезда ЗД-5; ручку потенциометра зарядного устройства повернуть влево до отказа; дозиметр вставить в зарядное гнездо зарядного устройства, при этом включается подсветка зарядного гнезда и высокое напряжение;
наблюдая в окуляр, слегка нажать на дозиметр и, поворачивая ручку потенциометра вправо, установить нить на “О” шкалы, после чего вынуть дозиметр из зарядного гнезда;
проверить положение нити на свет: ее изображение должно быть на отметке "0", завернуть защитную оправу
дозиметра и колпачок зарядного гнезда. Экспозиционную дозу излучения определяют по положению нити на отсчетного устройства.
Отчет необходимо производить при вертикальном положении нити, чтобы исключить влияние на показание дозиметра прогиба нити от веса.
Комплект ИД-1(рис.3)для поглощенных доз гамма нейтронного излучения. Он состоит из индивидуальных дозиметров ИД-1 и зарядного устройства ЗД-6. Принцип работы дозиметра ИД-1 аналогичен принципу работы дозиметров для измерения экспозиционных доз гамма-, излучения (например, ДКП-50А).
Рис.3 - Набор индивидуальных дозиметров ИД-1.
1 — измеритель дозы ИД-1; 2 — гнездо для зарядного устройства; 3 — футляр; 4 — окуляр; 5 — держатель; 6 — защитная оправа; 7 — зарядное устройство ЗД-6; 8 — зарядно-контактное гнездо; 9 — ручка зарядно-контактного узла; 10 — поворотное зеркало.
Индивидуальный измеритель дозы ИД-11предназначен для индивидуального контроля облучения личного состава, подвергшегося воздействию ионизирующих излучений, с целью первичной диагностики степени тяжести радиационных поражений.
Рис 1. - Индивидуальный измеритель дозы ИД-11.
1 — держатель; 2 — пластина алюмофосфатного стекла, активированного серебром, — детектор ионизирующего излучения; 3 — корпус; 4 — шнур.
Совместно с измерительным устройством ГО-32 (рис. 2) измеритель дозы ИД-11 обеспечивает измерение поглощенной дозы гамма-нейтронного излучения в диапазоне от 10 до 1500 рад.
Рис 2. - Измерительное устройство ГО-32.
1 - тумблер «ПИТАНИЕ»; 2- цифровое табло; 3- индикатор «ПЕРЕГРУЗКА»; 4- калибровочное число; 5- ручка калибровки; 6- гнездо установки дозиметра; 7- ключ для открытия дозиметра; 8- заглушка; 9- ручка; 10- ручка установки нуля
Подготовка прибора к работе и проверка работоспособности.
1. Тумблер ПИТАНИЕ установить в нижнее положение, ручки УСТ. НУЛЯ, КАЛИБРОВКА —в крайнее левое положение
2. Подключить к измерительному устройству кабель питания, соответствующий напряжению сети 220 или 12, 24 В.
3. Тумблер ПИТАНИЕ установить в верхнее положение, при этом должен высветиться один из указателей «—», «0», « + », а на табло появляется цифровая индикация. Прогреть измерительное устройство в течение 30 мин.
4. Вращением ручки УСТ. НУЛЯ добиться устойчивого высвечивания указателя «О».
5. Извлечь заглушку из измерительного канала и вращением ручки КАЛИБРОВКА установить на табло калибровочное число, указанное на передней панели устройства.
6. Вставить заглушку в измерительный канал, при этом должен высветиться указатель «О».
7. Извлечь заглушку из измерительного канала, после чего на табло должно появиться калибровочное число, указанное на передней панели измерительного устройства, и высветиться указатель «—».
Операции установки нуля и калибровки повторяются до тех пор, пока при вставленной заглушке будет высвечиваться указатель «О», а без заглушки будет индицироваться на табло калибровочное число, указанное на передней панели измерительного устройства.
8. Вскрыть перегрузочный детектор ПР с помощью специального ключа, установленного на передней панели измерительного устройства, вставить его в измерительное гнездо, зафиксировав в измерительном канале. На передней панели устройства должен высветиться указатель ПЕРЕГРУЗКА, а на табло — появиться цифровые значения.
9. Извлечь перегрузочный детектор из измерительного гнезда. На табло устройства должно высветиться калибровочное число. Вставить детектор в корпус и закрыть с помощью специального ключа.
10. Вскрыть градуировочный детектор ГР. Ручкой КАЛИБРОВКА установить на табло показание, указанное в формуляре на прибор для градуировочного детектора. Время нахождения детектора в измерительном канале не должно превышать 30 с.
11. Нажатием на детектор вернуть подвижный стакан в исходное состояние, не извлекая детектор из измерительного гнезда.
12. Записать четвертое показание, полученное на цифровом табло прибора, которое будет уточненным калибровочным числом. Детектор не должен находиться в измерительном гнезде более 20 с.
Для определения дозы, накопленной детектором со времени предыдущего измерения, необходимо вычесть из измеренной величины дозу предыдущего измерения. После проведения измерения дозы извлечь детектор из измерительного гнезда.
Измеритель мощности дозы ДП-5Впредназначен для измерения уровней гамма-радиации и радиоактивного загрязнения различных поверхностей по гамма-излучению и позволяет обнаружить бета-излучение. Прибор имеет звуковую индикацию ионизирующего излучения на всех поддиапазонах, кроме первого.
В комплект прибора ДП-5В входят измеритель мощности дозы ДП-5В в футляре, два раздвижных ремня, удлинительная штанга, делитель напряжения для подключения прибора к внешнему источнику постоянного тока напряжением 12 и 24 В, головные телефоны, комплект ЗИП, техническое описание и инструкция по эксплуатации, формуляр и укладочный ящик.
Блок детектирования имеет поворотный экран, который может фиксироваться на корпусе блока детектирования в положениях «Б», «Г» и «К». В положении «Б» открывается окно в корпусе блока детектирования, в положении «Г» окно закрыто экраном, в положении «К» против окна устанавливается вмонтированный в корпус контрольный источник. На корпусе имеются два выступа, которыми блок детектирования ставится на обследуемую поверхность при контроле радиоактивного загрязнения и обнаружения бета-излучения.
Подготовка прибора к работе и проверка работоспособности.
1. Подключить источники питания, соблюдая полярность. Не закрывая крышку отсека питания, ручку переключателя поддиапазонов поставить в положение РЕЖ. Отклонение стрелки измерительного прибора в пределах закрашенного сектора шкалы свидетельствует о пригодности источников питания.
2. Проверить работоспособность прибора от контрольного источника: надеть головные телефоны и подключить их к измерительному пульту; поворотный экран блока детектирования поставить в положение «К»; ручку переключателя поддиапазонов последовательно установить в положения Х1000, Xl00, X10, X1, Х0,1 и следить за щелчками в телефоне и за отклонением стрелки измерительного прибора. При нормальной работе прибора щелчки в телефоне слышны на всех поддиапазонах, кроме первого. Стрелка измерительного прибора на поддиапазоне Х10 должна отклониться на деление, указанное в формуляре на прибор, а в положениях X1 и Х0,1—за пределы шкалы.
Рис. 4- Измеритель мощности дозы ДП-5В.
1 - измерительный пульт; 2 - соединительный кабель; 3 - кнопка сброса показаний; 4 - переключатель поддиапазонов; 5 - микроамперметр; 6 - крышка футляра прибора; 7 - таблица допустимых значений заражения объектов; 8 - блок детектирования; 9 - контрольный источник; 10 - поворотный экран; 11 - тумблер подсвета шкалы микроамперметра; 12 - удлинительная штанга; 13 - головные телефоны; 14 - футляр.
3. Ручку переключателя установить в положение РЕЖ., экран блока детектирования поставить в положение «Г» и уложить в нижний отсек футляра. Прибор к работе готов.
Измерение мощности экспозиционной дозы гамма-излучения производится при нахождении экрана блока детектирования в положении «Г». Переключатель поддиапазонов ставится в положение, при котором стрелка прибора отклоняется в пределах шкалы. Характеристика диапазона измерений ДП-5В представлена в таблице ниже.
Таблица. - Характеристика диапазона измерений ДП-5В.
Поддиапазон | Положение ручки переключателя | Шкала | Единица измерения | Пределы измерения |
I | 0-200 | Р/ч | 5-200 | |
II | х1000 | 0-5 | мР/ч | 500-5000 |
III | х100 | 0-5 | мР/ч | 50-500 |
IV | х10 | 0-5 | мР/ч | 5-50 |
V | х1 | 0-5 | мР/ч | 0,5-5 |
VI | х0,1 | 0-5 | мР/ч | 0,05-0,5 |
Для определения степени радиоактивного загрязнения вооружения и военной техники, обмундирования, средств индивидуальной защиты, воды и продуктов питания необходимо в первую очередь измерить мощность экспозиционной дозы гамма-излучения (гамма-фон) на месте контроля радиоактивного загрязнения (объекты при этом должны находиться на удалении 15—20 м от места измерения). Затем на месте измерения гамма-фона Рф устанавливается зараженный объект. На блок детектирования для предохранения от радиоактивного загрязнения надевается полиэтиленовый чехол. Перемещая блок детектирования вдоль поверхности обследуемого объекта, по наибольшей частоте сигнала в телефонах отыскивается наиболее зараженный участок и производится отсчет показаний прибора с учетом коэффициента поддиапазона Ризм. Сравниваются измеренные величины Рф и Ризм и при Рф<Ризм величину загрязнения поверхности объекта определяют по выражению Р0б = Ризм —Рф. где Рф — приведенная мощность экспозиционной дозы гамма-фона, учитывающая экранирующее влияние объекта.
Основы алгоритмизации и объектно-ориентированного программирования
Современное развитие общества предполагает широкое использование компьютерных технологий в различных сферах деятельности.
Умение использовать разнообразные возможности, предоставляемые компьютером, обеспечивают конкурентоспособность специалиста.
Настоящее пособие предназначено для приобретения компетенций в области алгоритмизации задач и разработки приложений на базе объектно-ориентированного подхода с использованием современного языка C#. C# — объектно-ориентированный язык, предназначенный для разработки приложений, выполняемых в среде .NET Framework. Приобретаемые при изучении данного пособия навыки являются необходимым этапом для дальнейшего овладения возможностями, предоставляемыми платформой Microsoft .NET Framework.
Пособие содержит большое количество примеров, облегчающих восприятие и освоение материала, и заданий для самостоятельного выполнения различной степени сложности, что позволит оценивать уровень освоения указанных умений и навыков как минимальный, средний или повышенный.
Введение
Язык C# (произноситсяСи шарп) – современный язык объектно-ориентированного программирования, предназначенный для разработки программ и систем программ на базе платформы Microsoft .NET Framework. Этот язык ориентирован как на создание обычных автономных приложений Microsoft Windows, допускающих в том числе взаимодействие со стандартными приложениями Windows, так и на разработку Web-приложений. Важнейшим компонентом платформы .NET Framework является обширная библиотека классов, существенно облегчающая разработку программ. В Приложении 1 приводятся подробные сведения о составе платформы .NET Framework и предоставляемых ею возможностях.
Объектно-ориентированное программирование базируется на понятиях: объект, класс, структура, поля, методы, свойства, события, которые будут вводиться, использоваться и углубляться при решении все более сложных задач.
Объектно-ориентированное программирование по сравнению с традиционными алгоритмическими языками существенно расширяет возможности и облегчает разработку сложных программных систем в большой степени благодаря наличию упомянутой выше библиотеке классов, при использовании которой отпадает необходимость в написании кодов многих типовых алгоритмов.
При решении научно-технических задач алгоритмическая составляющая является весьма существенной. В настоящем пособии вопросам алгоритмизации и изучению базовых приемов программирования уделяется значительное внимание. Параллельно рассматриваются и используются и объектные свойства языка и на наглядных примерах демонстрируются предоставляемые ими новые возможности.
Для разработки программ на языке C# на компьютере должно быть установлено средство разработки, в котором содержатся необходимые инструменты разработки, такие как, редактор кода, компиляторы и другие (подробнее в Приложении 1). В данном пособии для выполнения примеров используется средство разработки Microsoft Visual C# 2008 Express Edition (Microsoft Visual C# 2008, экспресс-выпуск)
Для выполнения программ, написанных на языке C#, на компьютере должен быть установлен пакет .NET Framework (подробнее в Приложении 1).
Прежде чем перейти к систематическому изложению средств языка, рассмотрим простейший пример программы написанной на языке C#.
Пример. Переменной r присвоить значение 3 и вывести значение r на экран (консоль, Console).
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int r = 3;
Console.WriteLine(r);
Console.ReadKey();
}
}
}
Создание и реализация даже самой простой программы (кода) осуществляется в рамках проекта (Project). Поэтому вначале необходимо создать проект. Для создания нового проекта необходимо войти в Visual C#, экспресс-выпуск и в меню Файл выбрать Создать проект. Появится диалоговое окно Создать проект (см. рис.).
В рамках проекта создадим Консольное приложение. Консолью называется окно операционной системы, в котором отображаются вводимые с клавиатуры данные и появляются выводимые результаты. Консоль – это средство взаимодействия пользователя с Консольным приложением, содержащим код (программу). Для создания консольного приложения необходимо в появившемся окне (см. рис.) выбрать шаблон Консольное приложение и нажать OK.
Вашему Приложению автоматически присвоится имя «ConsoleApplication1» (при желании это имя можно заменить на любое другое). Появляется окно Редактора кода. В окне Редактора кода появится вкладка Program.cs с панелью кода – областью для ввода или редактирования кода. В этой области автоматически создается шаблон программы – код класса Program.
Замечание. Чтение последнего отрывка нужно совмещать с выполнением описанных действий на компьютере, что позволит снять возникающие при чтении вопросы.
Во внутренних фигурных скобках остается вписать операторы, которые должны быть выполнены этой программой. Каждый оператор заканчивается точкой с запятой.
int r = 3;
Сonsole.WriteLine(r);
Console.ReadKey();
При наборе уже одной или нескольких первых букв выпадает список, из которого Вам предлагается выбрать возможный в данном контексте нужный элемент кода, например, имя переменной. Далее нужно щелкнуть по нему 2 раза или нажать клавишу Enter, и элемент кода появится в заданном месте программы.
Первый оператор (присваивания) задает тип (в данном примере int – целый) и значение переменной r. Второй – выводит на экран (консоль) значение r. В соответствии с этим опеатором на экране появляется окно и в него выводится значение (в данном примере 3). Третий оператор помещен здесь, чтобы задержать результат на экране, пока не будет нажата какая-либо клавиша. В противном случае результат очень быстро исчезнет с экрана. Убедитесь в этом сами. Выполнить программу можно, нажав клавишу F5 (или Ctrl/F5, см. п. 9).
Вообще в написанном консольном приложении из предлагаемого шаблона кода необходимыми являются только следующие строки.
using System;
class Program
static void Main(string[] args)
Первая строка – директива using - разрешает использование типов, которые содержатся в пространстве имен. Здесь в пространстве имен System библиотеки классов .NET Framework. Пространство имен System содержит фундаментальные и базовые классы. В данном примере директива using обеспечивает доступ к структуре int и классу Console.
Вторая строка объявляет класс с именем Program с помощью ключевого слова class (классу может быть задано любое имя). Содержимое класса – метод(методы) класса – задается в фигурных скобках.
В последней строке объявляется метод Main. Стандартное содержимое скобок может быть опущено, т.е. эта строка может иметь вид
static void Main()
Таким образом, программа для нашего примера может выглядеть так
using System;
class Program
{
static void Main()
{
int r = 3;//инициализация переменной
Console.WriteLine(r);
Console.ReadKey();
}
}
Замечание. Текст, расположенный в строке после // является комментарием и при выполнении программы игнорируется.
Здесь в классе Program определен один метод static void Main (смысл терминов static и void будет пояснен позже, см. п. 5). Метод Main должен быть обязательно в любой программе. Именно методу Main передается управление при запуске приложения.
Метод – это оформленная специальным образом последовательность инструкций (операторов) для выполнения каких-либо действий над объектами (переменными). (Более строгое и развернутое определение дается в п. 5.) Выполнение этих инструкций начинается после вызова метода из другого метода указанием его имени и необходимых аргументов (последнее не относится к методу Main). Метод является некоторым аналогом процедур (функций) в алгоритмических языках.
Метод Main имеет особый статус. Он является точкой входа каждого приложения C# и вызывается при запуске программы. Остальные методы вызываются из метода Main или других методов.
Если метод описан в классе, к которому принадлежит и Main, то для его вызова можно указать только имя и аргументы в круглых скобках или пустые круглые скобки, если аргументов нет. Если метод принадлежит другому классу, то для его вызова нужно указать имя класса (или имя экземпляра класса) и после точки имя метода, далее круглые скобки. В скобках указать аргументы метода, если они есть или пустые скобки, если аргументов у метода нет. См., например, вызов методов Console.WriteLine(r) и Console.ReadKey() класса Console в предыдущем примере.
В библиотеке имеется большое число готовых методов, сгруппированных в классы по своему назначению. Например, класс Math предоставляет константы и статические методы (термин статические поясним позже) для вычисления тригонометрических, логарифмических и других общих математических функций. Так для вычисления cos(x) необходимо указать класс и после точки метод: Math.сos(x), см. также примеры программ ниже.
1. Основы языка C#
1.1 Переменные. Типы данных
C# имеет две разновидности типов: типы значений и ссылочные типы. Переменные, основанные на типах значений, содержат непосредственно значения. Переменные ссылочных типов сохраняют ссылки (адреса в специально выделенной памяти) на фактические данные. Таким образом, в переменной может храниться или значение, или объектная ссылка.
Для обозначения переменных используются идентификаторы: сочетание букв, цифр и знака подчеркивания, начинающееся с буквы.
В C# переменные объявляются с определенным типом данных.
Тип данных определяет место для хранения переменной, расположение, в котором будет выделена память для переменной во время выполнения программы, способ представления значения переменной в памяти, множество допустимых значений, а также набор операций, которые можно выполнять с этими данными.
Так как все переменные в C# являются объектами тех или иных классов или структур, то к сведениям, хранимым в типе, также относиться базовый тип, которому он наследует и содержащиеся в нем члены (методы, поля, события и т. д.).
В программах настоящего пособия будем использовать только переменные типа int (принимающие целые значения), double (вещественные значения) , string (строка символов), char (отдельный символ) и bool (принимающие значения true (истина) или false (ложь)).
Переменные типа int, double, char, и bool являются экземплярами структур и относятся к типам значений. Переменная типа string является экземпляром класса и относится к ссылочным типам, то есть переменная содержит адрес ячейки памяти, где размещается строка. К ссылочным типам относятся также массивы (см. п. 3).
Более полное перечисление элементарных (встроенных) типов, к которым относятся и упомянутые выше типы, и характеристики типов см. в Приложении 2.
Значения и объектные ссылки.
Значение — это двоичное представление данных, тип данных предоставляет способ представления значения переменной в памяти.
Значения переменных целых типов представляются в памяти как двоичные числа, полученные непосредственно переводом из десятичной системы счисления в двоичную систему счисления (это представление полностью справедливо лишь для положительных чисел). Целые числа в памяти представляются точно, и при выполнении операций с целыми числами никаких ошибок не возникает.
Идея представления в памяти вещественных чисел (конкретные способы могут варьироваться) заключается в следующем. Сначала число приводится к нормализованному виду, когда целая часть числа равна 0, первая цифра после запятой является значащей, а положение запятой в числе определяется значением показателя степени 10. Например, число 0,086 в нормализованной форме имеет вид 0.86×10-1, число 123,45 - 0.12345×10-3. При этом цифры, расположенные в нормализованной записи после точки, называются мантиссой, а показатель степени 10 - это порядок. В памяти отдельно представляется мантисса и отдельно - порядок. При этом количество бит, предназначенных для мантиссы, определяет точность представления, а количество бит, предназначенных для порядка, определяет диапазон представляемых чисел. Если количество цифр в двоичном представлении мантиссы превышает количество отведенных под нее разрядов, то последние двоичные цифры теряются и число оказывается представленным в памяти приближенно. Кроме того, при выполнении арифметических операций ошибки могут накапливаться. Таким образом, в общем случае вещественные числа в памяти представляются приближенно и их сравнение на точное равенство невозможно. Так, например, равенство 0.2 + 0.2 + 0.2 + 0.2 + 0.2 = 1 может не выполняться, если левая часть его вычисляется на компьютере (cм. Пример 2.6). Обычно вещественные переменные используются для обозначения величин, полученных в результате измерений, которые всегда имеют некоторую погрешность, либо полученных в результате вычислений.
Символы всегда представлены 16-разрядными кодами Unicode (Юникод). Подробнее о символьных данных и операциях с ними см. п. 6.
Логические переменные могут иметь значение true либо false.
Объектная ссылка – адрес памяти. При создании объекта память для него выделяется в управляемой куче – специальной области памяти, переменная хранит только ссылку на расположение объекта.
1.2 Литералы
Литералы используются в тексте программы для обозначения числовых значений, строк символов или логических констант. Другими словами литерал представляет собой постоянное значение, у которого нет имени.
Целочисленные литералы состоят из цифр от 0 до 9 со знаком +, - или без знака. Например, 25 – 7 553.
Литералы с плавающей точкой могут быть записаны в виде целой и дробной частей, разделенных точкой (целая часть может отсутствовать, если она равна 0, если дробная часть равна 0, то после точки должен быть записан 0) или в экспоненциальной форме (вместо основания степени 10 используется e или E). Например, 8.1 .23 3.0 – 5.3 E–1 5e4.
Строковые литералы используются для представления текстовых строк. Это строка символов, заключенная в кавычки. Например, “Город Москва” “Результаты вычислений”.
С помощью символа \ (обратный слеш) можно указать некоторые специальные и управляющие символы. Последовательность \ и следующего за ним символа называется управляющей последовательностью. Например, наличие в строке последовательности \n означает переход на новую строку, \t – горизонтальная табуляция, \\ - обратный слеш (\), \” - двойная кавычка и т.п.
Символьные литералы используются для представления одиночных символов (заключаются в одинарные кавычки). Например,
char chars = ‘X’;
Литералы для представления логических значений: true, false.
Ключевое слово null является литералом, представляющим пустую ссылку, которая не ссылается ни на один объект.
1.3. Операторы объявления. Инициализация переменных
Оператор объявления представляет новую переменную или константу. При объявлении указывается тип и при необходимости переменной может быть присвоено значение. Для константы указание значения обязательно. В языке C# инициализация переменной (т.е. присвоение ей начального значения) является обязательным условием. Начальное значение может быть задано с помощью оператора присваивания при объявлении переменной (см. Пример во Введении), а также в процессе выполнения программы. Если инициализация переменной осуществляется при ее объявлении, то вначале указывается тип данных, затем имя переменной, далее оператор присваивания в виде знака равенства и, наконец, литерал соответствующего типа. Для инициализации одной переменной может быть также использована другая, инициализированная ранее переменная:
int x = 0;
int y = x;
int z;
z = y;
Допустима также запись
int x, y, z;
x = y = z = 1;
Здесь нескольким переменным присваивается одно и то же значение. Присваивание происходит справа налево: сначала z присваивается значение 1, затем y присваивается значение z и далее в x пересылается значение y.
Можно также вначале объявить тип переменной, а затем инициализировать ее отдельным оператором. Например,
int x;
x = 0;
Объявление типа и инициализацию переменной можно выполнить непосредственно при первом использовании переменной в программе, см., например, программу Примера 3.4.
В виде констант задаются неизменяемые в программе величины. Например, если объявлена константа g
Const double g = 15.5;
то значение g не может быть изменено в программе.
1.4. Математические операторы. Выражения
В общем случае слева от оператора присваивания (знака =) располагается переменная, справа – выражение, значение которой будет присвоено переменной левой части. (Пока речь будет идти только о числовых переменных и выражениях, значениями которых является числовое значение.) Простейшим выражением является простая переменная или литерал.
Выражение может содержать математические операторы: сложения +, вычитания –, умножения *, деления / и вычисления остатка при целочисленном делении % (операция возведения в степень в языке C# отсутствует) и операнды, над которыми эти операции выполняются. Операндами могут быть литералы, переменные и обращения к методам, результатом которых является одно значение. Если в выражении несколько операторов, то они выполняют действия в соответствии со следующими приоритетами: операторы умножения и деления *, /, % (выполняются по порядку слева направо), операторы сложения и вычитания +, –. Если операндом какой-либо операции является обращение к функции (методу), то сначала выполняется это обращение, чтобы получить в качестве операнда числовое значение. В качестве примера вычислим
y = 6 + Cos(x) + x * x
и выведем результат на экран.
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
double x = 2.3;
double y;
y = 6 + Math.Cos(x) + x * x;
Console.WriteLine(y);
Console.ReadKey();
}
}
}
Порядок вычисления выражения в программе будет следующим:
1. Вычисляется Cos(x) обращением к методу Cos(x)класса Math. (Обозначим результат через p1).
2. Вычисляется 6 + p1 (Обозначим результат этой операции через p2).
3. Вычисляется x * x (Обозначим результат этой операции через p3).
4. Вычисляется p2 + p3. Результат этой операции помещается в y.
В выражении могут присутствовать операнды разных типов. В приведенном примере первый операнд – литерал целого типа. Остальные операнды – типа double. Тип результата каждой операции зависит от типа операндов, участвующих в операции. Тип результата последней операции определяет тип результата вычисления выражения.
Определение типа результата операции осуществляется в соответствии со следующими правилами:
1. Если оба операнда целые (типа int), результат будет иметь тот же тип (int). В соответствии с этим при делении целого на целое получается целое число. Остаток от деления теряется.
2. Если один из операндов вещественный (тип double), то результат будет вещественный (double). Второй операнд при необходимости автоматически преобразуется к типу double.
Замечание. Для часто встречающегося в программах оператора, изменяющего значение переменной типа int на 1 , например,
i = i + 1; или i = i – 1;
можно использовать более короткую запись
i ++; (инкремент) или i ––; (декремент)
(см., например, программы Примеров 2.7, 2.13 и др.).
Другие возможности сокращенной записи операторов здесь не рассматриваются.
Приведение и преобразование типов в С#
В C# можно выполнять следующие виды преобразований:
Неявные преобразования. Не требуют специального синтаксиса, поскольку преобразование безопасно для типов и данные не теряются.
Дата добавления: 2015-02-07; просмотров: 1475;