Главная страница
Навигация по странице:

  • используется для разветвления процесса вычислений на два направления. Структурная схема оператора приведена на рис. 4.1 .

  • Оператор выбора switch

  • Цикл с предусловием while

  • Цикл с параметром for

  • лекции. Закон рф от 27 июля 2006 г. 149фз Об информации, информационных технологиях и о защите информации


    Скачать 422.2 Kb.
    НазваниеЗакон рф от 27 июля 2006 г. 149фз Об информации, информационных технологиях и о защите информации
    Дата13.10.2021
    Размер422.2 Kb.
    Формат файлаdocx
    Имя файлалекции.docx
    ТипЗакон
    #247032
    страница2 из 3
    1   2   3

    Типы данных


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

    Тип данных однозначно определяет:

    • внутреннее представление данных, а следовательно и множество их возможных значений ;

    • допустимые действия над данными (операции и функции).

    Классификация типов


    Типы можно классифицировать по разным признакам. Если принять за основу строение элемента, все типы можно разделить на простые (не имеют внутренней структуры) и структурированные (состоят из элементов других типов). По своему "создателю" типы можно разделить на встроенные (стандартные) и определяемые программистом. По способу хранения значений типы делятся на значимые, или типы-значения, и ссылочные. Рассмотрим в первую очередь встроенные типы C#.

    Встроенные типы


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

    Название

    Ключевое слово

    Тип .NET

    Диапазон значений

    Описание

    Размер, битов

    Логический тип

    bool

    Boolean

    true, false







    Целые типы

    sbyte

    SByte

    От –128 до 127

    Со знаком

    8

    byte

    Byte

    От 0 до 255

    Без знака

    8

    short

    Int16

    От –32768 до 32767

    Со знаком

    16

    ushort

    UInt16

    От 0 до 65535

    Без знака

    16

    int

    Int32

    От –2 x 109 до 2 x 109

    Со знаком

    32

    uint

    UInt32

    От 0 до 4 x 109

    Без знака

    32

    long

    Int64

    От –9 x 1018 до 9 x 1018

    Со знаком

    64

    ulong

    UInt64

    От 0 до 18 x 1018

    Без знака

    64

    Символьный тип

    char

    Char

    От U+0000 до U+ffff

    Unicode-символ

    16

    Вещественные

    float

    Single

    От 1.5 x 10-45 до 3.4 x 1038

    7 цифр

    32

    double

    Double

    От 5.0 x 10-324 до 1.7 x 10308

    15–16 цифр

    64

    Финансовый тип

    decimal

    Decimal

    От 1.0 x 10-28 до 7.9 x 1028

    28–29 цифр

    128

    Строковый тип

    string

    String

    Длина ограничена объемом доступной памяти

    Строка из Unicode-символов




    Тип object

    object

    Object

    Можно хранить все, что угодно

    Всеобщий предок




    Переменная — это именованная область памяти, предназначенная для хранения данных определенного типа. Во время выполнения программы значение переменной можно изменять. Все переменные, используемые в программе, должны быть описаны явным образом. При описании для каждой переменной задаются ее имя и тип.

    Пример описания целой переменной с именем 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.

    Таблица 3.1. Операции C#

    Категория

    Знак операции

    Название

    Первичные

    x()

    Вызов метода или делегата

    x[]

    Доступ к элементу

    x++

    Постфиксный инкремент

    x--

    Постфиксный декремент

    new

    Выделение памяти

    typeof

    Получение типа

    checked

    Проверяемый код

    unchecked

    Непроверяемый код

    Унарные

    +

    Унарный плюс

    -

    Унарный минус (арифметическое отрицание)

    !

    Логическое отрицание



    Поразрядное отрицание

    ++x

    Префиксный инкремент

    --x

    Префиксный декремент

    (тип)x

    Преобразование типа

    Мультипликативные (типа умножения)

    *

    Умножение

    /

    Деление

    %

    Остаток от деления

    Аддитивные (типа сложения)

    +

    Сложение

    -

    Вычитание

    Сдвига

    <<

    Сдвиг влево

    >>

    Сдвиг вправо

    Отношения и проверки типа

    <

    Меньше

    >

    Больше

    <=

    Меньше или равно

    >=

    Больше или равно

    is

    Проверка принадлежности типу

    as

    Приведение типа

    Проверки на равенство

    ==

    Равно

    !=

    Не равно

    Поразрядные логические

    &

    Поразрядная конъюнкция (И)



    Поразрядное исключающее ИЛИ

    |

    Поразрядная дизъюнкция (ИЛИ)

    Условные логические

    &&

    Логическое И

    ||

    Логическое ИЛИ

    Условная

    ?:

    Условная операция

    Присваивания

    =

    Присваивание

    *=

    Умножение с присваиванием

    /=

    Деление с присваиванием

    %=

    Остаток от деления с присваиванием

    +=

    Сложение с присваиванием

    -=

    Вычитание с присваиванием

    <<=

    Сдвиг влево с присваиванием

    >>=

    Сдвиг вправо с присваиванием

    &=

    Поразрядное И с присваиванием



    Поразрядное исключающее ИЛИ с присваиванием

    |=

    Поразрядное ИЛИ с присваиванием

    Математические функции — класс Math

    Самая простая программа, которую можно себе представить (не считая "Hello, World!"), состоит из ввода исходных данных, вычислений по каким-то формулам и вывода результата. В выражениях, из которых состоят формулы, часто используются математические функции, например, синус или возведение в степень. Они реализованы в классе Math, определенном в пространстве имен System. Описание методов и полей класса приведено в таблице 4.1.

    Имя

    Описание

    Результат

    Пояснения

    Abs

    Модуль

    Перегружен

    | x | записывается как Abs(x)

    Acos

    Арккосинус

    double

    Acos(double x)

    Asin

    Арксинус

    double

    Asin(double x)

    Atan

    Арктангенс

    double

    Atan2(double x, double y) — угол, тангенс которого есть результат деления y на x

    BigMul

    Произведение

    long

    BigMul(int x, int y)

    Ceiling

    Округление до большего целого

    double

    Ceiling(double х)

    Cos

    Косинус

    double

    Сos(double x)

    Cosh

    Гиперболический косинус

    double

    Cosh(double x)

    DivRem

    Деление и остаток

    Перегружен

    DivRem(x, y, rem)

    E

    База натурального логарифма (число е)

    double

    2,71828182845905

    Exp

    Экспонента

    double

    e x записывается как Exp(x)

    Floor

    Округление до меньшего целого

    double

    Floor(double х)

    IEEERemainder

    Остаток от деления

    double

    IEEERemainder(double x, double y)

    Log

    Натуральный логарифм

    double

    loge x записывается как Log(x)

    Log10

    Десятичный логарифм

    double

    log10 x записывается как Log10(x)

    Max

    Максимум из двух чисел

    Перегружен

    Max(x, y)

    Min

    Минимум из двух чисел

    Перегружен

    Min(x, y)

    PI

    Значение числа 

    double

    3,14159265358979

    Pow

    Возведение в степень

    double

    xy записывается как Pow(x, y)

    Round

    Округление

    Перегружен

    Round(3.1) даст в результате 3 Round (3.8) даст в результате 4

    Sign

    Знак числа

    int

    Аргументы перегружены

    Sin

    Синус

    double

    Sin(double x)

    Sinh

    Гиперболический синус

    double

    Sinh(double x)

    Sqrt

    Квадратный корень

    double

     x записывается как Sqrt(x)

    Tan

    Тангенс

    double

    Tan(double x)

    Tanh

    Гиперболический тангенс

    double

    Tanh(double x)

    В листинге 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). Один проход цикла называется итерацией.



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

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

    Параметром цикла называется переменная, которая используется при проверке условия продолжения цикла и принудительно изменяется на каждой итерации, причем, как правило, на одну и ту же величину. Если параметрцикла целочисленный, он называется счетчиком цикла.

    Цикл завершается, если условие его продолжения не выполняется. Возможно принудительное завершение как текущей итерации, так и цикла в целом. Для этого служат операторыbreakcontinuereturn и goto. Передавать управление извне внутрь цикла запрещается.

    Цикл с предусловием while

    Формат оператора:

    while ( выражение ) оператор


    Цикл с постусловием do

    Цикл с постусловием реализует структурную схему, приведенную на рис. 4.4, б, и имеет вид:

    do оператор while ( выражение );
    Цикл с параметром for

    Цикл с параметром имеет следующий формат:

    for ( инициализация; выражение; модификации ) оператор;
    1   2   3


    написать администратору сайта