Программирование >>  Обработка исключительных ситуаций 

1 ... 18 19 20 [ 21 ] 22 23 24 ... 142


з формулы видно, что исходными данными для программы являются две вели-1ны - х и а. Поскольку их тип и точность представления в условии не оговоре->i, выберем для них тин double. Программа приведена в листинге 3.14.

1стинг 3.14. Программа расчета по заданной формуле ing System:

mespace ConsoleApplicationl class Classl { static void Main() (

string buf:

Console.WriteLineC Введите x ):

buf = Console.ReadLineO:

double x = Convert.ToDouble( buf ):

Console.WriteLineC Введите aifa ); buf = Console.ReadLineO: double a = double.ParseC buf );

double у = Math.Sqrt( Math.PI * x ) -

Math.ExpC 0.2 * Math.Sqrt(a) ) +

2 * Math.TanC 2 * a ) +

1.6e3 * Math.Log]0i Math.PowCx. 2) );

Console.WriteLineC Для x {0} и a!fa - {!) , x. a }; Console.WriteLineC Результат = + у );

1так, к настоящему моменту у вас накопилось достаточно сведений, чтобы писать :а С# простейшие линейные программы, выполняющие вычисления по форму-ам. В следующей главе мы займемся изучением операторов, позволяющих реа-.изовывать более сложные алгоритмы.

Рекомендации по программированию

1риступая к написанию программы, четко определите, что является ее исходными данными и что требуется получить в результате. Выбирайте тип переменных учетом диапазона и требуемой точности представления данных.

Давайте переменным имена, отражающие их назначение. Правильно выбранные шена могут сделать программу в некоторой степени самодокументированной. Неудачные имена, наоборот, служат источником проблем. В именах следует 1збегать сокращений. Они делают программу менее понятной, к тому же часто 1егко забыть, как именно было сокращено то или иное слово.



Общая тенденция такая: чем больше область действия переменной, тем более длинное у нее имя. Перед таким именем можно поставить префикс типа (однз или несколько букв, по которым можно определить тип переменной). Напротив для переменных, вся жизнь которых проходит на протяжении нескольких строк кода, лучше обойтись однобуквенными именами-типа i или к.

Имена переменных логического типа, используемые в качестве флагов, должны быть такими, чтобы по ним можно было судить о том, что означают значения true и false. Например, признак пусто лучше описать не как bool flag, а как bool empty.

ПРИМЕЧАНИЕ-

В С# принято называть классы, методы и константы в соответствии с нотацией Паскаля, а локальные переменные - в соответствии с нотацией Camel (см. раздел Идентификаторы , с. 24).

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

Избегайте использования в программе чисел в явном виде. Константы должны иметь осмысленные имена, заданные с помощью ключевого слова const. Символическое имя делает программу более понятной, а кроме того, при необходимости изменить значение константы потребуется изменить программу только в одном месте. Конечно, этот совет не относится к константам 0 и 1.

Ввод с клавиатуры предваряйте приглашением, а выводимые значения - пояснениями. Для контроля сразу же после ввода выводите исходные данные на дисплей (по крайней мере, в процессе отладки).

До запуска программы подготовьте тестовые примеры, содержащие исходные данные и ожидаемые результаты. Отдельно проверьте реакцию программы на неверные исходные данные.

При записи выражений обращайте внимание на приоритет операций. Если в одном выражении соседствует несколько операций одинакового приоритета, операции присваивания и условная операция выполняются справа налево, остальные - слева направо. Для изменения порядка выполнения операций используйте круглые скобки.

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



Глава 4 Операторы

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

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

Структурный подход, сформировавшийся в 60-70-х годах прошлого столетия, позволил довольно успешно создавать достаточно крупные проекты, но сложность программного обеспечения продолжала возрастать, и требовались все более развитые средства ее преодоления. Идеи структурного программирования получили свое дальнейшее развитие в объектно-ориентированном программировании - технологии, позволяющей достичь простоты структуры и управляемости очень больших программных систем.

Несмотря на то что язык С# реализует объектно-ориентированную парадигму, принципы структурного программирования лежат в основе кодирования каждого метода, каждого фрагмента алгоритма.

Не существует единственного самого лучшего способа создания программ. Для решения задач разного рода и уровня сложности требуется применять разные технологии программирования. В простейших случаях достаточно освоить азы структурного написания программ. Для создания же сложных проектов требуется не только свободно владеть языком в полном объеме, но и иметь представление о принципах проектирования и отладки программ, возможностях библиотеки и т. д. Как правило, чем сложнее задача, тем больше времени требуется на освоение инструментов, необходимых для ее решения.



1 ... 18 19 20 [ 21 ] 22 23 24 ... 142

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика