- •Алфавит языка, имена, числа, строки.
- •Структура программы.
- •3. Тип Integer.
- •4. Тип Real.
- •5. Тип Boolean и Char.
- •6. Описательная часть программного блока.
- •7. Процедуры ввода/вывода
- •8. Оператор присваивания.
- •9. Условный оператор
- •X, y, max: integer;
- •10. Оператор цикла с перечислением
- •11. Циклы с предусловием
- •12. Циклы с постусловием
- •13. Оператор варианта.
- •14. Классификация типов данных.
- •15. Перечислимые типы данных
- •16. Ограниченые типы данных.
- •17. Регулярные типы данных.
- •18. Многомерные массивы.
- •19. Комбинированные типы данных
- •20. Оператор with.
- •21 Записи с вариантами
- •22 Множественные типы данных.
- •23 Операции над данными множесвенного типа
- •24 Файловые типы данных
- •25 Текстовые файлы
- •26 Ссылочные типы данных
- •27 Оператор new
- •28 29 Процедуры и функции
- •30. Параметры процедур и функций.
- •31. Локальные и глобальные объекты в процедуах и функциях
- •32. Рекурсии в процедурах и функциях.
- •33. Структурное представление основных конструкций языка.
- •38. Данные с фиксированной точкой
- •1111111101000111(2)- Инвертируем биты - 0000000010111000(2)
- •39. Внутреннее представление чисел с плавающей точкой.
- •40. Внутреннее представление символьных и строковых данных.
- •41. Реализация алгоритма сортировки с применением метода "часового".
- •42. Сортировка методом "пузырька".
- •43. Сортировка выбором min элемента.
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;
