- •Содержание
- •Глава 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.5.3 Дополнительные рекомендации
Разработка алгоритмов и программ выполняется на единой методологической основе, включающей в себя модульное представление, направление проектирования (нисходящее, восходящее, встречное) и структурное проектирование. При структурном проектировании важны и форма, и дисциплина. В разработке алгоритмов используются базовые структуры, которые отображаются в базовые структуры программирования. Процесс разработки носит итеративный характер, при котором после выполнения очередного шага осуществляется проверка и, если не выполняются какие-либо условия, производятся корректировка и возврат к предыдущему шагу.
Современная технология разработки алгоритмов и программ рекомендует производить их разбивку на отдельные модули.
1.6 Контрольные вопросы
-
Какие существуют особенности решения задач с использованием ЭВМ?
-
На какие этапы разбивается решение задач на ЭВМ?
-
Какими операциями могут быть дополнены этапы решения задач в случае необходимости?
-
Что такое алгоритм?
-
Какие формы записи алгоритмов существуют?
-
Какими свойствами должен обладать алгоритм?
-
Какие существуют средства графического изображения алгоритмов?
-
Какие правила должны выполняться при оформлении схем алгоритмов?
-
Какие виды соединителей Вам известны и для чего они применяются? Приведите пример схемы алгоритма.
-
Что включает в себя отладка программы?
-
Перечислите характеристики качества программного продукта?
-
Что понимается под правильностью, понятностью и гибкостью программного продукта?
-
Что такое эффективность, модульность и надёжность программного продукта?
-
Назовите основные идеи структурного программирования.
-
Какие базовые управляющие конструкции существуют в структурном программировании?
Глава 2. Знакомство с технологией .Nет
Данное учебное пособие посвящено программированию на языке высокого уровня нового поколения – C#, первая версия которого была выпущена корпорацией Microsoft в 2000 году. К тому времени специалисты, работающие достаточно долго в области компьютерных технологий, в своей практической деятельности сменили не один язык программирования.
По мере роста сложности предлагаемого программного обеспечения появлялись возможности разработки все более сложных программ. Так в определенный период стало ясно, что возможности структурированных языков не могут в полной мере покрыть современные потребности программистов. Почва созрела, и на свет появилось объектно-ориентированное программирование (ООП), которое использует лучшие идеи структурного программирования, объединяя их с новыми концепциями.
Эволюция языков программирования имеет две существенные тенденции. Первая тенденция состоит в отборе из уже существующих систем наиболее перспективных моментов и интеграции их в новые решения. Другая тенденция базируется на постоянном поиске новых эффективных подходов, позволяющих ввести и развить такие возможности программного обеспечения (ПО), которые требуются для разрешения современных проблем.
2. 1 Причины появления новой платформы и нового языка
К концу прошлого века сложилось четкое представление о том, что необходимы кардинальные перемены самих принципов разработки ПО. Прежде всего, требуется создать принципиально новую основу для прозрачной интеграции написанных на разных языках приложений, а также новый язык, способный впитать в себя все самые эффективные возможности существующих языков программирования и к тому же обеспечивать потребности данного базиса.
Естественно, что эта интеграция должна отлично работать с объектно-ориентированными языками, которые стали стандартом для разработки большинства современного ПО, поскольку технология объектно-ориентированного программирования позволяет существенно увеличить объем повторно используемого кода, сократив сроки разработки и повысив качество создаваемых программ. В этой технологии главным является объект (компонент), независимый от остальной части программы. Это самодостаточный ее фрагмент, решающий некоторую функциональную задачу. К тому же указанная интеграция должна предоставлять разработчикам также новый, структурированный по принципам ООП программный интерфейс самой системы.
Разработка непосредственно нового языка, языка C# была поручена Андерсу Хейльсбергу, ведущему специалисту по программированию, которому мир обязан появлением системы Turbo Pascal, и впоследствии прославившемуся своим вкладом в Delphi.
Приступив к делу, хорошо представляющий сложившуюся ситуацию Андерс Хейльсберг понял, что новый язык не нужно разрабатывать с «нуля». Новый язык унаследует синтаксис языка С, а его объектная модель – это развитая и усовершенствованная модель C++. Все это вместе взятое позволит сэкономить время и силы разработчиков, которые с успехом можно использовать для выработки новых концепций системы.
Учитывая, что C++ и Java (ближайшие потомки языка С) – это те языки, которые хорошо знали, любили и успешно использовали современные программисты во всем мире, следовало предположить, что новому языку несложно будет завоевать симпатии программистов, облегчив намного для них переход к будущей перспективной системе.
Так какие же проблемы призваны были разрешить новая платформа и новый язык? Прежде всего, это вопросы переносимости кода из одной среды в другую, обострившиеся с широким распространением Интернета, к которому подключены компьютеры различных архитектур и проблемы совместной работы программ, написанных на разных языках для создания больших распределенных программных систем.
Следует отметить, что если к моменту разработки языка С# вопросы межплатформенной переносимости в основном были решены в языке Java, то возможности многоязыкового взаимодействия и прямой поддержки самой распространенной операционной системы Windows в новом языке предстояло реализовать впервые.