Remkomplekty.ru

IT Новости из мира ПК
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Тип диапазон паскаль

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

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

Простые типы делятся на стандартные (порядковые) и перечисляемые (ограниченные).

Стандартные типы

Турбо-Паскаль имеет четыре встроенных стандартных типа: integer (целое), real (вещественное), boolean (логический) и char (символьный).

Целочисленный тип (integer)

В Турбо-Паскале имеется пять встроенных целочисленных типов: shortint (короткое целое), integer (целое), longint (длинное целое), byte (длиной в байт) и word (длиной в слово). Каждый тип обозначает определенное подмножество целых чисел, как это показано в следующей Таблице.

Встроенные целочисленные типы.

Тип

Диапазон

Формат

8 битов со знаком

16 битов со знаком

32 бита со знаком

8 битов без знака

16 битов без знака

Арифметические действия над операндами целочисленного типа осуществляются в соответствии со следующими правилами:

  1. Тип целой константы представляет собой встроенный целочисленный тип с наименьшим диапазоном, включающим значение этой целой константы.
  2. В случае бинарной операции (операции, использующей два операнда), оба операнда преобразуются к их общему типу перед тем, как над ними совершается действие. Общим типом является встроенный целочисленный тип с наименьшим диапазоном, включающим все возможные значения обоих типов. Например, общим типом для целого и целого длиной в байт является целое, а общим типом для целого и целого длиной в слово является длинное целое. Действие выполняется в соответствии с точностью общего типа и типом результата является общий тип.
  3. Выражение справа в операторе присваивания вычисляется независимо от размера переменной слева.

Операции совершаемые над целыми числами:

SQR — возведение в квадрат

DIV — после деления отбрасывает дробную часть

MOD — получение целого остатка после деления

ABS — модуль числа

RANDOM(X)-получение случайного числа от 0 до Х

Описываются переменные целого типа следующим образом:

var список переменных: тип;

Например: var а,р,n:integer;

Вещественный тип(real)

К вещественному типу относится подмножество вещественных чисел, которые могут быть представлены в формате с плавающей запятой с фиксированным числом цифр. Запись значения в формате с плавающей запятой обычно включает три значения — m, b и e — таким образом, что m*b е , где b всегда равен 10, а m и e являются целочисленными значениями в диапазоне вещественного типа. Эти значения m и e далее определяют диапазон и точность вещественного типа.

Имеется пять видов вещественных типов: real, singlе, duble, exnende, comp. Вещественные типы различаются диапазоном и точностью связанных с ними значений

Диапазон и десятичные цифры для вещественных типов

Перечисляемый и диапазонный типы

Перечисляемый тип определяется как упорядоченный набор идентификаторов, заданный путем их перечисления.

где Т – идентификатор типа; wi – константа идентификатора.

type color = (red, orange, yellow, green, blue, violet);

day = (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday);

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

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

weekday, dayoff: day;

К этим переменным можно применить операторы присваивания, например,

Важно, чтобы слева и справа в операторе присваивания стояли величины одного типа.

Значения типа, заданного перечислением, упорядочены. Упорядоченность определяется той последовательностью, в которой перечислены константные идентификаторы: первое значение в списке имеет номер нуль и т.д.

Для величин перечисляемого типа определены функции:

Во избежание неоднозначностей, запрещено использовать одни и те же константные идентификаторы при задании различных перечисляемых типов, например:

type color1=(red, blue, orange);

color2=(green, red, yellow);

так как в этом случае невозможно определить, к какому типу относится red.

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

Однако они не могут быть введены и выведены с помощью write, read.

Тип диапазон (или ограниченный тип) представляет собой интервал значений порядкового типа. Он задается указанием диапазона: минимального и максимального значений. Например,

type workday = Monday..Friday;

Диапазон можно задавать для любого простого типа за исключением вещественного.

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

Читать еще:  Динамический массив си шарп

Наиболее часто отрезки типов используются в таких конструкциях языка, как оператор case, объявлении массива и др.

Функции Low(x) и High(x) дают минимальные и максимальные значения для порядковых, в том числе и диапазонных типов. Аргументом могут быть как переменные данного типа, так и имя типа.

3. Множественный тип данных.

Тип множества вводится описанием

type Symbol = set of Char;

var Digits, Letter, Sing: Symbol;

таким образом, переменные Digits, Letter, Sing представляют различные группы символов.

На базе перечисляемого типа PrimaryColor (основной цвет) можно определить тип множества Color (цвет), т.е. множество, содержащее различные комбинации основных цветов. Можно считать, что этот тип множества задает смешивание цветов.

type PrimaryColor = (red, green, blue);

Color = set of PrimaryColor;

var alfa, beta: Color;

Множества представляют собой неупорядоченный набор элементов.

Для того чтобы задать переменной какое-либо значение используется структура, называемая конструктором множества. В ней, в отличие от традиционной математической нотации множества <…>, элементы множества заключаются в квадратные скобки […]. Каждый элемент в скобках записывается через запятую или определяется через диапазон.

Приведем несколько примеров операторов присваивания для описанных выше переменных:

Lettters:= [‘a..c’, x, y, z];

Запись [ ] означает пустое множество.

Множества можно использовать как константы, например:

Const YesNo = [‘Y’, ‘y’, ‘N’, ‘n’];

DigitLetters: set of char = [‘a’..’z’, ‘A’..’Z’, ‘0’..’9’].

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

1. Объединением множеств А и В называется новое множество С, содержащее элементы обоих множеств. В теории множеств:

Pascal. Типы данных

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

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

По способу представления и обработки типы данных бывают:

  • простые
  • структурированные
  • указатели
  • объекты
  • процедуры

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

Целочисленный тип

Сюда входят несколько целочисленных типов, которые различаются диапазоном значений, количеством байт отведённых для их хранения и словом, с помощью которого объявляется тип.

Объявить целочисленную переменную можно в разделе Var, например:

Над переменными этой категории можно выполнять все арифметические и логические операции за исключением деления (/), для него нужен вещественный тип. Также могут быть применены некоторые стандартные функции и процедуры.

Вещественный тип

В Паскале бывают следующие вещественные типы данных:

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

ln(x) – натуральный логарифм;

sqrt(x) – квадратный корень;

Логический тип

Переменная, имеющая логический тип данных может принимать всего два значения: true (истина) и false (ложь). Здесь истине соответствует значение 1, а ложь тождественная нулю. Объявить булеву переменную можно так:

Над данными этого типа могут выполняться операции сравнения и логические операции: not , and, or, xor.

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

Символьный тип данных – это совокупность символов, используемых в том или ином компьютере. Переменная данного типа принимает значение одного из этих символов, занимает в памяти компьютера 1 байт. Слово Char определяет величину данного типа. Существует несколько способов записать символьную переменную (или константу):

  1. как одиночный символ, заключенный в апострофы: ‘W’, ‘V’, ‘п’;
  2. указав код символа, значение которого должно находиться в диапазоне от 0 до 255.
  3. при помощи конструкции ^K, где K – код управляющего символа. Значение K должно быть на 64 больше кода соответствующего управляющего символа.
Читать еще:  Задача коммивояжера паскаль

К величинам символьного типа данных применимы операции отношения и следующие функции:

Succ(x) — возвращает следующий символ;

Pred(x) — возвращает предыдущий символ;

Ord(x) — возвращает значение кода символа;

Chr(x) — возвращает значение символа по его коду;

UpCase(x) — переводит литеры из интервала ‘a’..’z’ в верхний регистр.

Для плодотворной работы с символьным типом рекомендую пользоваться таблицей ASCII.

Строковый тип

Строка в Паскале представляет собой последовательность символов заключенных в апострофы, и обозначается словом String. Число символов (длина строки) должно не превышать 255. Если длину строки не указывать, то она автоматически определиться в 255 символов. Общий вид объявления строковой переменной выглядит так:

Каждый символ в строке имеет свой индекс (номер). Индекс первого байта – 0, но в нем храниться не первый символ, а длина всей строки, из чего следует, что переменная этого типа будет занимать на 1 байт больше числа переменных в ней. Номер первого символа – 1, например, если мы имеем строку S=‘stroka’, то S[1]=s;. В одном из следующих уроков строковый тип данных будет рассмотрен подробнее.

Перечисляемый тип данных

Перечисляемый тип данных представляет собой некоторое ограниченное количество идентификаторов. Эти идентификаторы заключаются в круглые скобки, и отделяются друг от друга запятыми.

Type Day=(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday);

Переменная A может принимать лишь значения определенные в разделе Type. Также можно объявить переменную перечисляемого типа в разделе Var:

Var A: (Monday, Tuesday);

К данному типу применимы операции отношения, при этом заранее определенно, что Monday = .. ;

Урок 11. Типы в PascalABC.NET. Создание своего типа

Приветствуем тебя, юный (или не очень юный) читатель нашего сайта! Сегодня мы с вами поговорим про типы в PascalABC.NET: числовые, символьные и логические. Они немного отличаются от стандартных типов Turbo Pascal.

Давайте вспомним какими могут быть величины? Об этом говорилось в отдельной статье. Сейчас мы быстренько все впомним. Любая величина может быть трех типов: числовой, символьной и логическй. Раньше мы использовали всего несколько типов (integer, real, boolean ), но пришло время расширить знания.

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

Важно! Все диапазоны и типы действительны только для PascalABC.NET, во Free Pascal и Turbo Pascal у этих типов будут другие значения. Например, в PascalABC.NET тип integer имеет диапазон от -2147483648 до 2147483647, а в Turbo Pascal у этого типа диапазон от -32768 до 32767.

Принято разделять числовые типы на две большие подгруппы: целые и вещественные.

Целые типы

Вещественные типы

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

Логический тип

В PascalABC.NET только один логический тип — boolean. Про него была написана целая статья. Тип Boolean принимает значение true или false, и его размер — 1 байт.

Символьный тип и строки

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

Символьный тип char занимает 2 байта и хранит Unicode-символ.

Чтобы не писать отдельную статью про символьный тип, вкратце расскажу про него здесь. В PascalABC.NET помимо стандартных функций chr и ord, добавлены новые функции — ChrUnicode и OrdUnicode.

Chr(n) — функция, возвращающая символ с кодом n в кодировке Windows;
Ord(с) — функция, возвращающая значение типа byte, представляющее собой код символа c в кодировке Windows.

ChrUnicode(w) — возвращает символ с кодом w в кодировке Unicode;
OrdUnicode(с) — возвращает значение типа word, представляющее собой код символа c в кодировке Unicode.

Давайте поэкспериментируем, составим вот такую небольшую программку.

Этой программой я хочу проверить накладываются ли друг на друга кодировка Windows и Unicode. Ниже, на скриншоте вы можете посмотреть результат работы программы.

Накладываются. Просто Unicode длиннее, чем кодировка Windows.

Строковой тип

Строки имеют тип string, состоят из набора последовательно расположенных символов char и используются для представления текста.

Строки могут иметь произвольную длину. Строки изменяемы.

Наверное, сейчас вы сомневаетесь в том, что в PascalABC.NET строки могут быть произвольной длины. Давайте проверим это с помощью небольшой программы.

Кроме того, в PascalABC.NET реализованы размерные строки. Для их описания используется тип string[n], где n — константа целого типа, указывающая длину строки.

Читать еще:  Неожиданный символ паскаль

Перечислимый и диапазонный типы

Перечислимый тип

Перечислимый тип определяется упорядоченным набором идентификаторов. Чтобы объявить новый тип, используется специальное слово — type. Его необходимо ставить перед var.

Значения перечислимого типа занимают 4 байта. Каждое значение value представляет собой константу типа typeName, попадающую в текущее пространство имен.

К константе перечислимого типа можно обращаться непосредственно по имени, а можно использовать запись typeName.value, в которой имя константы уточняется именем перечислимого типа, к которому она принадлежит:

Для значений перечислимого типа можно использовать функции Ord, Pred и Succ, а также процедуры Inc и Dec (Подробнее про эти функции и процедуры). Функция Ord возвращает порядковый номер значения в списке констант соответствующего перечислимого типа, нумерация при этом начинается с нуля.

Результат работы программы

Диапазонный тип

Диапазонный тип представляет собой подмножество значений целого, символьного или перечислимого типа и описывается в виде a..b, где a — нижняя, b — верхняя граница интервального типа, a Результат работы программы

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

На сегодня все! Урок получился объемным, но, надеюсь, понятным. Если же у вас возникли вопросы, напишите нам.

Тип диапазон паскаль

Для обработки ЭВМ данные представляются в виде величин и их совокупностей. С понятием величины связаны такая важная характеристика, как ее тип.

Тип определяет:

  • возможные значения переменных, констант, функций, выражений, принадлежащих к данному типу;
  • внутреннюю форму представления данных в ЭВМ;
  • операции и функции, которые могут выполняться над величинами, принадлежащими к данному типу.

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

Иерархия типов в языке Паскаль такая:

  • Простые
    • Порядковые
      • Целые
      • Логические
      • Символьные
      • Перечисляемые
      • Интервальные
    • Вещественные
  • Структуированные
    • Массивы
    • Строки
    • Множества
    • Записи
    • Файлы
  • Указатели

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

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

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

Дополнительные сведения о типах данных..

Порядковые типы, выделяемые из группы простых типов, характеризуются следующими свойствами:

  • все возможные значения порядкового типа представляют собой ограниченное упорядоченное множество;
  • к любому порядковому типу может быть применена стандартная функция Ord, которая в качестве результата возвращает порядковый номер конкретного значения в данном типе;
  • к любому порядковому типу могут быть применены стандартные функции Pred и Succ, которые возвращают предыдущее и последующее значения соответственно;
  • к любому порядковому типу могут быть применены стандартные функции Low и High, которые возвращают наименьшее и наибольшее значения величин данного типа.

В языке Паскаль введены понятия эквивалентности и совместимости типов. Два типа Т1 и Т2 являются эквивалентными (идентичными), если выполняется одно из двух условий:

  • Т1 и Т2 представляют собой одно и то же имя типа;
  • тип Т2 описан с использованием типа Т1 с помощью равенства или последовательности равенств. Например:

Менее строгие ограничения накладываются на совместимость типов. Так, типы являются совместимыми, если:

  • они эквивалентны;
  • являются оба либо целыми, либо действительными;
  • один тип — интервальный, другой — его базовый;
  • оба интервальные с общим базовым;
  • один тип — строковый, другой — символьный.

В Турбо Паскаль ограничения на совместимость типов можно обойти с помощью приведения типов. Приведение типов позволяет рассматривать одну и ту же величину в памяти ЭВМ как принадлежащую разным типам. Для этого используется конструкция Имя_Типа(переменная или значение)

Напрмер, Integer(‘Z’) представляет собой значение кода символа ‘Z’ в двухбайтном представлении целого числа, а Byte(534) даст значение 22, поскольку целое число 534 имеет тип Word и занимает два байта, а тип Byte занимает один байт, и в процессе приведения старший байт будет отброшен.

Волгоградский государственный педагогический университет
Кафедра алгебры, геометрии и информатики

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector
×
×