Вход

Структуры и алгоритмы обработки данных. Разработка пользовательской функции форматного вывода.

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 483313
Дата создания 2014
Мы сможем обработать ваш заказ (!) 13 мая в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
2 080руб.
КУПИТЬ

Описание

Разработать на языке программирования "Pascal" библиотеку, реализующую функцию, максимально близкую по своему функционалу к функции printf языка c++.

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

Разработка программы проводится в среде Borland Delphi и Free Pascal.

Для имитации функции, принимающей переменное количество аргументов разного типа, используется массив элементов типа variant.В качестве исходных данных для программы используются текстовые файлы, где каждая строка соответствует одному аргументу, передаваемому функции printf. При запуске программы появляется приглашение на ввод имени файла. Затем файл обрабатывается в соответствии с тем, что каждая строка рассматривается как отдельный аргумент. На вывод консоли поступает текст, максимально приближённый к тому, если бы с указанными аргументами была вызвана функция printf. В некоторых случаях вместо текста выдаётся сообщение об ошибке.

Программа обрабатывает управляющие последовательности, попадающиеся в первом аргументе. Управляющая последовательность имеет вид:

%[флаги][ширина][.точность]тип

Вместо управляющих последовательностей подставляются последующие аргументы в порядке их расположения. В случае если следующих после первого аргументов больше, чем управляющих последовательностей - тогда лишние аргументы игнорируются. В случае недостачи аргументов выдаётся сообщение об ошибке.

Флаги указываются с помощью специальных символов, и определяют некоторые параметры вывода аргумента, значение которого должно быть поставлено на место управляющей последовательности. В одной управляющей последовательности может быть один или несколько флагов. Может и не быть вообще – тогда используются параметры вывода по умолчанию.
Список поддерживаемых флагов:
- (Минус) - при наличии этого флага выводимое значение выравнивается по левому краю в пределах ширины поля, отведённого для его вывода. В отсутствии этого флага оно выравнивается по правому краю.
+ (Плюс) - при наличии этого флага у численного аргумента всегда указывается знак.
(Пробел) - при отсутствии знака у численного аргумента перед ним указывается пробел.
0 (Нуль) - при указании этого флага незанятая аргументом часть поля, отведённого для его вывода, заполняется нулями. При отсутствии этого флага она заполняется пробелами.

Спецификатор "ширина" задаётся в виде натурального числа или звёздочки - и указывает на минимальную ширину поля, которая отводится аргументу для вывода. Если в качестве ширины указана звёздочка, то численное значение ширины читается из списка аргументов.

Спецификатор "точность" также задаётся в виде натурального числа или звёздочки. В случае если он задаётся для аргумента, являющегося натуральным числом, и превышает количество цифр в этом числе - тогда выводимое число дополняется нулями слева. Для вещественных чисел спецификатор точности указывает на количество цифр, которое должно быть выведено после запятой. Для аргументов, являющихся строкой, этот аргумент указывает на количество символов строки, которые должны быть выведены на печать.

Спецификатор типа является единственным обязательным спецификатором, и указывает на ожидаемый тип текущего аргумента. В программе реализована обработка следующих спецификаторов типа:
а) d, i — десятичное знаковое число
б) o — восьмеричное беззнаковое число
в) u — десятичное беззнаковое число
г) x и X — шестнадцатеричное число, x использует маленькие буквы (abcdef), X большие (ABCDEF)
д) f и F — числа с плавающей запятой. По умолчанию выводятся с точностью 6, если число по модулю меньше единицы, перед десятичной точкой пишется 0.
е) e и E — числа с плавающей запятой в экспоненциальной форме записи (вида 1.1e+44); e выводит символ «e» в нижнем регистре, E — в верхнем (3.14E+0);
ж) g и G — число с плавающей запятой.
з) c — вывод символа с кодом, соответствующим переданному аргументу.
и) s — вывод строки с нулевым завершающим байтом.
к) % — символ для вывода знака процента (%), используется для возможности вывода символов процента в строке printf, всегда используется в виде %%.

В случае невозможности перевода полученного аргумента к типу, заданному специфиактором, программа выдаёт сообщение об ошибке.

Все аргументы программа воспринимает как строки. Для распознавания управляющих последовательностей в первом аргументе, а также чисел различных типов в последующих строки подвергаются парсингу с помощью алгоритма анализа строк конечным автоматом.

Содержание

1 Введение
2 Основная часть
2.1 Постановка задачи
2.1.1 Входные данные программы
2.1.2 Ограничения, накладываемые на входные данные
2.1.3 Метод решения задачи
2.1.4 Результаты работы программы
2.2 Разработка алгоритма
2.2.1 Общий алгоритм решения задачи
2.2.2 Детализация алгоритма решения задачи
2.3 Разработка программы
2.3.1 Язык программирования
2.3.2 Среда разработки Delphi
2.3.3 Среда разработки Free Pascal
2.3.4 Создание текстовых файлов для чтения
2.3.5 Тестирование программы
2.3.6 Листинг программы
3 Заключение
4 Список использованных материалов

Список литературы

1. Статья на Википедии по функции printf.
2. Михаил Фленов «Библия Делфи».
3. Сергей Глушаков «Программирование на Си для чайников».
4. Подсказка Borland Help.
Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00448
© Рефератбанк, 2002 - 2024