Создание программ, отражающих приемы работы с файлами
Изучение синтаксиса и семантики программ. Использование языка Pascal для описания процедуры predlast(f), возвращающей предпоследний элемент файла f типа fr. Описание рекурсивной функции sum без параметров для нахождения суммы элементов файла f.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 23.09.2024 |
Размер файла | 20,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Кафедра компьютерных систем в управлении и проектировании (КСУП)
ОТЧЕТ
Лабораторная работа №3 по дисциплине «Программирование»
Содержание
1. Введение
2. Цель и задачи
2.1 Задача 1
2.2 Задача 2
3. Заключение
4. Список литературы
1. Введение
Сегодня практически все программы создаются с помощью языков программирования. Теоретически программу можно написать и на естественном языке (говорят: программирование на метаязыке), но из-за неоднозначности естественного языка автоматически перевести такую программу в машинный код пока невозможно.
Цель лабораторной работы -- научиться практическому программированию, поэтому и выбор языка программирования важен. В первую очередь язык программирования должен быть удобен для первоначального знакомства с программированием и хорош для обучения программированию. Именно для такой цели был выбран Паскаль.
2. Цель и задачи
Лабораторная работа № 3 состоит из двух задач. Первая задача посвящена созданию программ, отражающих приемы работы с файлами. Необходимо в начале программы создать, а в конце программы сначала вывести на экран содержимое созданного файла, а затем отразить полученные результаты. Во второй задаче необходимо составить программу, реализующую рекурсивный алгоритм. В ходе выполнения лабораторной работы № 3 необходимо составить программы на языке Паскаль.
2.1 Задача 1
type fr = file of real;
Описать процедуру predlast(f), значением которой является предпоследний элемент файла f, имеющего тип fr и содержащего не менее двух элементов. Указание: введите файл f (последний элемент = 0) и вычислите функцию predlast(f).
Решение:
Для описания процедуры predlast(f), которая возвращает предпоследний элемент файла f типа fr, можно использовать следующий подход на языке Pascal. Мы будем читать элементы файла, сохраняя два последних прочитанных значения, чтобы в конце получить предпоследний элемент.
Код для реализации процедуры predlast(f):
program PredlastElement;
type
fr = file of real;
function predlast(var f: fr): real;
var
current, previous: real;
endOfFile: boolean;
begin
previous:= 0; // Начальное значение, будет переписано
end0fFile:= false;
// Сначала перемещаемся в начало файла
reset(f);
// Читаем до конца файла, сохраняя два последних значения
while not eof(f) do
begin
read(f, current);
// Сохраняем предпоследний элемент
if not eof(f) then
begin
previous:= current;
end;
end;
// Если файл имеет по крайней мере два элемента, возвращаем предпоследний
if previous <> 0 then
predlast:= previous
else
writeln('Файл содержит меньше двух элементов');
end;
var
f: fr;
result: real;
begin
Assign(f, 'data.dat'); // Указываем файл, содержащий данные
Rewrite(f); // Создаем файл
// Заполняем файл (например)
write(f, 1.1);
write(f, 2.2);
write(f, 3.3);
write(f, 0.0); // Последний элемент = 0
Close(f);
// Теперь вызываем predlast для получения предпоследнего элемента
Assign(f, 'data.dat');
Reset(f);
result:= predlast(f);
writeln('Предпоследний элемент в файле: ', result:0:2);
Close(f);
end.
Вывод:
1. Мы создали тип fr для работы с файлами, содержащими числа с плавающей запятой.
2. Функция predlast принимает на вход файл и читает его до конца, запоминает текущий и предыдущий элементы.
3. В конце работы функции, возвращаем предпоследний элемент, если файл не пустой.
4. В основном блоке мы создаем файл, записываем туда несколько значений, а затем используем функцию predlast, чтобы вывести предпоследний элемент.
Важно помнить, что перед вызовом функции файл должен быть правильно инициализирован и содержать не менее двух элементов. Нужно внимательно обрабатывать файл, чтобы избежать ошибок при попытке чтения из пустого файла.
2.2 Задача 2
type
reals = file of real;
var f: reals;
Опишите рекурсивную функцию sum без параметров для нахождения суммы элементов файла f
Решение:
В языке программирования Pascal рекурсивная функция для нахождения суммы элементов файла f может быть написана следующим образом. Мы будем использовать файл типа reals, чтобы считать числа, и реализуем рекурсивный вызов для суммирования.
Пример кода:
program SumOfReals;
type
reals = file of real;
var
f: reals;
currentValue: real;
endOfFile: boolean;
function sum: real;
var
tempSum: real;
begin
// Проверяем, не достигли ли конца файла
if eof(f) then
begin
// Если конец файла, возвращаем 0
sum:= 0;
exit;
end;
// Считываем текущее значение из файла
read(f, currentValue);
// Рекурсивно вызываем sum для суммирования оставшихся элементов
tempSum:= sum;
// Возвращаем сумму текущего элемента и суммы оставшихся элементов
sum:= currentValue + tempSum;
end;
begin
// Пример открытия файла и вызова функции
assign(f, 'data.dat'); // файл с числовыми данными
reset(f);
// Вызываем функцию и выводим результат
writeln('Сумма элементов файла: ', sum:0:2);
// Закрываем файл
close(f);
end.
Вывод:
1. Тип файла: Мы определяем тип reals, который обозначает файл, содержащий вещественные числа.
2. Переменная для текущего значения: Переменная currentValue будет хранить текущее значение, считываемое из файла.
3. Рекурсивная функция sum: Проверяет, достигнут ли конец файла с помощью eof(f).
Если конец файла достигнут, функция возвращает 0. Если еще есть данные, считывает текущее значение с помощью read(f, currentValue) и вызывает саму себя для получения суммы оставшихся элементов. Возвращает сумму текущего значения и суммы оставшихся элементов.
Главная программа:
Открывает файл, считывает сумму и выводит её на экран.
Закрывает файл после завершения работы.
Этот пример предполагает, что файл data.dat уже существует и содержит вещественные числа.
3. Заключение
программа файл язык функция
При изучении основ программирования мы не ограничились изучением только синтаксиса и семантики программ. Вместе с освоением языковых конструкций были получены первые навыки разработки программ, трактуемые как процесс систематического перехода от неалгоритмической постановки задачи к эффективной программе ее решения.
4. Список литературы
1. Зюзьков В. М. Программирование: учеб. пособие / В. М. Зюзьков. омск: Эль Контент, 2013. 186 с.
2. Немнюгин С. А. Turbo Pascal. Программирование на языке высокого уровня: учебник для вузов / С. А. Немнюгин. 2-е изд. СПб.: Питер, 2005. 543 с.
3. Немнюгин С. А. Turbo Pascal: учеб. пособие для вузов / С. А. Немнюгин. СПб.: Питер, 2003. 491[5] с.
4. Фаронов В. В. Турбо Паскаль 7.0: Практика программирования / В. В. Фаронов. М. Нолидж, 2003. 415 с.
5. Немнюгин С. А. Turbo Pascal: Практикум / С. А. Немнюгин. 2-е изд. СПб.: Питер, 2003. 267 c.
6. Зюзьков В М. Основы алгоритмизации и программирование на языке Паскаль: учеб.-метод. пособие / В М. Зюзьков, Е. А. Потапова, Н. Ю. Хабибулина. Томск: ТУСУР, Кафедра КСУП, 2012. 203 с. URL: http://www.kcup.tusur.ru/index.php?module=mod_methodic&command=view&id=173
Размещено на Allbest.ru
...Подобные документы
Описание типизированных файлов. Принципы работы с файлами, создание и открытие на запись нового файла. Чтение из файла, открытие существующего файла на чтение. Определение имени файла. Запись в текстовый файл. Описание множества и операции над ними.
реферат [86,4 K], добавлен 07.02.2011Алгоритм и код программы для создания исходного двоичного файла чисел с произвольным количеством элементов, чтения из файла действительных восьмибайтных элементов и подсчёта общего количества элементов файла. Вывод результата работы программы на экран.
контрольная работа [1,0 M], добавлен 23.11.2014Проверка существования и статуса файла. Определение его размера. Открытие файла для чтения, записи, добавления. Закрытие файловых дескрипторов. Запись из переменной в файл. Загрузка файла из сети. Создание и удаление каталога. Функции работы с каталогами.
презентация [133,9 K], добавлен 21.06.2014Создание программы для перевода кодов с языка Pascal на язык Си. Обработка программ операторами case, assign, rewrite и write. Способы объявления файла, комментария, переменных, логических и арифметических выражений. Виды синтаксических анализаторов.
курсовая работа [461,0 K], добавлен 03.07.2011Процедуры и функции языка Pascal для работы с файлами прямого и последовательно доступа. Формат и структура в файлах прямого доступа. Возможность ввода данных с клавиатуры либо из файла. Контроль вводимых данных. Листинг программы и ее экранные формы.
лабораторная работа [48,7 K], добавлен 13.02.2009Рассмотрение правил записи, способов ввода и вывода, использования функций обработки символьных данных в Pascal. Описание алгоритмизации и программирования файловых структур данных, проектирования структуры файла. Ознакомление с работой данных массива.
курсовая работа [336,2 K], добавлен 27.06.2015Назначение команды "diskcomp". Текст и запуск командного файла. Сравнение команды в Windows 7 и Windows XP. Разработка файла-сценария в ОС Linux. Создание файла в подкаталоге. Создание файла "oglavlenie.txt" с отсортированным по времени списком файлов.
курсовая работа [1,6 M], добавлен 22.08.2012Разработка тестирующей программы для проверки знаний студента по математике на языке программирования Turbo Pascal с использованием подпрограмм "Vvod" (создание файла с вопросами и ответами) и "Initialization" (запуск тестирование и инициализация файла).
курсовая работа [137,7 K], добавлен 28.03.2010Рассмотрение файловых менеджеров как класса программ, служащих для всевозможной работы с файлами, (создание, редактирование, копирование и удаление, обеспечение гибкого и удобного запуска других программ). Описание офисных программ и антивирусов.
реферат [25,4 K], добавлен 14.06.2012Файл - именованная область внешней памяти ПК. Процедуры и функции языка Pascal для работы с файлами прямого и последовательного доступа. Классификация файлов по типу доступа к элементам. Обоснование выбора средств программной реализации блоков.
лабораторная работа [10,4 K], добавлен 13.02.2009Изучение функций и возможностей среды разработки языка программирования Pascal. Рассмотрение работы с одномерными и двумерными массивами, со строками и числами. Математическая формулировка задач. Разработка алгоритмов, описание структуры программ.
курсовая работа [879,8 K], добавлен 11.02.2016Работа с файлами, папками WINDOWS: понятие файла, папки, сохранение, переименование. Вычисление суммы порядковых номеров фамилии и имени. Алгоритм расчета себестоимости. реализация в других программах алгоритма и отчета по нему. Файлы, папки WINDOWS.
контрольная работа [17,9 K], добавлен 05.06.2008Проектирование программ в среде Рascal с интерфейсом типа "Меню". Разработка и отладка программы сортировки массива данных. Освоение методов проектирования Pascal-программ с использованием графических процедур и функций из стандартного модуля Graph.
контрольная работа [581,1 K], добавлен 16.01.2015Решение циклических программ и программ вычисления функции с условием. Уравнение в табличном редакторе Microsoft Excel и в Turbo Pascal. Вычисление определенного интеграла методом прямоугольников, трапеции, Симпсона. Линейные и нелинейные уравнения.
курсовая работа [233,6 K], добавлен 27.12.2009Характеристика вычислительной системы и инструментов разработки. Программирование на языке Pascal в среде Turbo Pascal и на языке Object Pascal в среде Delphi. Использование процедур, функций, массивов, бинарного поиска. Создание базы данных в виде файла.
отчет по практике [2,1 M], добавлен 02.05.2014Описание синтаксиса и семантики входного языка. Описание типов лексем, определение их синтаксиса. Построение диаграммы лексического анализатора, а также его таблицы, тестирование. Построение КС-грамматики входного языка. Описание промежуточного языка.
курсовая работа [83,0 K], добавлен 23.01.2014Понятия шаблонов функции и класса, правила описания на языке С++. Разработка и отлаживание в среде программирования программ, содержащих шаблоны функций и классов. Шаблон функции square, возвращающей квадрат переменной. Создание шаблона класса массива.
лабораторная работа [162,6 K], добавлен 25.05.2013Основные функции Norton Commander и их реализация при работе с каталогами и файлами. Управление дисковой и файловой структурами персонального компьютера. Создание каталога, переход между каталогами, удаление каталога, создание текстового файла.
контрольная работа [20,6 K], добавлен 09.03.2011Разработка граф-схемы алгоритма раскраски на языке Object Pascal. Формат файла для хранения графов. Выбор удобочитаемых идентификаторов. Переменные, константы, типы, компоненты, процедуры и функции модулей uMain, uInputk, uFiling, uColoring, uHelp.
курсовая работа [1,3 M], добавлен 22.11.2013Разработка текстового редактора с подсветкой синтаксиса языков программирования. Загрузка из XML-файла настроек для подсветки синтаксиса и конструкций языка. Формат файлов конфигурации и проверки. Разбор текста и применение к нему стилей, тестовый пример.
курсовая работа [141,6 K], добавлен 13.03.2013