Файл: Практическая работа 0 Рекурсивные алгоритмические структуры.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 10.01.2024
Просмотров: 17
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Страница 1 из 5
ПРАКТИЧЕСКАЯ РАБОТА №0
Рекурсивные алгоритмические структуры
Цель работы: научиться строить и реализовывать рекурсивные алгоритмы, записывать
алгоритмы в виде блок-схемы и на алгоритмическом языке.
Задание к практической работе
По результатам работы необходимо в отчёте привести алгоритм в виде схемы алгоритма
и на алгоритмическом языке (с необходимыми комментариями и пояснениями) и реализовать его
на языке С++.
Выполнение схемы алгоритма производится в соответствии с ГОСТ 19.701-90 «Единая
система программной документации. Схемы алгоритмов, программ, данных и систем.
Обозначения условные и правила выполнения».
1)
Построить и записать алгоритм вычисления значения функции exp(????) действительного аргумента x с использованием рекурсии.
2)
Построить и записать алгоритм вычисления значения функции
????exp(????) действительного аргумента x с использованием рекурсии.
3)
Построить и записать алгоритм вычисления значения функции exp(????) − 1 действительного аргумента x с использованием рекурсии.
4)
Построить и записать алгоритм вычисления значения функции
√1 + ???? действительного аргумента |x|<1 с использованием рекурсии.
5)
Построить и записать алгоритм вычисления значения функции
????√1 + ???? действительного аргумента |x|<1 с использованием рекурсии.
6)
Построить и записать алгоритм вычисления значения функции
√1 + ???? − 1 действительного аргумента |x|<1 с использованием рекурсии.
7)
Построить и записать алгоритм вычисления значения функции ln(1 + ????) действительного аргумента |x|<1 с использованием рекурсии.
8)
Построить и записать алгоритм вычисления значения функции ln(1+????)
????
действительного аргумента |x|<1 с использованием рекурсии.
9)
Построить и записать алгоритм вычисления значения функции
???? − ln(1 + ????) действительного аргумента |x|<1 с использованием рекурсии.
10) Построить и записать алгоритм вычисления значения функции sin(????) действительного аргумента x с использованием рекурсии.
11) Построить и записать алгоритм вычисления значения функции sin(????)
????
действительного аргумента x с использованием рекурсии.
12) Построить и записать алгоритм вычисления значения функции
???? − sin(????) действительного аргумента x с использованием рекурсии.
13) Построить и записать алгоритм вычисления значения функции cos(????) действительного аргумента x с использованием рекурсии.
14) Построить и записать алгоритм вычисления значения функции
????cos(????) действительного аргумента x с использованием рекурсии.
15) Построить и записать алгоритм вычисления значения функции
1 − cos(????) действительного аргумента x с использованием рекурсии.
16) Построить и записать алгоритм вычисления значения функции arctg(????) действительного аргумента |x|<1 с использованием рекурсии.
17) Построить и записать алгоритм вычисления значения функции arctg(????)
????
действительного аргумента |x|<1 с использованием рекурсии.
18) Построить и записать алгоритм вычисления значения функции arctg(????) +
1
????
действительного аргумента |x|<1 с использованием рекурсии.
Страница 2 из 5
19) Построить и записать алгоритм вычисления значения функции sh(????) действительного аргумента x с использованием рекурсии.
20) Построить и записать алгоритм вычисления значения функции sh(????)
????
действительного аргумента x с использованием рекурсии.
21) Построить и записать алгоритм вычисления значения функции sh(????) − ???? действительного аргумента x с использованием рекурсии.
22) Построить и записать алгоритм вычисления значения функции ch(????) действительного аргумента x с использованием рекурсии.
23) Построить и записать алгоритм вычисления значения функции
????ch(????) действительного аргумента x с использованием рекурсии.
24) Построить и записать алгоритм вычисления значения функции ch(????) − 1 действительного аргумента x с использованием рекурсии.
25) Построить и записать алгоритм вычисления значения функции arth(????) действительного аргумента |x|<1 с использованием рекурсии.
26) Построить и записать алгоритм вычисления значения функции arth(????)
????
действительного аргумента |x|<1 с использованием рекурсии.
27) Построить и записать алгоритм вычисления значения функции arth(????) − ???? действительного аргумента |x|<1 с использованием рекурсии.
28) Построить и записать алгоритм вычисления значения функции arcsin(????) действительного аргумента |x|<1 с использованием рекурсии.
29) Построить и записать алгоритм вычисления значения функции arcsin(????)
????
действительного аргумента |x|<1 с использованием рекурсии.
30) Построить и записать алгоритм вычисления значения функции arcsin(????) − ???? действительного аргумента |x|<1 с использованием рекурсии.
31) Построить и записать алгоритм вычисления значения производной
????
????????
(????exp(????)) действительного аргумента x с использованием рекурсии.
32) Построить и записать алгоритм вычисления значения функции
????
????????
(????√1 + ????) действительного аргумента |x|<1 с использованием рекурсии.
33) Построить и записать алгоритм вычисления значения функции
????
????????
(???? ln(1 + ????)) действительного аргумента |x|<1 с использованием рекурсии.
34) Построить и записать алгоритм вычисления значения функции
????
????????
(???? sin(????)) действительного аргумента x с использованием рекурсии.
35) Построить и записать алгоритм вычисления значения функции
????
????????
(???? cos(????)) действительного аргумента x с использованием рекурсии.
36) Построить и записать алгоритм вычисления значения функции
????
????????
(????arctg(????)) действительного аргумента |x|<1 с использованием рекурсии.
37) Построить и записать алгоритм вычисления значения функции
????
????????
(????sh(????)) действительного аргумента x с использованием рекурсии.
38) Построить и записать алгоритм вычисления значения функции
????
????????
(????ch(????)) действительного аргумента x с использованием рекурсии.
39) Построить и записать алгоритм вычисления значения функции
????
????????
(????arth(????)) действительного аргумента |x|<1 с использованием рекурсии.
40) Построить и записать алгоритм вычисления значения функции
????
????????
(????arcsin(????)) действительного аргумента |x|<1 с использованием рекурсии.
Страница 3 из 5
СПРАВОЧНАЯ ИНФОРМАЦИЯ
Структурное программирование (подпрограммы) в C++
1) Текст программы, вычисляющей значение факториала с использованием рекурсивной
функции (подпрограммы)
#include
// Программа вычисляет значение факториала целого числа в диапазоне от 0 до 170
// с использованием рекурсивной функции (подпрограммы)
// Объявление функции в формате:
// [тип_возвращаемого_значения] имя_функции([тип_аргументов] имена_аргументов) double faktor(
unsigned short int n);
// Основная функция main(): int main()
{
// Директива, позволяющая выводить кириллицу на экран без перекодировки: setlocale(LC_ALL,
"Russian"
);
// Объявление пременных: unsigned long int number;
// number - натуральное число double fakt;
// fakt - значение факториала
// Ввод значения натурального числа с проверкой
// его принадлежности интервалу от 0 до 170: do
{ system(
"cls"
); cout <<
"Программа вычисляет значение факториала целого числа"
<< endl; cout <<
"в диапазоне от 0 до 170"
<< endl << endl; cout <<
"Введите число (от 0 до 170): "
; cin >> number;
} while
(number<0 || number>170);
// Использование ранее объявленной функции: fakt = faktor(number);
// Вывод результата в формате с фиксированной запятой (fixed)
// с точностью 0 знаков после запятой (cout.precision(0)): cout << number <<
"! = "
<< fixed << cout.precision(0) << fakt << endl << endl;
// Один из способов задержки экрана без дополнительного сообщения
// "Для продолжения нажмите любую клавишу . . .": system(
"pause"
);
// Значение возвращаемое функцией main(): return
0;
}
// Описание ранее объявленной функции double faktor(
unsigned short int n)
{
// Значение, возвращаемое функцией faktor() при n==0 [ 0!=1 ]: if
(n==0) return
1;
// Значение, возвращаемое функцией faktor() при n>0 [ n!=(n-1)!*n ]: else return faktor(n-1)*n;
}
Страница 4 из 5
Описание принципов структурного программирование приведено в [1, гл. 2], [2, гл. 3] и [3,
Chapter 5, 6].
2) Типы данных С++
Таблица 1 – Типы данных С++
Тип
Обозначение
Диапазон
значений
Раз
мер,
байт
логический bool true и false
– знаковый символьный char (signed char)
–128…127 1 беззнаковый символьный unsigned char
0…255 1 простой знаковый целый int (short, short int, signed int, signed short, signed short int)
–32.768…32.767 2 простой беззнаковый целый unsigned int (unsigned short, unsigned short int)
0…65.535 2 расширенный знаковый целый long (long int, signed long int)
0…4.294.967.295 4 расширенный беззнаковый целый unsigned long (unsigned long int)
–2.147.483.648…
+2.147.483.647 4 с плавающей запятой простой точности float
1,1
10
–38
…3,4
10
+38 4 с плавающей запятой двойной точности double
2,2
10
–308
…1,7
10
+38 8 расширенный с плавающей запятой двойной точности long double
3,3
10
–4932
…1,1
10
+4932 10
3) Основные операции С++
Таблица 2 – Основные операции С++
Операции
Описание
Пример
+; –; *; / сложение; вычитание; умножение; деление a+b; a–b; a*b; a/b
% остаток от деления a%b
<; <=
>; >= отношение ab; a>=b
= присваивание a=b
==
!= равно не равно a==b a!=b
&&
|| логическое «И» логическое «ИЛИ» a>=b && a!=c a>=b || a!=c
+=
–=
*=
/=
%= сложение с присваиванием вычитание с присваиванием умножение с присваиванием деление с присваиванием остаток от деления с присваиванием a+=b (эквивалентно a=a+b) a–=b (эквивалентно a=a–b) a*=b (эквивалентно a=a*b) a/=b (эквивалентно a=a/b) a%=b (эквивалентно a=a%b)
++
–– увеличение на 1 уменьшение на 1 a++ (эквивалентно a=a+1) a–– (эквивалентно a=a–1)
?:
Операция условие a ? b : c (если а, то b, если не a, то c) max = (x > y) x : y abs = (x > 0) x : –x
Описание типов данных и выражений приведено в [2, с. 67–85] и [3, Chapter 2].
Страница 5 из 5
4) Библиографический список
1. Павловская, Т.А. С/С++. Программирование на языке высокого уровня / Т.А. Павловская. –
СПб.: Питер, 2003. – 461 с.
2. Савич, У. Программирование на С++ / У. Савич. – СПб.: Питер, 2004. – 781 с.
3. Шилдт, Герб (Schildt, Herb) Руководство по С++ для начинающих (C++ Beginner's Guide). –
http://go.microsoft.com/fwlink/?LinkId=115303
5) Содержание отчета:
1. Титульный лист.
2. Текст задания для своего варианта.
3. Алгоритмы программы.
4. Текст программы на С++ с комментариями.
5. Контрольный пример (со скриншотом результата работы программы).
6. Вывод по работе.