Invest-currency.ru

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

Ограниченный тип данных паскаль

Ограниченный тип данных паскаль

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 = .. ;

TURBO PASCAL

Ограниченный, перечисляемый типы данных. Оператор варианта

    Определите значение переменной s после выполнения следующих операторов:

Ограниченный тип данных

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

Var a: 1..25; ch: ‘a’ ..’z’;

Здесь переменные а и ch могут принимать значения только из указанного интервала; базовым типом для переменой а является целый тип, а для переменной ch — символьный.

Переменная ограниченного типа сохраняет все свойства переменных базового типа.

Для чего вводится ограниченный тип данных? Использование ограниченного типа делает программу наиболее понятной и наглядной. Например, если в программе переменная b может принимать только значения 3, 4, 5, 6, 7, 8, то лучше описать её следующим образом: Var b: 3..8;, чем Var b: Integer; так как в случае выхода значения b за диапазон 3..8 в первом случае будет выдано диагностическое сообщение, которое поможет найти ошибку. Во втором случае будет получен неправильный результат, что затруднит поиск ошибки. Таким образом, второй вариант описания переменной следует использовать в тех случаях, когда диапазон значений заранее неизвестен либо занимает весь допустимый интервал значений для рассматриваемого типа.

Пример 1:

Напишите программу, которая переменной t присваивает значения true, если первая дата предшествует (в рамках года) второй дате, и значение false в противном случае.

Так как в условии задачи оговаривается, что обе даты должны находится в рамках года, то дата должна задаваться днём и месяцем. Количество любого месяца года не может быть более 31, количество месяцев в году равно 12. Значение переменной t равно true, если номер первого месяца меньше второго, либо значение первого дня меньше второго при условии, что номера месяцев совпали.

Program Example_24;
Var d1, d2 : 1..31;
m1,m2: 1..12;
t:Boolean;
Begin
Write( ‘Введите первую дату (день, месяц)’);
Readln(d1, m1);
Write( ‘Введите вторую дату (день, месяц)’);
Readln(d2, m2);
t:=(m1

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

Оператор варианта

В программах очень часто используются операторы Case . of. Эта конструкция предназначена для замены конструкции из вложенных операторов If. then и применяется для обработки ситуаций с несколькими исходами, т.е. когда условие может принимать более двух значений. Оператор выбора имеет следующий вид:

Ограниченный тип данных

Множество значений стандартных скалярных типов данных и перечисляемых скалярных типов упорядочено и конечно (кроме вещественного типа).

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

Описание ограниченного типа имеет вид:

TYPE = константа..константа;

Обе граничные константы должны быть одного типа, в качестве базового типа можно использовать любой простой тип, кроме действительного (REAL). Начальное значение для определения ограниченного типа не должно быть больше конечного. Переменные ограниченного типа должны быть описаны в разделе переменных с помощью имён этих типов.

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

TYPE DAY = (MO, TU, WE, TH, FR, SA, SU);

Для ограниченного типа NOM базовым является целый тип, для SSS – символьный, для WD – определённый ранее перечислимый тип DAY.

Из примера видно, что для определения ограниченного типа указываются начальное и конечное значения, которые может принимать константа базового типа на этом отрезке, разделённые двумя точками (..).

6.3. Оператор выбора (варианта)

Характерной чертой многих алгоритмов является широкая разветвляемость, задаваемых ими вычислительных процессов. Для задания таких разветвлений используют условный оператор, по которому выбирается ход вычисления в зависимости от выполнения одного, двух условий. Но на практике часто встречаются случаи, когда вычислительный процесс надо разветвить не по двум, а по К (К>2) возможным путям. Это можно сделать и при помощи условного оператора, но в этом случае структура программы будет громоздкой:

IF B1 THEN S1 ELSE

IF B2 THEN S2 ELSE

IF BK THEN SK ELSE

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

Полный формат оператора:

CASE OF

else оператор;

end;

Краткий формат оператора:

CASE OF

end;

Здесь CASE (в случае), OF (из), END (конец) – служебные слова. — является селектором, значение которого может быть целого, литерного, логического типа, либо типом, определяемым пользователем (за исключением действительного типа REAL).

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

Ограниченный тип данных

Дата добавления: 2014-11-28 ; просмотров: 1924 ; Нарушение авторских прав

На основе четырех рассмотренных порядковых типов можно определить новые, порядковые типы: например, можно сузить диапазон значений любого из 4-х порядковых типов. Такие типы называют ограниченными (или интервальными) типами.Другое их название — диапазоны. Такие типы задаются границами своих значений внутри базового типа:

Примеры определения типов — диапазонов:

Typedate=1..31; TypeMonth=1..12; TypeSim=’A’..’Z’

Можно сразу определить переменную типа — диапазон:

Day:1..31; Month:1..12; Sim:’A’..’Z’ и т.п.

Необходимо помнить, что левая граница диапазона не должна превышать правой.

К значениям этого типа могут быть применены стандартные функции:

HIGH(X) — возвращает максимальное значение типа — диапазона, к которому принадлежит переменная Х;

LOW(X) — возвращает минимальное значение типа — диапазона, к которому принадлежит переменная Х.

Контрольные вопросы:

1. На какие два больших класса можно разделить все данные в Паскаль-программе?

2. Чем отличаются переменные от констант?

3. Как представляются константы в программе?

4. Как представляются переменные в программе?

5. Может ли константа иметь имя?

а) если может, то как оно задается и для каких целей?

б) если не может, то почему?

6. Что такое тип данных?

7. Какие типы данных имеются в Паскале?

8. Что такое тип integer?

9. Как записываются константы целого типа?

10. Как записываются переменные целого типа?

11. Перечислите функции, которые разрешены для целого аргумента.

12. Перечислите функции, которые возвращают целый результат.

13. Перечислите функции, разрешенные для данных вещественного типа.

14. Может ли число, правильно записанное на Паскале, оканчиваться точкой?

15. Может ли число, правильно записанное на Паскале, начинаться с точки?

16. Найдите и объясните ошибки в следующих описаниях констант:

tri = dwa + dwa + 1;

two = funf div dwa; .

17. Найдите и объясните ошибки в описаниях переменных целого типа.

var a,b,c : integer;

18. Вычислите и проверьте делением уголком:

20 div 6 , 20 mod 6 ,

20 div 4 , 20 mod 4 ,

2 div 5 , 2 mod 5 ,

123 div 0 , 3.0 mod 0 ,

-8 div (-3) , -8 mod (-3) ,

-8 div 3 , -8 mod 3 ,

8 div (-3) , 8 mod (-3) ,

8 div 3 , 8 mod 3 .

19. Операция «число div 10» позволяет отбросить последнюю цифру числа. Операция «число mod 10» позволяет достать из числа последнюю цифру. Например, 123 div 10 = 12, 123 mod 10 = 3. Запишите, как определить вторую цифру (цифру десятков) целого числа?

Литература:

4. О.Л. Голицына, И.И. Попов , Основы алгоритмизации и программирования 85-93;

5. В. Фаронов Turbo Pascal, стр 20-30

3 Структура программ на языке TurboPascal

1. Основные разделы программы

2. Описание меток

3. Описание переменных

4. Описание типов

5. Описание простых и типизированных констант

Читать еще:  Запись выражений на языке паскаль
Ссылка на основную публикацию
ВсеИнструменты 220 Вольт
Adblock
detector
×
×