- •Введение
- •Рекомендуемая литература
- •1. Алгоритмизация и основные этапы работы на эвм
- •1.1. Основные этапы подготовки решения задач на эвм
- •1.2. Алгоритмы и способы их описания.
- •1.3. Базовые алгоритмические структуры.
- •2. Основы программирования
- •2.1. Машинный код процессора
- •2.2. Классификация языков программирования
- •3. Программирование на языке c#
- •3.1 C# и платформа .Net Framework
- •3.2 Среда clr
- •3.3 Средства разработки для .Net Framework
- •4. Интегрированная среда разработки (иср) ms Visual c# 2010 Express
- •4.1 Основные характеристики
- •4.2. Консольное приложение
- •4.2.3. Структура папок при сохранении консольного приложения
- •4.3. Оконное приложение
- •5. Основы языка c#
- •5.1. Алфавит языка c#
- •5.2. Идентификаторы
- •5.3. Комментарии
- •5.4. Переменные и константы
- •5.5. Структура программы консольного приложения на c#
- •5.7. Типы данных
- •5.7.1. Типы значений
- •5.7.2. Ссылочные типы
- •5.7.3. Задание типов в объявлениях переменных
- •5.7.4. Встроенные базовые типы
- •5.7.5. Типы чисел Типы целых чисел
- •Типы чисел с плавающей запятой
- •5.7.6. Преобразования типов
- •5.7.7. Стандартное форматирование чисел
- •5.7.8. Символы char
- •5.8. Инструкции, команды
- •5.9. Выражения
- •5.9.1. Разделители
- •5.9.2. Математические операции
- •5.9.3. Приоритеты операций
- •5.10. Операторы
- •5.10.1. Основные операторы
- •5.10.2. Унарные операторы
- •5.10.3. Мультипликативные операторы
- •5.10.4. Аддитивные операторы
- •5.10.5. Операторы отношений
- •5.10.6. Операторы присваивания
- •5.10.7. Безусловный переход вызовом функций
- •5.10.8. Оператор перехода goto
- •5.10.9. Условные операторы. Сложные условия
- •5.11. Инструкции управления
- •5.11.1. Инструкция if
- •Вложенные инструкции if; else …
- •Сокращенный формат if
- •5.11.2. Инструкции выбора switch, case
- •5.12. Операторы цикла
- •5.12.1. Инструкция goto
- •5.12.2. Инструкция for
- •5.12.3. Инструкция while . . (Цикл с предусловием )
- •5.12.4. Инструкция do – while (Цикл с постусловием)
- •5.13. Массивы
- •5.14. Подпрограммы
- •5.14.1. Описание методов (процедур и функций)
- •5.14 2. Формальные и фактические параметры
- •5.14.3. Области действия имён.
- •5.14.4. Тело метода (подпрограммы).
- •5.14.5. Вызов метода. Синтаксис.
- •5.15. Введение в классы, объекты и методы
- •6. Контрольная работа «Программирование алгоритмических структур на яву с#»
- •6.1. Задания контрольной работы
- •6.2. Требования по оформлению пояснительной записки
- •Поволжский государственный университет телекоммуникаций и информатики
- •Программирование алгоритмических структур
- •5.3. Методические указания по выполнению заданий
- •7. Перечень контрольных вопросов
5.14. Подпрограммы
Программа разбивается на несколько мелких подпрограмм, каждая из которых выполняет определенное действие, предусмотренное исходным заданием. Таким образом, подпрограмма – набор операторов, выполняющих нужное действие и не зависящих от других частей исходного текста. Подпрограмма решает часть общей задачи. У нее есть имя, которое используется при вызове подпрограммы в основную программу.
Подпрограммы бывают 2 видов: процедуры и функции.
Функция отличается от процедуры двумя особенностями:
всегда вычисляет некоторое (одно) значение, возвращаемое в качестве результата функции,
функция вызывается в выражениях.
Процедура в C# имеет свои особенности:
возвращает формальный результат void, который указывает на отсутствие результата, возвращаемого при вызове процедуры,
вызов процедуры является оператором языка,
имеет входные и выходные аргументы, причем выходных аргументов – ее результатов – может быть достаточно много.
Обычно метод реализуется в виде функции тогда, когда он имеет один выходной аргумент, рассматриваемый как результат вычисления функции (например, sin(0.5)).
В других случаях метод реализуют в виде процедуры.
Работа с подпрограммой включает 2 этапа:
– описание метода;
– вызов метода.
Вызов подпрограммы, то есть выполнение действий, заданных в ней в виде операторов, может быть произведён в некоторой точке программы посредством указания имени этой подпрограммы.
5.14.1. Описание методов (процедур и функций)
Синтаксически в описании метода различают две части:
Описание заголовка
Описание тела метода.
Синтаксис заголовка процедуры:
[атрибуты] [модификаторы] {void} имя_процедуры ([список
параметров])
Синтаксис заголовка функции:
[атрибуты] [модификаторы] {тип результата функции} имя_функции
([параметры])
имя_метода ([список параметров]) составляют сигнатуру метода и является обязательная часть в заголовке метода
[ ] показывают, что атрибуты и модификаторы могут быть опущены при описании метода.
При работе с подпрограммой используются модификаторы:
static – представляет стандартный поток для консольного приложения,
public – показывает, что метод открыт и доступен для вызова пользователем и потомками класса,
private – говорит, что метод закрыт и предназначен для внутреннего использования в классе и доступен для вызова только в теле методов самого класса.
Если модификатор опущен, то метод является закрытым для пользователя и класса.
Примеры описания методов:
void A() {…};
int B() {…};
public void C() {…};
Они означают, что методы А и В являются закрытыми, а метод С – открыт. Методы А и С реализованы процедурами, а метод B – функцией, возвращающей целое значение (int), {…} – тело метода.
5.14 2. Формальные и фактические параметры
Формальные параметры (или просто параметры) – это данные, с которыми работает подпрограмма. Параметры перечисляются в заголовке подпрограммы в определённой последовательности и с указанием типов.
Список может содержать фиксированное число аргументов, разделяемых запятой – для подпрограммы с параметрами или быть пустым – для подпрограммы без параметров.
Синтаксис объявления двух параметров:
[ ref | out | params] тип_аргумента1 имя_аргумента1,
тип_аргумента2 имя_аргумента2;
Например: (out long p1, int p2);
Параметры связаны с аргументами. Аргументы – данные, передаваемые в подпрограмму или возвращаемые из нее. Это внешние для подпрограммы данные, с которыми имеет дело вызывающая часть программы. В подпрограмме им соответствуют параметры. Указываются в списке аргументов при обращении к подпрограмме и являются фактическими параметрами.
Можно для фиксированного числа формальных параметров передать методу произвольное число фактических аргументов. Для этого в списке формальных параметров необходимо задать ключевое слово params. Оно может появляться в объявлении лишь последнего аргумента списка, объявленного как массив произвольного типа. При вызове метода этому параметру соответствует произвольное число фактических аргументов.
Для аргументов и параметров необходимо соблюдать:
одинаковое количество;
одинаковый порядок следования;
совместимость типов;
одинаковый статус аргументов (если параметр объявлен с ключевым словом ref или out, то фактический аргумент должен сопровождаться таким же ключевым словом в точке вызова).
Все формальные параметры разделяются на 3 группы:
входные параметры – задаются без ключевого слова (или с параметром ref); передают информацию методу и их значения в теле метода только читаются;
выходные параметры – снабжаются ключевым словом out; представляют собой результаты метода, они получают значения в ходе работы метода; в теле метода должен присутствовать оператор присваивания, задающий значение этому параметру;
обновляемые параметры – снабжаются ключевым словом ref; выполняют обе функции. Их значения используются в ходе вычислений и обновляются в результате работы метода.
Например:
// Процедура Cube
void Cube(out long p2, int p1)
{
p2 = (long)Math.Pow(p1, 3);
Console.WriteLine(“Метод 1”);
}
// Процедура CubeM
void CubeM(out double p2, params double[ ] p)
{
p2 =0; for (int I = 0; I < p.lehgth; i++)
p2 + = Math.Pow(p[ i ], 3);
Console.WriteLine(“Метод 2”);
}
// Функция F
int F(ref int a)
{
retun (a++)
}
Все методы закрыты, поскольку объявлены без модификатора доступа. Cube и CubeM – процедуры, а F – функция. Аргумент р2 – является выходным (сопровождается ключевым словом out ), поэтому в теле метода ему присваивается значение. Аргумент функции F является обновляемым (снабжен ключевым словом ref ), в теле функции используется его значение для получения результата функции, но и само значение параметра изменяется в теле функции. Для процедуры CubeM используется ключевое слово params для самого последнего аргумента р. Т.к. этому параметру будет соответствовать несколько фактических аргументов, число которых может быть произвольным.
