Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Praktikum_po_Turbo_Paskaliu.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.39 Mб
Скачать

Простые типы данных

    Простые типы данных делятся на порядковые и вещественный тип данных.

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

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

функция Pred(x) определяет предыдущее значение величины x;

функция Succ(x) определяет последующее значение величины x;

функция Ord(x) возвращает порядковый номер величины x.

Понятие порядкового типа уже встречалось ранее при изучении цикла с параметром, так как параметр цикла должен иметь порядковый тип. Длина шага для to - succ(<параметр>), pred(<параметр>) для downto.

К порядковому типу данных относятся целый и логический типы данных, так как тип данных Boolean имеет только два значения - True и False, а целые числа можно пересчитать.

К порядковому типу данных относится также символьный тип данных.

Символьный тип данных

Описание: идентификатор Char;

Диапазон значений: значением переменной этого типа может быть любой символ - это буквы, цифры, знаки препинания и специальные символы. Каждому символу алфавита соответствует индивидуальный числовой код от 0 до 255.

Примечание. Наиболее распространённой международной согласованной системой кодирования всех символов является система ASCII. Символы с кодами от 0 до 127 представляют так называемую основную таблицу кодов ASCII. Эта часть идентична на всех IBM-совместимых компьютерах. Коды с символами от 128 до 255 представляют национальную часть.

Так как символы языка упорядочены, то к символьным данным применимы операции сравнения. Операция сравнения осуществляется следующим образом: из двух символов меньше тот, который встречается в таблице ASCII раньше.

Обычно значения для переменных типа Char задаются в апострофах: ch:='*'; a:='3'; letter:='G'.

Кроме того, имеется возможность задавать значения указанием непосредственного числового значения ASCII-кода: kd:= #65 {символ 'A'}; s:= #10 {клавиша <Enter>}.

Первые 32 символа ASCII являются управляющими. Для большинства из них не существует соответствующей клавиши. Для того, чтобы включить в последовательность символов такие символы, введено понятие управляющего символа, для которого предусмотрена запись: ^<символ>. Например, ^[ - соответствует клавише<Escape>; ^G - для звукового сигнала.

Так как символьный тип является порядковым типом данных, то для него справедливо все, что было сказано о порядковых типах.

Задания

Задание 1.

  1. Напишите программу, которая запрашивает символ и выводит на экран соответствующий ему код.

  2. Функция chr(x) предназначена для определения символа языка по его порядковому номеру. Напишите программу для вывода на экран всех символов таблицы ASCII.

Пример

Написать программу вывода последовательности символов: AABABC...AB...YZ на экран.

Решение

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

Program Example_19; Var i, j : Char; Begin For i:='a' To 'z' Do {количество начальных отрезков алфавита} For j:='a' To i Do {количество символов в данном начальном отрезке} Write(j); Readin; End.

Пример

Написать программу, которая подсчитывает количество цифр, входящих в исходный текст. Текст - это последовательность символов, ввод которой заканчивается нажатием клавиши <Enter>.

Решение

Так как окончанием ввода последовательности служит нажатие клавиши<Enter> (её обозначение - #10), то будем вводить символы до тех пор, пока значение очередного символа не совпадёт со значением #10. Анализируя каждый символ, будем увеличивать счётчик, если символ является цифрой:

Program Example_20; Var ch: Char; k: integer; Begin Read(ch); k:=0; While ch<>#10 Do {пока не нажата клавиша <Enter>} Begin IF(ch>='0') And (ch<='9') Then Inc(k); Read(ch); End; Write(^G,'Количество цифр равно ',k); End.

Задание 3.

Модифицировать программу так, чтобы она решала следующие задачи:

  1. Определить, является ли введённая строка правильной записью целого числа.

  2. Вычислить сумму цифр введённого числа.

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

Составим "скелет" диалоговой программы.

Repeat

<операторы, реализующие решение задачи>;

Writeln('Хотите продолжить работу(y/n)?'); Readln(ch); Until Upcase(ch)='N';

Здесь Upcase(ch) - это функция, преобразующая букву ch в прописную, если она существует (иначе ch остается неизменной).

Задание 4.

Модифицируйте решение предыдущей задачи, организовав диалог.