- •59. Модули
- •58. Процедуры и функции пользователя
- •56. Операторы цикла с предусловием (while)
- •52. Оператор безусловного перехода
- •49. Для обмена информацией между пользователем и пк все данные организуются в файлы.
- •48. Процедуры и функции для работы с типизированными файлами.
- •47. Типизированные файлы
- •46. Файлы
- •43. Объединение разнородных элементов (Запись)
- •42. Типы данных
- •41. Определение множества
- •40. Множество — тип и структура данных в информатике, является реализацией математического объекта множество.
- •35. Одномерные массивы. Формирование и вывод одномерных массивов
- •30. Символьный тип
- •29. Арифметические операции
- •28. Вещественный тип данных
- •25. Раздел описания констант в языке Турбо Паскаль
- •23. Структура программы на языке Pascal
- •22. Понятие языка программирования
58. Процедуры и функции пользователя
|
Если в программе возникает необходимость частого обращения к некоторой группе операторов, то рационально сгруппировать такую группу операторов в самостоятельный блок, к которому можно обращаться, указывая его имя. Такие разработанные программистом самостоятельные программные блоки называются подпрограммами пользователя. Они являются основой модульного программирования. Разбивая задачу на части и оформляя логически обособленные модули в виде процедур и функций, программист реализует основные принципы широко используемого в практике системного подхода и методов нисходящего программирования. При вызове подпрограммы (процедуры или функции), определенной программистом, работа главной программы на некоторое время приостанавливается и начинает выполняться вызванная подпрограмма. Она обрабатывает данные, переданные ей из главной программы. По завершении выполнения подпрограмма-функция возвращает главной программе результат (подпрограмма-процедура не возвращает явно результирующего значения). Передача данных из главной программы в подпрограмму и возврат результата выполнения функции осуществляются с помощью параметров. Параметром называется переменная, которой присваивается некоторое значение в рамках указанного применения. Различают формальные параметры – параметры, определенные в заголовке подпрограммы, и фактические параметры – выражения, задающие конкретные значения при обращении к подпрограмме. При обращении к подпрограмме ее формальные параметры замещаются фактическими, переданными из главной программы.
Процедуры Описание процедуры включает заголовок (имя) и тело процедуры. Заголовок состоит из зарезервированного слова procedure, идентификатора (имени) процедуры и необязательного, заключенного в круглые скобки, списка формальных параметров с указанием типа каждого параметра. Имя процедуры – идентификатор, уникальный в пределах программы. Тело процедуры представляет собой локальный блок, по структуре аналогичный программе. Описания меток, констант, типов и т.д. действительны только в пределах данной процедуры. В теле процедуры можно использовать любые глобальные константы и переменные. procedure <имя> (Формальные параметры); const ...; type ...; var ...; begin <операторы процедуры> end;
Функции Функция, определенная пользователем, состоит из заголовка и тела функции. Заголовок содержит зарезервированное слово function, идентификатор (имя) функции, заключенный в круглые скобки, необязательный список формальных параметров и тип возвращаемого функцией значения. Тело функции представляет собой локальный блок, по структуре аналогичный программе: function <имя> (Формальные параметры) : тип результата; const ...; type ...; var ...; begin <операторы функции> end; В разделе операторов должен присутствовать, по крайней мере, один оператор, присваивающий имени функции значение. В точку вызова возвращается результат последнего такого присваивания. Обращение к функции осуществляется по имени с необязательным указанием списка аргументов. Каждый аргумент должен соответствовать формальным параметрам, указанным в заголовке, и иметь тот же тип. |
57.
Оператор цикла с постусловием (do - while)
|
Оператор do повторно выполняет оператор или блок операторов, заключенных в {}, пока определенное выражение не примет значение false. В следующем примере операторы цикла do - while выполняются до тех пор, пока пользователь не введёт значение из допустимого диапазона. Если в теле цикла всего один оператор, фигурные скобки ставить не нужно.
int N; string s; do { Console.Write("Введите N в интервале 0..10 N="); s = Console.ReadLine(); N = Convert.ToInt32(s); } while (N<0|| N>10);
Console.WriteLine("Введённое число равно {0} ", N); Console.ReadKey(); Цикл do-while выполняется как минимум один раз, так как вычисление значения условного выражения выполняется после тела цикла. В любой точке блока do-while цикл можно разорвать с помощью оператора break. Для перехода непосредственно к оператору вычисления выражения while используется оператор continue; если выражение имеет значение true, выполнение продолжается в первом операторе цикла. Если выражение имеет значение false, выполнение продолжается в первом операторе после цикла do-while. Пример: Дано целое число N > 0. С помощью операций деления нацело и взятия остатка от деления определить, имеются ли в записи числа N нечетные цифры. int N; string s;bool f; Console.Write("Введите целое положительное число N="); s = Console.ReadLine(); N = Convert.ToInt32(s); int n = N; //сохраним исходное значение
f=false; do { if (N % 2 == 1) f = true; N = N / 10; } while (N != 0 && !f);
if (f) Console.WriteLine("Нечётные цифры в числе {0} есть", n); else Console.WriteLine("Нечётных цифр в числе {0} нет", n); Console.ReadKey(); |