Тема: «Типы данных» Лекция
Цель: Представить целостную картину о типах данных языка Паскаль.
Функционирование любой программы связано с обработкой данных. Данные, предназначенные для обработки, называются исходными и задаются обычно в начале программы. В процессе выполнения программы исходные данные преобразуются в результаты. Данные Переменные Константы
Константами называются элементы данных, значения которых в процессе выполнения программы не изменяются. В языке Turbo Pascal используются константы следующих видов: числовые, логические (булевские), символьные и строковые. Переменные, в отличие от констант, могут менять свои значения при выполнении программы. В программировании переменную можно трактовать как одну или несколько ячеек оперативной памяти компьютера, которым присвоено определенное имя (идентификатор). В любой момент времени переменная имеет только одно, текущее, значение.
Вопрос. Как вы думаете, может ли быть верным данное высказывание а:=а+1? Ответ. Математик сочтет это высказывание неверным. Для программиста это абсолютно правильная конструкция, которая задает вычисление суммы содержимого ячейки а и числовой константы 1 и занесение полученного результата в ту же ячейку а. После выполнения этого действия старое значение переменной а будет потеряно, т.к. одна ячейка памяти не может вместить сразу несколько значений. Это очень важный момент в программировании. Именование констант и переменных в программировании очень похоже на использование символических выражений в алгебре. Для описания множества допустимых значений величины и совокупности операций, в которых может участвовать данная величина, используется указание ее типа данных. Тип данных (data type) – множество величин, объединенных определенной совокупностью допустимых операций.
Простые (скалярные) типы данных К скалярным (scalar - простые) типам данных относят типы данных таких величин, значения которых не содержат составных частей. Все простые данные имеют два характерных свойства: неделимость и упорядоченность их значений.
Целочисленные типы данных Целочисленные типы данных представляют собой значения, которые могут использоваться в арифметических выражениях и занимать в памяти от 1 до 4 байт. ТипДиапазонТребуемая память (байт) byte shortint integer word longint
Вещественные типы данных Вещественные типы данных представляют собой вещественные значения, которые могут использоваться в арифметических выражениях и занимать в памяти от 4 до 6 байт. Паскаль допускает представление вещественных значений и с плавающей запятой, и с фиксированной точкой. ТипДиапазонМантиссаТребуемая память (байт) real 2.9*10E – *10E single 1.5*10E – *10E double 5.0*10E – *10E extended 1.9*10E – *10E comp -2E E
Литерный (символьный) тип char определяется множеством значений кодовой таблицы ПЭВМ. Для размещения в памяти переменной литерного типа требуется один байт. Булевским типом называют тип данных, представляемый двумя значениями true (истина) и false (ложь). Для размещения в памяти переменной булевского типа требуется 1 байт. Пользовательские типы. Кроме стандартных типов данных Паскаль поддерживает скалярные типы, определенные самим пользователем. К ним относятся перечисляемый и интервальный типы. Данные этих типов занимают в памяти один байт. Их применение значительно улучшает наглядность программы, делает более легким поиск ошибок, экономит память. Интервальный тип (диапазон) позволяет задавать две константы, определяющие границы диапазона значений для данной переменной. Компилятор при каждой операции с переменной интервального типа генерирует подпрограммы проверки, определяющие, остается ли значение переменной внутри установленного для нее диапазона. Обе константы должны принадлежать одному из стандартных типов (тип real недопустим). Значение первой константы должно быть значительно меньше значения второй. Перечисляемый тип (enumerated type) – тип данных, задается списком принадлежащих ему значений. Например, в виде строковых констант: color=(red, blue, green, black). В приведенном примере создается новый (нестандартный) тип данных color. Переменные этого типа могут принимать всего 4 значения: red, blue, green, black. Такая возможность создания новых пользовательских типов данных имеется в языке Turbo Pascal.
Структурированные типы данных Структурированные типы данных определяют упорядоченную совокупность скалярных переменных и характеризуются типом своих компонентов. Структурированные типы данных в отличие от простых задают множества сложных значений с одним общим именем. Существует несколько методов структурирования, каждый из которых отличается способом обращения к отдельным компонентам и, следовательно, способом обозначения компонентов, входящих в структурные данные. По способу организации и типу компонентов в сложных типах данных выделяют следующие разновидности: регулярный тип (массивы); комбинированный тип (записи); файловый тип (файлы); множественный тип (множества); строковый тип (строки); в языке Турбо Паскаль версии 6.0 и старше введен объектный тип (объекты).
Строки Строка (string) – это последовательность символов кодовой таблицы персонального компьютера. Количество символов в строке может изменяться от 0 до 255.
Массивы В структурных типах выделяют регулярный тип (массивы - array). Название регулярный тип (или ряды) массивы получили за то, что в них объединены однотипные элементы, упорядоченные (урегулированные) по индексам, определяющим положение каждого элемента в массиве.
Множества Множество (set) – это структурированный тип данных, представляющий собой набор взаимосвязанных по какому-либо признаку или группе признаков объектов, которые можно рассматривать как единое целое. Каждый объект в множестве называется элементом множества. Все элементы множества должны принадлежать одному из скалярных типов, кроме вещественного.
Записи Для записи комбинации объектов разных типов в Паскале применяется комбинированный тип данных – запись (record). Запись представляет собой наиболее общий и гибкий структурированный тип данных, так как она может быть образована из неоднотипных компонентов и в ней явным образом выражена связь между элементами данных, характеризующими реальный объект.
Файлы Большие совокупности данных удобно иметь записанными во внешней памяти в виде последовательности сигналов. В Паскале для этих целей предусмотрены специальные объекты – файлы (file). Файлом называется совокупность данных, записанная во внешней памяти под определенным именем.
Памятка по решению задач на объявление данных каждая переменная программы должна быть объявлена; объявление переменных помещают в раздел, который начинается словом var; константы помещают в раздел, который начинается словом const; переменные пользовательских типов (перечисляемые и интервальные) объявляют по особой схеме; В имени переменной можно использовать буквы латинского алфавита и цифры (первым символом должна быть буква); после инструкции объявления данных рекомендуется указывать назначение переменной или константы; инструкция объявления констант выглядит так: ИмяКонстанты = значение константы; инструкция объявления переменных выглядит так: имя ИмяПеременной: тип; инструкция объявления переменных интервального типа помещается в двух разделах type, var; инструкция объявления переменных перечисляемого типа помещается в двух разделах type, var;
Задача 1.Объявите переменные, необходимые для вычисления значения функции у=х2. Вариант 1. var х:real; {аргумент} у: real; {функция}
Задача 2. Объявите данные, необходимы для вычисления площади круга. const pi=3.14 ; {число } var r: real; {радиус} s: real; {площадь}
Задача 3. Объявите данные, необходимы для вычисления стоимости покупки, состоящей из нескольких тетрадей, карандашей и линейки. var k1: real; {количество тетрадей} k2: real; {количество карандашей} с1: real; {цена одной тетради} с2: real; {цена одного карандаши} с3: real; {цена линейки} s: real; {стоимость покупки}
Вопросы Какие данные различают в языке Паскаль? На какие две основные группы можно разделить эти данные? Посмотрите на схему и назовите основные типы скалярного типа данных. Почему важно правильно определить тип данных при составлении программы? Приведите свой пример. Как выглядят инструкции объявления констант и переменных? Почему рекомендуется указывать назначение данных, используемых в программе?