- •Содержание
- •Глава 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 Вложенные циклы
- •Контрольные вопросы
- •Варианты заданий для самостоятельной работы
Математические функции можно использовать только с величинами числовых типов. Углы тригонометрических функций должны быть представлены в радианах.
5.4 Линейные алгоритмы и программы
Линейным называется алгоритм, все блоки которого выполняются последовательно в том порядке, в котором они записаны. Простейшим примером линейного алгоритма является расчет по заданной формуле. Он состоит из трех этапов: ввод исходных данных, вычисление по формуле и вывод результатов.
Для того чтобы написать программу по данному алгоритму, необходимы знания о том, как организовать ввод и вывод на языке С#. Подробно этот вопрос рассматривается далее в книге, а здесь приводятся только минимально необходимые сведения.
Любая программа при вводе исходных данных и выводе результатов взаимодействует с внешними устройствами. Совокупность стандартных устройств ввода и вывода, используемых на лабораторных работах, – это клавиатура и экран, называемые консолью. Обмен данными с консолью является частным случаем обмена с внешними устройствами.
Строго говоря, в языке С#, как и во многих других, нет операторов ввода и вывода. Вместо них для обмена с внешними устройствами применяются стандартные объекты.
5.4.1 Простейшие способы вывода
Для работы с консолью в С# применяется класс Console, определенный в пространстве имен System. Методы этого класса Write и WriteLine и будут использоваться в дальнейших программах. Рассмотрим листинг 2.
Листинг 1 – Методы вывода
using System;
namespace ConsoleApplication1
{ class Program
{ static void Main(string[] args)
{int i = 3;
double y = 4.12;
decimal d = 600m;
string s = "Пробный расчет";
Console.WriteLine ( "y={0} \nd={1}",y,d );
Console.WriteLine ( "i = " + i);
Console.WriteLine ( "s = " + s);
}
}
}
Результат работы программы:
у = 4.12
d = 600
i = 3
s = Пробный расчет
Метод WriteLine может быть использован для вывода значений переменных и литералов различных встроенных типов. Это возможно благодаря тому, что в классе Console существует несколько вариантов методов с именами Write и WriteLine, предназначенных для вывода значений различных типов.
Методы с одинаковыми именами, но разными параметрами называются перегруженными. Компилятор определяет, какой из методов вызван, по типу передаваемых в него величин. Методы вывода в классе Console перегружены для всех встроенных типов данных, кроме того, предусмотрены варианты форматного вывода.
Листинг 2 содержит два наиболее употребительных варианта вызова методов вывода. Сначала обратите внимание на способ вывода пояснений к значениям переменных. Пояснения представляют собой строковые литералы. Если метод WriteLine вызван с одним параметром, он может быть любого встроенного типа, например, числом, символом или строкой. Нам же требуется вывести в каждой строке не одну, а две величины: текстовое пояснение и значение переменной, – поэтому, прежде чем передавать их для вывода, их требуется «склеить» в одну строку с помощью операции «+».
Перед объединением строки с числом надо преобразовать число из его внутренней формы представления в последовательность символов, т.е. в строку. Преобразование в строку определено во всех стандартных классах С# – для этого служит метод ToString( ). В данном случае он выполняется неявно, но можно вызвать его и явным образом:
Console.WriteLine ( "i = " + i.ToString( ) );
Оператор
Console.WriteLine ( "y={0} \nd={1}",y,d );
использует другой вариант метода WriteLine – форматный вывод. При этом оператор вывода содержит более одного параметра. Первым параметром методу передается строковый литерал, содержащий помимо обычных символов, предназначенных для вывода на консоль, параметры в фигурных скобках, а также управляющие последовательности.
Параметры нумеруются с нуля, перед выводом они заменяются значениями соответствующих переменных в списке вывода: нулевой параметр заменяется значением первой переменной (в данном примере – у), первый параметр – второй переменной (в данном примере – d) и т. д.
Из управляющих последовательностей чаще всего используются символы перевода строки «\n», как в данном случае, и горизонтальной табуляции «\t».