Язык программирования 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, работа с множеством.
![Половая идентификация ребенка в кинетическом рисунке семьи](/storage/book-covers/ac/ac5b2cf435e320c2b679b133d70201eb0101d253.jpg)
Здоровые семейные отношения – это залог успешной полоролевой идентификации ребёнка. Начинаясь с рождения, процесс идентификации протекает непрерывно, с заострениями и актуализациями переживаний на кризисных этапах психосексуального развития. Одним из таких этапов является возраст эдипова комплекса. Конфликты и искажения воспитательного процесса на этом этапе никогда не проходят бесследно и могут с новой силой реанимироваться уже в подростковом возрасте. В пособии представлены основные критерии анализа и подходы к пониманию проблем половой идентификации ребёнка с помощью популярной рисуночной методики.
![Искусство Древней Греции и Рима: учебно-методическое пособие](/storage/book-covers/4c/4c3785b8496557e93de940ff04a8fc6d39db6429.jpg)
Предлагаемое методическое пособие рассчитано на студентов 1 курса всех форм обучения: очной (дневной, вечерней), при которой студенты слушают полный курс лекций по всем заявленным в пособии темам, и заочной, при которой студенты слушают краткий курс лекций и занимаются самостоятельной подготовкой к экзаменам и зачетам. Пособие содержит изложенную в краткой форме программу занятий, подробный тематический план-конспект по тридцати двум темам изучаемым в течение семестра, список рекомендованной к курсу лекций литературы, вопросы к экзаменам, темы рефератов, семинарских занятий, а также приблизительные темы дипломных и курсовых работ.
![Самоучитель Adobe After Effects 6.0](/storage/book-covers/84/8493a01f3f2ad533f801532092a350699300772b.jpg)
Обучение созданию профессиональных видеофильмов и обработки их на компьютере представлено в виде 12 уроков. Рассматривается, как с помощью программы Adobe After Effects можно редактировать и рисовать последовательность кадров, добавлять титры и заголовки, применять различные видеоэффекты, редактировать звуковое сопровождение фильма. Описывается процесс настройки прозрачности и наложения слоев видео для последующего экспорта фильма в различных форматах. Показываются способы создания анимации при масштабировании, поворотах и в движении с наложением титров и спецэффектов.
![История русской литературы XX века (20–90–е годы). Основные имена](/storage/book-covers/d8/d860f2d60662468b2d09f1006035d88ecc81bdcf.jpg)
Книга является пособием по истории русской литературы XX века (20-90-е годы). Она представляет собой первый том, за которым последует продолжение — «Литературный процесс» (в двух частях). Пособие призвано отразить современный научный взгляд на основные художественные ценности и тенденции развития русской литературы XX века.Издание предназначено для студентов филологических факультетов российских университетов, а также для аспирантов и преподавателей, — всех, кто занимается русской литературой.
![Материаловедение](/storage/book-covers/f2/f2866472365118a39b7ad9d23b9460f3f375d581.jpg)
Данный конспект лекций предназначен для студентов высших и средних специальных учебных заведений. В него входят сведения о древесине и древесных материалах, описываются их основные свойства. Дается характеристика металлов и сплавов, рассматриваются способы их применения. Приводятся основные сведения о лакокрасочных, смазочных, облицовочных материалах, а также классификация клеев и области их назначения.
![Микроэкономика](/storage/book-covers/29/2910249380ec5db03afe32a486701a77a59eba31.jpg)
В данном конспекте лекций в доступной форме изложены все основные вопросы по дисциплине «микроэкономика».Книга поможет получить основные знания и подготовиться к зачету или экзамену. Рекомендуется студентам экономических специальностей.