Базовые типы числовых информационных объектов


Базовый информационный объект числового типа – ячейка памяти, бинарный код которой интерпретируется (дешифруется) как число.

В языке Pascal используются два класса (две разновидности) базовых числовых объектов: вещественные числа и целочисленные числа. Каждый класс содержит несколько подклассов – типов.

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

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

 

Базовые целочисленные типы информационных объектов (целые числа)
Имя типа Размер ячейки Диапазон описываемых числовых значений
byte от 0 до 255
word от 0 до 65535
integer от -32768 до 32767
longInt от -109 до 109

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

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

 

 

Для целочисленных ИО:

Операция Символ
сложение +
вычитание -
умножение *
деление с округлением div
Остаток от деления mod

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

Иерархия (расположение по возрастанию старшинства, старший тип включает младшие) базовых числовых ИО языка Pascal:

byte < word < integer < LongInt < real < double.

Бинарное кодирование вещественных чисел основано на возможности представления любого действительного числа в форме мантиссы и порядка a = m × 10p

где m – мантисса (действительное число, модуль которого больше или равен 0.1, но меньше 1), p – порядок числа (целое число).

Примеры: -23.017 = -0.23017×102 = -2.30170000000Е 0001

мантисса порядок стандартная запись в формате Е

0.00053044 = 0.53044×10-3 = -5.30440000000Е-0004

 

Базовые вещественные типы информационных объектов (действительные числа)
Имя типа Размер ячейки диапазон порядка числа количество цифр мантиссы
real от -39 до 38
double от -324 до 308

 

Базовые операции над вещественными ИО:

Операция Символ
сложение +
вычитание -
умножение *
деление /
стандартные арифметические функции Sin, cos, ln, Sqr, Sqrt, ArgTan, Exp, Abs и т.п.

Явные константы

Опр. Явной константой называется информационный объект, содержимое которого совпадает с названием.

Тип констант определяется содержимым константы, т.е. ее названием, т.е. ее формой записи.

Примеры числовых констант: 23.078 (тип real) 67 (тип byte)

2345 (тип word) -309 (тип integer) 35.78E3 (тип real, число 35780)

-67.04D-4 (тип double, число –0.006704).

Содержимое констант не может быть изменено в процессе выполнения программы.

6.3. Оператор описания VAR

Операторы VAR относятся к классу команд-описаний, т.е. изначально предназначены для общения именно с программой-транслятором. Назначение этих операторов – сообщить переводчику: как следует понимать имена собственные (идентификаторы), которые придумывает сам программист.

Синтаксис оператора VAR:

VAR И1, И2, И3, . . . . ,Иn: Итипа;

Примеры:

Var c, Aa, Wes: real;

Var i, Nomer, ii, iii: integer;

Пояснение структуры оператора:

Varключевое слово оператора, которое необходимо для распознавания данного типа операторов. Var - зарезервированное слово языка Pascal. За ключевым словом обязательно следует символ-разделитель «пробел».

И1, И2, И3, . . . . ,Иn– перечень идентификаторов, т.е. имен собственных придуманных программистом для вводимых им информационных объектов. Символом-разделителем в перечне является запятая. Эстетика оформления требует чтобы после каждого знака препинания ставился пробел. Завершает перечень описываемых переменных обязательный символ-разделитель «двоеточие».

Итипа– описание типа, т.е. побитной структуры перечисленных информационных объектов. Тип может задаваться либо одним именем (зарезервированное или ранее описанное слово-идентификатор), либо целым стандартизированным предложением-описанием.

Все операторы (предложения-команды) языка Pascal завершаются символом-разделителем «точка с запятой». Символ «;» следует воспринимать, как знак восклицания «!», которым завершаются все команды, т.е. предложения естественного языка, написанные в повелительном наклонении.

Семантика (варианты звуковой транскрипции) операторов из приведенных примеров (передача смысла команд для транслятора, но лексикой естественного языка):

- Выделить а оперативной памяти место для размещения трех информационных объектов (ИО, т.е. переменных) с именами c, Aa, Wes, размер и структура которых имеют стандартное имя real!

- Разместить в оперативной памяти ИО i, Nomer, ii, iii стандартного типа integer!

Работа транслятора: каждому идентификатору соотнесен адрес фрагмента памяти известного размера.

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

Пример возможных комментариев:

{ c-длина гипотенузы }

(* Aa-площадь квадратной ячейки сетки *)

Все языки программирования высокого уровня характеризуются «избыточностью синтаксиса», т.е. необходимостью написания многих «лишних» слов и различных символов-разделителей. Это объясняется тем, что в таких текстах человеку-программисту проще визуально обнаруживать свои ошибки. Для передачи транслятору только одной семантики, вполне хватило бы сокращенных структур команд, которые используют только ключевые слова и разделители-пробелы. Например, вышеописанные операторы могли бы выглядеть так:

Var c Aa Wes real i Nomer ii iii integer

Что очень тяжело для визуального восприятия человеком!

6.4. Оператор присвоения :=

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

Примеры выражений:

a + b

a * (b - c) + a

(a + sin(a)) / ((b - cos( a + 2.4)) * 7)

Аналог понятия «выражение на ЯП» – алгебраическое выражение.

Свойства выражений:

1. Выражение - всегда фрагмент (только часть) предложения.

2. Смыслом выражения является результат выполнения указанных операций над указанными объектами:

2.1. результатом всегда только один информационный объект,

2.2. результат имеет известный тип, однозначно определяемый типами входящих в выражение ИО и ОО,

2.3. результат не имеет уникального имени, т.е. размещается где-то в оперативной памяти по адресу известному процессору, но недоступному программисту.

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

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

Команда присвоения – типичный исполнимый оператор, т.е. предложение-команда предназначенная именно для процессора и переводимая с ЯП на базовый язык процессора «дословно».

Работа транслятора:

· Сообразно указанному в описании типу переменных подбираются соответствующие базовые операции обработки,

· При необходимости, разнотипные переменные приводятся (преобразуются) к общему типу,

· Сложные (многооперационные) выражения разделяются на последовательность стандартных бинарных операций.

Синтаксис оператора присвоения:

Ирез := выражение ;

Идентификатор Ключевое Конец

результата слово оператора

Пример:

m := v * Ro ;

Звуковая транскрипция семантики (передача естественным языком смысла команды, который понимает процессор): перемножить содержимое информационных объектов с именами vиRo и поместить результат в ИО с именем m.

Прагматика:

{ вычисляется масса тела по заданной плотности -Ro и объему-v }

Типичные синтаксические ошибки, допускаемые начинающими программистами в операторах присвоения:

- использование неописанных переменных,

- пропуск символов операций (обычно знака умножения),

- несовпадение количества открывающих и закрывающих скобок,

- несоответствие типа операции типу объекта обработки (например, вещественное число нельзя целочисленно делить),

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

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

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

Поскольку, все ИО обрабатываемые ЭВМ имеют конечные размеры (занимают стандартные фрагменты памяти), а стандартные операции по их обработке могут порождать информацию, которая не помещается в стандартный фрагмент памяти. Например, результат перемножения двух целых чисел может превосходить значение 32000, что фатально для процессора, т.к. не может быть размещено в отведенном для результата фрагменте памяти.

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

Единственное, чем может ЭВМ помочь программисту в таких ситуациях сообщить:

· в каком операторе произошла ошибка,

· какая базовая операция обработки не может быть выполнена.

Ошибки времени исполнения - самые сложные для исправления, т.к. причины их возникновения весьма разнообразны:

- выбранная математическая модель просто не соответствует реальному объекту, поэтому физически разумные, «нормальные» числовые значения исходных параметров порождают катастрофические результаты в вычислениях,

- используется плохой алгоритм (численный метод) решения, математически верно сформулированной задачи,

- технические ошибки в переводе математических формул на язык программирования,

- технические ошибки при наборе текста программ.



Дата добавления: 2021-12-14; просмотров: 429;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

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

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.017 сек.