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




Length(s:string):integer

Функция возвращает в качестве результата значение текущей длины строки-параметра

Concat(s1,[s2,...,sn]:string):string

Функция выполняет слияние строк-параметров, которых может быть произвольное количество. Каждый параметр является выражением строкового типа. Если длина строки-результата превышает 255 символов, то она усекается до 255 символов. Данная функция эквивалентна операции конкатенации "+" и работает немного менее эффективно, чем эта операция.

 

Copy(s:string; index:integer; count:integer):string

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

 

Pos(substr,s:string):byte

Функция производит поиск в строке s подстроки substr. Результатом функции является номер первой позиции подстроки в исходной строке. Если подстрока не найдена, то функция возвращает 0.

 

Delete(var s:string; index,count:integer)

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

 

Insert(source:string; var s:string;index:integer)

Процедура предназначена для вставки строки source в строку s, начиная с символа index этой строки.

 

 

Str(X: арифметическое выражение; var st: string)

Процедура преобразует численное выражение X в его строковое представление и помещает результат в st.

Val(st: string; x: числовая переменная; var code: integer)

Процедура преобразует строковую запись числа, содержащуюся в st, в числовое представление, помещая результат в x. x - может быть как целой, так и действительной переменной. Если в st встречается недопустимый (с точки зрения правил записи чисел) символ, то преобразование не происходит, а в code записывается позиция первого недопустимого символа. Если после выполнения процедуры code равно 0, то это свидетельствует об успешно произошедшем преобразовании.

 

Chr(n: byte): char

Функция возвращает символ по коду, равному значению выражения n. Если n можно представить как числовую константу, то можно также пользоваться записью #n.

Ord(ch: char): byte;

В данном случае функция возвращает код символа ch.

UpCase(c: char): char;

Если c - строчная латинская буква, то функция возвращает соответствующую прописную латинскую букву, в противном случае символ c возвращается без изменения.

Массивы в Pascal

Общая информация

МАССИВ - это набор однотипных данных (либо числа, либо символы-строки),
причем все эти данные хранятся в одном месте памяти компьютера в
упорядоченных по номерам ячейках.
Например:
1. Стая птиц
2. Ученики класса
3. Посадочные места в кинотеатре
4. Квартиры жилого дома

Одномерные массивы

Общая информация

Наглядно массив можно представить в виде набора пронумерованных "ящичков", в каждом из которых может находиться только одно данное.

A =
          -35

 

 
           

 

где:
A - имя массива;
1, 2, 3, 4, 5, 6 - индексы (порядковый номер "ящичка");
34, 45, 2, 0, 5, -35 - элементы массива (содержимое ящичка);
Массив А имеет размерность один т.к. при обращении к элементам достаточно указать адрес состоящий из одного числа-номера "ящичка". Размер массива А равен 6, т.к. в нём 6 элементов.
Массивы такого вида называются одномерными. Их элементы записываются как А[1], A[2], и т.д.
Например:
А[1]=34 (в первой ячейке массива А хранится число 34)
А[2]=45 (во второй ячейке массива А хранится число 45)
А[3]=2
А[4]=0
А[5]=5
А[6]=-35

Действия над элементами осуществляются аналогично действиям над простыми переменными.
Например: А[2] + А[3] = 47
Обратите внимание, что действия осуществляются не над индексами, а над числами находящимися в ячейках и результат ни коем образом не связан с числом хранимым в ячейке А [5].
Так как при использовании массивов используется большое колличество переменных (ячеек) которые должны находиться в одном месте памяти, то возникает необходимость в отведении места памяти компьютера под массив (говорят о резервировании памяти под массив). Для этого в Паскале имеется описание следующего вида:
const
n = 100;
var
A: array[1..n] of Real;

Ввод массива

Чтобы заполнить массив данными существуен несколько способов:

  • непосрерственное присваивание значений элементам;
  • генерация и присваивание значений с помощью функции random;
  • ввод значений элементов с клавиатуры;

Вывод массива

Чтобы отобразить(сообщить) массив на экране нужно выполнить следующее:

...
const
n = 20;
var
A: array [1..n] of Real;
...
Writeln ('Вывод эементов массива:');
for i:=1 to n do Write (A[i]:8:2);
Writeln;

Поиск

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

Алгоритм:

  1. Выделить память для массива A(10)
  2. Присвоить элементам значения любым способом
  3. Присвоить MAX значение A(1)
  4. Присвоить INDMAX значение 1
  5. Для каждого I от 1 до 10 повторять:
  6. Если A(I)>MAX то
  7. Присвоить MAX значение A(I)
  8. Присвоить INDMAX значение I
  9. КонецЕсли
  10. КонецЦикла

Двумерные массивы

Но часто данные могут быть организованы в виде таблицы (матрицы), где расположение каждой переменной определяется номером строки и номером столбца. Например, место в зрительном зале задается указанием номера ряда и номером места в этом ряду. Такие данные удобно описать как двумерный массив. В отличие от одномерного массива каждому элементу двумерного массива соответствует пара индексов. Первый индекс - это номер строки, а второй - номер столбца, где расположен элемент массива.

Размер двумерного массива задается парой чисел: M*N, где M - число строк, а N - число столбцов в таблице.

Пусть задан двумерный массив Matr, имеющий размер 10*20. Этот массив на языке Паскаль может быть описан следующим образом:

Var Matr: array [1..10,1..20] of integer;

тогда

Matr[5,7] - элемент, расположенный в 5-ой строке и в 7-ом столбце.

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

Type Digit = array [0..9] of integer; Matrix = array [1..100, 0..9] of real; Var m: Matrix; d: Digit; i: integer;

Описание типа массива задается следующим образом:

<имя типа> = array [<сп. инд. типов>] of <тип>;

где:

<имя типа> - правильный идентификатор,
<сп. инд. типов> - список из одного или нескольких индексных типов, разделенных запятыми,
<тип> - любой тип Турбо Паскаля.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-06-11 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: