Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
321 / Основы алгоритмизации и программирования.doc
Скачиваний:
112
Добавлен:
11.04.2015
Размер:
1.1 Mб
Скачать

Лабораторная работа. Подставляемые (встраиваемые) функции. Перегрузка функций.

Цель работы: изучить подставляемые (встраиваемые) функции и перегрузки функций, научиться разрабатывать программы с использованием перегрузки функций на языке C++.

Задания к лабораторной работе.

Выполните приведенные ниже задания.

  1. Составьте программу для решения задачи. Определите значение

,

где max(x, у) есть максимальное из чисел x, у. Разработайте функции нахождения максимального из двух целых и вещественных чисел.

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

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

  3. Составьте программу, которая в зависимости от входных данных переводит часы и минуты в минуты или минуты – в часы и минуты. Используйте перегруженные функции. Например, при вводе 134 мин будет выдано значение 2 час 14 мин, а при вводе 2 час 14 мин – значение 134 мин.

Лабораторная работа. Рекурсивные функции.

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

Задания к лабораторной работе.

Выполните приведенные ниже задания.

  1. Определите закономерность формирования членов последовательности. Найдите n-ый член последовательности: 1, 1, 2, 3, 5, 8, 13,…

  2. Составьте программу вычисления биномиального коэффициента для данных неотрицательных целыхm, n ():.Решите задачу двумя способами: 1 – используйте функцию вычисления факториала; 2 – выразите вычислениечерез.

  3. Исполнитель умеет выполнять два действия: «+1», «*2». Составьте программу получения из числа 1 числа 100 за наименьшее количество операций.

  4. Найдите наибольший общий делитель двух натуральных чисел с помощью алгоритма Евклида.

  5. Дано натуральное число, кратное 3. Получите сумму кубов этого числа, затем сумму кубов получившегося числа и т.д. Проверьте на нескольких примерах, действительно ли в конечном итоге получится 153.

  6. Разработайте программу вычисления an натуральной степени n вещественного числа a за наименьшее число операций.

Лабораторная работа. Производные типы. Тип указатель: указатели на объекты.

Цель работы: изучить классификацию производных типов, тип указатель и соотношения между именами, адресами и значениями переменных, научиться использовать указатели в программных кодах на языке C++.

Задания к лабораторной работе.

Выполните приведенные ниже задания.

  1. В программе определите и инициализируйте переменную типа double, указатель double * и указатель типа void *. Присвойте указателям адрес переменной. Напечатайте адрес переменной, значения указателей и значения, получаемые при разыменовании указателей. Чтобы продемонстрировать роли и последовательность выполнения унарных операций получения адреса & и разыменования *, выведите на печать значение выражения *&имя_переменной.

  2. Задано натуральное число. Разместите в памяти последовательно все его цифры, используя указатели и операции над ними.

  3. Определите и инициализируйте переменную типа double. Определите указатели char *, int *, double *, void *, инициализируйте их адресом переменной. Напечатайте значения указателей, их размеры и длины участков памяти, которые связаны с выражениями, разыменовывающими указатели.