Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Встроенные типы данных 1 страница




Тип данных Ключевое слово Диапазон значений Количество битов
Логический bool true, false  
Символьный (Unicode-символ) char от U+0000 до U+ffff  
Целый (со знаком) sbyte -128...127  
Целый (без знака) byte 0..255  
Целый (со знаком) int -2147483648... 2147483647  
Целый (без знака) uint 0... 4294967295  
Целый (короткий, со знаком) short –32768…32767  
Целый (короткий, без знака) ushort 0... 65535  
Целый (длинный, со знаком) long -9223372036854775808... 9223372036854775807  
Целый (длинный, без знака) ulong 0... 18446744073709551615  
Вещественный (7 цифр) float 1.5×10-45…3.4×1038  
Вещественный с удвоенной точностью (15-16 цифр) double 5.0×10-324…1.7×10308  
Финансовый (28-29 цифр) decimal 1.0×10-28…7.9×1028  
Строковый string Длина ограничена доступной памятью  
Тип obiect obiect Любые данные  

 

С языке С# идентификатор – это последовательность букв (латинских букв и букв национальных алфавитов), цифр и знаков подчеркивания, начинающаяся не с цифры.

инициал._выражение – необязательный инициализатор, определяющий начальное значение соответствующего объекта.

Синтаксис инициализатора переменной:

= инициал._выражение

либо

(инициал._выражение).

В качестве инициирующего выражения может применяться операция языка new, которая служит для создания нового объекта и имеет следующий формат:

new тип ([параметры])

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

Приведем несколько примеров описания программных объектов, в т.ч. переменных.

int i,j,k,n=10;

// Определены целые переменные i,j,k,n и только n

//инициализирована значением 10;

int i=new int(); // то же самое, что int i=0;

Student s1=new Student();

// создание объекта класса Student;

string s = “Hello”;

//создание строки и инициализация ее строковой константой

string s = new string(‘ ’, 20);

//создание строки из 20 пробелов

char simbol1= ‘\n’;

// Определена символьная переменная simbol1 co

// значением ‘\n’

double pi=3,1415926535897932385;

// Определена вещественная

//переменная pi с удвоенной точностью co значением

//3,1415926535897932385

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

const float pi = 3,14;

const char plus = '+';

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

Кроме типов, приведенных в таблице 2, к значимым типам в языке C# относят перечислимый тип enum.

Перечислимый тип, который вводится с помощью служебного слова enum, по существу описывает целые константы (типа int), которым приписаны уникальные и удобные для использования имена. Например,

enum {one=1,two=2,three=3};

Здесь one, two, three – произвольным образом выбранные программистом идентификаторы для обозначения констант 1,2,3. После такого определения в программе наряду, например, с константой 2 можно использовать ее обозначение two. Если в определении перечислимых констант опустить знаки “=” и не указывать числовых значений, то они будут присваиваться идентификаторам по умолчанию следующим образом: самый левый в фигурных скобках идентификатор получит значение 0, а каждый последующий увеличивается на 1. Имена перечислимых констант должны быть уникальными, однако к значениям констант это не относится. Одно значение могут иметь разные константы. Для перечислимых констант можно ввести имя типа, соответствующего приведенному списку констант, например, определение

enum week {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday};

не только определяет константы Sunday==0, Monday==1,…, но и вводит перечислимый тип с именем week, который может в дальнейшем использоваться в определениях и описаниях других типов.

Особое значение в языке имеет тип void, множество значений которого пусто. Его используют для обозначения типа метода класса, если он не возвращает значения,например, static void Main(). Объектов типа void не существует, то есть описание void i; недопустимо.

Для определения размера (в байтах) области памяти, выделяемой для переменной определенного типа, в С# используется операция sizeof:

sizeof (тип данных).

Например, операция sizeof(int) определит, сколько байт выделено для переменой типа int.

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

char сh= ‘a’;

int k = ch; // символьный тип преобразуется к целому

Console.WriteLine(k);// ASCII–код символа ch 97

Не для всех типов данных допустимо неявное преобразование, например запись

double a=1.0;

decimal b=a;

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

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

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

Таким образом, чтобы в предыдущем примере устранить ошибку следует добавить преобразования типа следующим образом:

double a=1.0;

decimal b=(decimal) a;

Другим примером явного преобразования типа является вывод на экран ASCII–кода символа ch без использования вспомогательной переменной целого типа будем писать

char сh= ‘a’;

Console.WriteLine((int)сh);// 97

Использовать преобразования значимых типов необходимо с большой осторожностью, так как они это может привести к потере информации, например

int a=300;

Console.WriteLine(a);// 300

Console.WriteLine((byte)b); //44

Подробнее о преобразовании типов можно узнать в библиотеке MSDN[3].

На практике преобразование типа часто применяется для ссылочных типов при работе с иерархиями объектов.

Все встроенные типы данных языка С# однозначно соответствуют стандартным классам библиотеки.Net, определенным в пространстве имен System и, следовательно, имеют одного общего предка object. Таким образом, любой встроенный тип данных имеет поля и методы. С их помощью можно получать, например, минимальные и максимальные значения для разных типов данных:

double.MaxValue

int.MinValue

Все допустимые элементы класса можно посмотреть в окне редактора, введя символ точки сразу после имени типа, например,

int.

Над переменными различных типов можно совершать различные операции, например, для целочисленного типа - арифметические операции(сложение, умножение, инкремента и т.д.), операции отношения (больше, меньше и т.д) и многие другие. Знаки операций в языке С# совпадают со знаками операций языка С, потому в данном учебном пособии они описываться не будут. В С# есть всего несколько операций, которых нет в языке С. Одна из них описанная выше операция new. Со знаками операций языка С# в библиотеке MSDN [4].

 

Задание 2. Описание переменных и преобразование типов

Каждому студенту рекомендуется выполнить упражнения 1–3.

1. Определите количество байтов, которые занимают в памяти переменные всех типов даннях из таблицы 2. Результат выведите на экран в виде

sizeof (int)=4

sizeof (long)=8…

2. Опишите в программе две переменные целого типа и инициализируйте их числами 10 и 3. Выведите на экран вещественное число, равное делению первой переменной на вторую. (Используйте операцию деления /. При делении целых чисел эта операция возвращает только целую часть частого. Результат операции деления / будет вещественным, если делимое или (и) делитель – вещественное число. Поэтому, в данной задачи необходимо использовать явное преобразование типов).

3. Опишите в программе переменную символьного типа и инициализируйте ее произвольным символом. Выведите на экран ASCII–код введенного символа, а также символы – больший и меньший «сосед» данного по ASCII–коду.

 

Глава 3. Ввод – вывод значений переменных

Значение переменной может быть указано при описании, а может быть введено с клавиатуры. Рассмотрим, как происходит ввод – вывод в языке С#.

В языке С# не определено операторов ввода – вывода. Вместо них для обмена с внешними устройствами используются стандартные объекты. Для работы с консолью (ввода с клавиатуры, вывода на экран) применяется класс Console из пространства имен System, в котором определены, в частности, основные методы для ввода-вывода данных:

- Write и WriteLine (методы вывода данных),

- Read и ReadLine (методы ввода данных).

Данные методы являются перегруженными, то есть в классе Console описано несколько методов с одним именем, например WriteLine, но разными параметрами. Для ввода – вывода данных вызывается один из перегруженных методов в зависимости от типов параметров. Например,

Console.WriteLine ("Результат");// вывод строки

Console.WriteLine (10);// вывод целой константы

Console.WriteLine (‘a’);// вывод символа

Методы вывода перегружены для всех основных типов данных, кроме того предусмотрены варианты для форматированного вывода. Методы Write и WriteLine отличаются тем, что первый переводит строку после вывода параметра, а второй – нет.

Метод WriteLine может быть вызван с одним или несколькими параметрами.

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

Например,

Console.WriteLine ("Результат");

int a=10, b=5;

char c= ‘a’;

Console.WriteLine (a+b);// 15

Console.WriteLine (c);// a

Кроме того в качестве параметра можно использовать конкатенацию (сцепление) нескольких объектов, которая образуется с помощью знака операции +. Например

Console.WriteLine("Результат ="+(a+b)+" Символ="+с);

//Результат=15 Символ=a

Такого же результата можно добиться использую так называемый форматный вывод, при котором метод WriteLine имеет более одного параметра.

Console.WriteLine("Результат ={0} Символ={1}",(a+b),с);

При этом в качестве первого параметра методу передается строковая константа, которая кроме символов, предназначенных для вывода на экран, содержит параметры в фигурных скобках. Эти параметры нумеруются с нуля и перед выводом заменяются значениями соответствующих значений объектов в списке параметров метода WriteLine: нулевой параметр заменяется значением первого объекта (в нашем случае выражения a+b), первый параметр - вторым объектом (в нашем случае переменной c) и т.д.

В общем случает параметр формата задается следующим образом:

{n [, m:спецификатор формата [число]]}, где

n- номер параметра;

m – минимальная ширина поля вывода (если выводимому значению достаточно меньшего количества позиций, то остальные заполняются нулями, если больше – параметр игнорируется; вывод осуществляется по правому краю ширины области вывода);

спецификатор формата – спецификатор, определяющий формат вывода значения (например, С – вывод валюты, с учетом национальных особенностей представления, F – вывод числа с фиксированной точкой, D – вывод десятичного целого числа);

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

Например,

float a=3.5F, b=5.1F, c=6.2F;

Console.Write("{0,40:C}\n{1:F5}\n{2:D4}", a,b,c);

// в центе экрана [5] будет выведено 3,50р.

// на следующей строке будет выведено 5,10000

// на следующей строке будет выведено 0006

Следующий пример демонстрирует работы метода Console.WriteLine(string, object) с различными спецификаторами формата.

using System;

class Sample

{

enum Color {Yellow = 1, Blue, Green};

static DateTime thisDate = DateTime.Now;

/* DateTime – структура, определенная в пространстве имен System. Представляет текущее время, обычно выраженное как дата и время суток. Now – свойства структуры DateTime, получает объект DateTime, которому присвоены текущие дата и время данного компьютера, выраженные как местное время. */

static void Main()

{

// Форматирование отрицательных целых чисел и вещественных чисел

Console.WriteLine("Standard Numeric Format Specifiers");

Console.WriteLine(

"(C) Currency:..{0:C}\n" + //(C) Currency:..(123.00р)

"(D) Decimal:..{0:D}\n" + //(D) Decimal:..-123

"(E) Scientific:..{1:E}\n" +//(E) Scientific:..-1.234500E+002

"(F) Fixed point:..{1:F}\n" +//(F)Fixed point:..-123.45

"(G) General:..{0:G}\n" + //(G) General:.. -123

"(default):..{0} (default = 'G')\n" +

//(default):.. -123 //(default = 'G')

"(N) Number:..{0:N}\n" + //(N) Number:..-123.00

"(P) Percent:..{1:P}\n" + //(P) Percent:..-12,345.00 %

"(R) Round-trip:..{1:R}\n" +//(R) Round-trip:..-123.45

"(X) Hexadecimal:..{0:X}\n",//(X) Hexadecimal:..FFFFFF85

-123, -123.45f);

 

// Форматирование текущей даты

Console.WriteLine("Standard DateTime Format Specifiers");

Console.WriteLine(

"(d) Short date:.. {0:d}\n" +//(d) Short date:.. 6/26/2004

"(D) Long date:.. {0:D}\n" +

//(D) Long date:..Saturday, June 26, 2004

"(t) Short time:.. {0:t}\n" +//(t) Short time:.. 8:11 PM

"(T) Long time:.. {0:T}\n" +//(T) Long time:.. 8:11:04 PM

"(f) Full date/short time:.. {0:f}\n" +

//(f) Full date/short time:..Saturday, June 26,2004 8:11 PM

"(F) Full date/long time:.. {0:F}\n" +

// (F) Full date/long time:..Saturday, June 26,2004 8:11:04 PM

"(g) General date/short time:.. {0:g}\n" +

//(g) General date/short time:..6/26/2004 8:11 PM

"(G) General date/long time:.. {0:G}\n" +

//(G) General date/long time:.. 6/26/2004 8:11:04 PM

" (default):.. {0} (default = 'G')\n" +

//(default):.. 6/26/2004 8:11:04 PM (default = 'G')

"(M) Month:.. {0:M}\n" +//(M) Month:.. June 26

"(R) RFC1123:.. {0:R}\n" +

//(R) RFC1123:.. Sat, 26 Jun 2004 20:11:04 GMT

"(s) Sortable:.. {0:s}\n" +

//(s) Sortable:..2004-06-26T20:11:04

"(u) Universal sortable:..{0:u} (invariant)\n" +

//(u) Universal sortable:..2004-06-26 20:11:04Z (invariant)

"(U) Universal full date/time: {0:U}\n" +

//(U) Universal full date/time: Sunday, June 27, 2004 3:11:04 AM

"(Y) Year:.. {0:Y}\n", //(Y) Year:.. June, 2004

 

thisDate);

 

// Форматирование перечисления Color

Console.WriteLine("Standard Enumeration Format Specifiers");

Console.WriteLine(

"(G) General:.. {0:G}\n" +// G) General:.. Green

" (default):.. {0} (default = 'G')\n" +

//((default):.. Green (default = 'G')

"(F) Flags:.. {0:F} (flags or integer)\n" +

//(F) Flags:.. Green (flags or integer)

 

"(D) Decimal number:.. {0:D}\n" +//(D) Decimal number:..3

"(X) Hexadecimal:.. {0:X}\n", // (X) Hexadecimal:.. 00000003

Color.Green);

}

}

 

Кроме того, при форматном выводе могут использоваться пользовательские шаблоны форматирования. При этом после двоеточия задается вид выводимого значения посимвольно. Если, например, на месте символа стоит знак #, то будет выведена цифра, при условии что она не равна нулю. Если на месте символа стоит 0, то будет выведена любая цифра. Например,

float a=3.421F, b=0.1F;

Console.Write("{0,4:0.##} \t{1,4:#.00}", a,b); //3,42,10

Строки настраиваемых числовых форматов приведены в библиотеке MSDN[6].

 

Ввод с клавиатуры данных осуществляется следующим образом. Методы Read и ReadLine предназначены для ввода с клавиатуры данных в строку.

Console.Write("Введите строку: ");

string s = Console.ReadLine();

Console.WriteLine(s);

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

Console.Write("Введите символ: ");

char ch = (char) Console.Read();

Console.ReadLine();

Console.WriteLine(ch);

Обратите внимание, что метод Read, в отличии от метода ReadLine, не очищает буфер[7], поэтому следующий после него ввод будет выполняться с того места, на котором закончился предыдущий. Поэтому после оператора Console.Read(); использовать следует Console.ReadLine().

Метода, который считывает с клавиатуры значение чисел, в классе Console нет, поэтому ввод числовых данных выполняется в два этапа.

1. С помощью метода ReadLine осуществятся чтение данных в переменную типа string

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

· Используется класс Convert и один из его методов (ToInt32, ToDouble и т.д.)

· Используется метод Parse, имеющий в каждом арифметическом классе

Нижеприведенный пример демонстрирует ввод вещественного числа двумя способами и ввод целого числа двумя способами.

string buf;

Console.Write("Введите вещественное число: ");

buf =Console.ReadLine();

double a = Convert.ToDouble(buf);

Console.WriteLine(a);

 

Console.Write("Введите вещественное число: ");

buf = Console.ReadLine();

double b = float.Parse(buf);

Console.WriteLine(b);

 

 

Console.Write("Введите целое число: ");

buf = Console.ReadLine();

int c = Convert.ToInt32(buf);

Console.WriteLine(c);

 

Console.Write("Введите целое число: ");

buf = Console.ReadLine();

int d = int.Parse(buf);

Console.WriteLine(d);

Кроме описанных методов ввода-вывода класс Console содержит много других методов и свойств. Рассмотрим, наиболее используемые из них.

Для изменения цвета экрана используется свойство BackgroundColor, например

Console.BackgroundColor = ConsoleColor.DarkGreen;

Для получения или задания высоты и ширины экрана используют свойства WindowHeight и WindowWidth соответственно, например

Console.WindowWidth = 40;// по умолчанию ширина равна 80, высота 40

Для очистки экрана используется метод Clear(), например

Console.Clear();

Для установки позиции курсора используется метод SetCursorPosition(int n, int m), где n-номер столбца, m-номер строки. Например, вывод строки ровно в центре экрана можно осуществить следующим образом:

string s = "Hello";

Console.SetCursorPosition(Console.WindowWidth/2-s.Length/2, Console.WindowHeight/2);

Console.WriteLine(s);//вывод в центре экрана

 

Со всеми свойствами и методами класса Console можно познакомиться в библиотеке MSDN[8].

Пример 1. Ввести с клавиатуры два вещественных числа. Очистить экран, изменить фон на зеленый. В верхнем левом углу окна вывести текущее время в коротком формате, в центральной строке экрана вывести на экран два вещественных числа в формате 2 знака поле запятой и заполнить пространство между ними символами ‘0’ следующим образом:

32.76000000000000000000000000000000000000000000000000005.41

using System;

using System.Text;

 

namespace programm_1

{

class Class1

{

static void Main()

{

Console.OutputEncoding = Encoding.GetEncoding(866);

Console.Write("Введите 2 вещественных числа: ");

string buf;

buf = Console.ReadLine();

double a = float.Parse(buf);

buf = Console.ReadLine();

double b = float.Parse(buf);

 

Console.BackgroundColor = ConsoleColor.DarkGreen;

//Изменение цвета фона

Console.Clear();//Очистка экрана

DateTime thisDate = DateTime.Now;

//Получение даты и времени

Console.WriteLine("{0:t}", thisDate);//Вывод времени

Console.SetCursorPosition(0, Console.WindowHeight/2);

//Установка позиции курсора

Console.Write("{0:F2}", a);

Console.WriteLine("{0:F2}".PadLeft(30,'0'),b);

/*PadLeft – метод класса string, который возвращает новую строку выравненную по правую краю, путем добавления слева указанного символа ('0') до указанной длины (30)*/

Console.ReadKey();

}

}

}

Задание 3. Форматирование вывода

Каждому студенту рекомендуется выполнить хотя бы одно из упражнений 1–12.

1. Описать переменную вещественного типа. Ввести ее значение с клавиатуры. Очистить экран, изменить цвет фона. Уменьшить вдвое размеры окна. Вывести в верхнем левом углу экрана текущее время в длинном формате и в 5 строке значение переменной на экран в формате 2 знака после запятой в следующем виде:

i = 4,3300000000000000000000

2. Описать переменную вещественного типа. Ввести ее значение с клавиатуры. Очистить экран, изменить цвет фона. Увеличить на треть размеры окна. Вывести в верхнем левом углу экрана текущую дату в длинном формате и в 10 строке значение переменной на экран в формате 2 знака после запятой в следующем виде:

i = 00000000000000000000000000004,33

3. Описать четыре переменных целого типа, ввести их значение с клавиатуры. Очистить экран, изменить цвет фона. Уменьшить ширину окна на треть. Вывести в верхнем левом углу экрана текущую дату в коротком формате Вывести значения переменных в процентном формате в центре экрана на экран следующим образом (как таблицу с невидимыми границами):

23,1% 23%

21% 34,56%

4. Описать четыре переменных целого типа, ввести их значение с клавиатуры. Очистить экран, изменить цвет фона. Увеличить ширину окна на треть. Вывести в верхнем левом углу экрана текущую дату в длинном формате, время в коротком. Вывести значения переменных в денежном формате в центре экрана экран следующим образом:

| 12,00р| 5231,00р|

| 124,00р| 78,00р|

5. Описать строку и переменную вещественного типа. Ввести значение строки и переменной с клавиатуры. Очистить экран, изменить цвет фона. Увеличить высоту окна на треть. Вывести в верхнем левом углу экрана текущую дату и время в длинном формате. Вывести на центральной строке экрана значение введенной строки и переменной в формате 2 знака после запятой следующим образом:

строка= 4,33

6. Описать строку и переменную вещественного типа. Ввести значение строки и переменной с клавиатуры. Очистить экран, изменить цвет фона. Уменьшить высоту окна на треть. Вывести в верхнем левом углу экрана текущую дату и время в коротком формате. Вывести на центральной строке экрана значение введенной строки и переменной в формате 2 знака после запятой следующим образом:

строка=4,33

7. Описать две строки и переменную вещественного типа. Ввести значение строк и переменной с клавиатуры. Очистить экран, изменить цвет фона. Увеличить высоту окна на 20%. Вывести в верхнем левом углу экрана текущую дату в коротком формате, время в длинном формате. Вывести левом нижнем и правом нижнем левом углу экрана значение введенных строк и переменной в формате 2 знака после запятой следующим образом:

Строка1=4,33 Строка1=4,33

8. Описать две строки и переменную вещественного типа. Ввести значение строк и переменной с клавиатуры. Очистить экран, изменить цвет фона. Уменьшить высоту окна на 20%. Вывести в верхнем правом углу экрана текущую дату в формате месяц - число. Вывести левом верхнем и правом нижнем левом углу экрана значение введенных строк и переменной в формате 2 знака после запятой следующим образом:

Строка1=4,33 Строка1=4,33

9. Описать строку и переменную вещественного типа. Ввести значение строки и переменной с клавиатуры. Очистить экран, изменить цвет фона. Увеличить ширину окна на 20%. Вывести в верхнем левом углу экрана текущую дату формате месяц-год. Вывести ровно в центре экрана значение введенной строки и в следующей строке переменную в формате 2 знака после запятой.

10. Описать строку и переменную целого типа. Ввести значение строки и переменной с клавиатуры. Очистить экран, изменить цвет фона. Уменьшить ширину окна на 20%. Вывести в верхнем правом углу экрана текущую дату в длинном формате. Вывести ровно в центре экрана значение введенной строки и в следующей строке переменную в шестнадцатеричном формате.

11. Описать две строки и переменную целого типа. Ввести значение строк и переменной с клавиатуры. Очистить экран, изменить цвет фона. Уменьшить размеры окна на 20%. Вывести в верхнем левом углу экрана текущую дату в длинном формате. В правом верхнем углу и в правом нижнем углу окна вывести значение введенных строк и переменной в следующем виде

Строка1=434,33 р.

Строка2=43,433 %.

12. Описать две строки и переменную целого типа. Ввести значение строк и переменной с клавиатуры. Очистить экран, изменить цвет фона. Увеличить размеры окна на 20%. Вывести в верхнем левом углу экрана текущую дату в коротком формате. В нижней строке окна вывести значение введенных строк и переменной в следующем виде

Строка1=434 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Строка2=434,00р.

Глава 4. Обработка исключительных ситуаций

Исключительная ситуации или исключение (exception) – это возникновение в программе непредвиденного события, которое может порождаться некорректным использованием аппаратуры или неправильной работой программы. Типичные исключительные ситуации – деление на ноль, достижение конца файла, переполнение в арифметических операциях, обращение к несуществующему участку памяти. Обычно эти ситуации приводят к завершению выполнения программы с системным сообщением об ошибке. Механизм обработки исключений дает программисту возможность, определить каким образом программа может продолжить выполняться после обнаружения исключения.

Исключения позволяют логически разделить вычислительный процесс на две части - обнаружение аварийной ситуации и ее обработку. То есть функция обнаружившая ошибку, может «не знать» что делать для ее исправления, а функция вызывающая данную может «знать» что делать, но «не уметь» определить место обнаружения ошибки. Это позволяет не только улучшить структуру программы, но облегчает работу с библиотечными функциями и программами, состоящими из многих модулей.

Кроме того, для передачи информации об ошибке в вызывающую функцию не требуется применить возвращаемое значение, параметры и глобальные переменные. Это особенно важно для конструкторов классов[9], которые по синтаксису не могут возвращать значение.

Исключения С# не поддерживают обработку асинхронных событий, таких как ошибки оборудования или прерывания, например, нажатие клавиш Ctrl+C, но практически любое состояние, достигнутое в процессе выполнения программы, можно опередить как исключительную ситуацию (то есть не только аварийную ситуацию). Однако, это не имеет преимуществ перед другими решениями и не улучшает структуру и читаемость программы.

Исключение в программе может генерироваться двумя способами.

1. Стандартные исключения генерирует среда выполнения, они определены в пространстве имен System и являются потомками класса Exception. Часто используемые стандартные исключения приведены в таблице 1.




Поделиться с друзьями:


Дата добавления: 2014-12-27; Просмотров: 716; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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