1. Алгоритм. Основные свойства алгоритма. Линейные и ветвящиеся алгоритмы. Итерационные алгоритмы


Download 27.19 Kb.
bet8/11
Sana08.04.2023
Hajmi27.19 Kb.
#1341397
1   2   3   4   5   6   7   8   9   10   11
Bog'liq
oroliq1

Логические операции:
Бинарные операции
&& и (AND),
|| или (OR),
Унарная операция
! не (NOT).
Операнды – логического типа; принимают значения:
истинно ("true") или ложно ("false").
Форматирование строк
При выводе строк в консоли с помощью метода Console.WriteLine для встраивания значений в строку мы можем применять форматирование вместо конкатенации:
string name = "Tom";
int age = 23;
Console.WriteLine("Имя: {0} Возраст: {1}", name, age);
// консольный вывод
// Имя: Tom Возраст: 23
В строке "Имя: {0} Возраст: {1}" на место {0} и {1} затем будут вставляться в порядке следования значения переменныйх name и age То же самое форматирование в строке мы можем сделать не только в методе Console.WriteLine, но и в любом месте программы с помощью метода string.Format:
string name = "Tom";
int age = 23;
string output = string.Format("Имя: {0} Возраст: {1}", name, age);
Console.WriteLine(output);
Метод Format принимает строку с плейсхолдерами типа {0}, {1} и т.д., а также набор аргументов, которые вставляются на место данных плейсхолдеров. В итоге генерируется новая строка.
5. Генеалогия данного вида. Правила преобразования типа в другой тип. Раскрытие и раскрытие.
Язык C++ был разработан в 1979 году Бьярне Страуструпом (Bjarne Stroustrup), ра-бртавшим в компании Bell Laboratories, базировавшейся в Мюррей-Хилл, шт. Нью-Джерси. Первоначально новый язык назывался "С с классами", но в 1983 году он был переименован в C++. Язык С полностью входит в состав C++, а следовательно, С служит основанием, на котором зиждется C++. Большая часть дополнений, введенных Страуструпом, обеспечивала плавный переход к ООП. И вместо того чтобы изучать совершенно новый язык, программирующему на С требовалось лишь освоить ряд новых свойств, чтобы воспользоваться преимуществами методики ООП. В течение 1980-х годов C++ все еще оставался в тени, интенсивно развиваясь, но к началу 1990-х годов, когда он уже был готов для широкого применения, его популярность в области программирования заметно возросла. К концу 1990-х годов он стал наиболее широко распространенным языком программирования и в настоящее время по-прежнему обладает неоспоримыми преимуществами языка разработки высокопроизводительных программ системного уровня. Важно понимать, что разработка C++ не была попыткой создать совершенно новый язык программирования. Напротив, это была попытка усовершенствовать уже существовавший довольно удачный язык. Такой подход к разработке языков программирования, основанный на уже существующем языке и совершенствующий его далее, превратился в упрочившуюся тенденцию, которая продолжается до сих пор. Наследование (inheritance) является одним из ключевых моментов ООП. Благодаря наследованию один класс может унаследовать функциональность другого класса. Пусть у нас есть следующий класс Person, который описывает отдельного человека: Но вдруг нам потребовался класс, описывающий сотрудника предприятия - класс Employee. Поскольку этот класс будет реализовывать тот же функционал, что и класс Person, так как сотрудник - это также и человек, то было бы рационально сделать класс Employee производным (или наследником, или подклассом) от класса Person, который, в свою очередь, называется базовым классом или родителем (или суперклассом):
class Employee : Person
{
}
После двоеточия мы указываем базовый класс для данного класса. Для класса Employee базовым является Person, и поэтому класс Employee наследует все те же свойства, методы, поля, которые есть в классе Person. Единственное, что не передается при наследовании, это конструкторы базового класса с параметрами. Таким образом, наследование реализует отношение is-a (является), объект класса Employee также является объектом класса Person:
в арифметических операциях участвуют значения разных типов, то компилятор неявно пытается привести их к одному типу. Кроме того, когда мы присваиваем переменной какое-либо значение, это значение всегда приводится к типу переменной. Например:
char c = 6;
int d = c;
Переменной d, которая представляет тип int, присваивается значение типа char, поэтому компилятор выполняет приведение значения от типа char к типу int. В то же время не всегда преобразования могут быть безопасными, поскольку разные типы имеют разное внутреннее представление. И просто так перейти от одного представления к другому без потери точности данных не всегда возможно. Рассмотрим, какие преобразования применяет компилятор при арифметических операциях:
Если один из операндов имеет тип long double, то второй операнд тоже будет преобразован в тип long double
Если предыдущий пункт не выполняется и если один из операндов имеет тип double, то второй операнд тоже будет преобразован к типу double
Если предыдущий пункт не выполняется и если один из операндов имеет тип float, то второй операнд тоже будет преобразован к типу float
Если предыдущий пункт не выполняется и если один из операндов имеет тип unsigned long int, то второй операнд тоже будет преобразован к типу unsigned long int
Если предыдущий пункт не выполняется и если один из операндов имеет тип long, то второй операнд тоже будет преобразован к типу long
Если предыдущий пункт не выполняется и если один из операндов имеет тип unsigned, то второй операнд тоже будет преобразован к типу unsigned
Если предыдущий пункт не выполняется то оба операнда приводятся к типу int
Например
int a = 10;
double b = 4;
double c = a + b; // 14.000000
В выражении a + b число b представляет тип double, поэтому число a будет автоматически приводиться к числу double. И результат операции сложения также будет представлять тип double.

Download 27.19 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10   11




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling