Программа на языке Паскаль состоит из следующих частей:
Подключение модулей – ключевое слово uses.
Раздел описаний – состоит из нескольких подразделов.
Подраздел Label – описание меток.
Const– описание констант.
Type – описание типов.
Var– описание переменных.
Function– описание функций.
Procedure – описание процедур.
Раздел операторов – содержит действия, предписанные алгоритмом.
Раздел описаний совместно с разделом операторов называется блоком.
Var n1, n2: integer;
Процедура – некоторая последовательность операторов языка Паскаль, к которой можно обратиться по имени.
Системы типов языка. Стандартные типы.
В языке Паскаль любая константа, переменная, значение выражения характеризуется своим типом. Тип данных определяет множество значений, которые может принимать переменная, а также множество операций, допустимых над данной переменной. Кроме того, тип данных определяет внутреннее представление переменной. Все типы языка Паскаль можно разделить на две категории: стандартные и определяемые программистом.
Программа на языке Pascal 9 Класс Использование Цикла Часть 4
Системы типов языка Паскаль.
Логический (булевский) тип.
Boolean – идентификатор логического типа. Может принимать два значения: False(0) или True (1). Занимает 1 байт.
ByteBool – 1 байт.
WordBool – 2 байта.
LongBool – 4 байта.
Операции отношения: >, =, . Результаты этих операций имеют логический тип.
В Паскале существуют четыре логические операции: and (логическое И), or(логическое ИЛИ), xor (исключающее ИЛИ, сложение по модулю 2, отрицание равнозначностей), not (отрицание).
Эта группа типов обозначает множество целых чисел в различных диапазонах.
Integer – длина 2 байта. От -32768 до 32767.
Byte– длина 1 байт. От 0 до 255.
Word– длина 2 байта. От 0 до 65535.
Shortint – длина 1 байт. От -128 до 127.
Longint– длина 4 байта. От -2^31 до 2^31-1.
Операции: +, -, *, /, div, mod.
Все операции, кроме деления, для целых данных дают результат целого типа. Деление всегда даёт результат вещественного типа.
Стандартные процедуры и функции, применимые к данным целого типа.
Odd(x): boolean– функция возвращает True, если число нечётное, и False– в противном случае.
Порядковыми называются типы, значения которых можно перечислить по порядку. Boolean тоже относится к порядковому типу.
Pred(x) – предыдущее значение. Тип результата – целый.
Succ(x) – следующее значение. Тип результата – целый.
Inc(x) – функция увеличения на единицу.
Inc(x, n) – процедура увеличивает значение первого параметра на n.
Dec(x) – функция уменьшения на единицу.
Dec(x, n) – процедура уменьшает первый параметр на n.
Вещественный тип.
Эта группа типов обозначает множество вещественных значений в различных диапазонах.
Real – идентификатор вещественного типа. Длина памяти – 6 байт. Диапазон: от 2,9*10^-39 до 1,7*10^38. В памяти машины величины типа Realпредставляются так: знак порядка, порядок, мантисса.
Программа на языке Pascal для перевода текста в двоичный код
Single– длина 4 байта. От 1,1*10^-45 до 3,4*10^38. Представляется так: знак порядка, мантисса, порядок.
Double – длина 8 байт. От 5,0*10^-324 до 1,7*10^308.
Extended– длина 10 байт. От 3,4*10^-4932 до 1,1*10^4932.
Comp – длина 8 байт. От -2^63 до 2^63-1.
Операции: Арифметические: +, -, *, /. Результат – вещественного типа.
Стандартные процедуры и функции, применимые к данным вещественного типа.
Имя | Тип аргумента | Тип результата | Вычисление |
Abs(x) | целый или вещ. | тип аргумента | Модуль x |
Arctan(x) | целый или вещ. | вещественный | Арктангенс x |
Cos(x) | целый или вещ. | вещественный | Косинус x |
Exp(x) | целый или вещ. | вещественный | E в степени x |
Ln(x) | целый или вещ. | вещественный | Натуральный лог. x |
Sin(x) | целый или вещ. | вещественный | Синус x |
Sqr(x) | целый или вещ. | тип аргумента | Квадрат x |
Sqrt(x) | целый или вещ. | вещественный | Корень из x |
Frac(x) | вещественный | вещественный | Дробная часть аргум. |
Int(x) | вещественный | вещественный | Целая часть аргумента |
Pi | — | вещественный | Число Пи |
Round(x) | вещественный | целый | Округление до целого |
Trunc(x) | вещественный | целый | Целая часть аргумента |
Символьный тип.
Char – идентификатор символьного типа. Символы с кодом от 0 до 127 соответствуют ASCII. Символы с кодом от 128 до 255 не ограничены стандартами. Длина типа Char– 1 байт. Значения – коды символов от 0 до 255.
Символы в тексте программы записываются в одиночных апострофах.
Операции: операции отношения.
Символьные типы относятся к порядковому типу.
Стандартные процедуры и функции, применимые к данным символьного типа.
Имя | Тип аргумента | Тип результата | Результат |
Ord(x) | символьный | целый | Код символа |
Chr(x) | byte | символьный | По коду — символ |
Pred(x) | символьный | символьный | Предыдущий символ |
Succ(x) | символьный | символьный | Следующий символ |
Upcase(x) | символьный | символьный | Перевод в верхний регистр |
Тип называется скалярным, если он не раскладывается на составные части.
Раздел определения констант.
Константы – это данные, которые в процессе выполнения программы нельзя менять.
Все константы делятся на литеральные и именованные.
Литеральные константы – это все числа, символы и строки символов в тексте программы.
Именованные константы – фиксированное значение, которому даётся имя.
Сonst – идентификатор раздела констант.
Тип константы определяется её изображением (способом её записи). Константы бывают целые, вещественные, символьные и строковые.
Целые константы – задаются десятеричным или шестнадцатеричным числом (шестнадцатеричные – со знаком $ в начале).
Вещественные константы могут создаваться форматом с фиксированной точкой или с плавающей точкой.
Символьные константы – одиночный символ с апострофами или строка с апострофами.
Раздел описания меток.
Метка в Паскале – это десятичное число или правильный идентификатор. Назначение метки – помечать оператор.
Label – идентификатор раздела меток.
Раздел описания переменных.
Var –идентификатор раздела переменных.
x, y, z, a: integer;
В Паскале введено понятие типизированных констант. По сути, это – переменная с заданным начальным значением. Типизированные константы описываются в разделе constследующим образом: : = значение;
Значение типизированной константы можно менять в программе.
При описании переменных в одном блоке не может быть одинаковых имён. Для переменных, описанных в блоке, выделяется объём памяти размером 64 кБ.
Определение типов.
Type– идентификатор раздела типов.
Тип, который создаётся ограничением диапазона возможных значений какого-либо порядкового типа, называется ограниченным типом. Тип, на который накладываются ограничения, называется базовым типом.
Базовые типы: все целые типы и тип Char.
Перечислимые типы – задаются перечислением тех значений, которые он может получать. Каждое значение именуется идентификатором и располагается в списке, обрамлённом круглыми скобками.
Пример: Color = (Red, Yellow, Green);
За каждым именем из этого списка закреплено определённое значение. Самим задать значение этих констант в Паскале нельзя.
Основными объектами, из которых состоит исполняемая часть программы, являются константы, переменные и обращения к функциям. Каждый из этих объектов характеризуется своим значением и принадлежит к какому-либо типу данных.
Выражение – это формальное правило для вычисления нового значения. Выражением может быть одиночный объект (константа, переменная, обращение к функции) или несколько операндов, разделённых знаками операций.
Операции – определяют действие по вычислению новых значений, исходя из значения операндов.
Все операции Паскаля можно разделить на 4 группы по приоритетам: 1) унарные операции (логическое not, операция взятия адреса); 2) мультипликативные операции (умножение, деление, деление нацело, взятие остатка от целочисленного деления, логическое and, операции сдвига – shlи shr); 3) аддитивные операции (сложение, вычитание, логическое or, логическое xor); 4) операции отношения (проверка на равенство или неравенство, операции сравнения, операция проверки принадлежности к множеству – in).
Для логических выражений характерно то, что их значение может стать известным ещё до конца вычисления всего выражения. Такой способ называется усечённым способом вычисления логических выражений.
Options – Compiler – BooleanEvaluation– выбор типа вычисления логических выражений.
Это синтаксические конструкции, предназначенные как для записи действий по преобразованию данных, так и для задания порядка выполнения других действий. Язык Паскаль содержит всего 11 операторов: 1) оператор присваивания; 2) оператор процедуры; 3) оператор перехода; 4) составной оператор; 5) условный оператор; 6) оператор варианта; 7, 8, 9) операторы цикла; 10) оператор над записями; 11) пустой оператор. Кроме того, существуют операторы машинного кода и ассемблера.
Источник: smekni.com
Pascal. Delphi. Lazarus. Структура программы на языке Паскаль
Структура программы на языке Паскаль в системах программирования Delphi и Lazarus. Консольное приложение
В данной теме рассматривается структура программы на языке Паскаль для наиболее распространенных видов приложений, которые хорошо подходят для изучения основ этого языка. Рассматриваются структуры программ для систем Lazarus и Delphi.
Поиск на других ресурсах:
1. Виды программ в системе программирования Lazarus
В системе программирования Lazarus создание нового приложения начинается с вызова последовательности команд
File -> New.
В результате система откроет окно «New …» (рисунок 1), в котором во вкладке Project предлагается несколько видов проектов.
Рисунок 1. Система Lazarus. Окно выбора проекта, модуля или элемента который будет создан. Вкладка Project
Предлагаются следующие основные виды проектов:
- Application — проект, поддерживающий графический интерфейс Windows с использованием кроссплатформености и LCL (Lazarus Component Library — библиотека компонент Lazarus). Это аналог шаблона Windows Forms в других системах программирования;
- Simple Program — простой шаблон для создания простых программ на языке Паскаль. Программы имеют вид командной строки;
- Program — шаблон программы в виде командной строки с некоторыми дополнительными опциями;
- Console Application — шаблон программы типа Console Application, основанный на использовании класса TMyApplication с возможностью его расширения;
- Library — динамически загружаемая библиотека, которая размещается в файлах с расширением *.dll (Dynamic Link Library). Такая библиотека может добавляться к другим программам ( *.exe — файлам) и не может запускаться автономно;
- другие проекты.
2. Виды программ в системе программирования Delphi
Чтобы создать программу (проект) в системе программирования Delphi нужно выбрать последовательность команд
File -> New -> Others.
В результате откроется окно, изображенное на рисунке 2.
Рисунок 2. Виды проектов в системе программирования Delphi
Здесь предлагаются следующие основные виды проектов (программ):
- Console Application — консольное приложение, имеет классическую структуру программы. Это аналог шаблона Program или Simple Program в системе Lazarus. Такой вид приложения лучше всего подходит для изучения основ программирования на языке Паскаль;
- VCL Forms Application — вид приложения, поддерживающего интерфейс Windows. Этот вид приложения базируется на использовании библиотеки VCL (Visual Component Library);
- Dynamik Link Library (библиотека динамической компоновки) — это вид приложения, которое прилагается к другой программе в виде *.dll файла. В файлах *.dll формируются библиотеки функций, которые используются в других программах;
- другие виды приложений.
3. Структура простейшего приложения в системах Lazarus и Delphi. Рисунок
Лучше всего для изучения основ программирования на языке Паскаль подходит приложение типа:
- Simple Program в системе программирования Lazarus;
- Console Application в системе программирования Delphi.
Такой вид приложения работает в режиме командной строки Windows. Для обеих систем структура простого приложения одинакова и содержит следующие основные разделы:
- заголовок программы;
- раздел подключения модулей, используемых в программе;
- раздел описаний;
- раздел операторов.
Из перечисленных разделов обязательным является раздел операторов. Все другие разделы (если это допускает программа) необязательны и могут быть опущены.
program ProgramName(parameters);
- ProgramName — имя программы, которое задается программистом;
- parameters — параметры, которые получает программа.
Чаще всего программа объявляется без параметров
program ProgramName;
Если программа получает параметры в виде потоков (файлов) ввода вывода то заголовок может быть, например, таким
program ProgramName(Output, Input, FileName);
3.2. Раздел подключения модулей ( uses )
Этот раздел начинается с ключевого слова uses и имеет следующую общую форму
uses ModuleName1, ModuleName2, . ModuleNameN;
- ModuleName1 , ModuleName2 , ModuleNameN – имена модулей, подключаемых к программе.
Например, при создании приложения типа VCL Forms Application в системе Delphi, раздел uses выглядит следующим образом
. uses Windows, Messages, Variants, Classes, Graphics, Controls, Forms, Dialogs; .
3.3. Раздел описаний
Раздел описаний состоит из нескольких частей, которые, в свою очередь, также описывают:
- метки ( label );
- константы ( const );
- типы ( type );
- переменные ( var );
- процедуры и функции ( procedure , function ).
Все вышеприведенные разделы могут быть объявлены в произвольном порядке. Однако, рекомендуется следующий порядок следования разделов: label , const , type , var , procedure или function . Такой порядок соответствует логике построения программ на языке Паскаль.
Допускается повторение разделов label , const , type , var , procedure и function (примеры ниже).
Раздел операторов обрамлен операторными скобками begin … end и имеет следующий вид
begin . end.
На рисунке 3 изображена структура программы на языке Паскаль для консольного приложения.
Рисунок 3. Структура консольного приложения на языке Паскаль. Объявление всех разделов
4. Пример консольного приложения, в котором объявляются произвольные элементы в разделе описаний
В примере демонстрируется возможность произвольного порядка следования разделов label , const , type , var , function , procedure . Рассматривается консольное приложение в системе программирования Delphi.
program Project1; // Раздел uses следует первым и только один, // следующие разделы могут следовать друг за другом // в произвольном порядке uses SysUtils; // Некоторая функция — обращает строку function ReverseString(s : string) : string; var s_reverse : string; i: Integer; begin s_reverse := »; for i := 1 to length(s) do s_reverse := s[i] + s_reverse; ReverseString := s_reverse; end; // Раздел описания переменных var f:Integer; // Раздел описания меток label m1; // Раздел описания констант const Max = 220; // Еще один раздел описания констант const Min = 100; // Еще один раздел описания переменных var z : Char = ‘z’; // Объявить раздел описания типов type MyInt = Integer; // Объявить переменную типа MyInt var mi : MyInt = 288; begin // Вывести значения объявленных констант Writeln(‘Max = ‘, Max); Writeln(‘Min = ‘, Min); // Вывести значения объявленных переменных Writeln(‘z = ‘, z); Writeln(‘mi = ‘, mi); // Вывести результат функции Writeln(ReverseString(‘ABCD’)); Readln; end.
Max = 220 Min = 100 z = z mi = 288 DCBA
Связанные темы
- Принципы структурного программирования. Модульная разработка программ
- Структура программы. Приложение типа VCL Forms Application в Delphi. Приложение типа Application в Lazarus
Источник: www.bestprog.net
Структура программы на языке Pascal
Напомню, что программа — это упорядоченный список команд. Каждый язык программирования предлагает свою систему упорядочивания этого списка. Так, например, возможно знакомый вам BASIC просто нумерует строки. В Паскале мы будем говорить о достаточно строгой структуре программы, которая должна соблюдаться неукоснительно. Иначе компьютер просто не поймет вас.
Любая программа (или программная единица- процедура или функция) на Паскале должна состоять из трех основных разделов:
I Раздел заголовка (объявления программной единицы)
II Раздел описаний;
III Раздел исполняемых операторов (тело программы).
В разделе заголовка содержится одна единственная строчка, которая указывает компилятору, что он имеет дело именно с программой (процедурой или функцией) и, более того, с программой под определенным именем. Для программ эта срока начинается с зарезервированного слова program, после которого следует собственно имя программы. В конце обязательно ставится точка с запятой.
Раздел описаний может иметь как одну единственную строчку, так и достаточно большое их количество. В разделе описаний должны содержаться описания всех идентификаторов, используемых в разделе исполняемых операторов. Так, например, описание переменных начинается с зарезервированного слова VAR, а описание констант (если они используются) — CONST.
Тело программы (раздел исполняемых операторов) содержит собственно программный код, отвечающий за реализацию алгоритма. При этом тело программы обязательно оформляется так называемыми операторными скобками — begin . end.
Т.е. все операторы, реализующие ваш алгоритм должны помещаться между этими операторными скобками.
Таким образом, структура программы Pascal в простейшем случае имеет вид:
В более сложных программах кроме переменных часто приходится помещать в раздел описаний не только описание переменных. В таком случае раздел описаний в свою очередь может содержать некоторое множество разделов (подразделов).
Раздел описания (в общем случае) состоит из
— раздела описания используемых библиотек USES;
— раздела описания меток LABEL;
— раздела описания констант CONST;
— раздела описания типов TYPE;
— раздела описания переменных VAR;
— раздела описания процедур и функций.
ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ № 6 и 7
1. О понятии “архитектура ЭВМ”
Начать целесообразно с происхождения термина. Слово “архитектура” в изначальном своем смысле используется в градостроении. Будучи достаточно сложной структурой, современный город состоит из районов, площадей, улиц, домов и т.п., расположенных определенным образом. Жителей города обычно мало интересует, как выглядит конкретный дом и из каких материалов он построен. Зато очень важно знать район, где этот дом расположен, улицы, ведущие к нему, и транспорт, пользуясь которым можно сократить время в пути.
Для того, чтобы ориентироваться в хитросплетении улиц и площадей, в любом городе существует исторически сложившаяся система названий, а также определенная нумерация домов. Наличие общепринятой адресации позволяет однозначно определить положение любого строения и в случае необходимости быстро отыскать его.
Именно на существовании такой адресной системы построена работа почты. Во многих случаях расположение улиц и присвоение им имен носит беспорядочный характер. В то же время бывает, что эта деятельность тщательно продумана и является продолжением общей планировки города, т.е. фактически частью его архитектуры.
Классическим примером может служить известная система взаимно-перпендикулярных улиц (авеню и стриты) города Нью-Йорка. Помимо чисто практической, архитектура города может иметь еще и художественную ценность (что обычно больше интересует приезжих). Но этот аспект понятия “архитектура” вряд ли переносим на вычислительную технику.
Используя аналогию с градостроительством, естественно понимать под архитектурой ЭВМ ту совокупность их характеристик, которая необходима пользователю. Это, прежде всего, основные устройства и блоки ЭВМ, а также структура связей между ними. И действительно, если заглянуть, например, в “Толковый словарь по вычислительным системам”, мы прочтем там, что термин “архитектура ЭВМ используется для описания принципа действия, конфигурации и взаимного соединения основных логических узлов ЭВМ (вследствие чего термин “архитектура” оказывается ближе к обыденному значению этого слова)”.
Однако описание внутренней структуры ЭВМ вовсе не является самоцелью: с точки зрения архитектуры представляют интерес лишь те связи и принципы, которые являются наиболее общими, присущими многим конкретным реализациям вычислительных машин. Часто говорят даже о семействах ЭВМ. т.е. группах моделей, совместимых между собой. В пределах одного семейства основные принципы устройства и функционирования машин одинаковы, хотя отдельные модели могут существенно различаться по производительности, стоимости и другим параметрам. Ярким примером могут служить различные модификации компьютеров PDP фирмы DEC (более известные нашим пользователям по отечественным аналогам – серии ДВК), семейство MSX-машин. к которому принадлежит широко распространенная YAMAHA, а также заполонившие мир IBM-совместимые персональные компьютеры.
Именно то общее, что есть в строении ЭВМ, и относят к понятию архитектуры. Важно отметить, что целью такой общности в конечном счете служит вполне понятное стремление: все машины одного семейства, независимо от их конкретного устройства и фирмы-производителя, должны быть способны выполнять одну и ту же программу (на практике из-за постоянного роста вычислительной мощности техники чаще используется менее жесткий принцип совместимости снизу вверх: все программы данной модели выполнимы на более старших). Отсюда неизбежно следует вывод, что с точки зрения архитектуры важны не все сведения о построении ЭВМ, а только те, которые могут как-то использоваться при программировании и “пользовательской” работе с ЭВМ. Равно как максимально подробная архитектура города не нуждается в описании марок кирпичей, из которых построены дома, и растворов, которыми эти кирпичи скреплены, так и архитектура ЭВМ не содержит описания электронных схем, других деталей реализации, “невидимых” для пользователя (например, внутреннего ускорителя доступа к памяти).
Ниже приводится перечень тех наиболее общих принципов построения ЭВМ, которые относятся к архитектуре:
• структура памяти ЭВМ;
• способы доступа к памяти и внешним устройствам;
• возможность изменения конфигурации компьютера;
Суммируя все вышеизложенное, получаем следующее определение архитектуры:
“Архитектура – это наиболее общие принципы построения ЭВМ, реализующие программное управление работой и взаимодействием основных ее функциональных узлов”.
2. Константа, переменная — это основополагающие понятия в любом языке программирования. Дадим определения этим понятиям.
Константа — это величина, которая при выполнении программы остаётся неизменной.
Переменная — это ячейка памяти для временного хранения данных. Предполагается, что в процессе выполнения программы значения переменных могут изменяться.
Описание и инициализация переменных
Прежде чем использовать в программе какую-то переменную, надо обязательно дать её описание, то есть сказать, какое имя имеет переменная и каков её тип. Вначале указывается тип переменной, а затем её имя. Например:
int k; // это переменная целого типа int
double x; // это переменная вещественного типа удвоенной точности
Если имеется несколько переменных одного типа, то допускается их описание через запятую в одном операторе, например:
После описания переменной её можно использовать, но возникает вопрос: а какое значение имеет переменная сразу же после её описания? Ответ таков: в программе на языке C# значение переменной после описания не определено. Такая переменная может использоваться в левой части оператора присваивания, но её нельзя использовать в выражении или в правой части оператора присваивания. Например:
y=z+1; // а так нельзя! Переменная z не определена
Для последнего оператора компилятор языка C# выдаст сообщение об ошибке. Этим свойством (нельзя использовать переменную, которая не получила ни какого значения) язык C# выгодно отличается от своих предшественников — языков С и С++.
Чтобы избежать проблемы, рекомендуется инициализировать переменные, то есть не просто выделять память под переменные, но и задавать им при этом необходимые значения. Например:
double x=3, y=4, z=5;
Инициализация переменных выполняется один раз на этапе компиляции и ни как не сказывается на скорости работы программы.
Задание и использование констант
Выше было дано определение констант. Теперь рассмотрим работу с константами более подробно.
Все константы вне зависимости от типа данных можно подразделить на две категории: именованные константы и константы, которые не имеют собственного имени. Например:
25 — константа целого типа;
3.14 — вещественная константа;
‘A’ — символьная константа.
Все три приведённые здесь константы не имеют имени, они заданы своим внешним представлением и используются в программе непосредственно, например так:
int k=25; // переменная k инициализирована константой — целым числом 25.
В ряде случаев константе удобнее дать имя и использовать её далее по имени. Это делает текст программы более наглядным. Обычно применяется для математических или физических констант.
В языке C# определить именованную константу очень просто Для этого используют ключевое слово const, например:
const double PI=3.14; // здесь PI — константа
Типы переменных, используемых в Турбо-Паскале, приводятся в таблице. Некоторые типы объединены в группы: структурированные, простые типы.
Структурированные типы Простые типы Строковый тип
Массивы Вещественные Указатели
Множества Целый тип типы
Файловые типы Символьный тип Объекты
Используются стандартные имена типов, либо имя типа задается в разделе описания программы, например: TYPE A = array 1 . . 1000 of real ;
Тип переменной объявляется после служебного слова VAR, например:
VAR a1, a2: A; массивы из 1000 элементов вещественных чисел типа «A»
Если не использовать служебное слово TYPE, то можно записать:
VAR a1, a2 : array 1 . . 1000 of real ;
Рассмотрим подробнее описание некоторых стандартных типов и допустимые диапазоны изменения значений переменных.
Вещественные типы Примеры описания:
Наименование размер кол. диапазон VAR c, d, e: real;
типа ( байт ) цифр значений d1, d2: double;
Single 4 7..8 10 (-45..+38) Примеры присвоения значения:
Real 6 11..12 10 (-39..+38) с:= –125. 6; e:= 10;
Double 8 15..16 10 (-324..+308) d:= 1. e02; или d:= 100.;
Extended 10 19..20 10 (-4951..+4932) d1:= 1.2e-257; 1.2*10-257
Comp 8 19..20 –263 +1..+263 –1 Comp – число без дробной части
Примечание: типы Single, Double, Extended работают при подключении сопроцессора, в том числе при эмуляции сопроцессора. Для этого в меню Options, Compiler установить Numeric processing: X 8087/80287, а также X Emulation, либо в начале программы установить режим компиляции $N+.
Порядковые типы имеют конечное число возможных значений.
Наименование размер диапазон Примеры описания:
типа ( байт ) значений VAR i, j, k: byte;
Byte 1 0..255 l1, l2, l3: longint;
Shortint 1 –121..+127
Word 2 0..65535 Примеры присвоения значения:
Integer 2 –32761..+32767 i:= 222; j:= 10; m:= –23000;
Longint 4 –2147483641.. l1:= 280000;
+2147483647 h:= $A7; (шестнадцатеричный
формат числа 10*16+7)
Переменные логического типа могут принимать значения:
False (ложно) или True (верно).
Примеры описания: VAR b1, b2, b3, b4: boolean;
Примеры присвоения значения:
b1:= True; b2:= False; b3:= not b1; или b3:= False; b4:= b1;
Переменные символьного типа могут принимать значения одного из символов с кодами от #0 до #255, т. е. допускаются буквы русского алфавита и символы псевдографики. Символы с кодами от #0 до #31 (управляющие) в тексте воспринимаются как пробел, а в операторах вывода как символ или команда.
Примеры описания: VAR с, ch, e: char;
Примеры присвоения значения:
c:= ‘!’; c:= #33; символ «!» задается значением кода
ch:= #13; код клавиши Enter e:= #27; код клавиши Esc
Примеры вывода: Write(с); выводится символ « ! «
Write(ch); команда перевода курсора на новую строчку
Write(е); выводится специальный символ, соответствующий коду #27
Переменная строкового типа задается набором символов, заключенных в кавычки.
Примеры описания: VAR s: string 25; s1: string;
длина переменной s может изменяться от 1 до 25 символов
длина переменной s1 не указывается, наибольшее число символов равно 255
Примеры присвоения значения: s:= ‘Привет’; s1:= ‘Hello’;
Массив – упорядоченные данные одного типа, состоящие из переменных (элементов массива). Элементы массива имеют свой порядковый номер (индекс) и значение. Значение присваивается отдельно каждому элементу массива, либо сразу всем элементам массива (копирование одного массива в другой в случае массивов одинакового типа). Массив может быть многомерным (без ограничения), но занимать не более 65520 байт. Примеры описания:
VAR M1: array 1..200 of integer; A1: array 100..200 of real;
ch1: array ‘A’..’Z’ of char; ch2: array 0..255 of char;
М1, A1 – одномерные массивы целых и вещественных чисел
сh1, ch2 – одномерные массивы символов
Примеры присвоения значения:
M1 1:=5; M1 2:=8; M1 3:= M1 1; M1 100:=32;
A1 101:=0.2; A1 102:=2.31; ch1 ‘B’:=’C’; ch2 1:=’!’
Тип-диапазон и перечислимый тип задаются программистом. Примеры описания:
TYPE DateM= 1..31; Rushb= ‘А..Я’; Latb= ‘A..Z’; тип диапазон
Otmetka= (2,3,4,5); Ball= (1,2,3,4,5,6,7,8,9,10); перечислимый тип
VAR t1,t2:DateM; c1:Ruchb; s1:Latb; a1,a2:Otmetka; b:Ball;
Примеры присвоения значения: t1:= 10; c1:= ‘Л’; s1:= ‘F’; a1:=5; b:= 8;
Файл – именованная область внешней памяти ЭВМ, содержащая различные данные. Длина файла ограничена доступной дисковой памятью. Файлы могут быть текстовые, типизированные и нетипизированные. Рассмотрим описание текстовых файлов, хранящих информацию в виде строк переменной длины с последовательным доступом к данным.
Примеры описания: VAR f1, f2: text;
Примеры присвоения значения: Assign( f1, ‘file1. in’ );
Assign( f2, ‘C: PASCAL WORK file2. out’ );
Оператор Assign присваивает файловой переменной имя файла на диске.
Файл file1. in содержится в текущем каталоге. Для файла file2. out указывается дорожка DOS.
Записи – вводимый программистом тип, определяемый как структура данных разного типа, содержащая названия полей с указанием их типов, расположенных между служебными словами Record и End.
Примеры описания: Type Sity = Record
NameG: String 20; название города
NumbG: LongInt; число жителей
StolG: Boolean; Столица (Да, Нет)
Shir, Dol: Real Координаты: широта, долгота
Var St1, St2, St3: Sity; Переменные типа запись
Примеры присвоения значения:
St1. NameG:= ‘Уфа’; St1. NumbG:=1200000; Отдельным полям переменной St1
St2. NameG:= ‘Москва’; St2. NumbG:=8200000;
St3:= St1; Всем полям переменной St3
Переменные типа запись могут обозначаться с помощью оператора присоединения:
WITH «имя переменной» DO «оператор»;
Например: With St1 do Begin
NameG:= ‘Уфа’; Stolg:= True; Readln(Shir, Dol);
z:= NumbG – St2. NumbG; Writeln(NameG:5, NumbG:10) end;
Тип char
char — является самым экономным типом. Тип char может быть знаковым и беззнаковым. Обозначается, соответственно, как «signed char» (знаковый тип) и «unsigned char» (беззнаковый тип). Знаковый тип может хранить значения в диапазоне от -128 до +127. Беззнаковый — от 0 до 255.
Под переменную типа char отводится 1 байт памяти (8 бит).
Ключевые слова (модификаторы) signed и unsigned указывают, как интерпретируется нулевой бит объявляемой переменной, т.е., если указано ключевое слово unsigned, то нулевой бит интерпретируется как часть числа, в противном случае нулевой бит интерпретируется как знаковый.
Целочисленная величина int может быть short (короткой) или long (длинной).
Ключевое слово (модификатор) short ставится после ключевых слов signed или unsigned. Таким образом, различают следующие типы: signed short int, unsigned short int, signed long int, unsigned long int.
Переменная типа signed short int (знаковая короткая целая) может принимать значения от -32768 до +32767, unsigned short int (беззнаковая короткая целая) — от 0 до 65535. Под каждую из них отводится ровно по два байта памяти (16 бит).
При объявлении переменной типа signed short int ключевые слова signed и short могут быть пропущены, и такой тип переменной может быть объявлен просто int. Допускается и объявление этого типа одним ключевым словом short.
Переменная unsigned short int может быть объявлена как unsigned int или unsigned short.
Под каждую величину signed long int или unsigned long int отводится 4 байта памяти (32 бита). Значения переменных этого типа могут находиться в интервалах от -2147483648 до 2147483647 и от 0 до 4294967295 соответственно.
Существуют также переменные типа long long int, для которых отводится 8 байт памяти (64 бита). Они также могут быть знаковыми и беззнаковыми. Для знакового типа диапазон значений лежит в пределах от -9223372036854775808 до 9223372036854775807, для беззнакового — от 0 до 18446744073709551615. Знаковый тип может быть объявлен и просто двумя ключевыми словами long long.
Тип Диапазон Шестнадцатиричный диапазон Размер
unsigned char 0 . 255 0x00 . 0xFF 8 bit
char -128 . 127 -0x80 . 0x7F 8 bit
unsigned short int
unsigned int или unsigned short 0 . 65535 0x0000 . 0xFFFF 16 bit
signed short int или signed int
short или int -32768 . 32767 0x8000 . 0x7FFF 16 bit
unsigned long int
unsigned long 0 . 4294967295 0x00000000 . 0xFFFFFFFF 32 bit
long -2147483648 . 2147483647 0x80000000 . 0x7FFFFFFF 32 bit
unsigned long long 0 . 18446744073709551615 0x0000000000000000 . 0xFFFFFFFFFFFFFFFF 64 bit
signed long long
long long -9223372036854775808 . 9223372036854775807 0x8000000000000000 . 0x7FFFFFFFFFFFFFFF 64 bi
Источник: megaobuchalka.ru