- •1.5. Технология создания программы в интегрированной среде
- •1.5.1. Порядок создания программы на языке c# в среде Microsoft Visual Studio
- •1.6. Справки по структуре и операторам c#-программы
- •1.7. Пример подготовки и выполнения программы
- •1.8. Ошибки компиляции
- •1.9. Варианты заданий
- •1.10. Содержание отчета
- •1.11. Контрольные вопросы
1.6. Справки по структуре и операторам c#-программы
При выполнении данной работы рекомендуется использовать программу со стандартной структурой:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//Блок основной программы
}
}
}
Алфавит языка — это тот набор символов (знаков), который допустим в данном языке. В алфавит языка C# входят:
прописные и строчные буквы (латинские и национальных шрифтов) и символ подчеркивания (_);
цифры;
специальные знаки: ' " , { } | [ ] ( ) + - / \ % ? ! . ; :
< = > & * ~ ^
неотображаемые символы («обобщенные пробельные символы»), они используются для отделения лексем друг от друга (это пробелы, табуляция, переход на новую строку).
Ключевые слова — это служебные слова, которые зарезервированы в языке, их можно использовать только по прямому назначению (например, for — это заголовок оператора цикла и ничего более), т. е. зарезервированные слова нельзя использовать в качестве имен переменных пользователя. Ключевые слова, определенные в стандарте языка C# версии 2.0, приведены в таблице ниже:
Таблица 1. Ключевые слова C#
Целые типы
Целые типы данных предназначены для хранения целых чисел. Все целые типы можно подразделить на знаковые и беззнаковые.
В таблице ниже приведены все знаковые целые типы и их основные характеристики:
А
в
этой
таблице
приведены
все
беззнаковые типы данных:
Вещественные типы
Для работы с действительными числами в языке C# имеется два вещественных типа: float (одинарная точность) и double (удвоенная точность). Приведем краткую характеристику этих типов:
Символьный тип
Для хранения отдельных символов используется тип char. Так как в языке C# для кодирования символов используется Unicode, то под каждый символ отводится 2 байта.
Логический (булевый) тип
Для работы с логическими величинами используется тип bool. Допустимы два значения: true (истина) и false (ложь). Пример объявления переменной логического типа:
Для данных логического типа допустимы операции проверки на равенство и неравенство.
Следует иметь ввиду, что для булевого типа в C# запрещены какие-либо преобразования в целые типы.
Прежде чем использовать в программе какую-то переменную, надо обязательно дать её описание, то есть сказать, какое имя имеет переменная и каков её тип. Вначале указывается тип переменной, а затем её имя. Например:
int i;
bool h;
double a, b, c;
Для вывода поясняющего текста (подсказок оператору ЭВМ) можно использовать операторы типа:
Console.Write("Введите значение переменной a:");
Console.WriteLine("Результат программы равен:");
Для ввода данных можно использовать операторы типа:
Console.ReadLine();
При вводе числа разделяются пробелом, символы вводятся без разделителя.
Для вывода результатов можно использовать операторы типа:
Console.Write("Результат программы равен значению переменной c=");
Console.WriteLine(c);
Console.WriteLine("Результат программы равен значению переменной c={0}", c);
Арифметические операции на языке C#:
Приоритет операций сложения и вычитания ниже, чем умножения, деления и вычисления остатка. Для изменения порядка вычисления используют круглые скобки, например для умножения на 2 суммы двух чисел A и B можно написать:
2*(A+B)
Далее. Как видно из полученных результатов, в C# один знак / означает две разные операции. Если один или оба операнда — вещественные, то выполняется обычное деление, если оба операнда — целые, то выполняется деление нацело и результат будет целого типа. Использование этой операции требует повышенной внимательности, например, если запрограммировать вычисление математического выражения
буквально, т.е. так:
1 / 3 * Math.Sin(2 * X);
то результат вне зависимости от значения X всегда будет равен нулю, так как выражение 1/3 означает деление нацело. Для решения проблемы достаточно один из операндов
сделать вещественным
1.0 / 3 * Math.Sin(2 * X);
Смена знака. Унарная операция «-» означает смену знака. Она имеет очень высокий приоритет — выше, чем, к примеру, у операции умножение. Поэтому в выражении
-A*B
вначале выполняется смена знака для A, а затем умножение -A на B.
Для парности имеется и операция унарный плюс, т.е. можно написать
+A
Более интересны, и главное, очень употребительны операции автоувеличения и автоуменьшения.
Операция автоувеличения (инкремент)
Записывается как два знака плюс (без пробелов между ними!), применяется для увеличения на единицу значения переменной, например:
A++
Исходное значение переменной A увеличивается на 1, и полученный результат сохраняется в переменной A. По полученному результату эта операция соответствует следующему выражению:
A=A+1
Важный момент: автоувеличение применимо именно для переменной, но не для константы или выражения.
Для операции инкремент допустимы две формы записи:
префиксная — например, ++A
постфиксная — например, A++.
При префиксной форме записи делается увеличение переменной на 1 и затем используется новое значение этой переменной.
В постфиксной форме записи также переменная увеличивается на 1, но в текущем выражении используется старое значение переменной.
Порядок выполнения действий определяется рангом (старшинством) операций или скобками по правилам алгебры.
Оператор присваивания выполняется следующим образом:
а) вычисляется значение выражения, записанного в правой части оператора;
б) полученное значение присваивается переменной, имя которой записано в левой части оператора;
<переменная> = <арифметическое_выражение> или <константа>;
например, Result = (A + B) / X;
B1 = true;
