C# для начинающих
Шрифт:
В листинге 2 приведено объявление класса Program приложения расчета среднего веса предмета (в дальнейшем, для краткости, вместо слов “объявление класса Program”, будем говорить “программа”).
Листинг 2. Средний вес
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
double w = 0.0; // вес помидоров
int k = 0; //
double m = 0.0; // средний вес одного помидора
string st = "";
Console.Write("Общий вес (кг.) >");
st = Console.ReadLine;
w = System.Convert.ToDouble(st);
Console.Write("Количество (шт.) >");
st = Console.ReadLine;
k = System.Convert.ToInt32(st);
Console.WriteLine;
m = w / k;
String res = "Общий вес: " + w.ToString + " кг. \n" +
"Количество: " + k.ToString + " шт.\n" +
"–\n" +
"Средний вес: " + m.ToString + " кг.\n\n";
Console.WriteLine(res);
Console.Write("Press any key to continue…");
int ch = Console.Read;
}
}
}
На примере программы Средний вес кратко рассмотрим некоторые инструкции языка C#.
Как было сказано, в простейшем случае, инструкции, реализующие алгоритм программы, находятся в методе Main. Инструкция
double w = 0.0;
это объявление переменной w. Слово double, стоящее перед именем переменной, показывает, что переменная w вещественная. После имени переменной стоит символ “присвоить” (в математике он называется “равно”) за которым следует вещественная константа 0.0 – ноль (черточка внутри овала позволяет различать букву О и цифру ноль). Это показывает, что переменной w присваивается начальное значение. Символ “точка с запятой” отмечает конец инструкции объявления переменной. Далее, одна за другой, следуют две наклонные черты, которые отмечают начало однострочного комментария, поясняющего, в рассматриваемом случае, назначение переменной w.
В следующей строке аналогичным образом объявляется целая переменная k (int – сокращение от integer, целое). Переменной k также присваивается начальное значение, которое задается целой константой.
Далее следуют объявления вещественной переменной m и строковой переменной st. Начальным значением переменной st является “пустая” (не содержащая ни одного символа), строка, т.к. после символа “присвоить” указана строковая константа, в которой между первой и второй двойными кавычками нет ни одного символа.
Следует обратить внимание, инструкции объявления переменных не являются выполняемыми, они только сообщают компилятору информацию о том, что идентификаторы, указанные в этих инструкциях являются именами переменных.
Первой выполняемой инструкцией программы является инструкция
Console.Write("Общий вес (кг.) >");
Не трудно догадаться, что она выводит на консоль, т.е. в окно, в котором работает программа, текст Общий вес (кг.) > и тем самым показывает пользователю, какую информацию он должен ввести.
Далее следует инструкция
st = Console.ReadLine;
В результате ее выполнения в переменную st записывается значение метода ReadLine –
строка символов, которую пользователь набрал на клавиатуре. Надо понимать, что метод ReadLine возвращает именно строку символов, причем, даже в том случае, если строка будет содержать только цифры, все равно это строка, а не число.Следующая инструкция
w = System.Convert.ToDouble(st);
присваивает значение переменной w, в качестве которого используется значение метода ToDouble, который преобразует значение строковой переменной st (в ней находится строка, введенная пользователем) в соответствующее вещественное число типа double. Обратите внимание, метод ToDouble вернет значение только в том случае, если строка, указанная в качестве его параметра, содержит правильное изображение вещественного числа. Правильной строкой для метода ToDouble является непустая строка, состоящая только из цифр (перед первой цифрой может находиться минус) и содержащая правильный десятичный разделитель – запятую (при стандартной для России настройке Windows).
Следующие три инструкции
Console.Write("Количество (шт.) >");
st = Console.ReadLine;
k = System.Convert.ToInt32(st);
обеспечивают ввод значения переменной k. Так как переменная k целого типа, то для преобразования строки, введенной пользователем, в целое значение используется метод ToInt32. Метод ToInt32 вернет значение только в том случае, если строка, указанная в качестве его параметра, содержит правильное изображение целого числа. Правильной строкой для метода ToInt32 является непустая строка, состоящая только из цифр (перед первой цифрой может находиться минус).
Инструкция присваивания
m = w / k;
вычисляет средний вес. Выполняется она так: значение переменной w делится на значение переменной k и полученный результат записывается в переменную m.
Следующая инструкция
String res = "Общий вес: " + w.ToString + " кг. \n" +
"Количество: " + k.ToString + " шт.\n" +
"–\n" +
"Средний вес: " + m.ToString + " кг.\n\n";
формирует строку res, записывает в нее исходные данные и результат расчета. Строка res формируется путем конкатенации (объединения) строковых констант и преобразованных в строки значений численных переменных. Преобразование числа (значения числовой переменной) в строку выполняет метод ToString.
Следует обратить внимание на последовательности \n внутри строковых констант. Символ \ внутри строковой константы отмечает начало специальной последовательности символов. Последовательность \n трактуется как символ “новая строка”. Сами символы \n на экране не отображаются, но в результате их отправки в консоль курсор перемещается в начало следующей строки экрана.
Команда
Console.WriteLine(res);
выводит в окно консоли значение переменной res – исходные данные и результат расчета.
Далее следуют инструкции
Console.Write("Press any key to continue…");
int ch = Console.Read;
Они добавлены в конец для того, чтобы пользователь смог увидеть результат работы программы. Метод Read обеспечивает чтение символа с консоли, он ожидает нажатия клавиши и, после того как клавиша будет нажата, возвращает ее код. Таким образом обеспечивается приостановка выполнения программы до момента нажатия клавиши. Если рассматриваемых инструкций в конце программы не будет, то окно консоли закроется сразу после выполнения инструкции вывода результата и пользователь не сможет увидеть результат.