Задание 1 Написать и отладить программу для примера 4.



Контрольные вопросы

1. Может ли функция не иметь параметров.

2. Могут ли в качестве фактических параметров использоваться выражения.

3. Какие правила соответствия должны выполняться для формальных и фактических параметров.

4. Что будет, если имя формального параметра совпадает с глобальным параметром.

5. В Примере № 3 в основной программе используется цикл с параметром i и в подпрограмме используется цикл с параметром i. Не запутается ли программа с такими совпадениями.

6. Можно ли в теле функции использовать несколько операторов return.

7. Можно ли из одной функции вызывать другую функцию.

Индивидуальные задания

Создать методы-функции в отдельном классе.

1. Создайте метод нахождения наибольшего общего делителя двух натуральных чисел. Напишите программу вычитания дробей a, b, c, d – натуральные числа. Результат представить в виде обыкновенной несократимой дроби.

2. Создайте метод нахождения количества цифр в числе. Составить программу, определяющую, в каком из данных двух чисел больше цифр.

3. Создайте метод нахождения суммы цифр, составляющих целое число. Напишите программу для нахождения суммы цифр целых чисел, из последовательности, вводимой пользователем. Указание: включите в метод операторы вывода на экран цифр, составляющих данное число, иначе процесс проверки программы будет затруднителен.

4. Создайте метод нахождения первой цифры в числе. Напишите программу для нахождения суммы первых цифр 5-ти целых чисел, выбранных случайно из интервала [N,M].

5. Создайте метод нахождения количества делителей числа. Напишите программу для нахождения числа из промежутка от А до В, у которого больше всего делителей. Указание: включите в метод операторы вывода на экран найденных делителей, иначе процесс проверки программы будет затруднителен.

6. Создайте метод нахождения количества делителей числа. Напишите программу для определения суммы всех делителей пяти целых чисел, выбранных случайно из интервала [N,M]. Указание: включите в метод операторы вывода на экран найденных делителей, иначе процесс проверки программы будет затруднителен.

7. Напишите метод для определения, является ли число совершенным, то есть, равно ли оно сумме своих делителей, кроме самого себя. Используя созданный метод, найдите сумму совершенных чисел в интервале [N,M].

8. Создайте метод нахождения количества делителей числа. Напишите программу для вывода на экран всех простых чисел, попавших в последовательность из 20 случайных чисел, выбранных компьютером из интервала [N,M].

9. Создайте метод нахождения количества делителей числа. Два натуральных числа называются «дружественными», если каждое из них равно сумме всех делителей (кроме его самого) другого числа (например 220 и 284). Найти все пары «дружественных» чисел, которые не больше данного числа N.

10. Числа Фибоначчи – элементы числовой последовательности {1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597 } в которой каждое последующее число равно сумме двух предыдущих чисел. Напишите метод для определения входит ли число в последовательность Фибоначчи. Используя созданный метод, выведите на экран все числа Фибоначчи, попавшие в интервал [N,M].

11. Создать метод, определяющий, является ли число автоморфными, то есть квадрат такого числа заканчивается таким же числом. Например, числа 6 и 25 являются автоморфными, т.к. их квадратами являются числа 36 и 625. Определить, сколько чисел в интервале от 1 до 100 являются автоморфными.

12. Создайте метод нахождения суммы цифр, составляющих целое число и возведения числа в степень n. Натуральное число, в записи которого n цифр, называется числом Амстронга, если сумма его цифр, возведенная в

Void-методы

Теория

Методы функции, которые рассматривались выше, всегда воз­вращают одно значение. Однако бывают и другие виды подзадач, например, когда требу­ется возвратить из функции несколько значений либо не возвращать вовсе ничего. Методы, которые не возвращают ни одного значения, называются void-методами или методами-процедурами. Например, одной из типичных подзадач программы является вывод резуль­татов вычислений. В этой подзадаче осуществляется вывод на экран, но она не вычис­ляет никаких значений, которые бы использовались в остальной части программы. Та­кую разновидность подзадач можно реализовать в виде void-метода.

Метод-процедура – это независимая именованная часть программы, которую после однократного описания можно многократно вызывать по имени из последующих частей программы для выполнения определенных действий.

Между определением void-методов и определе­ниями методов- функций, есть только два различия. Одно из них заключается в том, что вместо указания типа возвращаемого значения в определении void-функции исполь­зуется ключевое слово void. Тем самым компилятору сообщается, что эта функция не возвращает никаких значений. Само имя void говорит: "эта функция не возвращает никаких значений". Второе различие состоит в том, что в инструкции return не со­держится выражения, по которому должно вычисляться возвращаемое значение, по­тому что никакого возвращаемого значения не существует.

Вызов метода-процедуры является выполняемой инструкцией. Она состоит из имени функции и списка фактических параметров отделенных друг от друга запятыми и заключенными в круглыми скобками. Иногда нужны функции без аргументов, что вполне корректно.

Процедуры имеют более широкий спектр применения, чем функции:

· с помощью процедур можно одновременно вычислять несколько значений;

· в процедурах можно изменять входные параметры;

· результатом процедур не обязательно является вычисление значений, это может быть выполнение каких-нибудь действий, например ввод или вывод данных.

В процедурах (void-функциях), как и в функциях, возвращающих значение, могут присутство­вать инструкции return. Если функция возвращает значение, оно определяется инст­рукцией return. В void-функциях эта инструкция просто завершает вызов функции, т.е.означает досрочный выход из функции.

При вызове функции ее аргументы подставляются вместо формальных параметров из определения этой функции; иными словами, аргументы "подключаются" к формальным параметрам. Есть несколько механизмов реализации такого процесса подстановки. Ме­ханизм, использовавшийся в предыдущем разделе, называется механизмом пере­дачи параметров по значению (call-by-value).

При выполнении некоторых подзадач оказывается, что механизма передачи пара­метров по значению недостаточно. Например, довольно распространенной задачей является вычисление в функции одной или нескольких величин.

Стандарт С# отмечает существование четырех видов параметров

· параметры, передаваемые по значениям;

· параметры, передаваемые по ссылкам (ref);

· выходные параметры (out);

· массив-параметр (params).

Параметры первых трех видов в cтандарте С# называют фиксированными параметрами.

Чтобы метод мог с помощью параметров изменять внешние по отношению к методу объекты, параметры должны иметь модификатор ref, т.е. передаваться по ссылке.

В качестве примера метода с параметрами, передаваемыми по ссылкам, часто рассматривают метод swap(), меняющий местами значения двух объектов, адресованных аргументами. Рассмотрим чуть более сложную задачу — метод упорядочения (в порядке возрастания) значений трех целочисленных переменных. Для демонстрации возможностей вспомогательных методов определим в том же классе метод упорядочения двух переменных:


Дата добавления: 2019-11-16; просмотров: 247; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!