Язык программирования ABC PASCAL - [15]

Шрифт
Интервал


>Program Strings; // замена символов a на b в строке s

>function replace(s : string; a,b : char):string;

>var i : integer;

>begin

>for i:=1 to Length (s) do // цикл для всех символов строки

>if s[i]=a then s[i]:=b; // замена символов

> replace:=s; // имени функции присваивается значение

>end;

>begin

> writeln (replace('мама мыла раму','м','н')); // Проверка работы функции

>end.


Тип char или string может использоваться для чтения информации из текстового файла, например:


>Program ReadText;

>Uses CRT;

>var name : string; // Имя файла

> s : string; // Буфер для чтения строки

> f : text; // Файловая переменная

> n : integer; // Счетчик строк

>begin

> write('Введите имя файла: '); readln (name); // Ввод имени файла

> assign (f,name); reset (f); // Открытие файла

> n:=0; // Обнуление счетчика

>while not eof (f) do // Чтение «пока не конец файла»

>begin

> readln (f,s); // Чтение одной строки из файла f

> writeln (n:4,': ',s); // Вывод номера и строки на экран

> inc(n); // inc(n) – операция увеличения на единицу

>if n mod 25 = 0 then readln; // Пауза после каждой 25-й строки

>end;

> close (f);

>end.


Задание 15

1. С помощью функций ReadKey и Ord напишите программу, которая выводила бы сразу символ и его код по нажатию одной клавиши. (2 балла)

2. Напишите целочисленную функцию с двумя параметрами, подсчитывающую сколько раз символ, заданный вторым параметром, встречается в строке, заданной первым параметром, и проверьте её работу. (2 балла)

3. Напишите программу, запрашивающую имена файлов, и копирующую один файл в другой, заодно вычисляя число строк (или символов) в файле (3 балла)

- 42 -


Для работы с текстовыми строками в языке Pascal существует набор функций, который немного расширен в реализации ABC Pascal. Приведем справочник по этим функциям.

Стандартные процедуры и функции для работы со строками

Имя и параметры

Типы параметров

Тип возвращаемого значения

Действие

Length(s)

s - string

integer

возвращает длину строки s

Copy(s,index,count)

s - string, index и count - integer

string

возвращает подстроку строки s длины count, начиная с позиции index

Delete(s,index,count)

s - string,


удаляет в строке s count символов index и начиная с позиции index count - integer

Insert(subs,s,index)

s, subs - string, index - integer


вставляет подстроку subs в строку s с позиции index

Pos(subs,s)

s, subs- string

integer

возвращает позицию первой подстроки subs в строке s (или 0 если подстрока не найдена)

SetLength(s,n)

s - string, n - integer


устанавливает длину строки s равной n

Str(x,s)

Str(x:n,s)

Str(x:n:m,s)

s - string, x - integer, real и n, m - integer


преобразует x к строковому представлению (во втором и третьем случаях согласно формату вывода, устанавливаемому n и m) и записывает результат в строку s

Val(s,v,code)

s - string, v - integer, real, и code - integer

преобразует строку s к числовому представлению и записывает результат в переменную v. Если преобразование возможно, то в переменной code возвращается 0, если невозможно, то в code возвращается ненулевое значение

Concat(s1,...,sn)

s1,..., sn - string

string

возвращает строку, являющуюся string результатом слияния строк s1,..., sn.

Результат тот же, что у выражения s1+s2+...+sn

UpCase(c)

c - char

char

возвращает символ c, преобразованный к верхнему регистру

LowCase(c)

c - char

char

возвращает символ c, преобразованный к нижнему регистру

UpperCase(s)

s - string

string

возвращает строку s, преобразованную к верхнему регистру

LowerCase(s)

s - string

string

возвращает строку s, преобразованную к нижнему регистру

Trim(s)

s - string

string

возвращает копию строки s с удаленными лидирующими и заключительными пробелами

- 43 -

Тема №16 Множества символов

В языке Pascal есть очень интересный тип данных множество. Множество представляет собой набор элементов одного порядкового типа. Элементы множества считаются неупорядоченными; каждый элемент может входить во множество не более одного раза. Тип множества описывается следующим образом: set of базовый тип;

В качестве базового может быть любой порядковый тип с элементами, для которых функция Ord возвращает значения в диапазоне от 0 до 255. К таким типам, из изученных нами, относятся тип char и byte (а также их подмножества).[16] Аналогично массивам можно определить название нового типа в секции type, например:

type ByteSet = set of byte; CharSet = set of char; Digits = set of '0'..'9'; // подмножества типа char

Сами множества задаются в виде перечисления их элементов (возможно с использованием диапазонов), заключенные в квадратные скобки:

> var Vowels : CharSet; // можно было написать vowels : set of char; Good : Digits; // можно было написать good : set of '0'..'9';

> …

> Vowels :=['A ', 'E ', 'O', 'I', 'U']; // Элементы явно перечислены

> Good:=['3'.. '5', '10']; // Диапазон и отдельный элемент

Для проверки принадлежности элемента множеству существует операция in:

var c : char;

if c in Vowels then inc(n); // Если с – гласная, то увеличить n на 1

На обороте страницы приведена программа, которая вводит текстовую строку с экрана и выводит ее на экран азбукой Морзе, заодно проигрывая ее. В этой программе используется много нового: работа с модулем Sound, массив из строк, индексация массива не целыми числами, а типом char, функция задержки выполнения Sleep, функция перевода буквы в верхний регистр Upcase, работа с множеством.


Рекомендуем почитать
Технология редакционно-издательского процесса

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


Перестройка в церковь

Слово «миссионер» привычно уже относить к католикам или протестантам, американцам или корейцам. Но вот перед нами книга, написанная миссионером Русской Православной Церкви. И это книга не о том, что было в былые века, а о том, как сегодня вести разговор о вере с тем, кто уже готов спрашивать о ней, но еще не готов с ней согласиться. И это книга не о чужих победах или поражениях, а о своих.Ее автор — профессор Московской Духовной Академии, который чаще читает лекции не в ней, а в светских университетах (в год с лекциями он посещает по сто городов мира)


Административное право России в вопросах и ответах

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


Общие основы педагогики

Непосредственной сдаче экзамена или зачета по любой учебной дисциплине всегда предшествует достаточно краткий период, когда студент должен сосредоточиться, систематизировать свои знания. Выражаясь компьютерным языком, он должен «вывести информацию из долговременной памяти в оперативную», сделать ее готовой к немедленному и эффективному использованию. Специфика периода подготовки к экзамену или зачету заключается в том, что студент уже ничего не изучает (для этого просто нет времени): он лишь вспоминает и систематизирует изученное.Содержание и структура пособия соответствуют требованиям Государственного образовательного стандарта высшего профессионального образования.Издание предназначено студентам педагогических вузов.


Концепции современного естествознания

В учебнике, написанном коллективом преподавателей РГПУ им. Герцена под руководством Л. А. Михайлова – декана факультета безопасности жизнедеятельности, лауреата премии Президента РФ, представлены новейшие концепции всех естественных наук: биологии, генетики, физики, химии, математики, информатики, биохимии, геологии, антропологии и других. В книге раскрываются социальные последствия новых научных открытий, даются современные технологии обучения в области концепций современного естествознания.Учебник полностью соответствует Государственному образовательному стандарту и имеет гриф УМО.


Экономика фирмы

Объектом изучения данного курса лекций является фирма как единая система, которая функционирует в условиях рыночной экономики. Рассматриваются организационно-правовые формы фирм, основные условия обеспечения экономической стабильности фирмы, принципы ее управления и организационная структура, порядок обеспечения кадрами, модель функционирования фирмы в рыночной среде. Описана комплексная система обеспечения ресурсами (трудовые ресурсы, основные и оборотные средства), система показателей для оценки эффективности их применения.Этот курс лекций предназначен для студентов, аспирантов и преподавателей экономических факультетов университетов и экономических вузов.