Символьный тип данных
Обработка символьных данных становится возможной благодаря привлечению значений и переменных типа char. Значениями типа char служат отдельные символы – все те символы, которые могут быть восприняты с клавиатуры: буквы, цифры, знаки операций, скобки и т.д. Если в программе имеется описание u,v:char , то возможно использование операторов присваивания u:=v, v:=’a’ и т.д. Штрих ‘ – принятая в языке форма кавычки – применяется каждый раз, когда значение типа char явно указывается в программе. При выполнении оператора вывода кавычки не высвечиваются. Если в программе используются циклы с условием, то возможны сравнения: u=’a’ или u=v и построенные на их основе более сложные логические выражения. Все символьные переменные являются элементами множества символов, а оно считается упорядоченным. Предполагается, что эта упорядоченность получается так: из всех символов составлен список, и из двух символов меньше тот, который встречается в списке раньше. В этом списке малые латинские буквы идут друг за другом, не перемешиваясь с другими символами, в алфавитном порядке (от а до z), также как и арабские цифры (от 0 до 9), поэтому, например, ‘a’<’c’, ‘y’>=’x’, ‘3’>’1’. Упорядоченность открывает возможность использования в программах операторов цикла с параметром. Параметр цикла типа char пробегает ряд символов в указанных границах.
Например, for i:=’a’ to ‘z’ do write(i) – выводит на экран строку латинского алфавита
Задача 11. Вывести на печать построчно последовательности символов : а ab … a…z
Задача 12. Выяснить, имеется ли среди последовательновводимых символов малая латинская буква (до точки).
Массивы.
Тип в программировании – это множество, для которого определен некоторый набор операций над элементами. Сами элементы называются объектами или значениями данного типа.
Типы real и integer – это числовые множества, для которых определены арифметические операции и операции сравнения, тип char – множество символов с наборов операций сравнения. Эти три типа – стандартные типы языка. В ТР имеются средства, позволяющие определять, исходя из имеющихся типов новые, нестандартные типы. Упорядоченные пары, тройки элементов множеств удобно задавать в виде массивов длины 2, 3. Массив – это набор объектов одного типа, у каждого из которых есть индекс (порядковый номер в массиве). Элементы массива длины 20 могут иметь индексы от 1 до 20 либо от 0 до 19. Способ индексации, тип элементов, длина фиксируются в определении того типа, к которому принадлежит массив.
Н-р, type t=array[1..20] of real; - это определение типа t.
Строка описания типов помещается в программу до описания переменных. Тогда некоторые переменные можно описать как объекты типа t:
var a:t;
Уже при выполнении программы значениями переменной а будут массивы длины 20, элементы которых имеют тип real. Для того, чтобы рассматривать эти элементы по отдельности, для них применяются обозначения а[1], a[2], …, a[20].
Переменная а – это переменная типа t, переменные а[1], a[2], …, a[20] – это переменные типа real, над которыми доступны любые операции с переменными типа real. Заключенный в квадратные скобки индекс – это целое число (integer), которое может быть получено посредством любых операций, результатом которых является целое число!
Например, переменные a[i], a[2*i], a[2*i-1] удобно использовать для поочередного рассмотрения в цикле всех элементов массива, элементов, стоящих на четных и нечетных местах, значение индекса обязано лежать в указанном в определении типа диапазоне.
Задача13. Сложить все элементы массива, стоящие на четных местах.
Преимуществом использования массивов перед последовательностью значений является то, что имеется прямой доступ к элементу массива через его индекс и возможно изменение отдельных элементов массивов с помощью операций, связанных с указываемым в определении типом переменных.
Задача 14. Заменить все отрицательные элементы массива целых чисел на нули. Длина массива=15.
Задача 15. Дано 20 целых чисел х1, х2, …, х20. Нужно вывести на экран последовательность в следующем виде: х20, х10, х19, х9, …, х11,х1.
Задача 16. Составить программу построения последовательности а1, …, а30, образованной по следующему закону: