
- •Содержание
- •Глава 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. Основные принципы разработки алгоритмов и программ
1.1 Этапы решения задач на эвм
Процесс подготовки и решения задачи на ЭВМ остается пока достаточно сложным и трудоемким, требующим выполнения ряда этапов. Такими этапами являются:
1-й этап постановка задачи;
2-й этап формализация или математическая постановка задачи;
3-й этап выбор или разработка метода решения задачи;
4-й этап разработка алгоритма или алгоритмизация;
5-й этап составление программы или этап непосредственного
программирования;
6-й этап отладка программы;
7-й этап вычисление и обработка результатов.
Последовательность выполнения всех этих этапов составляет полный цикл разработки, отладки и счета по программе. Приведенное разделение является условным. Это наиболее важные этапы, которые при необходимости могут быть дополнены и расширены такими операциями, как:
-
выбор алгоритмического языка;
-
описание структуры данных;
-
оптимизация программы;
-
разработка документации;
-
тестирование;
-
и т.д.
Рассмотрим подробнее каждый из вышеперечисленных этапов.
1.1.1 Постановка задачи
При постановке задачи первостепенное значение имеет выработка общего подхода к исследуемой проблеме и выяснение конечной цели, которая должна быть достигнута в ходе ее решения. В данный момент необходимо изучить общие свойства рассматриваемого явления, выяснить, существует ли вообще решение данной проблемы, существует ли единственное решение или нет. Параллельно нужно рассмотреть свойства и возможности конкретной ЭВМ: способна ли она решить эту задачу, принимая при этом во внимание технические ресурсы компьютера, а также свойства системы (систем) программирования, имеющейся в распоряжении разработчика.
Иными словами, на первом этапе следует добиться глубокого понимания поставленной задачи. Задача описывается на уровне профессиональных понятий в той предметной области, для которой она выполняется.
1.1.2 Формализация или математическая постановка задачи
На этом этапе строится математическая модель рассматриваемого объекта, процесса или явления. В результате анализа существа задачи определяются объем и специфика исходных данных, вводится система условных обозначений, устанавливается принадлежность задачи к какому-то классу и выбирается соответствующий математический аппарат.
Следует, однако, помнить, что полная постановка многих задач из-за многогранности и многосвязности процессов мира нереальна с точки зрения использования средств вычислительной техники. Прежде всего, следует принимать во внимание необходимость упрощения вычислительного процесса, связанную с выбором вычислительного метода и имеющихся в распоряжении программиста вычислительных средств. Поэтому часто, чтобы решить определенную задачу, если это не наносит вред общей ее концепции, программист вводит ограничения, упрощая часть связей в данной предметной области или пренебрегая некоторыми из них.
1.1.3 Выбор или разработка метода решения
Здесь предполагается выбор математических формул, определение правил, по которым осуществляется связь между этими формулами, установление последовательности перехода между этими формулами так, чтобы этот переход могла осуществить машина. Чаще всего во многих случаях на помощь нам приходят численные методы решения задач.
Выбирая подходящий к данной задаче метод, надо учитывать сложность формул и соотношений, используемых тем или иным численным методом. Подчас задача налагает жесткие требования и на величину погрешностей вычислений метода, и программист должен оценивать их и сопоставлять с допустимым уровнем погрешностей. Нередко на выбор оказывают влияние и другие характеристики методов.