Лабораторная работаПрограммированиеГод: 2024ТУСУР: Томский государственный университет систем управления и радиоэлектроники
👁 13💼 0

Готовая лабораторная работа: Файлы и рекурсия в Pascal

Загружена: 24.02.2026 11:20

Практическая лабораторная по программированию на Pascal. Покрыты операции с типизированными файлами (чтение/запись, подсчёт суммы последних элементов), реализация рекурсивных функций для суммы степеней, работа с односвязными списками и построение спирали в GraphABC. Полезно для отработки алгоритмов и готовых листингов.

Содержание

Лабораторная работа № 4. «Программирование» (Вариант 10)

Задание (общее):
Лабораторная работа № 4 состоит из двух задач. Первая задача посвящена созданию программ, отражающих приемы работы со списками. Второе задание посвящено созданию программ в графическом режиме.

Задача №1
Используйте линейные списки для хранения последовательности чисел. Опишите процедуру, которая вставляет:
а) новый элемент Е после первого элемента непустого списка;
б) новый элемент Е1 за каждым вхождением элемента Е.

Требования к оформлению отчета:
1.1 Описание алгоритма решения задачи.
1.2 Описание используемых переменных.
1.3 Блок-схема алгоритма.
1.4 Тестирование программы.

Задача №2
Построить спираль вокруг начала координат с n витками и внешним радиусом r; начальное направление спирали образует с осью x угол α.
Параметрическое представление спирали:
x = r cos t, y = r sin t, r = t/2, α ≤ t ≤ 2π n

Требования к оформлению отчета:
2.1 Описание алгоритма решения задачи.
2.2 Описание используемых переменных.
2.3 Блок-схема алгоритма.
2.4 Тестирование программы.


Лабораторная работа № 3. «Программирование» (Вариант 10)

Задание (общее):
Лабораторная работа № 3 состоит из двух задач. Первая задача посвящена созданию программ, отражающих приемы работы с файлами. Необходимо в начале программы создать файл (элементы файла вводятся с клавиатуры или генерируются случайным образом), а в конце программы сначала вывести на экран содержимое созданного файла, а затем отразить полученные результаты. Во второй задаче необходимо составить программу, реализующую рекурсивный алгоритм.

Задача №1
Type fr = file of real;
Описать функцию s3(f), значением которой является сумма последних трех элементов файла f, имеющего тип fr и содержащего не менее 3 элементов.
Указание: введите файл f (последний элемент = 0) и вычислите функцию s3(f).

Требования к оформлению отчета:
1.1 Описание алгоритма решения задачи.
1.2 Описание используемых переменных и обоснование выбора типа для всех переменных.
1.3 Блок-схема алгоритма.
1.4 Тестирование программы.

Задача №2
type
reals = file of real;
var f : reals;
Опишите рекурсивную функцию sum (n) для нахождения суммы:
$\sum_{i = 1}^{}{(a\lbrack i\rbrack)}^{n}$, где a
i
i — элемент файла f.
Указание. Пусть функция f(k) вычисляет сумму a
1
1^n^+a
2
2^n^+...+a
k
k^n^ .
Нам надо вычислить f(n).
Определим f(k) рекурсивно:

если k=1, то f(k)=a
1
1^n^ ;

если k>1, то значение функции равно сумме a
k
k^n^ и f(k--1)

Требования к оформлению отчета:
2.1 Описание алгоритма решения задачи.
2.2 Описание используемых переменных и обоснование выбора типа для всех переменных.
2.3 Блок-схема алгоритма.
2.4 Тестирование программы.

Подробное описание

📘 О чем эта работа

В комплекте представлены две лабораторные работы по дисциплине «Программирование» на языке Pascal. Первая часть посвящена работе с типизированными файлами (тип 'file of real') и содержит задачу на вычисление суммы последних трёх элементов файла (функция s3) и задачу на рекурсивный подсчёт суммы степеней элементов файла (функция Sum). Вторая работа рассматривает структуры данных (односвязный список) и графический модуль GraphABC для рисования спирали.

📚 Что внутри

Документы включают подробные описания алгоритмов, обоснование выбора типов переменных и полные листинги программ на Pascal:

  • Листинг к задаче с типом fr = file of real, процедура FInput для заполнения файла (input.dat), функция s3 для суммы трёх последних элементов; обработка случая, когда в файле меньше трёх чисел.
  • Рекурсивная функция Sum(n,k) для вычисления суммы Power(a[i], n) по элементам файла (файл 'data'), использование модулей Math и Crt, демонстрация Randomize и форматированного вывода.
  • Реализация односвязного списка: тип node, процедуры out_list, find_e_nums, insert_after, paste_after_e и освобождение памяти; формирование списка случайными числами в диапазоне -10..10 и пример вставок элементов.
  • Графическая программа на GraphABC: процедура DrawSpiral с параметрическим описанием спирали x = xst + round(r*cos(t)), y = yst - round(r*sin(t)); управление окном, ввод n и r и отрисовка по шагу.
  • Блок-схемы алгоритмов и тестовые сценарии с примерами ввода/вывода и проверками на корректность (пустой список, недостаток элементов в файле и т.д.).

📊 Для кого подходит

Студентам и преподавателям курсов по программированию и алгоритмам: специальности, связанные с информатикой и ПИ, для упражнений по файловому вводу-выводу, рекурсии, структурам данных и простому графическому программированию в среде Pascal.

✨ Особенности

Документы содержат готовые рабочие листинги, комментарии к коду и обоснование типов переменных (например, byte для счётчика в FInput, Real для числовых значений и степени). Примеры демонстрируют: как корректно применять seek/filesize для доступа к последним элементам файла; как реализовать рекурсивную функцию с базовым случаем; как корректно вставлять элементы в односвязный список и учитывать смещение при множественных вставках; как рисовать параметрическую спираль с маленьким шагом параметра.

❓ Частые вопросы

Подойдет ли для моего ВУЗа?
Структура работ включает цель, описание алгоритма, листинги и выводы, соответствует стандартам лабораторных по программированию.

Можно ли адаптировать?
Да. Листинги легко модифицировать: менять имена файлов ('input.dat', 'data'), диапазоны случайных чисел, критерии выхода и шаг отрисовки спирали.

📚 Дополнительно

В тексте указаны используемые модули (Math, Crt, GraphABC), подробные комментарии к каждой процедуре и рекомендации по тестированию (проверка случаев m=0, filesize<3, базовый случай рекурсии). Это ускоряет изучение практических приёмов работы с файлами и структурами данных в Pascal и даёт готовую базу для домашних заданий и демонстраций.