- •Практикум по Турбо Паскалю
- •Первые занятия Первое знакомство с системой программирования Турбо Паскаль
- •Команды редактора
- •Задания
- •Режим помощи
- •Первая программа
- •Запуск программы
- •Сохранение программы
- •Выход из системы программирования Турбо Паскаль
- •Простейшие линейные программы
- •Арифметический квадрат. Абсолютная величина
- •Целый и логический типы данных Условный оператор
- •Логический тип данных
- •Условный оператор
- •Вложенные операторы условия
- •Целый тип данных. Цикл с параметром
- •Цикл с параметром (разбор на примере)
- •Работа с окнами. Метод пошагового выполнения программ
- •Работа с окнами
- •Решение задач с использованием цикла с параметром
- •Вопросы для обсуждения
- •Трассировка примера
- •Цикл с постусловием
- •Алгоритм Евклида
- •Вложенные циклы
- •Решение задач с использованием циклов с условием
- •Простые типы данных
- •Задания
- •Решение задач
- •Вещественный тип данных
- •Задание
- •Решение задач
- •Ограниченный, перечисляемый типы данных. Оператор варианта
- •Ограниченный тип данных
- •Оператор варианта
- •Перечисляемый тип данных
- •Решение задач
- •Описание переменных, констант и типов Раздел описания констант
- •Раздел описания переменных
- •Раздел описания типов
- •Решение задач
- •Преобразование типов. Совместимость типов
- •Задания
- •Решение задач
- •Решение задач
- •Контрольные работы Контрольная работа №1
- •Контрольная работа №2
- •Основы Паскаля
- •X y22m размер gamma alfa r15
- •Процедуры и функции
- •Описание процедур и функций
- •Файловый тип
- •Описание файлового типа
- •Подпрограммы
- •Процедура Assign
- •Процедура Reset
- •Процедура Rewrite
- •Процедура Write
- •Процедура Close
- •Функция FileSize
- •Функция FilePos
- •Текстовые файлы
- •Описание текстового файла
- •Консоль
- •Устройства
- •Соответствие текстовых файлов и логических устройств
- •Операции над текстовыми файлами
- •Процедура Assign
- •Процедура Reset
- •Процедура Rewrite
- •Процедура Append
- •Процедура Close
- •Функция Eof
- •Функция SeekEof
- •Блочные файлы Описание типа блочного файла
- •Процедура BlockRead
- •Процедура BlockWrite
- •Операции ввода-вывода
- •Регулярные типы данных Одномерные массивы. Работа с элементами
- •Способы задания одномерных массивов
- •Работа с элементами массива (разбор на примерах)
- •Методы работы с элементами одномерного массива Изменение значения некоторых элементов
- •Создание массива
- •Работа с несколькими массивами
- •Удаление элементов из одномерного массива Удаление элемента
- •Вставка элементов в одномерный массив Вставка одного элемента
- •Вставка нескольких элементов
- •Перестановка элементов массива
- •Перестановка части массива
- •Найти сумму элементов
- •Работа с несколькими массивами
- •Двумерный массив. Работа с элементами Изменение значений некоторых элементов, удовлетворяющих заданному свойству
- •Заполнение двумерного массива по правилу.
- •Вставка и удаление элементов двумерного массива
- •Перестановка элементов массива
- •Комбинированный тип данных (записи)
Простые типы данных
Простые типы данных делятся на порядковые и вещественный тип данных.
В математике порядковым числом называется номер элемента при перечислении. Под порядковым типом данных, областью значений которых является тип, понимают упорядоченное множество. Каждому элементу такого множества соответствует некоторое порядковое число, являющееся как раз его номером при перечислении.
В любом порядковом типе для каждого значения, кроме первого, существует предшествующее значение, и для каждого значения, кроме последнего, существует последующее значение. В языке Паскаль существуют стандартные функции, которые позволяют определять соответствующие значения для заданного значения:
функция 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.
Напишите программу, которая запрашивает символ и выводит на экран соответствующий ему код.
Функция 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.
Модифицировать программу так, чтобы она решала следующие задачи:
Определить, является ли введённая строка правильной записью целого числа.
Вычислить сумму цифр введённого числа.
Переменные символьного типа удобны для написания диалоговых программ. Диалоговая программа - это программа, в ходе выполнения которой на экране регулярно возникает текст, содержащий вопрос о том, следует ли продолжать работу или надо закончить выполнение программы.
Составим "скелет" диалоговой программы.
Repeat
<операторы, реализующие решение задачи>;
Writeln('Хотите продолжить работу(y/n)?'); Readln(ch); Until Upcase(ch)='N';
Здесь Upcase(ch) - это функция, преобразующая букву ch в прописную, если она существует (иначе ch остается неизменной).
Задание 4.
Модифицируйте решение предыдущей задачи, организовав диалог.
