Олег Деревенец - Песни о Паскале

Тут можно читать онлайн Олег Деревенец - Песни о Паскале - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-db. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Песни о Паскале
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    4.5/5. Голосов: 21
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Олег Деревенец - Песни о Паскале краткое содержание

Песни о Паскале - описание и краткое содержание, автор Олег Деревенец, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Аннотация: Изложены основы программирования на языке Паскаль. По ходу обучения решаются десятки задач (использован проектный подход). От читателя не требуется начальных познаний в программировании, но круг затронутых тем ориентирует его в профессиональную область. Книга адресована школьникам средних и старших классов, желающим испытать себя в «олимпийских схватках». Будет полезна студентам-первокурсникам и преподавателям информатики.

Песни о Паскале - читать онлайн бесплатно полную версию (весь текст целиком)

Песни о Паскале - читать книгу онлайн бесплатно, автор Олег Деревенец
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать
Запись в текстовый файл

Порядок записи в текстовый файл схож с его чтением, судите сами:

• для доступа к файлу используют файловую переменную типа TEXT;

• файловую переменную надо связать с файлом процедурой Assign;

• по окончании записи файл закрывают процедурой Close.

Вот схема, где отражены четыре этапа записи в файл (рис. 56).

Рис56 Четыре этапа записи в файл Как видите запись в файл отличается от - фото 86
Рис.56 – Четыре этапа записи в файл

Как видите, запись в файл отличается от чтения вторым и третьим этапами, ими и займемся.

Итак, после привязки файла процедурой Assign, файл открывают для записи процедурой Rewrite – «перезапись».

Rewrite(F);

Тут находим первое отличие: если для чтения требуемый файл должен существовать, то для записи этого не нужно. Если файла ещё нет, будет создан новый пустой файл. А при наличии файла он будет очищен, и вся информация в нём сотрется, как мел с доски. Будьте внимательны, иначе лишитесь нужной информации!

В открытый таким образом файл можно «печатать» нужные нам строки. Как? Вы уже знаете – процедурой Writeln. А что указать первым параметром? Правильно, – файловую переменную, вот так:

Writeln(F, S); { F – переменная типа TEXT, S – строковая }

Каждый вызов такой процедуры добавляет в конец файла очередную строку с разделителями. В отличие от чтения, где надо следить за достижением конца файла, при записи вы ограничены лишь объёмом винчестера и здравым смыслом (в большей степени последним).

По окончании записи файл закрывают все той же процедурой Close. Как и при чтении, закрытие файла освобождает выделенную для него память и снимает блокировку файла, позволяя другим программам работать с ним. К тому же закрытие файла гарантирует сохранение записанных данных на диске.

Пример записи в файл

Рассмотрим небольшой пример: заполнение файла числами от 1 до 10.

{ P_26_1 }

var F: text; { файловая переменная }

k: integer;

begin

Assign(F, 'P_26_1.txt'); { назначаем имя файла }

Rewrite(F); { открываем файл для записи }

for k:=1 to 10 do { записать 10 строк с числами }

Writeln(F, k);

Close(F); { закрываем файл }

end.

Есть вопросы? Запустите программу и проверьте, работает ли она. Запустили? Теперь отыщите в папке с программой файл «P_26_1.TXT» и откройте его любым редактором. Уверен, что вы обнаружите в нём столбик из десяти чисел.

Завершение шпионского проекта

Подойдя к финалу нашего проекта, мы научились: 1) шифровать отдельную строку, 2) читать строки из файла и 3) записывать строки в файл. Пора соединить все это: читая строки исходного файла, будем шифровать их, и записывать в другой файл, – так будет работать наша программа.

Прежде всего договоримся об именах файлов. Назначив зашифрованному файлу постоянное имя, например «CRYPT.TXT», мы избавим себя от ввода его имени с клавиатуры. Вводить мы будем либо имя исходного файла – при шифровании, либо имя конечного файла – при расшифровке. Обозначим эти неизвестные нам имена файлов как X1 и X2, и тогда схема обработки файлов будет такой.

Рис 57 Схема именования файлов при шифровании и расшифровке С учетом этих - фото 87
Рис. 57 – Схема именования файлов при шифровании и расшифровке

С учетом этих договоренностей составим блок-схему программы (рис. 58).

Рис58 Блоксхема программы шифрованиярасшифровки Основную работу поручим - фото 88
Рис.58 – Блок-схема программы шифрования/расшифровки

Основную работу поручим процедуре шифрования-расшифровки, блок-схема которой показана на рис. 59. В неё передаём два параметра: имя обрабатываемого файла и код операции (зашифровать или расшифровать).

Рис59 Блоксхема процедуры шифрованиярасшифровки Теперь мы готовы - фото 89
Рис.59 – Блок-схема процедуры шифрования-расшифровки

Теперь мы готовы смастерить шпионскую программу. Может быть, сами справитесь? По крайней мере, попытайтесь. Функции и процедуры шифрования символов и строк возьмите из программы «P_24_1». Написав свой вариант, сравните с представленным ниже.

{ P_26_2 – шифрование и расшифровка файлов }

const CKey = 2; { Ключ Цезаря }

{ Шифрование одного символа }

function Encrypt(arg: char): char;

var x: integer;

begin

Encrypt:=arg;

if Ord(arg)>=32 then begin { управляющие символы не трогаем! }

x:= Ord(arg)+ CKey;

if x>255 then x:= x-256+32;

Encrypt:= Char(x);

end;

end;

{ Расшифровка одного символа }

function Decrypt(arg: char): char;

var x: integer;

begin

Decrypt:=arg;

if Ord(arg)>=32 then begin { управляющие символы не трогаем! }

x:= Ord(arg)- CKey;

if x<32 then x:= x+256-32;

Decrypt:= Char(x);

end;

end;

{ Шифрование строки }

procedure EncryptStr(var arg: string);

var k: integer;

begin

for k:=1 to Length(arg) do arg[k]:= Encrypt(arg[k]);

end;

{ Расшифровка строки }

procedure DecryptStr(var arg: string);

var k: integer;

begin

for k:=1 to Length(arg) do arg[k]:= Decrypt(arg[k]);

end;

{----- Процедура шифрования-расшифровка файла -----}

procedure CryptFile(const aFile: string; aOper: boolean);

const CFixName='Crypt.txt'; { фиксированное имя файла }

var FileIn: text; { входной файл для чтения }

FileOut: text; { выходной файл для записи }

S: string;

begin

if aOper then begin { если шифровать }

Assign(FileIn, aFile);

Assign(FileOut, CFixName);

end else begin { если расшифровать }

Assign(FileIn, CFixName);

Assign(FileOut, aFile);

end;

Reset(FileIn); { открыть входной файл для чтения }

Rewrite(FileOut); { открыть выходной файл для записи }

while not Eof(FileIn) do begin

{ пока не закончился входной файл }

Readln(FileIn, S); { читать очередную строку из файла }

if aOper

then EncryptStr(S) { зашифровать }

else DecryptStr(S); { расшифровать }

Writeln(FileOut, S); { записать в выходной файл }

end;

{ закрыть оба файла }

Close(FileIn); Close(FileOut);

end;

{----- Главная программа -----}

var S: string;

Oper: boolean; { TRUE – шифровать, FALSE – расшифровать}

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Олег Деревенец читать все книги автора по порядку

Олег Деревенец - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Песни о Паскале отзывы


Отзывы читателей о книге Песни о Паскале, автор: Олег Деревенец. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x