Файл: Понятие переменной в программировании. Виды и типы переменных (Понятие переменных и их использование).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 26.06.2023

Просмотров: 85

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

В прошлых главах мы уже сталкивались с логическим типом этих при обработке каких-либо параметров составляющих управления, этих как свойство Visible или же Checked.

У булевых переменных, как и всех иных, есть функция ToString(). Вид этих System.Boolean кроме того поддерживает функцию Parse, параметром которой считается строчка, при всем при этом регистр букв не имеет ценности и все последние пробелы игнорируются:

string str = “ tRuE ”;

bool b1 = Boolean.Parse(str); // b1 точно также true

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

Операции сравнения

табл.1. Операции сравнения

табл. 14.1. Операции сравнения

Операция

Название

==

Равно

!=

Не равно

Меньше

Больше

<=

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

>=

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

Операция сопоставления – это операция, которая показывает, как соотносятся друг к другу переменные. Операции сопоставления приведены в табл. 14.1.

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

bool b = (4 > 5);

после исполнения данной строки переменная b будет иметь значение false.

Обратите внимание, что значение вида bool не хранит информацию, какое из данных 2-ух количеств больше либо меньше, оно исключительно информирует подлинно это выражение или же нет.

Все операции сопоставления используются к числовым типам и типам-перечислениям. Но 2 из них == и != вполне возможно использовать к любым типам[2], т.е. вполне возможно сопоставлять и строчки и объекты и т.д.

Логические операции

С операндами закономерного вида вполне возможно создавать закономерные операции, это потребуется когда нужно выяснить трудоемкое условие. К примеру, в случае если мы желаем выяснить, попадает ли переменная x в спектр от 10 до 100, тогда это значит, что обязаны одновременно выполниться 2 условия: x больше 10 и x меньше 100. Записать итог в переменную вполне возможно так:

bool b = (x > 10) && (x < 100);

Слева от символа «=» пребывает булева переменная, а справа от символа «=» логическое (булево) выражение – это выражение, итог вычисления которого обеспечит значение вида bool.

Язык C# описывает последующие закономерные операции:


  • И – отдаёт правду, когда все операнды истинны, в прочих случаях (когда даже 1 операнд ложен) вворачивается ложь;
  • ЛИБО – отдаёт правду, когда даже 1 операнд истинен, в других случаях (все операнды ложны) вворачивается ложь;
  • Исключающее ЛИБО – отдаёт правду, когда операнды имеют различные значение, и ересь когда все операнды одинаковы.
  • НЕ – унарная операция, отдаёт противоположное значение.

табл.2. Логические операции

Знак

Операция

Операнд 1

Операнд 2

Результат

&&

И

true

true

false

true

false

не проверяется

True

false

false

||

ИЛИ

true

false

false

не проверяется

true

false

true

true

false

^

Исключающее ИЛИ

true

true

false

false

true

false

true

false

false

true

true

false

!

НЕ

true

false

false

true

Ценности всех закономерных операций ниже приоритета операций сопоставления. Операция && величается conditional-AND (условное И), || – conditional-OR (условное ИЛИ). Данные операции несколько уменьшают вычисления – в каких-либо случаях 2-ой операнд не рассчитывается. К примеру, оператор &&: когда в цепочке выражения встретился операнд со значением false – вычисление выражения прекращается, т.к. уже светло, что его значение будет false. Для оператора || наоборот: как встретилось true – выражение вычислено и итог true.

При вычислении ценности этого выражения предварительно рассчитывается операнд «x != 0». Когда переменная x равна нулю, тогда значение этого операнда – false и операнд «y/x > 1» уже не рассчитывается. Это чрезвычайно как следует, потому что при попытке его определить вышло бы прерывание программы вследствие деления на ноль.

2.5. Переменные-массивы

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

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


Ниже приведены примеры объявления переменных массива, что не творят массив:

int[] ai; // массив вида int

short[][] as; // массив из массивов вида short

Object [] ao, // массив вида Object

otherAo; // массив вида Object

shorts, // скаляр short

aas[][]; // массив из массивов вида short

Ниже приведены какие-либо примеры объявления переменных массива, что делают массив объектов:

Exception ae[] = new Exception[3];

Object aao[][] = new Exception[2][3];

int[] factorial = { 1, 1, 2, 6, 24, 120, 720, 5040 };

char ac[] = { 'n', 'o', 't', ' ', 'a', ' ',

'S', 't', 'r', 'i', 'n', 'g' };

String[] aas = { "array", "of", "String", };

Скобки имеют все шансы появляться, являясь частью вида сначала описаний, или же являясь частью описания для точной переменной, либо в обоих случаях сходу, как в данном примере:

byte[] rowvector, colvector, matrix[];

Это объявление эквивалентно следующему:

byte rowvector[], colvector[], matrix[][];

Как лишь объект массива сотворен, его длина ни разу не меняется. Чтоб сделать переменную-массив, ссылающуюся на массив другой длины, необходима гиперссылка на разные массивы, которая обязана быть присвоена переменной.

В случае если переменная-массив v имеет вид A[], где A - ссылочный вид, v может содержать гиперссылку на экземпляр всякого вида массив B [], если соблюдать условие что B, быть может, присвоен A. Это может происходить вследствие времени исполнения на позднем присваивании; для обсуждения.

2.6. Текстовые строки

Каждый знак представлен в шифровке UNICODE, допускающей представление 1-го знака в 2 б памяти. Работа с текстовыми строчками традиционно представляет решение последующих задач: совместить 2 (или более) строчки в 1, вырезать из строчки часть, отыскать в строке заданную подстроку и т.п.

Для текстовых строк отнесены операции конкатенации (объединение) строк. Данная операция быть может, сделана при помощи оператора «+» либо способа String.Сoncat, сопоставление строк: операторы равенства == и !=. Оператор [] работает для доступа (только для чтения) к отдельным знакам объекта string. К примеру, сообщество строк:

string str1="Катя";

string str2="Иванова";

string res = str1+ " "+ str2;

Console.WriteLine(res);

Строчка res будет следующей: ”Катя Иванова”.

Данный же итог вполне возможно получить при помощи способа Concat:

string res1 = String.Concat(str1, " ",str2);

В перечне аргументов способа Concat, быть может, максимум 4 членов. В приведенном выше случае их три.

Текстовые строчки имеют однообразие с массивами в том толке, что доступ к отдельным знакам осуществляется по индексу (номеру позиции, нумерация наступает с нуля). Переход к грядущему знаку с легкостью осуществляется переменой номера позиции на 1. Но надлежит иметь в виду, что изменение единожды сделанной строчки не допускается. Чтоб внести требуемые конфигурации, необходимо сделать новейшую строчку (см. образчик 6.1) либо применять подходящий метод.


Для работы со строчками отнесены способы класса String.

1. Способ Substring(n, m) – извлечение подстроки длиной m, начиная с n-го знака. В случае если m не предписано, тогда выводится весь «хвост» строчки, начиная с n-го знака. К примеру, использование способа Substring для строчки res:

string str1 = "Катя";

string str2 = "Иванова";

string res = str1 + " " + str2;

Console.WriteLine(res);

string res2 = res.Substring(5, 7);

Console.WriteLine(res2);

2. Способ Insert(n, st) – вставка подстроки st в начальную строчку, начиная с n-ой позиции. В этом случае нужно будет сделать новейшую переменную, в какой сначала будет автоматом продублирована начальная строчка, а потом сделана важная операция. (Заметим, что в C# ровная модификация существующей строчки невозможна.) Например,

string res3 = "Катя";

string res4 = res3.Insert(4, " Иванова");

Console.WriteLine(res4);

В итоге в res4 будет ”Катя Иванова”.

3. Способ Replace(st, st1) – смена подстроки st новой подстрокой st1 либо смена какого-нибудь знака во всем тексте на другой знак. Например,

string str = "Катя Иванова";

string str1 = str.Replace("Катя","Екатерина");

В эффекте будет str1 = "Екатерина Иванова".

4. Способ Remove(n, m) – удаление из строчки фрагмента данной длины m, начинающегося с данной позиции n. Например,

string res = "Катя Иванова – моя подруга";

string res1 = res.Remove(4, 8);

Console.WriteLine(res1);

Удаляются 8 знаков, начиная с 4-го (пробел после слова ”Катя”). В эффекте будет res1 = ”Катя – моя подруга”.

5. Способ ToString() – получение строкового представления объекта числового вида. Внутри скобок может ничего не присутствовать.

Например,

double a = 5.0;

string s = a.ToString("f3");

Console.WriteLine(s);

Console.WriteKey();

6. Способ Split (приминается к экземпляру класса String, как и описанные выше методы) воплотит в жизнь разбор строчки, т.е. дает возможность выделить отдельные слова либо иные сочетания знаков, разделенные некоторыми разделителями, перечисляемыми в массиве знаков вида char[], являющемся аргументом способа Split. Например,

string str = "собака, кот играют вместе";

string[] strarr = str.Split(new Char[] {' ',','});

foreach(string res in strarr)

{Console.WriteLine(res);}

Console.ReadKey();

Тут складывается массив strarr из словечек начального слова, отгороженных друг от друга пробелом или же запятой. Перечень символов-разделителей помещается в массив и передается способу Split в качестве аргумента.

При выводе после первого слова выведена пустующая строчка, т.к. после первого разделителя сходу надлежит 2-ой, и меж ними ничего нет (пусто).


Каждый отдельный знак строчки считается значением вида char, и быть может, выделен в переменную вида char. К примеру, при исполнении оператора

char s = str[5];

для str из предшествующего примера s получит значение a.

Для работы с отдельными знаками строчки применяют способы текстуры Char. К примеру, статический способ Char.IsDigit(s), где s – переменная вида char (отдельный знак строки). Данный способ отдаёт значение true, если s – цифра и false, а когда s – не цифра.

Прим. 6.1. В начальном тексте одно слово от иного отделено одним пробелом. Сформировать текст, в каком одно слово от иного отделяется 2 пробелами:

using System;

class Program

{static void Main()

{string str1 =

"Введите верхний треугольник "

+ "матрицы по строкам";

string str2 = "";

for (int i = 0; i < str1.Length; i++)

{if (str1[i] == ' ')

{str2 = str2 + str1[i];}

str2 = str2 + str1[i];}

Console.WriteLine(str1);

Console.WriteLine(str2);}

}

Прим. 6.2. Найти слова, которые начинаются и заканчиваются на ту же букву:

using System;

class Program

{static void Main()

{string str1 = "текст верхний треугольник"

+ "текст треугольник ";

Console. Write Line(str1);

Console.WriteLine();

int i = 0, j = 0;

while (i < str1.Length)

{if (str1[i] == ' ')

{if (str1[i - 1] == str1[j])

{Console.WriteLine(

str1.Substring(j, i - j));}

j = i + 1; i++;}

else

{i++;}

}

}

}

Прим. 6.3. Подсчитать, какое количество словечек в тексте наступает на букву т. Слова в тексте разделены пробелами:

using System;

class Program

{static void Main()

{string str1 = "текст верхний треугольник"

+ "теекст треугольник верхний";

Console.WriteLine(str1);

Console.WriteLine();

string[] masstr = str1.Split(' ');

int k = 0;

for (int i = 0; i < masstr.Length; i++)

{if (masstr[i][0] == 'т') k++;}

Console.WriteLine(k);

Console.ReadKey();

}

}

Прим. 6.4. Найти, какое количество в установленном тексте в отдельности цифр (Digit), букв (Letter), заглавных букв (Upper) и разделителей (Separator):

using System;

class Program

{

static void Main()

{

string str = "g E r t R 1 2 d K";

Console.WriteLine(str);

Console.WriteLine();

int k = 0, l = 0, m = 0, j = 0;

for (int i = 0; i < str.Length; i++)

{if (Char.IsDigit(str[i])) k++;

if (Char.IsLetter(str[i])) l++;

if (Char.IsUpper(str[i])) m++;

if (Char.IsSeparator (str[i])) j++;}

Console.WriteLine(

"цифры {0} буквы {1} заглавные буквы "

+"{2} разделитель {3}", k, l, m, j);

}

}

Глава 3. Создание массива