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

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

Песни о Паскале: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Песни о Паскале»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

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

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

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Песни о Паскале», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

{ P_37_1 – вывод множества в файл }

type TSet = set of 1..255; { объявление типа «множество» }

{----- Процедура вывода множества в файл -----}

procedure WriteSet(var aFile: text; const aSet : TSet);

var k : integer;

begin

for k:=1 to 255 do { цикл по всем элементам множества}

if k in aSet { если K входит в множество }

then Write(aFile, k:4); { печатаем в строке }

Writeln(aFile); { по окончании – переход на следующую строку }

end;

{----- Программа для проверки процедуры WriteSet -----}

var S1 : TSet; F: text;

begin

Assign(F, '') ; Rewrite(F); { связываем файл с экраном! }

S1:= [3, 10, 25]; { значение множества }

WriteSet(F, S1); { печатаем }

Readln;

Close(F);

end.

В первой строке объявлен тип данных TSet, он может содержать целые числа от 1 до 255. Процедура распечатки WriteSet принимает по ссылке два параметра: файловую переменную и множество, которое надо распечатать. Внутри процедуры работает цикл FOR, перебирающий все возможные элементы множества. Те из них, что содержатся в нём, печатаются в текущей строке. По завершении цикла оператор Writeln переводит позицию записи на следующую строку файла.

Обратите внимание: множество передано в процедуру по ссылке CONST. Передача в процедуры множеств, строк и других сложных типов данных по ссылкам CONST и VAR — это обычная практика. Так повышается скорость работы программ и уменьшается объём памяти, занимаемый параметрами.

Теперь взгляните на оператор Assign(F,''), который назначает файловой переменной пустое имя файла. Так файловая переменная связывается с экраном дисплея (при выводе данных), либо с клавиатурой (при вводе). А когда вам потребуется вывести результаты в дисковый файл, достаточно будет задать нужное имя файла, не меняя процедуры WriteSet (этот прием – подстановка пустого имени – не работает в Pascal ABCNet).

Примечание. В современные версии Паскаля (Delphi) для обработки множеств введён вариант цикла FOR-IN-DO. С ним распечатка множества станет ещё проще:

for k in aSet do Write(aFile, k:4);

Ввод множества из текстового файла.

Разобравшись с распечаткой множества, перейдем к вводу его из файла. Есть соображения на этот счет? Здесь пригодится опыт чтения чисел из строки текстового файла, – вспомните обработку классного журнала. Добавить число к множеству мы тоже умеем: для этого надо объединить его с множеством, состоящим из добавляемого числа. На этих идеях построена процедура ввода, показанная ниже вместе с тестирующей её программой.

{ P_37_2 – ввод и вывод числового множества }

type TSet = set of 1..255; { объявление типа «множество» }

{----- Процедура чтения множества из файла -----}

procedure ReadSet(var aFile: text; var aSet : TSet);

var k : integer;

begin

aSet:= [];

While not Eoln(aFile) do begin { пока не конец строки }

Read(aFile, K); { читаем очередное число }

aSet:= aSet+[K]; { и добавляем к множеству }

end;

Readln (aFile); { переход на следующую строку }

end;

{----- Процедура распечатки множества в файл -----}

procedure WriteSet(var aFile: text; const aSet : TSet);

var k : integer;

begin

for k:=1 to 255 do { цикл по всем элементам множества}

if k in aSet { если входит в множество }

then Write(aFile, k:4); { печатаем в строке }

Writeln(aFile); { по окончании переход на следующую строку }

end;

{----- Программа для проверки процедуры ввода -----}

var S1 : TSet; F, D: text;

begin

Assign(F, ''); Rewrite(F); { вывод на экран }

Assign(D, '') ; Reset(D); { ввод с клавиатуры }

S1:= [] ; { перед вводом опустошаем множество }

ReadSet(D, S1); { вводим множество из файла }

WriteSet(F, S1); Readln; { распечатаем для проверки }

Close(F); Close(D);

end.

Полагаю, что комментарии поясняют все. Обязательно проверьте работу этой программы. Учтите, что вводить данные вы будете с клавиатуры: напечатайте в одной строке несколько чисел, разделяя их пробелами, а затем нажмите клавишу Enter.

Директорская задача, первый вариант

Освоив ввод и вывод множеств, мы вплотную подошли к полному решению директорской задачи. Напомню, что суть решения заключается всего в одном операторе.

R:= [1..250] – (S1 + S2 + S3);

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

Интервал:

Закладка:

Сделать

Похожие книги на «Песни о Паскале»

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


Отзывы о книге «Песни о Паскале»

Обсуждение, отзывы о книге «Песни о Паскале» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x