Всем привет!
Наконец-таки, записал пятую лекцию Visual C# for beginners. В этой лекции я вам расскажу о преобразовании типов переменных. Затем вы узнаете про перечисления, структуры и массивы. Конечно, еще хотесь бы извиниться за столько долгое отсутствие лекций. Связано это с тем, что я организовывал и проводил дни технологий Microsoft TechDays у себя в ВУЗе, и совсем не было времени на работу в этом направлении. Также, эта лекция, скорее всего, последняя в этом году! Я получил много решенных работ, за что очень благодарен всем, кто присылал и пытался решить. Правильные ответы, кто не смог прислать мне на почту, находятся в посте ниже. Так же исходный код, который использовался при записи лекции можно найти под видео.
Ссылки на предыдущие лекции
Лекция 1. Введение
Лекция 2. Hello, World! и знакомство с Visual C# Express 2010
Лекция 3. Переменные и выражения
Лекция 4. Условия и циклы
Ответы на предыдущее домашнее задание:
1. При наличии двух целых чисел, хранящихся в переменных var1 и var2, какую булевскую проверку нужно выполнить для выяснения того, является ли то или другое (но не оба вместе) больше 10?
(var1 > 10) ^ (var2 > 10)
2. Напишите приложение, которое получает два числа от пользователя и отображает их на экране, но отклоняет варианты, когда оба числа больше 10, и предлагает в таком случае ввести два других числа.
static void Main(string[] args)
{
double var1, var2;
Console.Write("First: "); Double.TryParse(Console.ReadLine(), out var1);
Console.Write("Second: "); Double.TryParse(Console.ReadLine(), out var2);
while (var1 > 10 && var2 > 10)
{
Console.WriteLine("More than 10. Again.");
Console.Write("First: "); Double.TryParse(Console.ReadLine(), out var1);
Console.Write("Second: "); Double.TryParse(Console.ReadLine(), out var2);
}
Console.WriteLine("First: {0}, second: {1}. Congrats!", var1, var2);
Console.ReadKey();
}
* This source code was highlighted with Source Code Highlighter.
3. Что неверно в следующем коде (постарайтесь решить это задание, не используя Visual Studio)?
Вместо «if ((i % 2) = 0)» должно быть «if ((i % 2) == 0)»
Приятного просмотра!
Исходники из лекций
Лабораторная работа №1. Преобразование типов.
static void Main(string[] args)
{
short shortResult, shortVal = 4;
int integerVal = 67;
long longResult;
float floatVal = 10.5f;
double doubleResult, doubleVal = 99.999;
string stringResult, stringVal = "17";
bool boolVal = true;
Console.WriteLine("Variable Conversion Examples\n");
doubleResult = floatVal*shortVal;
Console.WriteLine("Implicit, -> double: {0} * {1} -> {2}", floatVal, shortVal, doubleResult);
shortResult = (short) floatVal;
Console.WriteLine("Explicit, -> short: {0} -> {1}", floatVal, shortResult);
stringResult = Convert.ToString(boolVal) + Convert.ToString(doubleVal);
Console.WriteLine("Explicit, -> string: \"{0}\" + \"{1}\" -> {2}", boolVal, doubleVal, stringResult);
longResult = integerVal + Convert.ToInt64(stringVal);
Console.WriteLine("Mixed, -> long: {0} + {1} -> {2}", integerVal, stringVal, longResult);
Console.ReadKey();
}
* This source code was highlighted with Source Code Highlighter.
Лабораторная работа №2. Перечисления.
enum orientation : byte
{
north = 1,
south = 2,
east = 3,
west = 4
}
static void Main(string[] args)
{
byte directionByte;
string directionString;
orientation myDirection = orientation.north;
Console.WriteLine("myDirection = {0}", myDirection);
directionByte = (byte) myDirection;
directionString = Convert.ToString(myDirection);
Console.WriteLine("byte equivalent = {0}", directionByte);
Console.WriteLine("string equivalent = {0}", directionString);
Console.ReadKey();
}
* This source code was highlighted with Source Code Highlighter.
Лабораторная работа №3. Структуры.
enum orientation : byte
{
north = 1,
south = 2,
east = 3,
west = 4
}
struct route
{
public orientation direction;
public double distance;
}
static void Main(string[] args)
{
route myRoute;
int myDirection = -1;
double myDistance;
Console.WriteLine("1) North\n2) South\n3) East\n4) West");
do
{
Console.WriteLine("Select a direction:");
myDirection = Convert.ToInt32(Console.ReadLine());
} while ((myDirection < 1) || (myDirection > 4));
Console.WriteLine("Input a distance:");
myDistance = Convert.ToDouble(Console.ReadLine());
myRoute.direction = (orientation) myDirection;
myRoute.distance = myDistance;
Console.WriteLine("myRoute specifies a direction of {0} and a distance of {1}",
myRoute.direction, myRoute.distance);
Console.ReadKey();
}
* This source code was highlighted with Source Code Highlighter.
Лабораторная №4. Массивы.
static void Main(string[] args)
{
string[] friendNames = {"Robert", "Mike", "Jeremy"};
Console.WriteLine("Here are {0} of my friends:", friendNames.Length);
foreach (string friendName in friendNames)
{
Console.WriteLine(friendName);
}
Console.ReadKey();
}
* This source code was highlighted with Source Code Highlighter.
Новое домашнее задание
1. Какая из операций не может выполняться неявно:
а) int в short
б) short в int
в) bool в string
г) byte в float
2. Создайте на базе типа short код для перечисления color, содержащего 4 разных цвета. Может ли такое перечисление основываться на byte?
3. Будет ли компилироваться следующий код и почему?
string[] blab = new string[5]
string[5] = 5th string;
* This source code was highlighted with Source Code Highlighter.
P.S. С наступающим Новым Годом, друзья!
Также можно подписаться на мой канал Vimeo, чтобы первыми узнать о выходе нового видео.