C# Урок 2. Первая программа

311 прочитали

Процесс создания программы на языке C # в Microsoft Visual Studio рассмотрим на примере консольного приложения, позволяющего посчитать средний вес предмета, если известен общий вес и количество предметов (рис. 2.1).

Рис. 2.1 Окно консольного приложения Средний вес
Рис. 2.1 Окно консольного приложения Средний вес

Для того чтобы начать работу над новым консольным приложением на языке C# или, как принято говорить, над проектом, надо:

  • В меню Файл выбрать команду Создать проект.
  • В открывшемся окне Создание проекта раскрыть список Шаблоны / Visual C # и выбрать тип приложения — Консольное приложение Visual C # (рис. 2.2)
  • В поле Имя ввести название проекта и нажать кнопку OK .
Рис. 2.2 Начало работы над новой программой
Рис. 2.2 Начало работы над новой программой

В результате описанных описанных действий будет создан проект — совокупность файлов, необходимых для создания выполняемого (exe) файла программы. Проект создается в папке проектов Visual Studio (по умолчанию это С:\Users\ User \source\repos, где: User — имя пользователя в системе.

Окно Microsoft Visual Studio в начале работы над новым проектом создания консольного приложения приведено на рис. 2.3.

Рис. 2.3 Окно Visual Studio в начале работы над новым консольным приложением
Рис. 2.3 Окно Visual Studio в начале работы над новым консольным приложением

В заголовке окна Microsoft Visual Studio отображается имя проекта, над которым в данный момент идет работа. Центральную часть окна занимает окно редактора кода (текст программы программисты называют кодом), в котором находится сформированное средой разработки объявление класса Program. В заголовке окна редактора кода отображается имя файла (Program .cs ), в котором находится код.

using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main( string [ ] args)
{
}
}
}

Изначально класс Program содержит один единственный метод (функцию) Main . Именно этот метод автоматически вызывается (процесс запуска метода называется вызовом) при запуске программы. Поэтому, в простейшем случае, инструкции, реализующие алгоритм программы, надо поместить в метод Main, между фигурными скобками, следующими за закрывающей скобкой, ограничивающей список параметров метода Main .

Ниже приведено объявление класса Program приложения расчета среднего веса предмета (в дальнейшем, для краткости, вместо слов “объявление класса Program ”, будем говорить “программа”).

class Program
{
static void Main(string [] args)
{
double w; // вес предметов
int k ; // количество предметов

double m; // средний вес предмета

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;

Console.WriteLine("Средний вес: {0} кг", m) ;

Console.Write("Press any key ..." );
Console.ReadKey();

}
}

На примере программы Средний вес кратко рассмотрим некоторые инструкции языка C# .

Как было сказано, в простейшем случае, инструкции, реализующие алгоритм программы, находятся в методе Main . Инструкция

double w = 0.0;

это объявление переменной w . Слово double , стоящее перед именем переменной, показывает, что переменная w - вещественная.

В следующей строке аналогичным образом объявляется целая переменная k ( int – сокращение от integer , целое).

Далее следуют объявления вещественной переменной m и строковой переменной st . Начальным значением переменной st является “пустая” (не содержащая ни одного символа), строка, т.к. после символа “присвоить” указана строковая константа, в которой между двойными кавычками нет ни одного символа.

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

Первой выполняемой инструкцией программы является инструкция

Console.Write ("Общий вес (кг.) >" );

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

Далее следует инструкция

st = Console.ReadLine ();

Эта инструкция "читает" текст, который пользователь введет во время работы программы. В результате выполнения этой инструкции в переменную st записывается значение метода ReadLine - строка символов, которую пользователь набрал на клавиатуре. Надо понимать, что метод ReadLine возвращает именно строку символов , причем, даже в том случае, если строка будет состоять только из цифр.

Инструкция

w = System .Convert .ToDouble ( st );

присваивает значение переменной w , в качестве которого используется значение метода ToDouble, который преобразует значение строковой переменной st (в ней находится строка, введенная пользователем) в соответствующее вещественное число типа double. Обратите внимание, метод ToDouble вернет значение только в том случае, если строка st будет содержать правильное изображение вещественного числа. Правильной строкой для метода ToDouble является непустая строка, состоящая только из цифр (перед первой цифрой может находиться минус) и содержащая правильный десятичный разделитель – запятую (при стандартной для России настройке Windows ).

Инструкции

Console . Write ("Количество (шт.) >" );
st =
Console .ReadLine();
k = System.
Convert .ToInt32(st);

обеспечивают ввод значения переменной k . Так как переменная k целого типа, то для преобразования строки, введенной пользователем, в целое значение используется метод ToInt 32. Метод ToInt32 вернет значение только в том случае, если строка st будет содержать правильное изображение целого числа. Правильной строкой для метода ToInt 32 является непустая строка, состоящая только из цифр (перед первой цифрой может находиться минус).

Инструкция присваивания

m = w / k ;

вычисляет средний вес. Выполняется она так: значение переменной w делится на значение переменной k и полученный результат записывается в переменную m .

Инструкция

Console.WriteLine("Средний вес: {0} кг.\n", m) ;

выводит результат расчета. В скобках находиться строка форматирования и, после запятой переменная m. Строка форматирования задает текст, который появиться на экране. Обратите внимание на символы {0}. Вместо этих символов будет выведено значение переменной m.

Следует обратить внимание на последовательность \n внутри строки форматирования. Символ \ внутри строковой константы отмечает начало специальной последовательности символов. Последовательность \n трактуется как символ “новая строка”. Сами символы \n на экране не отображаются, но в результате их отправки в консоль курсор перемещается в начало следующей строки экрана.

Далее следуют инструкции

Console .Write("Press any key ..." );
Console.ReadKey();

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

Компиляция

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

Процесс создания выполняемого файла С# программы может быть представлен как последовательность этапов компиляции и компоновки (рис. 2.4 ).

Рис. 2.4 Процесс создания выполняемой программы
Рис. 2.4 Процесс создания выполняемой программы

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

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

Чтобы активизировать процесс создания выполняемого файла, надо в меню Сборка выбрать команду Собрать решение . Если в программе ошибок нет, то в окно Вывод будет выведено сообщение об успешном завершении процесса сборки (рис. 2.5).

Рис. 2.5 Пример сообщения об успешной компиляции
Рис. 2.5 Пример сообщения об успешной компиляции

Если в программе есть ошибки, то выводится сообщение об ошибках, предупреждения и информация о неудачном завершении процесса сборки (рис. 2.6).

Рис. 2.6 Пример сообщения об ошибках в программе
Рис. 2.6 Пример сообщения об ошибках в программе

Запуск программы

Если в программе нет ошибок, то ее можно запустить. Сделать это можно щелчком на кнопке Пуск (рис. 2.7).

Рис. 2.7 Кнопка запуска программы
Рис. 2.7 Кнопка запуска программы

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

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

Рис. 2.8 Окно программы Средний вес
Рис. 2.8 Окно программы Средний вес

Вопросы для самоконтроля

  1. Накую инструкцию следует использовать для вывода сообщения в окно консоли?
  2. Какую инструкцию следует использовать для ввода строки с консоли?
  3. Какой метод (функция) преобразует строку в вещественное значение?
  4. Какой метод (функция) преобразует строку в целое значение?
  5. Какой символ следует использовать при вводе с клавиатуры вещественного значения?

Задание

  1. По аналогии с программой Средний вес напишите программу пересчета веса из фунтов в граммы.
  2. По аналогии с программой Средний вес напишите программу вычисления объема цилиндра.

Следующий урок

Урок 3. Переменные и типы данных

Предыдущий урок

C# Урок 1. Введение в программирование
Программирование для всех12 ноября 2021

Литература