Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
29_Ae1.doc
Скачиваний:
6
Добавлен:
01.03.2025
Размер:
302.08 Кб
Скачать

40. Внутреннее представление символьных и строковых данных.

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

Строки переменной длины, которые могут содержать до приблизительно 2 миллиардов (2^31) символов.

Строки постоянной длины, которые могут содержать от 1 до приблизительно 64K (2^16) символов.

Примеры строковых констант: "abcde", "информатика", "" (пустая строка).

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

Данные символьного типа в Turbo Pascal

Язык TP может обрабатывать не только числа, но и символы. Это

даёт возможность представлять в программах тексты и выполнять над

ними некоторые операции, обрабатывать различные ведомости, доку-

менты, справочники и т.д.

Значениями символьного типа является всё множество символов ПК.

Каждому символу приписывается целое число в диапазоне 0...255.

Это число служит кодом внутреннего представления символов. Для

кодировки используется код ASCII (Американский стандартный код

для обмена информацией).

Символьная константа (литера) - это символ, заключенный в апост-

рофы, например: 'A', 'R', '+', '7'. Внешние апострофы являются

признаком символьной константы, которая занимает 1 байт памяти.

Символьную константу можно обозначить именем и задать в разделе

констант, например:

Const

sim='A';

A='B';

S='+';

D1='T';

Символьная переменная принимает значение одного символа. В раз-

деле переменных она обозначается описателем CHAR (символьный тип),

например:

Var

B1,B2,R:CHAR;

BUKVA:CHAR;

Допускается использование символьных данных в операторе присваи-

вания, например: BUKVA:='A'; R:='*'; B1:='S';

Операции. Так как символы языка упорядочены, то к символьным

данным применимы операции отношений (сравнений): <,<=,=,<>,>,>=.

Поэтому 'A'<'B'; '+'<'-'; '*'<'4'. Результатом операции сравнения

является логическая константа TRUE (истина) или FALSE (ложь).

К символьным данным можно применять встроенные функции:

ORD(X)-определяет порядковый номер символа X, например ORD('R')=82.

CHR(X)-определяет символ, стоящий по порядковому номеру Х, напри-

мер: CHR(68)='D';

PRED(X)-определяет предыдущий символ по отношению к Х, например:

PRED('N')='M';

SUCC(X)-определяет последующий символ по отношению к Х, например:

SUCC('R')='S'.

 

41. Реализация алгоритма сортировки с применением метода "часового".

Сортировка выбором

И начнём мы с сортировки выбором. Хотя этот алгоритм и не является самым быстрым, но я решил начать с него потому что, на мой взгляд он наиболее прост для понимания. Суть алгоритма состоит в том, что бы в исходном массиве найти наименьший элемент, а затем поменять местами первый элемент в списке с найденным. После того, находиться наименьший их оставшихся и меняется со вторым элементом. И так до тех пор пока весь список не будет отсортирован. Таким образом понадобиться N+(N-1)+(N-2)+...+1 или N*N проходов чтобы отсортировать список.

procedure SellectionSort( var a: array of integer; min, max: Integer); var i, j, best_value, best_j: longint; begin for i:=min to max do begin best_value:=a[i]; best_j:=i; for j:=i+1 to max do begin if a[j]<best_value then begin best_value:=a[j]; best_j:=j; end; end; a[best_j]:=a[i]; a[i]:=best_value; end; end;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]