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

Раздел
Программирование
Предмет
Просмотров
355
Покупок
0
Антиплагиат
Не указан
Размещена
26 Июл 2014 в 13:47
ВУЗ
Не указан
Курс
Не указан
Стоимость
1 250 ₽
Демо-файлы   
4
zip
блок-схема парсинга вещественного числа.PNG блок-схема парсинга вещественного числа.PNG
37.4 Кбайт 37.4 Кбайт
zip
glava2_1_1.doc glava2_1_1.doc
9.6 Кбайт 9.6 Кбайт
zip
example_block_sheme.png example_block_sheme.png
65.8 Кбайт 65.8 Кбайт
zip
Программа (без исходных кодов) Программа (без исходных кодов)
120.2 Кбайт 120.2 Кбайт
Файлы работы   
1
Каждая работа проверяется на плагиат, на момент публикации уникальность составляет не менее 40% по системе проверки eTXT.
zip
final1325
6.3 Мбайт 1 250 ₽
Описание
Разработать на языке программирования "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.
Вам подходит эта работа?
Похожие работы
Delphi
Курсовая работа Курсовая
9 Сен в 21:18
51
0 покупок
Delphi
Курсовая работа Курсовая
7 Сен в 09:30
27
0 покупок
Delphi
Курсовая работа Курсовая
5 Сен в 19:40
35
0 покупок
Другие работы автора
Электроника
Лабораторная работа Лабораторная
23 Авг 2014 в 02:18
884 +2
1 покупка
Электроника
Курсовая работа Курсовая
31 Июл 2014 в 03:59
756 +4
0 покупок
Prolog
Лабораторная работа Лабораторная
31 Июл 2014 в 02:47
1 383 +2
0 покупок
Темы журнала
Показать ещё
Прямой эфир