- •Алфавит
- •Комментарии
- •Идентификаторы
- •Ключевые слова
- •Переменные и константы
- •Пространства имен
- •Main() и аргументы командной строки
- •Операторы
- •Основные операторы
- •Унарные операторы
- •Аддитивные операторы
- •Мультипликативные операторы
- •Операторы сдвига
- •Операторы отношений
- •Операторы присваивания
- •Арифметическое переполнение
- •Математические операции
- •Литералы
- •Описание
- •Структуры
- •Инкапсуляция
- •Наследование
- •Полиморфиэм
- •Конструкторы
- •Деструкторы
- •Интерфейсы
- •Делегаты
- •Типы значений
- •Ссылочные типы
- •Тип dynamic
- •Тип object
- •Тип string
- •Встроенные базовые типы
- •Типы чисел
- •Типы целых чисел
- •Типы чисел с плавающей запятой
- •Значения типов по умолчанию
- •Преобразования типов
- •Стандартное форматирование чисел
- •Задание типов в объявлениях переменных
- •Инструкции, введение
- •Выражения
- •Разделители
- •Базовые алгоритмические структуры
- •Решения и ветвления
- •Безусловный переход вызовом функций
- •Ветвление if; else
- •Вложенные ветвления if; else
- •Выбор switch; case
Базовые алгоритмические структуры
Алгоритм любой сложности может быть представлен комбинацией трёх базовых структур:
следование;
ветвление;
повторение (цикл).
Структура "следование" означает, что несколько операторов должны быть выполнены последовательно друг за другом и только один раз за время выполнения данной программы.
Например: вычислить
Процесс, описываемый структурой следования, называется линейным.
Совокупность базовых структур "следование" называется линейным вычислительным алгоритмом.
Структура "ветвление" разделяет последовательность действий на 2 направления в зависимости от итога заданного условия.
Например: вычислить
Линейные структуры
Пример. Вычислить при x = 2.1, y = 0.59, z = -4.8 значения a и b, используя формулы:
Структура в таком случае хоть и линейная, но мы сначала вычисляем переменную а, а затемb. Схема решения задачи будет выглядеть следующим образом
Листинг программы
usingSystem;
namespaceConsoleLineStr
{
classProgram
{
staticvoidMain()
{
doublex =2.1, y =0.59, z = -4.8, a =0, b = 0;// Переменные типа double
a = y * Math.Pow(Math.Tan(x * x), 3);// Вычисляем a
a += Math.Sqrt(z * z / (y * y + x * x));
Console.WriteLine("Результаты");
Console.WriteLine();
Console.Write("a=");// Вывод a
Console.WriteLine(a.ToString());
b = Math.Log(y + x * x);// Вычисляем b
b += Math.Pow(Math.Sin(z / x), 2);
Console.Write("b=");// Вывод b
Console.WriteLine(b.ToString());
Console.WriteLine();
Console.WriteLine("Нажмите любую клавишу");
Console.ReadKey(); // Пауза
}
}
}
Внимание. При вводе данных в консоли разделитель целой и дробнй части вещественного числа – запятая.
Решения и ветвления
Безусловный переход вызовом функций
Когда компилятор находит в основном тексте программы имя функции, то происходит приостановка выполнения текущего кода программы и осуществляется переход к найденной функции. Когда функция выполнится и завершит свою работу, то произойдет возврат в основной код программы, на ту инструкцию, которая следует за именем функции.
Имя функции должно содержать пару круглых скобок (), даже если у функции нет аргументов. Это признак функции или метода.
Ветвление if; else
Применяется для ветвления по двум ветвям. Синтаксис инструкции:
if (условие)
{
Блок инструкций 1;
}
else
{
Блок инструкций 2;
}
Фраза else может отсутствовать.
Если условие выполняется, то исполняется Блок инструкций 1, в противном случае исполняется Блок инструкций 2. Если в блоке только одна инструкция, то фигурные скобки можно пропустить.
Пример. В нем сравниваются значения One, Two. В зависимости от результата выводится одно из двух сообщений.
using System;
class Conditional
{
static void Main()
{
int One = 50;
int Two = 5;
if ( One > Two )
Console.WriteLine ("One: {0} больше Two: {1}", One, Two);
else
Console.WriteLine("One: {0} не больше Two: {1}" , One, Two);
}
}