Алгоритмические языки и программирование
АЛГОРИТМИЧЕСКИЕ ЯЗЫКИ И ПРОГРАММИРОВАНИЕ
Методические указания по лабораторным работам
для студентов специальности
230100.62 – Информатика и вычислительная техника
Разработал
доцент кафедры ИТИС
________________Л.И.Винник
_____ ________________2011 г.
Принято на заседании кафедры
Заведующий кафедрой
______________А.Л. Гавриков
_____ ________________2011 г.
Cодержание
Правила оформления документации разрабатываемой программы.. 3
Последовательность защиты лабораторной работы.. 4
Сроки выполнения и оценка выполнения лабораторных работ. 5
Лабораторная работа №1 “Решение типовой задачи”. 6
Основные цели работы.. 6
Требования к разрабатываемой программе. 6
Варианты индивидуального задания. 6
Лабораторная работа № 2 ”Решение задач, заданных графически»”. 7
Основные цели работы.. 7
Требования к разрабатываемой программе. 7
Варианты индивидуального задания. 7
Лабораторная работа №3 ”Организация циклических вычислений”. 18
Основные цели работы.. 18
Требования к разрабатываемой программе. 18
Варианты индивидуального задания. 18
Лабораторная работа № 4 ”Сортировка массивов”. 20
Основные цели работы.. 20
Требования к разрабатываемой программе. 20
Варианты индивидуального задания. 21
Лабораторная работа №5 ”Организация рекурсивных вычислений”. 25
Основные цели работы.. 25
Требования к разрабатываемой программе. 25
Варианты индивидуального задания. 25
Лабораторная работа № 6 ”Создание и ведение баз данных”. 33
Основные цели работы.. 33
Требования к разрабатываемой программе. 33
Варианты индивидуальных заданий. 34
Лабораторная работа №7 Абстрактные типы данных (АТД): список, стек, очередь. Реализация АТД на базе линейного однонаправленного списка. 36
Цель работы.. 36
Требования к разрабатываемой программе: 36
Варианты индивидуального задания. 39
Общие положения
Основной задачей лабораторного практикума является формирование навыков разработки программных продуктов с продуманным уровнем качества. Лабораторный практикум выполняется в первом и втором семестрах первого курса. Базовым языком программирования является язык высокого уровня С (стандарт ANSI, C 89).
Правила оформления документации разрабатываемой программы
Отчет должен содержать следующие разделы:
Задание на лабораторную работу
I. Постановка задачи (внешние спецификации)
1. Наименование задачи – краткое, емкое наименование, по возможности отражается суть проблемы.
2. Словесное описание:изложение сути задачи на языке предметной области (сбор информации о задаче, формулировка условия задачи, определение конечных целей решения задачи, определение формы выдачи результатов, описание данных).
- Вход - описываются входные данные;
- Выход – описываются выходные данные.
Внешние спецификации данных
Объект программы | Имя этого объекта в программе | Тип данных | Диапазоны представления | Простая/ структура | Вход/ выход/ Константа |
Внешние спецификации функций программы
Описываются функциональные требования к разрабатываемой программе и ее функциональные возможности.
Математическая формулировка задачи
- разработка математической модели решаемой задачи;
- обоснование выбора структуры данных;
- обоснование ограничений на данные.
Спецификации интерфейса
Внешние данные тестирования
Описываются возможные ошибки и их программная обработка. Анализируются ошибки, которые могут возникнуть из-за неправильных действий пользователя.
Типы ошибок:
- ошибки при вводе данных (неправильный ввод):
o данные вне диапазона;
o данные в диапазоне, но неправильное (неверное) по конкретному значению;
o неправильный числовой формат.
- ошибки, возникающие при вычислениях.
Номер теста | Назначение теста | Значения исходных данных | Ожидаемый результат | Реакция программы |
7. Пример работающей программы(руководство пользователя)
II Проектирование задачи
Наименование программы
Уточненное словесное описание задачи
Выбор метода решения поставленной задачи
Уточненные глобальные данные программы и пользовательские типы
Объект программы | Имя этого объекта в программе | Характеристики | Как используется в программе | ||
Тип данных | Диапазоны представления | Прост/структура/ константа | |||
Декомпозиция функций
Назначение | Имя | Параметры | Процедура/ функция | Тестируется/ не тестируется | |
Вход : тип | Выход :тип | ||||
6. Алгоритмизация
Приводятся алгоритмы процедур/функций и программы
III Кодирование
Требования к исходному тексту программы:
Программа должна быть разработана в стиле структурного программирования. Структурные уровни должны отделяться отступами. Текст программы должен содержать комментарии:
- шапка (верхняя часть файла исходного текста):
- название программы;
- назначение программы (или данного файла в составе программы);
- автор (фамилия, имя, группа, курс);
- дата создания;
- комментирование глобальных переменных и констант:
- назначение переменных;
- комментирование функций:
- назначение функции;
- входные параметры;
- выходные параметры;
- комментирование сложных для понимания участков программы:
- назначение участка;
- описание механизма работы.
Y Выводы
Описываются результаты работы разработанной программы, ее функциональная пригодность, результаты тестирования, отладки и испытаний с оценкой полученных характеристик. Делается заключение о степени соответствия программы основным требованиям, определенным этапа постановки задачи и проектирования.
Основные цели работы
Основными целями работы являются:
- получение навыков документирования разрабатываемых программ с применением метода нисходящего проектирования и принципов структурного программирования;
- использование средств разработки, тестирования и отладки программ в интегрированной среде программирования Turbo Pascal.
Требования к разрабатываемой программе
Программа должна удовлетворять требования по функциональному составу:
- ввод данных с контролем диапазона и нечислового ввода данных;
- обработка данных;
- вывод данных (форматный);
- разработка интерфейсов (заставка, завершающий экран, ввод данных, обработка ошибок ввода данных; вывод данных);
Варианты индивидуального задания
1. Лаборатория получает новую мебель. Выяснить, пройдет ли прямоугольный шкаф в дверь.
2. Хватит ли автомобилисту бензина, чтобы доехать до дачи и обратно.
3. Определить по атласу автомобильных дорог по какой из дорог быстрее доехать из пункта А в пункт Б.
4. Хватит ли денег на приобретение необходимых товаров.
5. Студенту выдали комплект книг. Найти стоимость самой дорогой книги.
6. Ребенок собирает в копилку монетки разного достоинства. Определить общую сумму накопленных денег в долларовом эквиваленте.
7. В институте имеется несколько аудиторий различной вместимости. Найти самую большую из них.
8. Определить стоимость телефонного разговора, учитывая, что в выходные дни действуют скидки (N%).
9. Ребенок пытается положить мяч в прямоугольную картонную коробку. Сможет ли он это сделать, не помяв ее.
10. Оптимальным считается вес человека, определяемый по формуле Рост(см)-100. Оптимален ли Ваш вес.
11. В лаборатории делают ремонт. Хватит ли купленной краски на его проведение.
12. Хватит ли любителю детективов времени, чтобы сегодня дочитать книгу до конца.
13. Смогут ли грузчики за один раз перевезти весь груз на лифте.
14. Путешественник провел незабываемое время, совершая круиз на теплоходе. Какова средняя скорость теплохода.
15. Гонщики велосипедисты завершили гонку на треке. С какой скоростью ехал победитель гонок.
16. Суть компьютерной игры состоит в том, что игрок вводит число N от 0 до 10, компьютер генерирует число R из того же диапазона. Игрок считается победителем в том случае если количество набранных им очков больше нуля, компьютер - в противном случае.
17. В квартире установлены счетчики на газ, воду и свет. Рассчитать квартплату и средний расход.
18. Сколько рулонов обоев нужно купить, чтобы хватило оклеить комнату.
19. Пеня начисляется с 10-го числа каждого месяца. Определить размер пени на момент оплаты счета.
20. В отборочных соревнования по спортивной гимнастике необходимо набрать определенное количество баллов по трем видам состязаний: брусья, кольца, перекладина. Попадет ли спортсмен в сборную.
Лабораторная работа № 2
”Решение задач, заданных графически»”
Основные цели работы
Целью работы является получение навыков разработки алгоритмов использованием управляющей структуры ветвление и ее тестирования.
Требования к разрабатываемой программе
При проведении декомпозиции разбить процедуру обработки данных на три: в первой процедуре определяются значения переменных А, В и С, во второй – по значениям переменных А, В, С определяются значения Х, У, Z, в третьей - по значениям переменных Х, У, Z определяются значения U и строка пояснительного текста.
Внешние данные тестирования обязательно должны содержать набор тестовых данных для трех областей и результаты вычислений.
Варианты индивидуального задания
Вариант 1 | |
Даны три целых числа A, B, C. Определить значения переменных X, Y, Z. Х = max(A, B, C); Y = min(A, B, C); Z = (A+B+C)/2; U определяется как функция X и Y, ее значение зависит от принадлежности переменных Х и У заштрихованным частям плоскости.. Разработать программу, которая по введенным пользователем целым числам А, В и С определяет значения X, Y, Z и U. Вывести значения А, B, С, X, Y, Z и U на экран дисплея, сопровождая пояснительным текстом. Пояснительный текст должен содержать сведения о том, какой области (D1, D2 или ни D1 ни D2) принадлежат переменные Х, У и по какой формуле при этом определялось значение переменной U. |
Вариант 2 | |
Даны три целых числа A, B, C. Определить значения переменных X, Y, Z. Если A>B>C, то Х=А2 , Y= B2, Z=C2, если A<B<C, то X=2*F, Y=2*b, Z=2*C, во всех остальных случаях Х=|А| , Y=|B|, Z=|C|. U определяется как функция X и Y, ее значение зависит от принадлежности переменных Х и У заштрихованным частям плоскости.. Разработать программу, которая по введенным пользователем целым числам А, В и С определяет значения X, Y, Z и U. Вывести значения переменных А, B, С, X, Y, Z и U на экран дисплея, сопровождая пояснительным текстом. Пояснительный текст должен содержать сведения о том, какой области (D1, D2 или ни D1 ни D2) принадлежат переменные Х, У и по какой формуле при этом определялось значение переменной U. |
Вариант 3 | |
Даны три целых числа A, B, C. Определить значения переменных X, Y, Z. Х = max(A+B+C,A*B*C); Y = min(A2+B2, В2+C2); Если С>0, то Z = A*B-С, иначеZ=A*B+C/2; U определяется как функция X и Y, ее значение зависит от принадлежности переменных Х и У заштрихованным частям плоскости. Разработать программу, которая по введенным пользователем целым числам А, В и С определяет значения X, Y, Z и U. Вывести значения переменных А, B, С, X, Y, Z и U на экран дисплея, сопровождая пояснительным текстом. Пояснительный текст должен содержать сведения о том, какой области (D1, D2 или ни D1 ни D2) принадлежат переменные Х, У и по какой формуле при этом определялось значение переменной U. |
Вариант 4 | |
Даны три целых числа A, B, C. Определить значения переменных X, Y, Z. Если хотя бы одно из чисел А, В и С принадлежит интервалу [-1, 1], то X=A/2, Y=2*B, Z=C2 , иначе X=A2, y=(B+C)/2, Z=(A+B+C)/2. U определяется как функция X и Y, ее значение зависит от принадлежности переменных Х и У заштрихованным частям плоскости. Разработать программу, которая по введенным пользователем целым числам А, В и С определяет значения X, Y, Z и U. Вывести значения переменных А, B, С, X, Y, Z и U на экран дисплея, сопровождая пояснительным текстом. Пояснительный текст должен содержать сведения о том, какой области (D1, D2 или ни D1 ни D2) принадлежат переменные Х, У и по какой формуле при этом определялось значение переменной U. |
Вариант 5 | |
Даны три целых числа A, B, C. Определить значения переменных X, Y, Z. Если А – нечетное, то Х=А, в противном случае Х=А/2 Если В кратно 3, то У=В^2, если B при делении на 3 дает остаток 1, то У=В; в остальных случаях У=В/3. Z=С^2+A*B U определяется как функция X и Y, ее значение зависит от принадлежности переменных Х и У заштрихованным частям плоскости. Разработать программу, которая по введенным пользователем целым числам А, В и С определяет значения X, Y, Z и U. Вывести значения переменных А, B, С, X, Y, Z и U на экран дисплея, сопровождая пояснительным текстом. Пояснительный текст должен содержать сведения о том, какой области (D1, D2 или ни D1 ни D2) принадлежат переменные Х, У и по какой формуле при этом определялось значение переменной U. |
Вариант 6 | |
Даны три целых числа A, B, C. Определить значения переменных X, Y, Z. Х = max(min(A, B), C); Y = max(A, B); Z = min^2(A,B,C)+3; U определяется как функция X и Y, ее значение зависит от принадлежности переменных Х и У заштрихованным частям плоскости. Разработать программу, которая по введенным пользователем целым числам А, В и С определяет значения X, Y, Z и U. Вывести значения переменных А, B, С, X, Y, Z и U на экран дисплея, сопровождая пояснительным текстом. Пояснительный текст должен содержать сведения о том, какой области (D1, D2 или ни D1 ни D2) принадлежат переменные Х, У и по какой формуле при этом определялось значение переменной U |
Вариант 7 | |
Даны три целых числа A, B, C. Определить значения переменных X, Y, Z. Пусть М-количество единиц числа А, а N -количество десятков числа В. Если M*N>15, то Х = M+N, a Y= M - N; Иначе X= M*N/10, Y=0,1* M*N Если С>0, то Z=0, иначе Z=1. U определяется как функция X и Y, ее значение зависит от принадлежности переменных Х и У заштрихованным частям плоскости. Разработать программу, которая по введенным пользователем целым числам А, В и С определяет значения X, Y, Z и U. Вывести значения переменных А, B, С, X, Y, Z и U на экран дисплея, сопровождая пояснительным текстом. Пояснительный текст должен содержать сведения о том, какой области (D1, D2 или ни D1 ни D2) принадлежат переменные Х, У и по какой формуле при этом определялось значение переменной U. |
Вариант 8 | |
U. | Даны три целых числа A, B, C. Определить значения переменных X, Y, Z. Х = min(A+B, A+C, B+C); Y = max(A, 2*B, 3*C); Z = X/Y; U определяется как функция X и Y, ее значение зависит от принадлежности переменных Х и У заштрихованным частям плоскости. Разработать программу, которая по введенным пользователем целым числам А, В и С определяет значения X, Y, Z и U. Вывести значения переменных А, B, С, X, Y, Z и U на экран дисплея, сопровождая пояснительным текстом. Пояснительный текст должен содержать сведения о том, какой области (D1, D2 или ни D1 ни D2) принадлежат переменные Х, У и по какой формуле при этом определялось значение переменной |
Вариант 9 | |
Даны три целых числа A, B, C. Определить значения переменных X, Y, Z. Среди А,В,С есть одно отрицательное число. Переменной Х присвоить это отрицательное число. Среди двух оставшихся выбрать наибольшее и присвоить это значение У, оставшееся будет Z. U определяется как функция X и Y, ее значение зависит от принадлежности переменных Х и У заштрихованным частям плоскости. Разработать программу, которая по введенным пользователем целым числам А, В и С определяет значения X, Y, Z и U. Вывести значения переменных А, B, С, X, Y, Z и U на экран дисплея, сопровождая пояснительным текстом. Пояснительный текст должен содержать сведения о том, какой области (D1, D2 или ни D1 ни D2) принадлежат переменные Х, У и по какой формуле при этом определялось значение переменной U. |
Вариант 10 | |
Даны три целых числа A, B, C. Определить значения переменных X, Y, Z. Среди А,В,С есть одно положительное число. Переменной Х присвоить это значение. Среди двух оставшихся выбрать наименьшее, увеличить его в пять раз и присвоить Z. Модуль оставшегося числа присвоить У. U определяется как функция X и Y, ее значение зависит от принадлежности переменных Х и У заштрихованным частям плоскости. Разработать программу, которая по введенным пользователем целым числам А, В и С определяет значения X, Y, Z и U. Вывести значения переменных А, B, С, X, Y, Z и U на экран дисплея, сопровождая пояснительным текстом. Пояснительный текст должен содержать сведения о том, какой области (D1, D2 или ни D1 ни D2) принадлежат переменные Х, У и по какой формуле при этом определялось значение переменной U |
Вариант 11 | |
Даны три целых числа A, B, C. Определить значения переменных X, Y, Z. Определить из А,В,С есть одно положительное число. Переменной Х присвоить это значение. Среди двух оставшихся выбрать наименьшее. Увеличить его в 5 раз и присвоить Z. Модуль оставшегося числа присвоить Y. U определяется как функция X и Y, ее значение зависит от принадлежности переменных Х и У заштрихованным частям плоскости. Разработать программу, которая по введенным пользователем целым числам А, В и С определяет значения X, Y, Z и U. Вывести значения переменных А, B, С, X, Y, Z и U на экран дисплея, сопровождая пояснительным текстом. Пояснительный текст должен содержать сведения о том, какой области (D1, D2 или ни D1 ни D2) принадлежат переменные Х, У и по какой формуле при этом определялось значение переменной U. |
Вариант 12 | |
Даны три целых числа A, B, C. Определить значения переменных X, Y, Z. Если А<B<C, то X=max(A+B+C,A*B*C), Y=|C|, Z=X-Y, Если А>B>C, то X=A, Y=B, Z=C, Иначе X=min(A+B,B+C) U определяется как функция X и Y, ее значение зависит от принадлежности переменных Х и У заштрихованным частям плоскости. Разработать программу, которая по введенным пользователем целым числам А, В и С определяет значения X, Y, Z и U. Вывести значения переменных А, B, С, X, Y, Z и U на экран дисплея, сопровождая пояснительным текстом. Пояснительный текст должен содержать сведения о том, какой области (D1, D2 или ни D1 ни D2) принадлежат переменные Х, У и по какой формуле при этом определялось значение переменной U |
Вариант 13 | |
Даны три целых числа A, B, C. Определить значения переменных X, Y, Z. Х = min(max(A, B), C); Y = max(B,C); Z = X/(Y+5). U определяется как функция X и Y, ее значение зависит от принадлежности переменных Х и У заштрихованным частям плоскости. Разработать программу, которая по введенным пользователем целым числам А, В и С определяет значения X, Y, Z и U. Вывести значения переменных А, B, С, X, Y, Z и U на экран дисплея, сопровождая пояснительным текстом. Пояснительный текст должен содержать сведения о том, какой области (D1, D2 или ни D1 ни D2) принадлежат переменные Х, У и по какой формуле при этом определялось значение переменной U. |
Вариант 14 | |
Даны три целых числа A, B, C. Определить значения переменных X, Y, Z. Если А+В+С<1, то Х = min(A, B, C), Y = max(A, B), Z=min((A+B+C)/2,A*B*C); Иначе X=A, Y=B, Z = C. U определяется как функция X и Y, ее значение зависит от принадлежности переменных Х и У заштрихованным частям плоскости. Разработать программу, которая по введенным пользователем целым числам А, В и С определяет значения X, Y, Z и U. Вывести значения переменных А, B, С, X, Y, Z и U на экран дисплея, сопровождая пояснительным текстом. Пояснительный текст должен содержать сведения о том, какой области (D1, D2 или ни D1 ни D2) принадлежат переменные Х, У и по какой формуле при этом определялось значение переменной U. |
Вариант 15 | |
Даны три целых числа A, B, C. Определить значения переменных X, Y, Z. Если А и В отрицательны, то Х=|A|, Y=|B|, Z=|C|; если отрицательно только одно из них, то Х=А+0,5,У=В+0,5, Z=C+0,5, если оба значения неотрицательны и ни одно из них не принадлежит отрезку [0,5;2,0], то Х=А/10, Y=B/10, Z=C, иначеY=B, Z=C. U определяется как функция X и Y, ее значение зависит от принадлежности переменных Х и У заштрихованным частям плоскости. Разработать программу, которая по введенным пользователем целым числам А, В и С определяет значения X, Y, Z и U. Вывести значения переменных А, B, С, X, Y, Z и U на экран дисплея, сопровождая пояснительным текстом. Пояснительный текст должен содержать сведения о том, какой области (D1, D2 или ни D1 ни D2) принадлежат переменные Х, У и по какой формуле при этом определялось значение переменной U. |
Вариант 16 | |
Даны три целых числа A, B, C. Определить значения переменных X, Y, Z. Если Ln|A+B|≥Ln|C|, то в противном случае X=A*B, Y=B*C, Z=A*C. U определяется как функция X и Y, ее значение зависит от принадлежности переменных Х и У заштрихованным частям плоскости. Разработать программу, которая по введенным пользователем целым числам А, В и С определяет значения X, Y, Z и U. Вывести значения переменных А, B, С, X, Y, Z и U на экран дисплея, сопровождая пояснительным текстом. Пояснительный текст должен содержать сведения о том, какой области (D1, D2 или ни D1 ни D2) принадлежат переменные Х, У и по какой формуле при этом определялось значение переменной U. |
Вариант 17 | |
Даны три целых числа A, B, C. Определить значения переменных X, Y, Z. Х = min(A+В,В+С, А+С), Y = max(A*В,В*С, А*С)-2, Если С>1, то Z=Y-X, иначе Z=X+Y. U определяется как функция X и Y, ее значение зависит от принадлежности переменных Х и У заштрихованным частям плоскости. Разработать программу, которая по введенным пользователем целым числам А, В и С определяет значения X, Y, Z и U. Вывести значения переменных А, B, С, X, Y, Z и U на экран дисплея, сопровождая пояснительным текстом. Пояснительный текст должен содержать сведения о том, какой области (D1, D2 или ни D1 ни D2) принадлежат переменные Х, У и по какой формуле при этом определялось значение переменной U. |
Вариант 18 | |
Даны три целых числа A, B, C. Определить значения переменных X, Y, Z. Если (А+В+С) делится на 3 с остатком 1, то X=A-B, Y=B-C, Z=A-C; если с остатком 2, то X=A+B, Y=B+C, Z=A+C, если без остатка, то X=A, Y=2*B, Z=3*C. U определяется как функция X и Y, ее значение зависит от принадлежности переменных Х и У заштрихованным частям плоскости. Разработать программу, которая по введенным пользователем целым числам А, В и С определяет значения X, Y, Z и U. Вывести значения переменных А, B, С, X, Y, Z и U на экран дисплея, сопровождая пояснительным текстом. Пояснительный текст должен содержать сведения о том, какой области (D1, D2 или ни D1 ни D2) принадлежат переменные Х, У и по какой формуле при этом определялось значение переменной U. |
Вариант 19 | |
Даны три целых числа A, B, C. Определить значения переменных X, Y, Z. Х = min(max(A, C),B); Y = min(B, C); Z = max(A, B, C)-1. U определяется как функция X и Y, ее значение зависит от принадлежности переменных Х и У заштрихованным частям плоскости. Разработать программу, которая по введенным пользователем целым числам А, В и С определяет значения X, Y, Z и U. Вывести значения переменных А, B, С, X, Y, Z и U на экран дисплея, сопровождая пояснительным текстом. Пояснительный текст должен содержать сведения о том, какой области (D1, D2 или ни D1 ни D2) принадлежат переменные Х, У и по какой формуле при этом определялось значение переменной U. |
Вариант 20 | |
Даны три целых числа A, B, C. Определить значения переменных X, Y, Z. Если А+В>C, то X=A+B, , Z= ln|B+C|; иначе X=A-C, Y=A2-C2, Z=ln|A*C|. U определяется как функция X и Y, ее значение зависит от принадлежности переменных Х и У заштрихованным частям плоскости. Разработать программу, которая по введенным пользователем целым числам А, В и С определяет значения X, Y, Z и U. Вывести значения переменных А, B, С, X, Y, Z и U на экран дисплея, сопровождая пояснительным текстом. Пояснительный текст должен содержать сведения о том, какой области (D1, D2 или ни D1 ни D2) принадлежат переменные Х, У и по какой формуле при этом определялось значение переменной U. |
Лабораторная работа №3
”Организация циклических вычислений”
Основные цели работы
Целью работы является получение навыков при организации циклических вычислений.
Требования к разрабатываемой программе
При выводе данных организовать постраничный просмотр результатов значений х, у, z.
Для расчета значений функции двух переменных организовать отдельную функцию.
Примерный вид интерфейса вывода результата с организацией постраничного просмотра приведен на рисунке 1.
Рисунок 1
Варианты индивидуального задания
Составить программу расчета значений функции двух переменных z=f(x,y) с использованием операторов цикла. Значения переменных х и y изменяются соответственно от Xнач до Хкон с шагом hx (внешний цикл) и от Унач до Укон с шагом hy (внутренний цикл). Значения Хнач, Хкон, Нх, Унач, Укон, Ну вводятся с клавиатуры (вещественного типа).
№ варианта | Функция | Операторы цикла | |
внешний | внутренний | ||
While | While | ||
3,5 | While | Repeat | |
While | For | ||
Repeat | Repeat | ||
Repeat | for | ||
For | While | ||
For | Repeat | ||
For | For | ||
While | While | ||
While | Repeat | ||
While | For | ||
Repeat | Repeat | ||
Repeat | For |
№ варианта | Функция | Операторы цикла | |
внешний | внутренний | ||
For | While | ||
For | Repeat | ||
For | For | ||
While | While | ||
While | Repeat | ||
While | For | ||
Repeat | Repeat |
Лабораторная работа №4
”Организация рекурсивных вычислений”
Основные цели работы
Целью работы является получение навыков организации рекурсивных вычислений
Требования к разрабатываемой программе
В математической формулировке задачи должны быть приведены рекуррентные соотношения для первого и второго заданий.
Во втором задании при выводе результата вывести:
- расчетное значение функции для итерационного и рекурсивного алгоритмов, а также стандартное значение функции
- значение количества членов ряда, которое необходимо просуммировать для достижения указанной точности
- сравнить время выполнения алгоритмов, используя стандартную функцию gettime модуля dos.
Варианты индивидуального задания
Вариант 1
1. Вычислить значение функции Х(n) при заданном значении n, используя рекурсию. Знаки перед корнями периодически повторяются группами по три: "-","+","-".
- Заданы: значение х, точность e. Составить подпрограмму расчета функции F(x) с точностью e, используя рекурсивный и итерационный алгоритмы решения задачи.
- Определить, какое количество членов ряда необходимо просуммировать для достижения указанной точности (сравнить результат суммирования со значением стандартной функции).
- Сравнить время выполнения алгоритмов, используя стандартную функцию GetTime модуля Dos
F(x) | Диапазон аргумента | |
Arctg(x) | |x|<1 |
Вариант 2
1. Написать подпрограмму вычисления для заданного значения k.
2. Заданы: значение х, точность e. Составить подпрограмму расчета функции F(x) с точностью e, используя рекурсивный и итерационный алгоритмы решения задачи. Определить, какое количество членов ряда необходимо просуммировать для достижения указанной точности (сравнить результат суммирования со значением стандартной функции). Сравнить время выполнения алгоритмов, используя стандартную функцию GetTime модуля Dos.
F(x) | Диапазон аргумента | |
Arcth(x) | |x|<1 |
Вариант 3
1. Дано натуральное число n. Найти (2n)! и 2n!!. Использовать рекурсивную функцию вычисления факториала.
2. Заданы: значение х, точность e. Составить подпрограмму расчета функции F(x) с точностью e, используя рекурсивный и итерационный алгоритмы решения задачи. Определить, какое количество членов ряда необходимо просуммировать для достижения указанной точности (сравнить результат суммирования со значением стандартной функции). Сравнить время выполнения алгоритмов, используя стандартную функцию GetTime модуля Dos.
F(x) | Диапазон аргумента | |
X<1 |
Вариант 4
1. Даны натуральные числа n,m. Найти наибольший общий делитель НОД(n,m). Использовать рекурсивную функцию вычисления НОД, основанную на соотношении НОД (n,m)=НОД (m,r), где r - остаток от деления n на m
2. Заданы: значение х, точность e. Составить подпрограмму расчета функции F(x) с точностью e, используя рекурсивный и итерационный алгоритмы решения задачи. Определить, какое количество членов ряда необходимо просуммировать для достижения указанной точности (сравнить результат суммирования со значением стандартной функции). Сравнить время выполнения алгоритмов, используя стандартную функцию GetTime модуля Dos.
F(x) | Диапазон аргумента | |
Вариант 5
1. Составить рекурсивную подпрограмму расчета чисел Фибоначчи U(n), которые определяются следующим образом:
.
2. Заданы: значение х, точность e. Составить подпрограмму расчета функции F(x) с точностью e, используя рекурсивный и итерационный алгоритмы решения задачи. Определить, какое количество членов ряда необходимо просуммировать для достижения указанной точности (сравнить результат суммирования со значением стандартной функции). Сравнить время выполнения алгоритмов, используя стандартную функцию GetTime модуля Dos.
F(x) | Диапазон аргумента | |
Вариант 6
1. Даны неотрицательные целые числа n и m. Составить рекурсивную подпрограмму вычисления
функции Аккермана:
Тестовые примеры:
2. Заданы: значение х, точность e. Составить подпрограмму расчета функции F(x) с точностью e, используя рекурсивный и итерационный алгоритмы решения задачи. Определить, какое количество членов ряда необходимо просуммировать для достижения указанной точности (сравнить результат суммирования со значением стандартной функции). Сравнить время выполнения алгоритмов, используя стандартную функцию GetTime модуля Dos.
F(x) |