Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab4.doc
Скачиваний:
10
Добавлен:
10.06.2015
Размер:
137.73 Кб
Скачать

Лабораторная работа

  1. Циклы и функции Варианты заданий

Выполнить задания 1-4 по предложенным вариантам:

№ Задания

1

2

3

4

Вариант 1

1.I

2.I

3.I

4.I

Вариант 2

1.II

2.II

3.II

4.II

Вариант 3

1.III

2.III

3.III

4.III

Вариант 4

1.I

2.II

3.II

4.I

Вариант 5

1.II

2.I

3.III

4.II

Вариант 6

1.III

2.II

3.I

4.I

Вариант 7

1.I

2.III

3.I

4.II

Вариант 8

1.I

2.I

3.II

4.III

Вариант 9

1.II

2.III

3.I

4.II

Вариант 10

1.III

2.I

3.III

4.I

Задание 1.

I Дано натуральное число n. Напишите функцию static void Squares (int n), которая выводит на консоль все точные квадраты натуральных чисел, не превосходящие данного числа n.

(например, при вводе 50 программа должна вывести 1 4 9 16 25 36 49).

II Дано натуральное число n. Напишите функцию static int SumOfDigits (int n),

вычисляющую сумму цифр числа n. Выведите сумму цифр числа n.

III Дано натуральное число n. Напишите функцию static int NumberOfZeroes (int n), определяющую количество нулей среди всех цифр числа n. Выведите результат.

Задание 2.

I Вводится последовательность целых чисел до тех пор, пока не будет введено число 0.

После ввода числа 0 программа должна вывести минимальное число.

II Вводится последовательность целых чисел до тех пор, пока не будет введено число 0.

После ввода числа 0 программа должна вывести сумму введенных чисел.

III Вводится последовательность целых чисел до тех пор, пока не будет введено число 0.

После ввода числа 0 программа должна вывести количество отрицательных чисел.

Задание 3.

I Дано натуральное число n. Напишите функцию int MaxDigit (int n), определяющую наибольшую цифру данного числа (например, при вводе 179 программа выводит 9). Определите время работы функции для 1 000 000 повторов.

II Дано натуральное число n. Напишите функцию int NumberOfEvens (int n), определяющую количество нечетных цифр среди всех цифр числа n. Выведите результат.

Определите время работы функции для 1 000 000 повторов

III Напишите функцию, которая по данному натуральному n печатает его цифры в обратном порядке. (например, reverse(179)=971).

Определите время работы функции для 1 000 000 повторов

Задание 4.

I Напишите рекурсивную функцию возведения в степень, пользующуюся следующим свойством: an=a*an-1

II Напишите рекурсивную функцию возведения в отрицательную степень n: a-n=1/an

III Для биномиальных коэффициентов (числа сочетаний из n по k) хорошо известна рекуррентная формула: Cnk=Cn-1k-1+Cn-1k. Вычислите рекурсивно значение Cnk, пользуясь этой формулой и учитывая, что Cn0=Cnn=1.

Методические указания

    1. Процедуры и функции - функциональные модули

В языке C# нет специальных ключевых слов - method, procedure, function, но сами понятия, конечно же, присутствуют. Синтаксис объявления метода позволяет однозначно определить, чем является метод – процедурой или функцией.

Функция отличается от процедуры двумя особенностями:

  • всегда вычисляет некоторое значение, возвращаемое в качестве результата функции;

  • вызывается в выражениях.

Процедура C# имеет свои особенности:

  • возвращает формальный результат void, который указывает на отсутствие результата, возвращаемого при вызове процедуры;

  • вызов процедуры является оператором языка;

  • имеет входные и выходные аргументы, причем выходных аргументов - ее результатов - может быть достаточно много.

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

static void Main()

{

Console.WriteLine("Метод Main. Вызываем метод Jump...");

Jump();

Console.WriteLine("Возврат в метод Main.");

}

static void Jump()

{

Console.WriteLine("Работает метод Jump!");

}

Результат работы:

Метод Main. Вызываем метод Jump...

Работает метод Jump!

Возврат в метод Main.

Программа начинает выполняться с метода Main() и осуществляется последовательно, пока компилятор не вызовет процедуру Jump(). Таким образом, происходит ответвление от основного потока выполняемых инструкций. Когда процедура Jump() заканчивает свою работу, то продолжается выполнение программы со следующей строки после вызова процедуры.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]