11 (522384)
Текст из файла
Лабо ато ная абота№11поин о матикена2007/08 ч.го: 8 ак льтет 1к с 1семест Обработка последовательности литер входного текстового файла. Простейшие приемы лексического анализа. Диаграммы состояний и переходов. Составить щюграмму на языках Си (грппгы 1-4, 6, 8, 9) ити Паскаль !тру<псы 5, 7, 10), построчно вы<<охи<лещ)ю опалял и обработку вводимого текста в соответствии с выданным лреподавнтвюм вариантом задания. Програ<мма не <)олхсна ограничивать калилестсо я длину строк исходного текста Конец файла должен оорабатываться корректно, как это делается уппитами Б)4!Х !пас, ис — с и т.д.) При разрабоп<е алгоритма рекомендзется использовать диаграммы Тьюринга или другие подходащ<е визуалылге модели, и помещать с<ютветствующие иллюстрации в отчет !пункт "идея, метод, алгоритм рсгпеши"). Систематическое решение задач лексического анализа осуществлясщя с помощью коне лгых автоматов, семантика состошшй-переходов которых соответствует концепции машин Тьк<риш а.
Кроме того, в системс ПМХ имеются инсцзументальные средства построения лексических анализаторов (Тех/Расс, дпи гзех/Ьтяап, рссгя, ...), использование которых входит в программу курса "Системное и прикладное нрограммнос обеспечение", читаемого на 2 курсе. Рекомендуется предварительно отработать ввод/вывод программы на прототипе — программе дублирования текстового файла и сравнить ее с командой Ппгх ис — с для тестовых файлов Терминология Слово — произвольная непустая последовательность зштер, нс являющихся разделителяьи. Число — произвольная непусгая последовательность цифр данной системы счисления, быль может, начинанэщаяся со знака Ь или †.
Разделители слов и чисел пробел, заггятая, табуляция и нач шо и конец строки и файла Строка — последовательность лишр, конец которой определяется сияшолом цсрсвода строки Хп в языке Си (а в последней строке — системозависимой константой Ьот, возвращаемой фтклщей чтения!) либо !в языке Паскаль) обнарукивается прели<<атом ео2п, причем в послещгяя строка файла может завершаться еог)).
При чтении текстового фа<па пережзд па пончо строку, если она существует 08 в язьп<е Си осуществляется автоматически, в то время, как в языке Паскаль требуеюя вызвать процедуру хеа<11п. Текст — последовательность строк, конец которой о<бэнаружзвается предикатом еох <в Пасхтп<е) либо функцией чтения языка Си, возвратившей системозависимдо константу Еог. При обработке строк текстового файла необходимо помнить, чзо их длина заранее неизвестна и может быть нулевой, а предикаты ео2о и еоГ могут оказаться истинными с самого начала Обратите внимание па различие кодов окончания строк в ОС !ЛПХ, )э<и<)овв и Мас08 (сз<, материал ЛР №3)! Не следует использовать низкоуровневые кодозависимые константы лля обработки конца строки/файла. И конечно же, необходимо соблкц<ать стандарты Паскаля 180 7185 (см, ключ — л<<< ашюЬо дгя Сошрац Рааса! и -ре<<апс! с для 0%) Рааса)) и Си (див! ХЗ.
259 или !50 9899, ключи аназ<огичны). Варианты задании 1. Подсчитать коюрольные сумьпя всех слов исходно< о текста. 2. Подсчитать количество слов во всех сцюках исходного тексш. 3. Выделить все числа, записанные в трез<явой системе счислсш<я и кратнъю 3. 4. Перевести все мерные температуры из шкалы Цельсия (С) в шкалу Фаренгейта (Г).
Например: 100С ~ 212Р. 5. Перевести все мерные длины из дюймов 1<п) в миллиметры (мм) Например 1Ош -9 254мм. 6. Перевести все мерные расстояния из м<пь (<ш) в километры (км). Например 1000пп -х 1609км. 7."'" Подсчитать количество слов. которые явля<отея числами в римской системе счисления. 8. Подсчитать количество слов, содержащих пе менее 3-х букв. 9. Подсчитать количество положительных десятичных чисел в строке. допустимых 16-бивнями процессорами. 1О, Подсчитать количество восьмиричпых чисел, находящихся в диапазоне от 10 до 1000. 11.
Рыделить предпоследнее шестнадцатиричное число в строке. 12. Выделить предпоследнее десятичное число и вычислить сумму его цифр. 13. Выделип предпоследнее десятичное число и распечатать его цифры в системах счисления с основаниями 3, 7 и 11. 14. Выделить первые и последние (по счету) десятичные числа строк текста. 15 Удалить десятичные числа, превышающие л<ихап. 16. 1'аспечатать каждое третье двоичное число. 17. Выделить все десятичные числа от 17 до 77 по модулю и распечатать их значения в словесной форме по-русски. 18 Выделить все восьмеричные числа от 17 до 77 по модулю и распечатать их значения в словесной форме по-английски 19." Выделить все девятери пиле числа от 17 до 77 по модулнэ и распечатать их значения в словесной форме по-пемецки 20." Выделить все десяти ппяе числа от 17 до 77 по модулю и распечатать их значения в словесной форме по-фран~взски 21.
а Я Выделить все восьмеричные числа от 17 до 77 по модулю и распечатать их значения в словесной форме по-испански. 22," Выделить все девятеричные числа от 17 до 77 по модулю и распечатать их значения в словесной форме по-итальянски 23. Выделить все шестнадцатири пп,ге числа, ик<еющие максимальное число цифр в 32-битной архитектуре. 24.
Подсчитать количество шестнадцатири пгых слов в строке, изобража<ощих отрицательные числа в 64-битной архитектуре 25. Выделить беззнаковые восьмеричные числа и напечатать их цифры в лвоичпой системе 26. Выделить десятичные целые числа без знака и напечатать суммы их четных цифр. 27. Выделить шестналцатиричтп ге целые числа без знака и напечататыпестнадцатиричн)ю сух<мунк нечетных цифр. 28.
Подсчитать число слов в однострочных комментариях (д) в программе на Си. 29. Подсчитать число слов в многострочных комментариях (/" и ~l) в программе на Си. 30. Подсчитать число слов в комме<<гарнах ( ! и ', или !" и Я) ) в программе «а Паскале. 31. Подсчитать количество во«ноя<етра<<нь<х (со всеми необходимыми ведчцими нулями) двоичнокодированных десятичных чисел <ВС13— В тогу Со<!с<1 )Осе<в<а!). 32. Подсчитать количество слов с лексикографически возрасппощими б)хнами латинского алфавита 33.
Подсчитать количество слов — правшгьных идентификаторов языков Си или Паскаль. 34. Закодироватыекст по Цезарю с переменным ктючоьг, равным номер) буквы в слове <- 3. 35. Раскодировать текст, закодированный по Цезарю с переменным ключом, равным номеру слова в строке 36. Напечатать значения пя<з<ричных чисел, не являющихся троичными числами в десятичной системе 37. Отдалив пробелом слова, находящиеся вплотную к концу строки и к началу следующей.
38. Выде<ппь все 11-ричные числа с лсксикографическим возрастанием цифр. 39. Ко всем допустимым целым числам добавить ведущие нули 40. У всех допустимых 16-ричных чисел перенести ведущие нули в младшие разряды машинного слова. 41.* Подсчитать количество существительных в тексте на немецком языке Ворионл<ь< заданий состааяля Зайцев ВЕ., Журавлева ТЗ., Казяаин4г7., Крапов СС., <ешщкио ПА., Со<аликов ДВ., Перетягяя Пл., Горлов хб 1„Ооелхлс А.<, .
Характеристики
Тип файла DJVU
Этот формат был создан для хранения отсканированных страниц книг в большом количестве. DJVU отлично справился с поставленной задачей, но увеличение места на всех устройствах позволили использовать вместо этого формата всё тот же PDF, хоть PDF занимает заметно больше места.
Даже здесь на студизбе мы конвертируем все файлы DJVU в PDF, чтобы Вам не пришлось думать о том, какой программой открыть ту или иную книгу.