- •Содержание
- •Глава 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.1.1.4 Операции присваивания
Все заявленные в заголовке подраздела операции присваивания в порядке убывания приоритета представлены в таблице 5.5. Эта группа операций присваивания включает 11 наименований. Данные операции формируют новое значение.
Во всех процедурных языках существует операция простого присваивания. В языке C# эту операцию изображают с помощью одинарного знака равенства «=».
Формат данной операции:
переменная = выражение
Причем тип переменной должен быть совместим с типом выражения. С помощью данного оператора можно создавать цепочку присвоений:
int i,j,k; …….i=j=k=1;…..
В операции присваивания вычисленное значение выражения заносится в память по адресу, который определяется именем переменной, находящейся слева от знака операции. При этом теряется то, что в этой области памяти хранилось ранее. При выполнении присвоений в цепочке первым выполнится присвоение k=1, затем полученное значение k присвоится переменной j, а потом переменной i присвоится значение j.
Таблица 5.5 Операции присваивания
-
Знак операции
Название
=
Присваивание
*=
Умножение с присваиванием
/=
Деление с присваиванием
%=
Остаток отделения с присваиванием
+=
Сложение с присваиванием
- =
Вычитание с присваиванием
<<=
Сдвиг влево с присваиванием
>>=
Сдвиг вправо с присваиванием
&=
Поразрядное И с присваиванием
^=
Поразрядное исключающее ИЛИ с присваиванием
| =
Поразрядное ИЛИ с присваиванием
В сложных операциях присваивания (табл. 5.5) при вычислении выражения, стоящего в правой части, используется значение из левой части. Эти операции могут, использоваться в программе как законченные операторы. Например, при сложении с присваиванием ко второму операнду прибавляется первый, и результат записывается в первый операнд, т.е. выражение а+= b является более компактной записью выражения а = а + b.
Сложные операции присваивания программисты часто используют в своих программах не только из-за компактной записи, но также потому, что это приводит к более эффективному результирующему коду.
5.1.1.5 Условная операция
Условная операция в C# часто используется вместо условного оператора if – then – else для организации ветвлений на две ветви, что приводит в целом к сокращению текста программы. Такая операция является тернарной, поскольку содержит три операнда. Общий вид операции:
Оп_1? Оп_2: Оп_3;
где
-
Оп_1 – первый операнд: выражение, неявно приводимое к логическому типу, – условие ветвления;
-
Оп_2 – второй операнд: его значение принимается за значение условной операции, если значение первого операнда равно true;
-
Оп_3 – третий операнд: его значение принимается за значение условной операции, если значение первого операнда равно false.
Например:
max = b > а ? b : а;
переменной max будет присвоено значение b, если выполняется условие (b> а), и значение а, если – нет.
В общем случае типы Оп_2 и Оп_3 могут не совпадать. Каков же тип результата данной операции будет в таком случае? Тип результата условной операции определяется по типам Оп_2 и Оп_3 в соответствии со следующими правилами:
-
при совпадении типов Оп_2 и Оп_3 операндов их тип является типом результата операции;
-
иначе, если существует неявное преобразование типа Оп_2 к типу Оп_3, но не существует неявное преобразование типа Оп_3 к типу Оп_2, то тип результата операции равен типу Оп_3;
-
иначе, если существует неявное преобразование типа Оп_3 к типу Оп_2, но не существует неявное преобразование типа Оп_2 к типу Оп_3, то тип результата операции равен типу Оп_2;
-
иначе возникает ошибка компиляции.