лекции. Закон рф от 27 июля 2006 г. 149фз Об информации, информационных технологиях и о защите информации
Скачать 422.2 Kb.
|
Типы данныхДанные, с которыми работает программа, хранятся в оперативной памяти. Естественно, что компилятору необходимо точно знать, сколько места они занимают, как именно закодированы и какие действия с ними можно выполнять. Все это задается при описании данных с помощью типа. Тип данных однозначно определяет: внутреннее представление данных, а следовательно и множество их возможных значений ; допустимые действия над данными (операции и функции). Классификация типовТипы можно классифицировать по разным признакам. Если принять за основу строение элемента, все типы можно разделить на простые (не имеют внутренней структуры) и структурированные (состоят из элементов других типов). По своему "создателю" типы можно разделить на встроенные (стандартные) и определяемые программистом. По способу хранения значений типы делятся на значимые, или типы-значения, и ссылочные. Рассмотрим в первую очередь встроенные типы C#. Встроенные типыВстроенные типы не требуют предварительного определения. Для каждого типа существует ключевое слово, которое используется при описании переменных, констант и т. д.
Переменная — это именованная область памяти, предназначенная для хранения данных определенного типа. Во время выполнения программы значение переменной можно изменять. Все переменные, используемые в программе, должны быть описаны явным образом. При описании для каждой переменной задаются ее имя и тип. Пример описания целой переменной с именем a и вещественной переменной x: int a; float x; int a, b = 1; float x = 0.1, y = 0.1f; Здесь описаны: переменная a типа int, начальное значение которой не присваивается; переменная b типа int, ее начальное значение равно 1; Программа на C# состоит из классов, внутри которых описывают методы и данные. Структуру программы иллюстрирует рис. 3.1. Переменные, описанные непосредственно внутри класса, называются полями класса. Им автоматически присваивается так называемое "значение по умолчанию" — как правило, это 0 соответствующего типа. Переменные, описанные внутри метода класса, называются локальными переменными. Их инициализация возлагается на программиста. Рис. 3.1. Структура программы Так называемая область действия переменной, то есть область программы, где можно использовать переменную, начинается в точке ее описания и длится до конца блока, внутри которого она описана. Блок — это код, заключенный в фигурные скобки. Основное назначение блока — группировка операторов. В листинге 3.1 приведен пример программы, в которой описываются и выводятся на экран локальные переменные. using System; namespace ConsoleApplication1 { class Class1 { static void Main() { int i = 3; double y = 4.12; decimal d = 600m; string s = "Вася"; Console.Write( "i = " ); Console.WriteLine( i ); Console.Write( "y = " ); Console.WriteLine( y ); Console.Write( "d = " ); Console.WriteLine( d ); Console.Write( "s = " ); Console.WriteLine( s ); } } } Операции и выражения Выражение — это правило вычисления значения. В выражении участвуют операнды, объединенные знаками операций. Операндами простейшего выражения могут быть константы, переменные и вызовы функций. Например, a + 2 — это выражение, в котором + является знаком операции, а a и 2 — операндами. Пробелы внутри знака операции, состоящей из нескольких символов, не допускаются. Операции C# приведены в таблице 3.1.
Математические функции — класс Math Самая простая программа, которую можно себе представить (не считая "Hello, World!"), состоит из ввода исходных данных, вычислений по каким-то формулам и вывода результата. В выражениях, из которых состоят формулы, часто используются математические функции, например, синус или возведение в степень. Они реализованы в классе Math, определенном в пространстве имен System. Описание методов и полей класса приведено в таблице 4.1.
В листинге 4.5 приведен пример применения методов класса Math. using System; namespace ConsoleApplication1 { class Class1 { static void Main() { Console.Write( "Введите х: " ); double x = double.Parse( Console.ReadLine() ); //преобразование строки в double Console.Write( "Введите y: " ); double y = double.Parse( Console.ReadLine() ); Console.WriteLine( "Максимум из х и y : " + Math.Max(x, y) ); double z = Math.Pow(Math.Sin(x), 2) + Math.Pow(Math.Sin(y), 2); //pow - возведение в степень Console.WriteLine( "Сумма квадратов синусов х и y : " + z ); } } } это былилинейные программы, все операторы в которых выполняются последовательно, один за другим для сложных программ необходимо использовать : Условный оператор if Условный оператор if используется для разветвления процесса вычислений на два направления. Структурная схема оператора приведена на рис. 4.1. Рис. 4.1. Структурная схема условного оператора Формат оператора: if ( логическое_выражение ) оператор_1; [ else оператор_2; ] Сначала вычисляется логическое выражение. Если оно имеет значение true, выполняется первый оператор, иначе — второй. После этого управление передается на оператор, следующий за условным. Ветвь else может отсутствовать. Оператор выбора switch Оператор switch (переключатель) предназначен для разветвления процесса вычислений на несколько направлений. Структурная схема оператора приведена на рис. 4.3. Рис. 4.3. Структурная схема оператора switch Формат оператора: switch ( выражение ){ case константное_выражение_1: [ список_операторов_1 ] case константное_выражение_2: [ список_операторов_2 ] ... case константное_выражение_n: [ список_операторов_n ] [ default: операторы ] } Выполнение оператора начинается с вычисления выражения. Тип выражения чаще всего целочисленный (включая char ) или строковый. Затем управление передается первому оператору из списка, помеченному константным выражением, значение которого совпало с вычисленным. Если совпадения не произошло, выполняются операторы, расположенные после слова default, а при его отсутствии управление передается следующему за switch оператору. Каждая ветвь переключателя должна заканчиваться явным оператором перехода, а именно одним из операторов break, goto или return: Операторы цикла и передачи управления Операторы цикла используются для вычислений, повторяющихся многократно. Блок, ради выполнения которого и организуется цикл, называется телом цикла. Остальные операторы служат для управления процессом повторения вычислений: это начальные установки, проверка условия продолжения цикла и модификация параметра цикла ( рис. 4.4). Один проход цикла называется итерацией. Начальные установки служат для того, чтобы до входа в цикл задать значения переменных, которые в нем используются. Проверка условияпродолжения цикла выполняется на каждой итерации либо до тела цикла (тогда говорят о цикле с предусловием ), либо после тела цикла (цикл с постусловием ). Параметром цикла называется переменная, которая используется при проверке условия продолжения цикла и принудительно изменяется на каждой итерации, причем, как правило, на одну и ту же величину. Если параметрцикла целочисленный, он называется счетчиком цикла. Цикл завершается, если условие его продолжения не выполняется. Возможно принудительное завершение как текущей итерации, так и цикла в целом. Для этого служат операторыbreak, continue, return и goto. Передавать управление извне внутрь цикла запрещается. Цикл с предусловием while Формат оператора: while ( выражение ) оператор Цикл с постусловием do Цикл с постусловием реализует структурную схему, приведенную на рис. 4.4, б, и имеет вид: do оператор while ( выражение ); Цикл с параметром for Цикл с параметром имеет следующий формат: for ( инициализация; выражение; модификации ) оператор; |