- •Содержание
- •Глава 1. Основные принципы разработки алгоритмов и программ 8
- •Глава 2. Знакомство с технологией .Nет 30
- •Глава 3. Установка visual studio. Консольные приложения 42
- •Глава 4. Введение в язык c# 52
- •Глава 5. Операции и выражения. Программы линейной структуры 67
- •Глава 6. Программирование ветвящихся процессов 85
- •Глава 7. Программирование циклических процессов 92
- •Предисловие
- •Введение
- •Глава 1. Основные принципы разработки алгоритмов и программ
- •1.1 Этапы решения задач на эвм
- •1.1.1 Постановка задачи
- •1.1.2 Формализация или математическая постановка задачи
- •1.1.3 Выбор или разработка метода решения
- •1.1.4 Разработка алгоритма
- •1.1.5 Программирование
- •1.1.6 Отладка
- •1.1.7 Вычисление и обработка результатов
- •1.2 Формы записи алгоритмов
- •1.2.1 Словесное описание
- •1.2.2 Запись алгоритма с помощью схем
- •1.2.3 Псевдокоды
- •1.2.4 Способ записи на языке программирования
- •1.3 Свойства, которыми должны обладать алгоритмы
- •1.4 Характеристики качества программного продукта
- •1.5 Технология программирования хороших программ
- •1.5.1 Способы проектирования алгоритмов и программ
- •1.5.2 Основные идеи структурного программирования
- •При разработке алгоритма нужно руководствоваться следующими рекомендациями:
- •1.5.3 Дополнительные рекомендации
- •1.6 Контрольные вопросы
- •Глава 2. Знакомство с технологией .Nет
- •2. 1 Причины появления новой платформы и нового языка
- •2.2 Платформа .Nет Framework
- •2.3 Интегрированная среда разработки Visual Studio
- •2.3.1Общеязыковая среда выполнения clr
- •2.3.2 Новации Visual Studio 2010
- •2.4 Основные понятия объектно-ориентированной технологии
- •2.4.1 Инкапсуляция
- •2.4.2 Полиморфизм
- •2.4.3 Наследование
- •2.4.4 Классы
- •Контрольные вопросы
- •Глава 3. Установка visual studio. Консольные приложения
- •3.1 Установка Visual Studio
- •3.2 Разработка приложений
- •3.2.1 Консольные приложения
- •3.2.1.1 Создание проекта. Основные окна среды
- •Контрольные вопросы
- •Глава 4. Введение в язык c#
- •4.1 Историческая справка
- •4.2 Основы языка с#
- •4.2.1 Алфавит языка
- •4.2.2 Лексемы языка, директивы препроцессора и комментарии
- •4.3 Типы данных
- •4.3.1 Классификация типов данных
- •4.3.2 Встроенные типы данных
- •4.3.2.1 Целые типы
- •4.3.2.2 Вещественные типы
- •4.3.2.3 Логический тип
- •4.3.2.4 Символьный тип
- •4.3.2.5 Финансовый тип
- •4.3.3 Литералы
- •4.4 Переменные
- •4.4.1 Объявления переменных
- •4.4.2 Инициализация переменных
- •4.4.3 Область видимости переменных
- •4.5 Именованные константы
- •Контрольные вопросы
- •Глава 5. Операции и выражения. Программы линейной структуры
- •5.1 Выражения
- •5.1.1 Операции
- •5.1.1.1 Арифметические операции
- •5.1.1.2 Операции отношения, сдвига с#
- •5.1.1.3 Поразрядные и логические операции с#
- •5.1.1.4 Операции присваивания
- •5.1.1.5 Условная операция
- •5.2 Преобразование и приведение типов
- •5.2.1 Присвоение переменной одного типа значения другого типа
- •5.2.2 Явное преобразование типа
- •5.2.3 Преобразование типов в выражениях
- •5.3 Класс Math
- •Математические функции можно использовать только с величинами числовых типов. Углы тригонометрических функций должны быть представлены в радианах.
- •5.4 Линейные алгоритмы и программы
- •5.4.1 Простейшие способы вывода
- •5.4.2 Простейшие способы ввода с клавиатуры
- •5.5 Примеры
- •Контрольные вопросы
- •Варианты заданий для самостоятельной работы
- •Глава 6. Программирование ветвящихся процессов
- •6.1 Условные операторы
- •6.2 Алгоритмы и программы разветвленной структуры
- •Контрольные вопросы
- •Варианты заданий для самостоятельной работы
- •Глава 7. Программирование циклических процессов
- •7.1 Понятие цикла
- •7.2 Операторы управления
- •7.2.1 Оператор goto
- •7.2.2 Специальные операторы управления
- •7.2.3 Операторы циклов
- •7.3 Программирование вычислительных процессов усложненной структуры
- •7.3.1 Итерационные циклы
- •7.3.2 Вложенные циклы
- •Контрольные вопросы
- •Варианты заданий для самостоятельной работы
1.4 Характеристики качества программного продукта
Для того чтобы программный продукт мог успешно выдерживать конкуренцию, он должен иметь определенные качественные характеристики. Ниже перечислены главные из них.
Правильность программы. Программа должна работать и решать поставленную перед ней задачу. Тестирование может доказать только наличие ошибок в программе, но не правильность ее работы. В современных системах предусматривается встроенный интегрированный отладчик, который оценивает результаты контрольных точек, быстро и эффективно находит ошибки в программе, позволяет исправлять их и тестировать различные фрагменты.
Понятность программы. Сложные программные комплексы создаются для их многократного использования различными пользователями. В этих условиях на первый план выдвигаются следующие характеристики:
-
читабельность;
-
понятность;
-
хорошая документированность;
-
удобство сопровождения.
Этого можно добиться, если программа легко читается сверху вниз, т. е. имеет последовательную структуру, имеет хорошие комментарии, облегчающие ее понимание. При написании программы следует избегать использования нестандартных возможностей языков программирования.
Документируемость. Важной характеристикой является документируемость программы, которая связана с сопровождающей ее информацией. В ней указываются назначение программы, порядок ее использования, возможность адаптации к конкретным условиям. Структура программы должна быть понятна из текста, который должен быть ясным с тщательно подобранными именами, лаконичными информационными комментариями.
Разработка программ регламентируется Единой системой программной документации (ЕСПД). Введение стандартов в процесс создания программ упрощает процесс разработки, облегчает чтение и понимание их пользователями, упрощает пользование и эксплуатацию, улучшает испытуемость, мобильность, документируемость.
Стандартами определяются стадии и этапы разработки программ и программной документации. Так, например, ГОСТ устанавливает следующие стадии разработки программной документации: техническое задание, эскизный проект, рабочий проект, внедрение. Этими же документами определены работы, выполненные на каждой стадии.
Мобильность. Тесно связаны такие характеристики, как мобильность программы и удобство ее эксплуатации. Под мобильностью понимается свойство программы, позволяющее переносить ее из одной среды функционирования в другую с минимальными затратами. Мобильность программы достигается за счет использования языков программирования высокого уровня и мобильных операционных систем, а также ориентации на распространенные технические средства.
Гибкость программы или удобство эксплуатации означает, прежде всего, возможность дальнейшего улучшения программы без больших переделок, с тем, чтобы эксплуатация программы осуществлялась с минимальными затратами.
Эффективность программы зависит от ее назначения, конфигурации технических средств и системы программного обеспечения ЭВМ. С достаточной степенью приближения за эффективность можно принять характеристику программы, значение которой прямо пропорционально быстродействию и обратно пропорционально объему используемых ресурсов технических средств. Эти ресурсы включают в себя оперативную память, внешние запоминающие устройства, количество и типы внешних устройств и т. п. Однако стремление любой ценой сократить время вычислений, объем используемой памяти не оправдывает себя. Современная тенденция программирования состоит в том, чтобы после разработки программы с использованием специальных методик выявить узкие места и постараться их улучшить.
Модульность. Каждую программу желательно разбивать на модули. Установлено, что хорошо воспринимаются модули, содержащие 20-50 строк текста и не более 10 переменных. При разбиении на модули необходимо стремиться, чтобы модуль осуществлял законченное действие, хорошо просматривающееся. Такое разбиение на модули облегчает не только понимание программы, но и внесение исправлений в нее, так как каждый модуль может исправляться и отлаживаться отдельно.
Надежность программы заключается в том, что программа должна обеспечивать получение разумных результатов в случае возникновения непредвиденных ситуаций. От того, насколько хорошо защищена программа, зависит ее ценность.
Совместимость. Важной характеристикой является совместимость, под которой понимается пригодность программ к объединению для решения более сложных задач и создания пакетов прикладных программ (ППП).
Испытуемость. Характеристика, связанная с испытуемостью, предполагает наличие возможности достаточно просто оценивать правильность функционирования программы в условиях конкретной среды (технические и программные средства, реальные исходные данные).
Улучшение перечисленных характеристик сказывается на стоимости программы. В связи с этим должен достигаться компромисс между степенью улучшения интересующей нас характеристики и увеличением стоимости программы.
Чтобы удовлетворить большинству указанных требований, программист должен придерживаться строгой дисциплины программирования. Сегодня технология программирования опирается на структурный подход, который обеспечивает получение хороших программ.