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



Переменные:  var { секция объявления переменных } r: Real; { переменная вещественного типа } i: Integer; { переменная целого типа } c: Char; { переменная-символ } b: Boolean; { логическая переменная } s: String; { переменная строки } t: Text; { переменная для обьявления текстового файла } e: (apple, pear, banana, orange, lemon); { переменная типа-перечисления } Тип переменной определяет множество значений, которые могут быть ей присвоены и операции, которые могут быть с нею произведены. Он либо фиксирован в момент объявления переменной и соответствует одному из типов данных, предоставляемых языком программирования (статическая типизация), либо в каждый момент соответствует типу тех данных, что содержит переменная (динамическая типизация). У каждого типа есть своя область допустимых значений, т.е множество тех значений, которые он может принимать.Пример для паскаля:
Integer -32768..32767
LongInt -2147483648..2147483647

Типы данных

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

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

Тип Диапазон Формат Размер в байтах
Byte 0..255 Беззнаковый 1
ShortInt −128..127 Знаковый 1
SmallInt −32768..32767 Знаковый 2
Word 0..65535 Беззнаковый 2
Integer -32768..32767 Знаковый 2
Cardinal =LongWord Беззнаковый 4
LongWord 0..4294967295 Беззнаковый 4
LongInt −2147483648..2147483647 Знаковый 4
Int64 −9223372036854775808..9223372036854775807 Знаковый 8
QWord 0..18446744073709551615 Беззнаковый 8

Числа с плавающей запятой:

Тип Диапазон количество значащих цифр Размер в байтах
Real/Double зависит от платформы ??? 8
Real48 ??? 11-12 6
Single 1.5E-45..3.4E38 7-8 4
Extended 1.9E-4932..1.1E4932 19-20 10
Comp −2E64+1..2E63-1 19-20 8
Currency −922337203685477.5808..922337203685477.5807 19-20 8

 

Способ представления в памяти - байт-код в двоичной системе счисления.

10) Выражения, преобразование типов. Упорядоченность значений. Стандартные функции, использующие дискретную упорядоченность и явные функции преобразования типов.

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

Математические операции

В таблице приведены основные математические операции Турбо Паскаль.

Символ операции Название операции Пример
* умножение 2*3 (результат: 6)
/ деление 30/2 (результат: 1.5E+01)
+ сложение 2+3 (результат: 5)
- вычитание 5-3 (результат: 2)
div целочисленное деление 5 div 2 (результат: 2)
mod остаток от деления 5 mod 2 (результат: 1)

Логические операции

Над логическими аргументами в Турбо Паскаль определены следующие операции:

  • NOT - логическое отрицание ("НЕ")
  • AND - логическое умножение ("И")
  • OR - логическое сложение ("ИЛИ")
  • XOR - логическое "Исключающее ИЛИ"

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

A B not A A and B A or B A xor B
true true false true true false
true false   false true true
false true true false true true
false false   false false false

Операции отношения

К операциям отношения в Турбо Паскаль относятся такие операции, как:

  • > - больше
  • < - меньше
  • = - равно
  • <> - не равно
  • >= - больше или равно
  • <= - меньше или равно

В операциях отношения могут принимать участие не только числа, но и символы, строки, множества и указатели.

Приведе́ние ти́па (type conversion) — преобразование значения переменной одного типа в значение другого типа. Выделяют явное и неявное приведения типов.

 

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

Явное приведение - это когда в коде явно указано преобразование к типу. Пример на паскале:

//(a - integer)

b:=IntToStr(a);

//(теперь b - string)

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

Конкретная схема выполнения задачи зависит от языка программирования. Общая схема выполнения задачи:

 

Трансля́тор — программа или техническое средство, выполняющее трансляцию программы.

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

Транслятор обычно выполняет также диагностику ошибок, формирует словари идентификаторов, выдаёт для печати тексты программы и т. д.[1]

Язык, на котором представлена входная программа, называется исходным языком, а сама программа — исходным кодом. Выходной язык называется целевым языком или объектным кодом.

Интерпрета́тор — программа (разновидность транслятора) или аппаратное средство, выполняющее интерпретацию.

Интерпрета́ция — пооператорный (покомандный, построчный) анализ, обработка и тут же выполнение исходной программы или запроса (в отличие от компиляции, при которой программа транслируется без её выполнения).

Компиля́тор — программа или техническое средство, выполняющее компиляцию.

Компиляция — трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду (абсолютный код, объектный модуль, иногда на язык ассемблера). Входной информацией для компилятора (исходный код) является описание алгоритма или программа на проблемно-ориентированном языке, а на выходе компилятора — эквивалентное описание алгоритма на машинно-ориентированном языке (объектный код).

Компилировать — проводить трансляцию машинной программы с проблемно-ориентированного языка на машинно-ориентированный язык.

 

Редактор исходного кода — текстовый редактор для создания и редактирования исходного кода программ. Он может быть отдельным приложением, или встроен в интегрированную среду разработки (IDE).

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

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

Объектный код, создаваемый компилятором, представляет собой область данных и область машинных команд, имеющих адреса, которые в дальнейшем "согласуются" редактором связи (иногда называемым загрузчиком). Редактор связи размещает в едином адресном пространстве все по отдельности откомпилированные объектные модули и статически подключаемые библиотеки.

· Исполнимый модуль — файл, содержащий программу в виде, в котором она может быть исполнена компьютером.

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

 

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

Библиотека (от англ. library) в программировании — сборник подпрограмм или объектов, используемых для разработки программного обеспечения (ПО).

 


Дата добавления: 2018-04-04; просмотров: 671; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!