Работа с текстовыми файлами
Назначение системы программного обеспечения, виды языков программирования. Преимущества и недостатки Ассемблера, использование его функций для работы с текстовыми файлами. Слияние двух файлов, программа инвертирования прописных латинских символов в файле.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 12.08.2011 |
Размер файла | 26,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
21
КОНТРОЛЬНАЯ РАБОТА
ПО ДИСЦИПЛИНЕ «ПРОГРАММИРОВАНИЕ»
Содержание
Задание 1. Работа с текстовыми файлами
Задание 2. Слияние двух файлов. Программа инвертирования прописных латинских символов в файле
Список используемой литературы
Задание 1. Работа с текстовыми файлами
Неотъемлемая часть современных ЭВМ - системы программного обеспечения, являющиеся логическим продолжением логических средств ЭВМ, расширяющим возможности аппаратуры и сферу их использования. Система программного обеспечения, являясь посредником между человеком и техническими устройствами машины, автоматизирует выполнение тех или иных функций в зависимости от профиля специалистов и режимов их взаимодействия с ЭВМ. Основное назначение программного обеспечения - повышение эффективности труда пользователя, а также увеличение пропускной способности ЭВМ посредством сокращения времени и затрат на подготовку и выполнение программ. Программное обеспечение ЭВМ можно подразделить на общее и специальное программное обеспечение [1].
Общее программное обеспечение реализует функции, связанные с работой ЭВМ, и включает в себя системы программирования, операционные системы, комплекс программ технического обслуживания.
Специальное программное обеспечение включает в себя пакеты прикладных программ, которые проблемно ориентированы на решение вполне определенного класса задач.
Системой программирования называется комплекс программ, предназначенный для автоматизации программирования задач на ЭВМ. Система программирования освобождает проблемного пользователя или прикладного программиста от необходимости написания программ решения своих задач на неудобном для него языке машинных команд, и предоставляют им возможность использовать специальные языки более высокого уровня. Для каждого из таких языков, называемых входными или исходными, система программирования имеет программу, осуществляющую автоматический перевод (трансляцию) текстов программы с входного языка на язык машины. Обычно система программирования содержит описания применяемых языков программирования, программы-трансляторы с этих языков, а также развитую библиотеку стандартных подпрограмм. Важно различать язык программирования и реализацию языка.
Язык - это набор правил, определяющих систему записей, составляющих программу, синтаксис и семантику используемых грамматических конструкций [2].
Язык программирования - это специальный язык, на котором пишут команды для управления компьютером. Языки программирования созданы для того, чтобы людям было проще читать и писать для компьютера, но они затем должны транслироваться (транслятором или интерпретатором) в машинный код, который только и может исполняться компьютером. Языки программирования можно разделить на языки высокого уровня и языки низкого уровня.
Язык низкого уровня - это язык программирования, предназначенный для определенного типа компьютера и отражающий его внутренний машинный код; языки низкого уровня часто называют машинно-ориентированными языками. Их сложно конвертировать для использования на компьютерах с разными центральными процессорами, а также довольно сложно изучать, поскольку для этого требуется хорошо знать принципы внутренней работы компьютера.
Язык высокого уровня - это язык программирования, предназначенный для удовлетворения требований программиста; он не зависит от внутренних машинных кодов компьютера любого типа. Языки высокого уровня используют для решения проблем и поэтому их часто называют проблемно-ориентированными языками. Каждая команда языка высокого уровня эквивалентна нескольким командам в машинных кодах, поэтому программы, написанные на языках высокого уровня, более компактны, чем аналогичные программы в машинных кодах.
Сегодня повсюду используются такие языки высокого уровня как Бейсик, Фортран и Паскаль. Возможно, вы уже знакомы, по крайней мере, с одним языком высокого уровня. Если вы постоянно пользуетесь персональным компьютером IBM, то вы знаете, что интерпретатор Бейсика является частью системы. Зачем же возиться еще с одним языком программирования, тем более с таким, который сулит определенные трудности? Очевидно, даже располагая современными могучими языками, вы все еще нуждаетесь в Ассемблере из-за его эффективности и точности.
Ассемблерные программы могут быть очень эффективными. Из программистов, с равными навыками и способностями, работающий на языке Ассемблера создаст программу более компактную и быстродействующую, чем такая же программа, написанная на языке высокого уровня. Это так практически для всех небольших или средних программ. К сожалению, по мере возрастания размеров, программы на языке Ассемблера теряют часть своих преимуществ. Это происходит из-за необходимого в ассемблерной программе внимания к деталям. Как вы видите, язык Ассемблера требует от вас планирования каждого действия компьютера. В небольших программах это позволяет оптимизировать работу программы с аппаратными средствами. В больших же программах огромное количество деталей может помешать вам эффективно работать над самой программой, даже если отдельные компоненты программы окажутся очень неплохими. Безусловно, программирование на языке Ассемблера отвечает потребностям не каждой программы.
Программы на языке Ассемблера очень точны. Поскольку этот язык позволяет программисту непосредственно работать со всем аппаратным обеспечением, ассемблерная программа может делать то, что недоступно никакой другой программе. Несомненно, что в программировании устройств ввода-вывода, где требуется контроль над отдельными разрядами регистров устройства, программирование на языке Ассемблера - единственный подходящий выбор.
Создание и открытие файлов
Функция DOS 3Ch - Создать файл
Ввод: |
AX = 3Ch СХ = атрибут файла бит 7: файл можно открывать разным процессам в Novell Netware бит 6: не используется бит 5: архивный бит (1, если файл не сохранялся) бит 4: каталог (должен быть 0 для функции 3Ch) бит 3: метка тома (игнорируется функцией 3Ch) бит 2: системный файл бит 1: скрытый файл бит 0: файл только для чтения DS:DX = адрес ASCIZ-строки с полным именем файла (ASCIZ-строка ASCII-символов, оканчивающаяся нулем) |
|
Вывод: |
CF = 0 и АХ = идентификатор файла, если не произошла ошибка CF = 1 и АХ = 03h, если путь не найден CF = 1 и АХ = 04h, если слишком много открытых файлов CF = 1 и АХ = 05h, если доступ запрещен |
Если файл уже существует, функция 3Ch все равно открывает его, присваивая ему нулевую длину. Чтобы этого не произошло, следует пользоваться функцией 5Bh.
Функция DOS 3Dh - Открыть существующий файл
Ввод: |
AX = 3Dh AL = режим доступа биты 0 - : права доступа 00: чтение 01: запись 10: чтение и запись бит 1: открыть для записи биты 2 - 3: зарезервированы (0) биты 6 - 4: режим доступа для других процессов 000: режим совместимости (остальные процессы также должны открывать этот файл в режиме совместимости) 001: все операции запрещены 010: запись запрещена 011: чтение запрещено 100: запрещений нет бит 7: файл не наследуется порождаемыми процессами DS:DX = адрес ASCIZ-строки с полным именем файла CL = маска атрибутов файлов |
|
Вывод: |
CF = 0 и АХ = идентификатор файла, если не произошла ошибка CF = 1 и АХ = код ошибки (02h - файл не найден, 03h - путь не найден, 04h - слишком много открытых файлов, 05h - доступ запрещен, 0Ch - неправильный режим доступа) |
Функция DOS 5Bh - Создать и открыть новый файл
Ввод: |
AX = 5Bh СХ = атрибут файла DS:DX = адрес ASCIZ-строки с полным именем файла |
|
Вывод: |
CF = 0 и АХ = идентификатор файла, открытого для чтения/записи в режиме совместимости, если не произошла ошибка CF = 1 и АХ = код ошибки (03h - путь не найден, 04h - слишком много открытых файлов, 05h - доступ запрещен, 50h - файл уже существует) |
Функция DOS 5Ah - Создать и открыть временный файл
Ввод: |
AX = 5Ah СХ = атрибут файла DS:DX = адрес ASCIZ-строки с путем, оканчивающимся символом «\», и тринадцатью нулевыми байтами в конце |
|
Вывод: |
CF = 0 и АХ = идентификатор файла, открытого для чтения/записи в режиме совместимости, если не произошла ошибка (в строку по адресу DS:DX дописывается имя файла) CF = 1 и АХ = код ошибки (03h - путь не найден, 04h - слишком много открытых файлов, 05h - доступ запрещен) |
Функция 5Ah создает файл с уникальным именем, который не является на самом деле временным, его следует специально удалять, для чего его имя и записывается в строку в DS:DX.
Во всех случаях строка с полным именем файла имеет вид типа
filespec db 'с:\data\filename.ext',0
причем, если диск или путь опущены, используются их текущие значения.
Для работы с длинными именами файлов в DOS 7.0 (Windows 95) и старше используется еще один дополнительный набор функций, которые вызываются как функция DOS 71h.
Функция LFN 6Ch - Создать или открыть файл с длинным именем
Ввод: |
AX = 716Сh ВХ = режим доступа Windows 95 биты 2 - 0: доступ 000 - только для чтения 001 - только для записи 010 - для чтения и записи 100 - только для чтения, не изменять время последнего обращения к файлу биты 6 - 4: доступ для других процессов (см. функцию 3Dh) бит 7: файл не наследуется порождаемыми процессами бит 8: данные не буферизуются бит 9: не архивировать файл, если используется архивирование файловой системы (DoubleSpace) бит 10: использовать число в DI для записи в конец короткого имени файла бит 13: не вызывать прерывание 24h при критических ошибках бит 14: сбрасывать буфера на диск после каждой записи в файл СХ = атрибут файла DX = действие бит 0: открыть файл (ошибка, если файл не существует) бит 1: заменить файл (ошибка, если файл не существует) бит 4: создать файл (ошибка, если файл существует) DS:SI = адрес ASCIZ-строки с именем файла DI = число, которое будет записано в конце короткого варианта имени файла |
|
Вывод: |
CF = 0 АХ = идентификатор файла СХ = 1, если файл открыт СХ = 2, если файл создан СХ = 3, если файл заменен CF = 1, если произошла ошибка АХ = код ошибки (7100h, если функция не поддерживается) |
Если функции открытия файлов возвращают ошибку «слишком много открытых файлов» (АХ = 4), следует увеличить число допустимых идентификаторов с помощью функции 67h.
Функция DOS 67h - Изменить максимальное число идентификаторов файлов
Ввод: |
AX = 67h ВХ = новое максимальное число идентификаторов (20 - 65 535) |
|
Вывод: |
CF = 0, если не произошла ошибка CF = 1 и АХ = код ошибки, если произошла ошибка (например: 04h, если заданное число меньше, чем количество уже открытых файлов, или 08h, если DOS не хватает памяти для новой таблицы идентификаторов) |
Функция DOS 3Fh - Чтение из файла или устройства
Ввод: |
АН = 3Fh ВХ = идентификатор СХ = число байт DS:DX = адрес буфера для приема данных |
|
Вывод: |
CF = 0 и АХ = число считанных байт, если не произошла ошибка CF = 1 и АХ = 05h, если доступ запрещен, 06h, если неправильный идентификатор |
Если при чтении из файла число фактически считанных байт в АХ меньше, чем заказанное число в СХ, при чтении был достигнут конец файла. Каждая следующая операция чтения, так же как и записи, начинается не с начала файла, а с того байта, на котором остановилась предыдущая операция чтения/записи. Если требуется считать (или записать) произвольный участок файла, используют функцию 42h (функция lseek в С).
Функция DOS 42h - Переместить указатель чтения/записи
Ввод: |
АН = 42h ВХ = идентификатор CX:DX = расстояние, на которое надо переместить указатель (со знаком) AL = перемещение от: 0 - от начала файла 1 - от текущей позиции 2 - от конца файла |
|
Вывод: |
CF = 0 и CX:DX = новое значение указателя (в байтах от начала файла), если не произошла ошибка CF = 1 и АХ = 06h, если неправильный идентификатор |
Указатель можно установить за реальными пределами файла: если указатель устанавливается в отрицательное число, следующая операция чтения/записи вызовет ошибку; если указатель устанавливается в положительное число, большее длины файла, следующая операция записи увеличит размер файла. Эта функция также часто используется для определения длины файла - достаточно вызвать ее с СХ = 0, DX = 0, AL = 2, и в CX:DX будет возвращена длина файла в байтах.
Функция DOS 40h - Запись в файл или устройство
Ввод: |
АН = 40h ВХ = идентификатор СХ = число байт DS:DX = адрес буфера с данными |
|
Вывод: |
CF = 0 и АХ = число записанных байт, если не произошла ошибка CF = 1 и АХ = 05h, если доступ запрещен, 06h, если неправильный идентификатор |
Если при записи в файл указать СХ = 0, файл будет обрезан по текущему значению указателя. При записи в файл на самом деле происходит запись в буфер DOS, данные из которого сбрасываются на диск при закрытии файла или если их количество превышает размер сектора диска. Для немедленного сброса буфера можно использовать функцию 68h (функция fflush в С).
Функция DOS 68h - Сброс файловых буферов DOS на диск
Ввод: |
АН = 68h ВХ = идентификатор |
|
Вывод: |
CF = 0, если операция выполнена CF = 1, если произошла ошибка (АХ = код ошибки) |
Для критических участков программ использовать более эффективную функцию 0Dh.
Функция DOS 0Dh - Сброс всех файловых буферов на диск
Ввод: |
АН = 0Dh |
|
Вывод: |
никакого |
Функция DOS 3Eh - Закрыть файл
Ввод: |
АН = 3Eh ВХ = идентификатор |
|
Вывод: |
CF = 0, если не произошла ошибка CF = 1 и АХ = 6, если неправильный идентификатор |
Если файл был открыт для записи, все файловые буфера сбрасываются на диск, устанавливается время модификации файла и записывается его новая длина.
Функция DOS 41h - Удаление файла
Ввод: |
АН = 41h DS:DX = адрес ASCIZ-строки с полным именем файла |
|
Вывод: |
CF = 0, если файл удален CF = 1 и АН = 02h, если файл не найден, 03h - если путь не найден, 05h - если доступ запрещен |
Удалить файл можно только после того, как он будет закрыт, так как DOS будет продолжать выполнять запись в несуществующий файл, что может привести к разрушению файловой системы. Функция 41h не позволяет использовать маски (символы * и ? в имени файла) для удаления сразу нескольких файлов, хотя этого можно добиться, вызывая ее через недокументированную функцию 5D00h. Но, начиная с DOS 7.0 (Windows 95), официальная функция удаления файла может работать сразу с несколькими файлами.
Функция LFN 41h - Удаление файлов с длинным именем
Ввод: |
АХ = 7141h DS:DX = адрес ASCIZ-строки с длинным именем файла SI = 0000h: маски не разрешены и атрибуты в СХ игнорируются SI = 0001h: маски в имени файла и атрибуты в СХ разрешены: CL = атрибуты, которые файлы могут иметь СН = атрибуты, которые файлы должны иметь |
|
Вывод: |
CF = 0, если файл или файлы удалены CF = 1 и АХ = код ошибки, если произошла ошибка. Код 7100h означает, что функция не поддерживается |
Задание 2. Слияние двух файлов. Программа инвертирования
прописных латинских символов в файле
программирование ассемблер текстовый файл
Найти нужный файл на диске намного сложнее, чем просто открыть его, - для этого требуются две функции при работе с короткими именами (найти первый файл и найти следующий файл) и три - при работе с длинными именами в DOS 7.0 (найти первый файл, найти следующий файл, прекратить поиск).
Функция DOS 4Eh - Найти первый файл
Ввод: |
АН = 4Eh AL используется при обращении к функции APPEND СХ = атрибуты, которые должен иметь файл (биты 0 (только для чтения) и 5 (архивный бит) игнорируются, если бит 3 (метка тома) установлен, все остальные биты игнорируются) DS:DX = адрес ASCIZ-строки с именем файла, которое может включать путь и маски для поиска (символы * и ?) |
|
Вывод: |
CF = 0 и область DTA заполняется данными, если файл найден CF = 1 и АХ = 02h, если файл не найден, 03h - если путь не найден, 12h - если неправильный режим доступа |
Вызов этой функции заполняет данными область памяти DTA (область передачи данных), которая начинается по умолчанию со смещения 0080h от начала блока данных PSP (при запуске СОМ- и ЕХЕ-программ сегменты DS и ES содержат сегментный адрес начала PSP), но ее можно переопределить с помощью функции 1Ah.
Функция DOS 1Ah - Установить область DTA
Ввод: |
АН = 1Ah DS:DX = адрес начала DTA (128-байтный буфер) |
Функции поиска файлов заполняют DTA следующим образом:
+00h: байт - биты 0 - 6: ASCII-код буквы диска; бит 7: диск сетевой
+01h: 11 байт - маска поиска (без пути)
+0СН: байт - атрибуты для поиска
+0Dh: слово - порядковый номер файла в каталоге
+0Fh: слово - номер кластера начала внешнего каталога
+11h: 4 байта - зарезервировано
+15h: байт - атрибут найденного файла
+16h: слово - время создания файла в формате DOS:
биты 15 - 11: час (0 - 23)
биты 10 - 5: минута
биты 4 - 0: номер секунды, деленный на 2 (0 - 30)
+18h: слово - дата создания файла в формате DOS:
биты 15 - 9: год, начиная с 1980
биты 8 - 5: месяц
биты 4 - 0: день
+1Ah: 4 байта - размер файла
+1Eh: 13 байт - ASCIZ-имя найденного файла с расширением
После того как DTA заполнена данными, для продолжения поиска следует вызывать функцию 4Fh, пока не будет возвращена ошибка.
Функция DOS 4Fh - Найти следующий файл
Ввод: |
АН = 4Fh DTA - содержит данные от предыдущего вызова функции 4Е или 4F |
|
Вывод: |
CF = 0 и DTA содержит данные о следующем найденном файле, если не произошла ошибка CF = 1 и АХ = код ошибки, если произошла ошибка |
Для случая длинных имен файлов (LFN) употребляется набор из трех подфункций функции DOS 71h, которые можно использовать, только если запущен IFSmgr (всегда запускается при обычной установке Windows 95, но не запускается, например, с загрузочной дискеты MS-DOS 7.0).
Функция LFN 4Eh - Найти первый файл с длинным именем
Ввод: |
АХ = 714Eh CL = атрибуты, которые файл может иметь (биты 0 и 5 игнорируются) СН = атрибуты, которые файл должен иметь SI = 0: использовать Windows-формат даты/времени SI = 1: использовать DOS-формат даты/времени DS:DX = адрес ASCIZ-строки с маской для поиска (может включать * и ?. Для совместимости маска *.* ищет все файлы в каталоге, а не только файлы, содержащие точку в имени) ES:DI = адрес 318-байтного буфера для информации о файле |
|
Вывод: |
CF = 0 АХ = поисковый идентификатор СХ = Unicode-флаг: бит 0: длинное имя содержит подчеркивания вместо непреобразуемых Unicode-символов бит 1: короткое имя содержит подчеркивания вместо непреобразуемых Unicode-символов CF = 1, АХ = код ошибки, если произошла ошибка (7100h - функция не поддерживается) |
Если файл, подходящий под маску и атрибуты поиска, найден, область данных по адресу ES:DI заполняется следующим образом:
+00h: 4 байта - атрибуты файла
биты 0 - 6: атрибуты файла DOS
бит 8: временный файл
+04h: 8 байт - время создания файла
+0Ch: 8 байт - время последнего доступа к файлу
+14h: 8 байт - время последней модификации файла
+1Ch: 4 байта - старшее двойное слово длины файла
+20h: 4 байта - младшее двойное слово длины файла
+24h: 8 байт - зарезервировано
+2Ch: 260 байт - ASCIZ-имя файла длинное
+130h: 14 байт - ASCIZ-имя файла короткое
Причем даты создания/доступа/модификации записываются в одном из двух форматов, в соответствии со значением SI при вызове функции. Windows-формат - 64-битное число 100-наносекундных интервалов с 1 января 1601 года, а если используется DOS-формат - в старшее двойное слово записывается DOS-дата, а в младшее - DOS-время.
Функция LFN 4Fh - Найти следующий файл
Ввод: |
АХ = 714Fh ВХ = поисковый идентификатор (от функции 4Eh) SI = формат даты/времени ES:DI = адрес буфера для информации о файле |
|
Вывод: |
CF = 0 и СХ = Unicode-флаг, если следующий файл найден CF = 1, АХ = код ошибки, если произошла ошибка (7100h - функция не поддерживается) |
Функция LFN A1h - Закончить поиск файла
Ввод: |
АХ = 71A1h ВХ = поисковый идентификатор |
|
Вывод: |
CF = 0, если операция выполнена CF = 1 и АХ = код ошибки, если произошла ошибка (7100h - функция не поддерживается) |
Программа, использующая многие из функций работы с файлами, исследуем программу, заменяющую русские буквы «Н» на латинские «Н» во всех файлах с расширением.ТХТ в текущем каталоге (такая замена требуется для всех текстов, которые будут пересылаться через сеть Fidonet, программное обеспечение которой воспринимает русскую букву «Н» как управляющий символ).
; fidoh.asm
; заменяет русские "Н" на латинские "Н" во всех файлах с расширением.ТХТ
; в текущем каталоге
.model tiny
.code
org 100h ; СОМ-файл
start:
mov ah,4Eh ; поиск первого файла
xor cx,cx ; не системный, не каталог и т.д.
mov dx,offset filespec ; маска для поиска в DS:DX
file_open:
int 21h
jc no_more_files ; если CF = 1 - файлы кончились
mov ax,3D02h ; открыть файл для чтения и записи
mov dx,80h+1Eh ; смещение DTA + смещение имени файла
int 21h ; от начала DTA
jc find_next ; если файл не открылся - перейти
; к следующему
mov bx,ax ; идентификатор файла в ВХ
mov cx,1 ; считывать один байт
mov dx,offset buffer ; начало буфера - в DX
read_next:
mov ah,3Fh ; чтение файла
int 21h
jc find_next ; если ошибка - перейти к следующему
dec ах ; если АХ = 0 - файл кончился -
js find_next ; перейти к следующему
cmp byte ptr buffer,8Dh ; если не считана русская "Н",
jne read_next ; считать следующий байт,
mov byte ptr buffer,48h ; иначе - записать в буфер
; латинскую букву "Н"
mov ax,4201h ; переместить указатель файла от текущей
dec cx ; позиции назад на 1
dec cx ; CX = FFFFh
mov dx,cx ; DX = FFFFh
int 21h
mov ah,40h ; записать в файл
inc cx
inc cx ; один байт (СХ = 1)
mov dx,offset buffer ; из буфера в DS:DX
int 21h
jmp short read_next ; считать следующий байт
find_next:
mov ah,3Eh ; закрыть предыдущий файл
int 21h
mov ah,4Fh ; найти следующий файл
mov dx,80h ; смещение DTA от начала PSP
jmp short file_open
no_more_files: ; если файлы кончились,
ret ; выйти из программы
filespec db "*.txt",0 ; маска для поиска
buffer label byte ; буфер для чтения/записи -
end start ; за концом программы
Преобразуем прописные латинские буквы в строчные и обратно путем
инвертирования 6-го бита в ASCII-коде буквы.
В данной программе применяется операция XOR, поэтому приведем таблицу истинности, из которой видно, что единицей бит инвертируется: (i XOR 1) = NOT (i), а двукратное преобразование бита единицей возвращает его в исходное значение.
A B A XOR B (A XOR B) XOR B
0 0 0 0
0 1 1 0
1 0 1 1
1 1 0 1
Напомним что, 2^n=exp(n*ln(2)), а в двоичном представлении - одна единица и n нулей, например 32=2^5=100000. Биты в байте нумеруются справа налево от 0 до 7, например, двоичный код буквы N в таблице ASCII:
0 1 0 0 1 1 1 0 двоичный код буквы N
7 6 5 4 3 2 1 0 нумерация битов в байте
Решение задачи
program registr;
var s:string;
c:char;
i,j:integer;
{функция инвертирования n-го бита в байте ASCII-кода буквы}
function caps(c:char;n:integer):char;
begin
caps:= chr(ord(c) xor round(exp(n*ln(2))));
end;
begin
writeln('введите строку');
readln(s);
for i:=1 to length(s) do {цикл замены регистра всех букв в строке}
s[i]:=caps(s[i],5);
writeln(s);
end.
Результат исполнения
Question
qUESTION
Далее выполню шифрование строки путем инвертирования k младших битов в ASCII-коде символа.
Решение задачи
program code_k;
const k=4;
var s:string;
c:char;
i,j:integer;
{функция инвертирования n-го бита в байте ASCII-кода буквы}
function caps(c:char;n:integer):char;
begin
caps:= chr(ord(c) xor round(exp(n*ln(2))));
end;
begin
writeln('введите строку');
readln(s);
for j:=0 to k do {инвертирование j-го бита}
begin
for i:=1 to length(s) do {изменение каждого символа в строке}
s[i]:=caps(s[i],j);
writeln(s);
end;
for j:=k downto 0 do {инвертирование j-го бита}
begin
writeln(s);
for i:=1 to length(s) do {изменение каждого символа в строке}
s[i]:=caps(s[i],j);
end;
writeln(s);
end.
Результат исполнения
введите строку
Question { исходная строка }
Ptdruhno { инвертируется 0-й бит }
Rvfpwjlm { инвертируется 1-й бит }
Vrbtsnhi { инвертируется 2-й бит }
^zj|{f`a { инвертируется 3-й бит }
Njzlkvpq { инвертируется 4-й бит }
Njzlkvpq { результат }
^zj|{f`a { инвертируется 4-й бит }
Vrbtsnhi { инвертируется 3-й бит }
Rvfpwjlm { инвертируется 2-й бит }
Ptdruhno { инвертируется 1-й бит }
Question { инвертируется 0-й бит }
Список используемой литературы
Абель П. Язык Ассемблера для IBM PC и его программирование - М.: Высшая школа, 1992. - 252 с.
С.В. Зубков Ассемблер для DOS, Windows и Unix - М.: ДМК Пресс, 1999. - 630 с.
И. Юров Assembler - СПб.: Питер, 2001. - 624 с.
Бэрри Н. Компьютерные сети. Пер. с англ. - М.: БИНОМ. - 1995. - 400 с.
Джамса К., Лалани С., Уикли С. Программирование в WWW для профессионалов. - Минск. - Попурри. - 1997. - 631 с.
Кент П. World Wide Web: Пер. с англ.. - М.: Компьютер. - 1996. - 311 с.
Кулаков Ю.А. Компьютерные сети. - Киев. - 1998. - 384 с.
Компьютерные сети. Принципы, технологии, протоколы / В.Г. Олифер, Н.А. Олифер. - СПб: Питер, 2001. - 672 с.
Максимов Н.В., Партыка Т.Л., Попов И.И. Технические средства информатизации: Учебник. - М.: ФОРУМ: ИНФРА-М, 2005. - 576 с.: ил. - (Профессиональное образование).
Милославская Н.Г., Толстой А.И. Интрасети: доступ в Internet. Защита: Учеб. пособие для вузов. - М.: ЮНИТИ-ДАНА, 2000 - 527 с.
Колесников Internet: для пользователя. - К.: Издательская группа BHV, 2000.-304 с.
Новомлинский Л. Интернет-торговля. Часть 1// Сети и системы связи. 1998 - №8.
Новомлинский Л. Интернет-торговля. Часть 2// Сети и системы связи. 1998 - №9.
Пятибратов А.П. Вычислительные машины, сети и телекоммуникации/ Пятибратов А.П., Гудыно Л.П. - М.: Финансы и статистика. - 1998. - 400 с.
Сеть Internet. Применение в науке и бизнесе/ Горностаев Ю.М. и др. - М.: Россия - 1994. - 136 с.
Сеть Internet./ Горностаев Ю.М. и др. - М.: Россия. - 1993. - 88 с.
Сорокин Л. Аукционы в Интернате - будущее электронной коммерции//Мир электронной коммерции. - 2000. - №1.
Информатика: Учебник. - 3-е перераб. изд. / Под ред. проф. Н.В. Макаровой. - М.: Финансы и статистика, 2000. - 768 с.: ил.
Размещено на Allbest.ru
Подобные документы
Создание приложения Windows, позволяющего автоматизировать процесс обработки информации студентов университета. Организация работы с физическими файлами в языках программирования. Изучение средств IDE Delphi для организации работы с текстовыми файлами.
курсовая работа [1,5 M], добавлен 08.11.2011Использование программы "Total Commander": пользовательский интерфейс, клавиатурные сочетания, операции с файлами, контекстные меню, внутренний просмотр файлов. Назначение и применение функциональных клавиш. Особенности работы с каталогами и файлами.
презентация [462,3 K], добавлен 25.09.2014Порядок и правила составления алгоритма необходимых программ. Описание и содержание их кода, методика проведения листинга. Анализ результатов и обоснование работоспособности разработанных программ, оценка их функциональности и основных возможностей.
контрольная работа [964,3 K], добавлен 23.11.2014Средства языка программирования Delphi. Структурные типы данных. Строковые переменные, массивы, множества, файлы. Механизм классов в C++. Интерфейсный и описательный обзоры классов в Delphi. Работа с текстовыми и бинарными файлами прямого доступа.
курсовая работа [990,4 K], добавлен 07.08.2012Изучение инструментария для работы с pdf-файлами. iTextSharp – инструмент, имеющий много функций для полноценного контроля PDF. Visual Studio - линейка продуктов компании Майкрософт, включающих интегрированную среду разработки программного обеспечения.
контрольная работа [394,6 K], добавлен 12.09.2012Теоретическое изучение и практическое применение приёмов работы с файлами в операционной системе Windows 95. Файлы и папки: основные понятия и правила формирования имен файлов в Windows. Характеристика и анализ особенностей операций с файлами и папками.
контрольная работа [139,9 K], добавлен 09.03.2011Основные команды для работы с файлами. Текстовый редактор vim. Простейшие команды для работы с текстом. Команды для управления процессами. Настройка оболочки и сценариев. Монтирование и демонтирование файловых систем. Базовые регулярные выражения.
лабораторная работа [2,7 M], добавлен 14.07.2012Принципы и порядок работы с файлами на языке Delphi, получение навыков программирования с использованием файлов. Создание каталога продуктов. Страница палитры компонентов, настраиваемые компоненты и их значения. Текст программы и ее тестирование.
лабораторная работа [243,9 K], добавлен 09.01.2009Понятие базового и прикладного программного обеспечения. Информация, ее свойства и виды. Интерфейс ОС Windows. Программа управления файлами "Проводник". Windows-редакторы Paint и MS Word. MS Excel: расчет амортизации. Программа Internet Explorer.
практическая работа [1,1 M], добавлен 16.01.2011Изучение сущности и основных задач файловой системы. Принципы работы с папками и файлами. Комплекс системных программных средств, реализующих управление файлами: создание, уничтожение, чтение, запись, именование, поиск и другие операции над файлами.
курсовая работа [309,6 K], добавлен 11.11.2013