- •Содержание
- •Глава 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 Вложенные циклы
- •Контрольные вопросы
- •Варианты заданий для самостоятельной работы
6.2 Алгоритмы и программы разветвленной структуры
Пример 1. Даны вещественные числа a,b,c. Найти наибольшее из них.
Рисунок 6.3 – Схема алгоритма к примеру 1
На этой схеме показано, что после ввода трех исходных чисел выполняется сравнение первых двух: a и b. Наибольшее из них присваивается переменной Max. После чего переменная Max сравнивается с переменной c. В том случае, если Max<c, значение Max корректируется заменой его на значение с. В заключение найденное наибольшее значение из трех исходных чисел выводится на экран монитора.
Листинг 1 – К примеру 1
using System;
namespace ConsoleApplication1
{ class Program
{ public static void Main()
{ double a, b, c, max;
Console.Write("Enter A: ");
a = Convert.ToDouble(Console.ReadLine());
Console.Write("Enter B: ");
b = Convert.ToDouble(Console.ReadLine());
Console.Write("Enter C: ");
c = Convert.ToDouble(Console.ReadLine());
if (a < b) max = b;
else max = a;
if (c > max) max=c;
Console.WriteLine("{0},{1},{2},{3}", a, b, c, max);
}
}
}
Пример 2. Переменная целого типа I определяет порядковый номер месяца невысокосного года. Оператор Switch по порядковому номеру месяца выводит количество дней в данном месяце.
Листинг 2 – К примеру 2
using System;
namespace ConsoleApplication1
{ class Program
{ static void Main(string[] args)
{ string buf;
Console.Write("Введите номер месяца: ");
buf = Console.ReadLine();
int a = Convert.ToInt32(buf);
switch (a)
{
case 1: Console.WriteLine ("В месяце 31 день"); break;
case 3: Console.WriteLine ("В месяце 31 день"); break;
case 5: Console.WriteLine ("В месяце 31 день"); break;
case 7: Console.WriteLine ("В месяце 31 день"); break;
case 8: Console.WriteLine ("В месяце 31 день"); break;
case 10: Console.WriteLine ("В месяце 31 день"); break;
case 12: Console.WriteLine ("В месяце 31 день"); break;
case 2: Console.WriteLine ("В месяце 28 дней"); break;
default: Console.WriteLine ("В месяце 30 дней");break;
}
}
}
}
В программе, решающей сформулированную задачу, введенное значение I используется для отыскания требуемого оператора вывода. Выбирается такой оператор Console.WriteLine, перед которым за словом case есть введенное значение I. Поскольку в данной программе нет защиты от некорректной работы пользователя, то любое введенное значение I>12 или I<1 также приведет к выводу следующего сообщения: 'В месяце 30 дней', так как именно оно помещено в ветвь default.
В данном примере I – это переменная целого типа, но вместо нее может быть использовано и выражение, выдающее порядковое значение.
Подчеркнем, что значения констант селектора, помещенные в любую ветвь выбора, не следует смешивать с метками операторов для работы с операторами перехода Goto.
Контрольные вопросы
-
Какие структуры языка используются для анализа обстановки и выбора варианта действия в зависимости от результата анализа?
-
Какие в С# существует два вида операторов ветвления?
-
Приведите формат записи if и else инструкций.
-
Выполняются ли if и else инструкции одновременно?
-
В каком случае образуются вложенные if-операторы?
-
С помощью какого оператора можно обеспечить многонаправленное ветвление?
-
Приведите алгоритм ветвящегося процесса с оператором switch.
-
Приведите общий формат записи оператора switch.
-
Какой тип может иметь элемент выражение оператора switch?
-
Могут ли две case-константы в одном switch-операторе иметь идентичные значения?
-
Обязательна ли ветвь default?
-
В каком случае оператор switch называется вложенным?
-
Приведите пример программы с использованием оператора if.
-
Приведите пример программы с использованием оператора switch.