Читаем Занимательное программирование – игры с текстом полностью

Занимательное программирование – игры с текстом

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

Дмитрий Юрьевич Усенков

Учебная и научная литература / Образование и наука18+
<p>Дмитрий Усенков</p><p>Занимательное программирование – игры с текстом</p><p>Введение</p>

При изучении в школе основ программирования по какой-то неизвестной авторам данной статьи причине работа с множественными типами данных (кроме разве что массивов и в некоторых случаях – файлов) почти не затрагивается. По крайней мере, найти в различных публикациях или на сайтах образовательной тематики какие-либо хорошие (интересные и вместе с тем поучительные) задачи оказалось довольно сложно.

Желая «сломать сложившиеся стереотипы», предлагаем читателям несколько подобных задач. Решение этих задач разберем на языке Паскаль.

Наши цели при этом:

– во-первых, показать читателям (учащимся, а также учителям информатики, которые смогут затем передать эти знания своим ученикам) принципы обработки строковых данных;

– во-вторых, продемонстрировать применение некоторых возможностей Паскаля по работе со строками и символами;

– в-третьих, показать преимущества использования такого редко используемого типа данных, как множества (как показывает практика, многие попросту не знают, как можно использовать множества в реальном программировании, помимо «чисто теоретического» решения задач на пересечение, объединение и пр. множеств).

Итак, начнем…

<p>О знаках и строках</p>

Как мы знаем из курса информатики, текст в компьютере представлен в виде последовательности кодов составляющих его символов – букв (латинских и строчных), знаков препинания, знаков математических операций и пр., а также специальных кодов, не имеющих отдельного визуального представления в виде символов и служащих для управления размещением текста (пример – коды табуляции, перехода на новую строку и т.д.). При этом соответствие между конкретным символом и его кодом устанавливается согласно таблицам кодирования символов, где для символов национальных алфавитов (к которым относится и кириллица) могут использоваться различные 8-битовые таблицы кодирования (ASCII для MS-DOS, КОИ-8, Windows и др.) либо все такие символы объединены в 16-разрядной таблице кодирования стандарта Unicode.

Таким образом, каждый символ текста в памяти компьютера занимает один (или два – для Unicode) байта и хранится там в виде целого беззнакового числа. Поэтому, чтобы компьютер «не путал» их с обычными целыми числами, в языках программирования высокого уровня, как правило, для символьных и строковых типов данных предназначены отдельные, особые типы данных.

В языке Паскаль это:

– символьный тип char, предназначенный для представления одного какого-либо символа; символьная константа записывается в апострофах, например: 'a', '0', '+' и т.д.;

– множественный (составной, структурированный, сложный) тип string, предназначенный для представления целых текстовых строк; строковая константа также записывается в апострофах, например: 'Строка'.

При этом прослеживается иерархия типов: множественный тип string можно рассматривать как некий набор данных типа char (что отражает вполне очевидный факт – строка текста состоит из символов).

Определение обоих этих типов данных (как и большинства других) в языке Паскаль производится в разделе var:

– для символьного типа данных – var <переменная> : char;

– для строкового типа данных – var <переменная> : string;

При этом строка может определяться как без указания ее размера (как продемонстрировано выше), так и с явным указанием ее длины (см. рис. 1):

var <переменная>: string[<длина>];

В подобном случае параметр <длина> представляет собой целое число, указывающее максимально допустимую длину строки, записываемой в такую переменную. Фактически же этот параметр указывает компьютеру, что для хранения такой переменной необходимо отвести указанное количество ячеек памяти для символов строки. Кроме них, в памяти также резервируется еще одна ячейка для хранения реальной длины строки, записанной в такую переменную: эта строка по длине может быть меньше, чем зарезервированная длина строковой переменной (и даже может быть пустой – не содержать символов вообще!), тогда часть зарезервированных ячеек памяти попросту не используется. А вот при попытке записать в строковую переменную значение (строку), длина которой превышает объявленную длину строковой переменной, приведет к тому, что в этой переменной уместится только заявленное количество символов начала строки, а всё остальное будет отброшено.

Перейти на страницу:

Похожие книги

1917–1920. Огненные годы Русского Севера
1917–1920. Огненные годы Русского Севера

Книга «1917–1920. Огненные годы Русского Севера» посвящена истории революции и Гражданской войны на Русском Севере, исследованной советскими и большинством современных российских историков несколько односторонне. Автор излагает хронику событий, военных действий, изучает роль английских, американских и французских войск, поведение разных слоев населения: рабочих, крестьян, буржуазии и интеллигенции в период Гражданской войны на Севере; а также весь комплекс российско-финляндских противоречий, имевших большое значение в Гражданской войне на Севере России. В книге используются многочисленные архивные источники, в том числе никогда ранее не изученные материалы архива Министерства иностранных дел Франции. Автор предлагает ответы на вопрос, почему демократические правительства Северной области не смогли осуществить третий путь в Гражданской войне.Эта работа является продолжением книги «Третий путь в Гражданской войне. Демократическая революция 1918 года на Волге» (Санкт-Петербург, 2015).В формате PDF A4 сохранён издательский дизайн.

Леонид Григорьевич Прайсман

История / Учебная и научная литература / Образование и наука
1221. Великий князь Георгий Всеволодович и основание Нижнего Новгорода
1221. Великий князь Георгий Всеволодович и основание Нижнего Новгорода

Правда о самом противоречивом князе Древней Руси.Книга рассказывает о Георгии Всеволодовиче, великом князе Владимирском, правнуке Владимира Мономаха, значительной и весьма противоречивой фигуре отечественной истории. Его политика и геополитика, основание Нижнего Новгорода, княжеские междоусобицы, битва на Липице, столкновение с монгольской агрессией – вся деятельность и судьба князя подвергаются пристрастному анализу. Полемику о Георгии Всеволодовиче можно обнаружить уже в летописях. Для церкви Георгий – святой князь и герой, который «пал за веру и отечество». Однако существует устойчивая критическая традиция, жестко обличающая его деяния. Автор, известный историк и политик Вячеслав Никонов, «без гнева и пристрастия» исследует фигуру Георгия Всеволодовича как крупного самобытного политика в контексте того, чем была Древняя Русь к началу XIII века, какое место занимало в ней Владимиро-Суздальское княжество, и какую роль играл его лидер в общерусских делах.Это увлекательный рассказ об одном из самых неоднозначных правителей Руси. Редко какой персонаж российской истории, за исключением разве что Ивана Грозного, Петра I или Владимира Ленина, удостаивался столь противоречивых оценок.Кем был великий князь Георгий Всеволодович, погибший в 1238 году?– Неудачником, которого обвиняли в поражении русских от монголов?– Святым мучеником за православную веру и за легендарный Китеж-град?– Князем-провидцем, основавшим Нижний Новгород, восточный щит России, город, спасший независимость страны в Смуте 1612 года?На эти и другие вопросы отвечает в своей книге Вячеслав Никонов, известный российский историк и политик. Вячеслав Алексеевич Никонов – первый заместитель председателя комитета Государственной Думы по международным делам, декан факультета государственного управления МГУ, председатель правления фонда "Русский мир", доктор исторических наук.В формате PDF A4 сохранен издательский макет.

Вячеслав Алексеевич Никонов

История / Учебная и научная литература / Образование и наука