- •Содержание
- •Глава 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.2.3 Псевдокоды
Способ записи алгоритмов на языке проектирования алгоритмов (псевдокодов) выполняется в виде алгоритмической записи на русском языке. Этот способ предоставляет возможность описывать сложные и не совсем определенные действия, в нем отсутствуют ограничения со стороны формальных правил, он хорошо согласуется с методом пошаговой детализации при разработке алгоритма. Отсутствие строгих синтаксических правил для записи команд облегчает запись алгоритма на стадии проектирования. В псевдокоде имеются некоторые конструкции, присущие формальным языкам, что облегчает переход к этим языкам.
1.2.4 Способ записи на языке программирования
Способ записи на языке программирования позволяет записать алгоритм, который может непосредственно обрабатываться ЭВМ. Каждый язык программирования имеет свой набор символов, правила написания языковых конструкций (синтаксис) и смысловые толкования этих конструкций (семантику). Алгоритм, написанный на языках программирования, является программой, состоящей из операторов. Оператор может описывать действия, задавать значения или их тип.
В настоящее время имеется большое число языков программирования, рассчитанных на разные классы решаемых задач. Они предоставляют различные степени детализации при записи алгоритма.
1.3 Свойства, которыми должны обладать алгоритмы
Ниже следует перечень свойств, которыми должны обладать алгоритмы и краткие пояснения к ним.
Массовость. Возможность применять один и тот же алгоритм для решения целого класса однотипных задач с различными исходными данными.
Понятность. Каждый алгоритм создается в расчете на некоторого исполнителя. Для того чтобы исполнитель мог выполнить алгоритм, необходимо, чтобы он его понимал и мог выполнить каждое его предписание.
Дискретность. Проявляется в самой структуре алгоритма, так как его реализация расчленяется на отдельные шаги, выполнение которых исполнителем не вызывает сомнений. Выполнение каждого очередного шага начинается после завершения предыдущего.
Конечность. Исполнение алгоритма заканчивается после выполнения конечного числа шагов.
Детерминированность. Путь решения задачи определен вполне однозначно, на любом шаге не допускаются никакие неоднозначности и недомолвки. Означает, что алгоритм рассчитан на механическое выполнение. Именно это свойство дает возможность поручить исполнение алгоритма автомату.
Результативность означает содержательную определенность результата на каждом шаге и в итоге применения всего алгоритма.
Условно все алгоритмы подразделяются по характеру выполняемых операций, используемой структуре управления ходом вычислительного процесса и др. По характеру выполняемых операций алгоритмы могут быть численными, логическими, численно-логическими (смешанными). По используемым структурам управления ходом вычислительного процесса алгоритмы подразделяются на алгоритмы линейной структуры, разветвляющейся структуры, циклической структуры, вложенной циклической и смешанной структуры.
Оценивая алгоритм по числу выполняемых действий, необходимых для получения результата, можно получить сведения о будущем процессе вычисления. Такая оценка алгоритма характеризует его временную сложность. Емкостная сложность алгоритма определяет объем памяти, требуемый для его реализации.
Одновременно с разработкой алгоритма должна быть определена структура исходной, промежуточной и выходной информации для данной задачи, что позволяет в дальнейшем выбрать язык программирования.