Тип word в паскале что это







Deutsch (de)
English (en)



suomi (fi)
français (fr)










русский (ru)









A word is the processor’s native data unit.
Modern consumer processors have a word width of 64 bits.

Data type

Most run-time libraries provide the native data type of a processor as the Pascal data type word.
It is a subset of all whole numbers (non-negative integers) that can be represented by the processor’s natural data unit size.

On a 64-bit architecture this means a word is an integer within the range [math]displaystyle{ [0,~2^{64}-1] }[/math].
On a 32-bit architecture a word will be an integer in the range [math]displaystyle{ [0,~2^{32}-1] }[/math], and so on, respectively.

In GNU Pascal a word is just an alias for cardinal, which has the same properties regarding possible values.

If a signed integer having the processor’s native size is wanted, the data type integer provides this functionality.

FPC

For source compatibility reasons, FPC defines word in the same way as Turbo Pascal and Delphi: the subrange data type 0..65535.
The high value 65535 is [math]displaystyle{ 2^{16}-1 }[/math].
Thus a system.word occupies two bytes of space.
Subrange data types are stored in a quantity that serves best the goals of performance and memory efficiency.

The processor’s native word size, as defined above, corresponds to different types depending on the purpose you want to use it for:

  • the (as of 2022 still undocumented) system.ALUSint and system.ALUUint types correspond to the native word size used by the processor’s ALU (arithmetic and logical unit), as defined at the beginning of this page. In general, this type should not be used in high level code. Instead, choose a data type based on the values it should be able to represent, as this is safer and more portable. It is the compiler’s job to generate optimal code.
  • system.CodePtrUInt corresponds to the size of pointers to code, such as the address of a procedure. This can be different from a pointer to data, e. g. on targets that support multiple memory models.
  • system.PtrUInt corresponds to the size of pointers to data.

On many platforms, all of these types have the same size, but it is not the case everywhere.

In FPC a smallInt has the same size as a word, but is signed.

navigation bar: data types

simple data types

boolean
byte
cardinal
char
currency
double
dword
extended
int8
int16
int32
int64
integer
longint
real
shortint
single
smallint
pointer
qword
word

complex data types

array
class
object
record
set
string
shortstring

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

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

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

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

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

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

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

Тип

Диапазон

Формат

shortint

-128 ..+127

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

integer

-32768 .. 32767

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

longint

-2147483648 +2147483647

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

byte

0 .. 255

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

word

0 .. 65535

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

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

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

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

“+” — сложение

“-“ — вычитание

“*” — умножение

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

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

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

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

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

Пример:

а:=100; 
b:=60;
a DIV b результат - 1
а MOD b результат - 40

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

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

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

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

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

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

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

Тип

Диапазон

Цифры

Real

Single

Duble

Extende

comp

2.9×10Е-39 до 1.7×10Е 38

1.5×10Е-45 до 3.4×10Е 38

5.0×10Е-324 до 1.7×10Е 308

3.4×10Е-493 до 1.1×10Е 403

-2Е 63 до 2Е 63

от 11 до 12

от 7 до 8

от 15 до 16

от 19 до 20

от 19 до 20

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

  • Все операции допустимые для целых чисел.
  • SQRT(x)-корень квадратный из числа х.
  • SIN(X), COS(X), ARCTAN(X).
  • LN(X)-натуральный логарифм.
  • EXP(X)-экспонента Х (ех).
  • EXP(X*LN(A))-возведение в степень (Ах).
  • Функции преобразования типов:
    • TRUNC(X)-отбрасывает дробную часть;
    • ROUND(X)-округление.
  • Некоторые правила арифметических операций:
    • Если в арифметическом действии встречаются числа типа real и integer, то результат будет иметь тип real.
    • Все составные части выражения записываются в одну строку.
    • Используются только круглые скобки.
    • Нельзя подряд ставить два арифметических знака.

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

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

Например:

var d,g,k:real;

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

K типу char относится любой символ заключенный в апострофы. Для представления апострофа как символьную переменную, надо заключить его в апостроф:’’’’.

Каждый символ имеет свой код и номер. Порядковые номера цифр 0,1..9 упорядочены по возрастанию. Порядковые номера букв также упорядочены по возрастанию, но не обязательно следуют друг за другом.

К символьным данным применимы знаки сравнения:

> , < , >=, <=, <> .

Например: ‘A’ < ‘W’

Функции, которые применимы к символьным переменным:

  1. ORD(X) — определяет порядковый номер символа Х.

    Пример:

    ord(‘a’)=97;
  2. CHR(X) — определяет символ по номеру.

    Пример:

    chr(97)=’a’;
  3. PRED(X) — выдает символ, стоящий перед символом Х.

    Пример:

    pred(‘B’)=’A’;
  4. SUCC(X) — выдает символ, следующий после символа Х.

    Пример:

    succ(‘A’)=’B’;

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

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

Type <имя типа>=(список констант);
Var <имя переменной>:<имя типа>;
 

где <список констант> — это особый вид констант, задаваемых через запятую и имеющих свой порядковый номер, начиная с 0.

Например:

type
направление=(север, юг, запад, восток);
месяц=(июнь,июль,август,январь);
емкость=(ведро,бочка,канистра,бак);
var
поворот:направление;
отъезд:месяц;
объем:емкость;
 

или так:

var
поворот:(свер, юг, запад, восток);
отъезд:(июнь, июль, август, январь);
объем:(ведро, бочка, канистра, бак);
 

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

поворот:=юг;
отъезд:=август;
объем:=бак;

но нельзя выполнять смешанные присваивания:

отъезд:=юг;
объем:=август;
 

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

1. ORD — порядковый номер

2. PRED — предшествующий элемент

3. SUCC — последующий элемент.

Пример:

PRED(бочка)=ведро; 
SUCC(юг)=запад; 
ORD(июль)=1;
 

Переменные перечислимого типа можно сравнить, так как они упорядочены и пронумерованы. Так выражения: север < юг, июнь < январь имеют значения TRUE, а юг>запад и бак<бочка значение FАLSE.

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

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

Описывается так:

TYPE <имя типа>=константа1..константа2

При этом должны выполняться следующие правила:

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

Пример:

type index=0..63;
letter=’a’..’z’; var char1,char2:letter;
a,g:index;

Можно описывать сразу в разделе описания переменных:

var a,g:0..63;
char1,char2:’a’..’z’.

На занятии рассматриваются основные стандартные типы данных в Паскаль, понятие переменной и константы; объясняется, как работать с арифметическими операциями

Содержание:

  • Типы данных в Паскале
    • Целочисленные типы данных в Паскаль
    • Комментарии в Паскале
    • Вещественные типы данных в Паскаль
  • Приведение типов
  • Константы в Паскале
    • «Красивый» вывод целых и вещественных чисел
  • Арифметические операции в Паскале
    • Порядок выполнения операций
  • Стандартные арифметические процедуры и функции Pascal

Типы данных в Паскале

Паскаль — это типизированный язык программирования. Это означает, что переменные, в которых хранятся данные, имеют определенный тип данных. Т.е. программе напрямую надо указать, какие данные могут храниться в той или иной переменной: текстовые данные, числовые данные, если числовые — то целочисленные или дробные, и т.п. Это необходимо в первую очередь для того чтобы компьютер «знал», какие операции можно выполнять с этими переменными и как правильно их выполнять.

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

Рассмотрим наиболее распространенные в Pascal типы данных.

Целочисленные типы данных в Паскаль

Тип Диапазон Требуемая память (байт)
byte 0..255 1
shortint -128..127 1
integer -32768.. 32767 2
word 0..65535 2
longint -2147483648..2147483647 4

Нужно иметь в виду, что при написании программ в паскале integer (в переводе с англ. целое) является наиболее часто используемым, так как диапазон значений наиболее востребуем. Если необходим более широкий диапазон, используется longint (long integer, в переводе с англ. длинное целое). Тип byte в Паскале используется, когда нет необходимости работать с отрицательными значениями, то же самое касается и типа word (только диапазон значений здесь значительно больше).

Примеры того, как описываются (объявляются) переменные в Паскале:

Pascal PascalABC.NET
1
2
3
4
5
6
7
8
program a1;
var x,y:integer; {целочисленный тип}
    myname:string; {строковый тип}
begin
x:=1; y:=x+16;
myname:='Петр';
writeln ('имя: ',myname, ', возраст: ', y)
end.
1
2
3
4
5
6
7
8
program a1;
begin
  var x, y: integer; {целочисленный тип}
  var myname: string; {строковый тип}
  x := 1; y := x + 16;
  myname := 'Петр';
  print($'имя: {myname}, возраст: {y}')
end.
Результат: 
имя: Петр, возраст: 17

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

Тип Длина, байт Диапазон допустимых значений
integer 4 -2 147 483 648 .. 2 147 483 647
int64 8 -9 223 372 036 854 775 808 .. 9 223 372 036 854 775 807
BigInteger переменная неограниченный

Комментарии в Паскале

Обратите внимание на то, как используются комментарии в Паскале. В примере комментарии, т.е. служебный текст, который «не видим» для компилятора, заключаются в фигурные скобки {}. Обычно комментарии делаются программистами с целью пояснения фрагментов кода. Для однострочных комментариев можно использовать два слэша //:

{Очень простая программа
для вывода слова "Привет"}
begin
// вывод 
write('Привет');
end.

Задача 5. Население Москвы равняется а=9000000 жителей. Население Нью-Васюков равняется b=1000 жителей. Напишите программу, которая определяет разницу в числе жителей между двумя городами. Используйте переменные величины.

[Название файла: L1task5.pas]

Вещественные типы данных в Паскаль

Вещественные числа в Паскале и вообще в программировании — это название дробных чисел.

Тип Диапазон Требуемая память (байт)
real 2.9 * 10E-39 .. 1.7 * 10E38 6
single 1.5 * 10 E-45 .. 3.4 * 10E38 4
double 5 * 10E-324 .. 1.7 * 10E308 8
extended 1.9 * 10E-4951 .. 1.1 * 10E4932 10

Тип real в Паскале — наиболее часто используемый из вещественных типов.

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

  • Порядковые
  • Целые
  • Логические
  • Символьные
  • Перечисляемые
  • Интервальные
  • Вещественные

Для вывода значений переменных вещественного типа обычно используется форматированный вывод:

  • в формате используется либо одно число, означающее число позиций, отводимых на это число в экспоненциальной форме;
  • p:=1234.6789;
    Writeln(p:12);  {_1.2346E+004}
  • либо два числа, первое из которых обозначает общий размер поля, отведенного под это число, второе — число знаков после запятой, т.е. точность.
  • p:=1234.6789;
    Writeln(p:6:2); {1234.68}

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

    Приведение типов

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

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

    integer → int64
    int64  → real
    integer → BigInteger

    Пример использования операции приведения типов:

    var a := 10; // integer
    var b := 123456789012345; // int64
    var c := -3bi; // BigInteger
     
    var i := int64(a); // приведение integer → int64
    var x := real(b); // приведение int64  → real
    var p := BigInteger(a); // приведение integer → BigInteger

    Обратное приведение с помощью функций

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

    real → integer

    Пример:

    ##
    var x := Sqrt(3); // корень квадратный из 3, тип real
    var a := Trunc(x); // приведение к integer с отсечением дробной части. рез-т 1
    var b := Round(x); // приведение к integer с округлением до ближайшего целого. рез-т 2

    Константы в Паскале

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

    Объявление константы в Паскале происходит до объявления переменных (до служебного слова var) и выглядит следующим образом:

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

    Pascal PascalABC.NET
    1
    2
    3
    4
    5
    6
    
    const x=17;
    var myname:string;
    begin
    myname:='Петр';
    writeln ('имя: ',myname, ', возраст: ', х)
    end.
    1
    2
    3
    4
    5
    
    const x = 17;
    begin
      var myname := 'Петр';
      print($'имя: {myname}, возраст: {x}')
    end.

    «Красивый» вывод целых и вещественных чисел

    Для того чтобы после вывода значений переменных оставались отступы, чтобы значения не «сливались» друг с другом, принято через двоеточие указывать какое количество символов нужно предусмотреть для вывода значения:

    Вывод целых чисел

    Вывод целых чисел

    Вывод вещественных чисел

    Вывод вещественных чисел

    Арифметические операции в Паскале

    ДЕЙСТВИЕ РЕЗУЛЬТАТ СМЫСЛ
    2 + 3 5 плюс
    4 — 1 3 минус
    2 * 3 6 умножить
    10 / 5 2 разделить
    10 ** 2 100 возведение в степень с результатом типа real
    17 div 5 3 целочисленное деление
    17 mod 5 2 остаток от целочисленного деления

    арифметические операции в паскале

    Порядок выполнения операций

    1. вычисление выражений в скобках;
    2. умножение, деление, div, mod слева направо;
    3. сложение и вычитание слева направо.

    порядок выполнения операций


    Канонический способ:

    var 
      a: integer;
      b: real;
     
    begin
      a := 1;
      writeln('a := 1; a = ',a);
      a += 2; // Увеличение на 2
      writeln('a += 2; a = ',a);
      a *= 3; // Умножение на 3
      writeln('a *= 3; a = ',a);
      writeln;
      b := 6;
      writeln('b := 6; b = ',b);
      r /= 2;
      writeln('b /= 2; b = ',b);
    end.

    Стандартные арифметические процедуры и функции Pascal

    Здесь стоит более подробно остановиться на некоторых арифметических операциях.

    • Операция inc в Паскале, произносимая как инкремент, это стандартная процедура pascal, которая обозначает увеличение на единицу.
    • Пример операции inc:

      1
      2
      3
      
      x:=1;
      inc(x); {Увеличивает x на 1, т.е. x=2}
      writeln (х)

      Более сложное использование процедуры inc:
      Inc(x,n) где x — порядкового типа, n — целого типа; процедура inc увеличивает x на n.

    • Аналогично работает процедура Dec в Паскале: Dec(x) — уменьшает x на 1 (декремент) или Dec(x,n) — уменьшает x на n.
    • Оператор abs представляет собой модуль числа. Работает следующим образом:
    • a:=-9;
      b:=abs(a); { b = 9}
    • Оператор div в паскале является часто используемым, так как целый ряд задач связан с действием деление нацело.
    • Остаток от деления или оператор mod в pascal тоже незаменим при решении ряда задач.
    • Заслуживающей внимания является стандартная функция odd Паскаля, которая определяет, является ли целое число нечетным. Т. е. возвращает true (истина) для нечетных чисел, false (ложь) для четных чисел.
    • Пример использования функции odd:

      1
      2
      3
      4
      
      begin
          WriteLn(Odd(5)); {True}
          WriteLn(Odd(4)); {False}
      end.
    • Функция exp в паскале возвращает экспоненту параметра. Записывается как exp(x), где x типа real.
    • Квадрат числа в Паскале вычисляется при помощи процедуры sqr.
    • Пример использования процедуры sqr в Pascal:

      1
      2
      3
      4
      5
      
      var x:integer;
      begin
      x:=3;
      writeln(sqr(x)); {ответ 9}
      end.
    • Операция возведение в степень в Паскале отсутствует как таковая. Но для того чтобы возвести в степень число можно использовать функцию exp.
    • Формула такая: exp(ln(a)*n), где а — число, n — степень (а>0).

      Однако в компиляторе pascal abc возведение в степень осуществляется значительно проще:

       WriteLn(Power(2,3)); {ответ 8}
    • Извлечь квадратный корень в Паскале можно при помощи процедуры sqrt.
    • Пример использования процедуры sqrt в Pascal:

      1
      2
      3
      4
      5
      
      var x:integer;
      begin
      x:=9;
      writeln(sqrt(x)); {ответ 3}
      end.

    Задача 6. Известны размеры спичечной коробки: высота — 12.41 см., ширина — 8 см., толщина — 5 см. Вычислить площадь основания коробки и ее объем

    (S=ширина * толщина, V=площадь*высота)

    [Название файла: L1task6.pas]

    Задача 7. В зоопарке три слона и довольно много кроликов, причем количество кроликов часто меняется. Слону положено съедать в сутки сто морковок, а кролику — две. Каждое утро служитель зоопарка сообщает компьютеру количество кроликов. Компьютер в ответ на это должен сообщить служителю общее количество морковок, которые сегодня нужно скормить кроликам и слонам.

    [Название файла: L1task7.pas]

    Задача 8. Известно, что x кг конфет стоит a рублей. Определите, сколько стоит y кг этих конфет, а также, сколько килограмм конфет можно купить на k рублей. Все значения вводит пользователь.

    [Название файла: L1task8.pas]

      

    В приведенных ниже примерах все функции имеют аргументы. Аргументы
    m и n имеют целочисленный тип,
    a и b – тип real,
    x и y – любой из этих типов.

    Abs(x) – возвращает абсолютное значение аргумента x;
    Ceil(x) - возвращает ближайшее целое, не меньшее, чем х;
    Floor(x) - возвращает ближайшее целое, не превышающее х;
    Frac(x) - возвращает дробную часть аргумента x;
    Max(x, y, …) – возвращает максимальное из значений x, y, …;
    Min(x, y, …) – возвращает минимальное из значений x, y, … ;
    Random(m) – возвращает случайное число из интервала [0 ; m-1];
    Random(a) – возвращает случайное число из интервала [0 ; a);
    Random(m, n) – возвращает случайное число из интервала [m ; n];
    Random(a, b) – возвращает случайное число из интервала [a ; b);
    Random2(m) – возвращает кортеж из двух случайных чисел в интервале [0 ; m-1];
    Random2(a) – возвращает кортеж из двух случайных чисел в интервале [0 ; a);
    Random2(m, n) – возвращает кортеж из двух случайных чисел в интервале [m ; n];
    Random2(a, b) – возвращает кортеж из двух случайных чисел в интервале [a ; b);
    Random3(m) – возвращает кортеж из трех случайных чисел в интервале [0 ; m-1];
    Random3(a, b) – возвращает кортеж из трех случайных чисел в интервале [a ; b);
    Round(x) - возвращает округленное до целых по правилам арифметики значение типа integer;
    Round(x, n) - возвращает значение х, округленное до n знаков в дробной части;
    Sign(x) – возвращает -1 при x < 0, 0 при x = 0 и 1 при x > 0;
    Sin(x) – возвращает sin(x) типа real;
    Sqr(a) – возвращает a2;
    Sqr(m) – возвращает m2 типа int64;
    Sqrt(x) – возвращает √x типа real;
    Trunc(a) – возвращает целую часть значения a того же типа
    

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

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

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

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

    Язык Pascal имеет четыре встроенных стандартных типа:

    • integer (целочисленный)
    • real (вещественный)
    • boolean (логический)
    • char (символьный)

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

    В Pascal имеются следующие целочисленные типы:

    • shortint (короткое целое)
    • integer (целое)
    • longint (длинное целое)
    • byte (число длиной в байт)
    • word (число длиной в слово)

    Каждый тип обозначает определенное подмножество целых чисел, как это показано в следующей таблице.

    Тип данных Диапазон Количество байт
    shortint -128 ..+127 1
    integer -32768 .. 32767 2
    longint -2147483648 +2147483647 4
    byte 0 .. 255 1
    word 0 .. 65535 4
    Встроенные целочисленные типы

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

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

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

    В Pascal есть операции целочисленного деления и нахождения остатка от деления. При выполнении целочисленного деления (операция div) остаток от деления отбрасывается.

    //Например
    
    15 div 3 = 5;
    18 div 5 = 3;
    123 div 10 = 12;
    7 div 10 = 0;
    

    С помощью операции mod можно найти остаток от деления одного целого числа на другое.

    //Например
    
    15 mod 3 = 0;
    18 mod 5 = 3;
    123 mod 10 = 3;
    7 mod 10 = 7;
    
    //Например
    
    а:=100;
    b:=60;
    c:=a div b;
    d:=a mod b;
    

    результат: переменная c равна 1, а d равна 40.

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

    Порядок действий при вычислении значения выражения:

    1. вычисляются значения в скобках;
    2. вычисляются значения функций;
    3. выполняется унарные операции (унарный минус — смена знака);
    4. выполняются операции умножения и деления (в том числе целочисленного деления и нахождения остатка от деления);
    5. выполняются операции сложения и вычитания.

    Встроенные математические функции языка Pascal

    Математическая запись Запись на Pascal Назначение
    cos x cos(x) Косинус x радиан
    sin x sin(x) Синус x радиан
    ex exp(x) Значение e в степени x
    [x] trunc(x) Целая часть числа x
    |x| abs(x) Модуль числа x
    x2 sqr(x) Квадрат числа x
    sqrt(x) Квадратный корень из x
    {x} frac(x) Дробная часть x
    arctg x arctan(x) Арктангенс числа x
    ln x ln(x) Натуральный логарифм x
    p Pi Число p

    Возведение в степень (кроме возведения в квадрат и возведения в степень числа e) отсутствует. Для возведения в произвольную степень можно воспользоваться очевидным равенством: xy=ey ln x. Для возведения числа в натуральную степень можно написать собственную функцию. Например,

    {Функция возведения вещественного числа X в натуральную степень N}
    Function Stepen(X : Real; N : Integer) : Real;
    Var
     I:Integer; St:Real;
    Begin
      St := 1;
      For I := 1 To N Do St := St * X;
        Stepen := St;
    End;
    

    Другой способ получить натуральное значение z=xy, где x, y — натуральные, это сделать так: Z := Round(Exp(Y * Ln(X))).

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

    (–1)*ord(odd(y)) * exp(y * ln(x)) + ord(odd(y+1)) * yxp(Y * ln(x))
    

    Здесь Ord(K) — функция, возвращающая порядковый номер величины K в том или ином порядковом типе (в примере использовано свойство, что порядковый номер False равен 0, а порядковый номер True — 1).

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

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

    Имеется следующие виды вещественных типов: real, singlе, double, extended,comp. Вещественные типы различаются диапазоном и точностью связанных с ними значений. Тип comp может содержать только целые числа от -2 63 +1 до +263-1, но эти числа хранятся в вещественном формате, поэтому тип comp считается вещественным. С данными типа Comp можно обращаться так же, как с данными других вещественных типов, но дробная часть числа при этом автоматически отбрасывается.

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

    Тип Диапазон Точность Количество байт
    Real 2.9×10Е-39 до 1.7×10Е 38 11-12 6
    Single 1.5×10Е-45 до 3.4×10Е 38 7-8 4
    Double 5.0×10Е-324 до 1.7×10Е 308 15-16 8
    Extended 3.4×10Е-4932 до 1.1×10Е 4932 19-20 10
    Comp -9.2E-18 до 9.2E18 19-20 8

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

    1. Все операции допустимые для целых чисел.
    2. SQRT(x)-корень квадратный из числа х.
    3. Тригонометрические функции:
      • SIN(X);
      • COS(X);
      • ARCTAN(X).
    4. LN(X)-натуральный логарифм.
    5. EXP(X)-экспонента Х (ех).
    6. EXP(X*LN(A))-возведение в степень (Ах).
    7. Функции преобразования типов:
      • TRUNC(X)-отбрасывает дробную часть
      • ROUND(X)-округление.

    Некоторые правила арифметических операций:

    1. Если в арифметическом действии встречаются числа типа real и integer, то результат будет иметь тип real.
    2. Все составные части выражения записываются в одну строку.
    3. Используются только круглые скобки.
    4. Нельзя подряд ставить два арифметических знака.

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

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

    Например:

    3. Символьный тип(char)

    K типу char относится любой символ заключенный в апострофы. Для представления апострофа как символьную переменную, надо заключить его в апостроф:».

    Каждый символ имеет свой код и номер. Порядковые номера цифр 0,1..9 упорядочены по возрастанию. Порядковые номера букв также упорядочены по возрастанию, но не обязательно следуют друг за другом.

    К символьным данным применимы знаки сравнения:

    > , < , >=, <=, <> .
    
    Например: 'A' < 'W'
    

    Функции, которые применимы к символьным переменным:

    1. ord(x) — определяет порядковый номер символа x.
    1. chr(x) — определяет символ по номеру.
    1. pred(x) — выдает символ, стоящий перед символом x.
    1. succ(x) — выдает символ, следующий после символа x.

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

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

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

    Type имя типа=(список констант);
    Var имя переменной:имя типа;
    

    где <список констант> — это особый вид констант, задаваемых через запятую и имеющих свой порядковый номер, начиная с 0.

    Например:

    type
    направление=(север, юг, запад, восток);
    месяц=(июнь,июль,август,январь);
    емкость=(ведро,бочка,канистра,бак);
    var
    поворот:направление;
    отъезд:месяц;
    объем:емкость;
    

    или так:

    var
    поворот:(свер, юг, запад, восток);
    отъезд:(июнь, июль, август, январь);
    объем:(ведро, бочка, канистра, бак);
    

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

    поворот:=юг;
    отъезд:=август;
    объем:=бак;
    

    но нельзя выполнять смешанные присваивания:

    отъезд:=юг;
    объем:=август;
    

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

    1. ord — порядковый номер

    2. pred — предшествующий элемент

    3. succ — последующий элемент.

    Пример:
    
    pred(бочка)=ведро;
    succ(юг)=запад;
    ord(июль)=1;
    

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

    север < юг, июнь < январь имеют значения TRUE, а юг>запад и бак<бочка значение FАLSE.

    5. Ограниченный тип.

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

    Описывается так:

    type <имя типа>=константа1..константа2
    

    При этом должны выполняться следующие правила:

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

    Пример:

    type 
    index=0..63;
    letter='a'..'z';
    var 
    char1,char2:letter;
    a,g:index;
    

    Можно описывать сразу в разделе описания переменных:

    var a,g:0..63;
    char1,char2:'a'..'z';
    
    

    Урок 1. Типы данных
    языка программирования
    Turbo Pascal 7.0

    1. Определение типов данных.

    2. Целочисленный тип данных, их
      количество и диапазон значений.

    3. Преобразование целых типов.
      Практический пример.

    1. Определение типов
      данных

    Тип
    данных языка программирования
    TP 7.0 определяет:

    • формат данных в памяти
      компьютера;

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

    • множество допустимых операций,
      применимых к этому типу.

    Множество типов
    языка TP 7.0 разделяют на две группы — стандартные
    (предопределенные) и определяемые пользователем (пользовательские).

    К стандартным типам языка
    программирования TP 7.0 относят такие типы данных как:
    числовые — группа целых (целочисленных) и группа вещественных (дробных)
    переменных, логические (булевские) переменные, символьные, указательные и
    текстовые.

    2. Целочисленный тип данных
    (группа целых типов)

    В TP 7.0
    определено пять целочисленных типов: Integer
    (целое), Sortint (короткое целое), Longint (длинное целое), Byte (байт), Word
    (слово), диапазон допустимых значений которых приведен в таблице 1.

    Таблица 1

    Тип

    Наименование

    типа

    Диапазон

    значений

    Длина

    (байт)

    Shortint

    Короткое
    целое

    -128 —:- 127

    (-27 -:- 27 — 1)

    1

    Integer

    Целое

    -32768 -:- 32767

    (-215 -:- 215 -1)

    2

    Longint

    Длинное
    целое

    -2147483648 -:- 2147683647 (-231 -:- 231 -1)

    4

    Byte

    Байт

    0 -:- 255
    (0 -:- 2
    8 — 1)

    1

    Word

    Слово

    0 -:- 6553
    (0 -:- 2
    16 — 1)

    2

    В TP 7.0
    любое значение, относящееся к целочисленному типу, должно быть написано в виде
    целого числа, например, a:=125;
    b:=5; (переменным a и b присвоены значения целых чисел
    125, 5 соответственно). В случае, когда результат расчетов выходит за пределы
    допустимых значений указанного типа индикации ошибки может и не быть, но может
    напечатан неверный результат.

    В ОЗУ компьютера числовые значения
    целых переменных представлены в виде двоичных цифр, которые называются битами
    (BInary digiTBIT). ОЗУ компьютера представляет собой техническое
    устройство, состоящее из набора адресуемых ячеек памяти, позволяющих запомнить 8
    bit (двоичных цифр).

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

    Конструкция,
    состоящая из 2- х байт, называется словом, из 4-х — двойным
    словом.

    1

    1

    1

    1

    1

    1

    1

    1

    0

    1

    1

    1

    1

    1

    1

    1

    -128 127

    На рисунке представлен диапазон
    целых чисел типа shortint (короткое целое) в виде
    записи двоичными цифрами в разрядной сетке величиной 1 байт. Серым цветом
    помечен знаковый разряд 0 — определяет знак +, 1 — определяет знак
    .

    3. Преобразование целых
    типов

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

    <Наименование целочисленного
    типа>(
    n)

    где <Наименование
    целочисленного типа>
    shortint,
    integer, longint, byte,
    word;

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

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

    {Преобразование целых типов}

    Program vv3;

    Uses Crt; {Вызов библиотечного модуля работы с
    дисплеем}

    Var j,k: longint; {Описание переменных,
    используемых в пр-ме}

    begin

    ClrScr;{Процедура очистки экрана
    дисплея}

    Write(‘Введи целое число: ‘);

    ReadLn(k); {Ввод числа с
    клавиатуры}

    WriteLn; {Перевод строки}

    {Вывод
    сообщений на экран}

    Write(‘Если введенное число входит в диапазон
    типа,’);

    WriteLn(‘то оно будет равно
    выводимому’);

    WriteLn;

    WriteLn(‘Вывод числа на
    дисплей’);

    {Преобразование в тип Byte}

    j:=Byte(k);

    WriteLn(‘ Тип Byte = ‘,j);

    {Преобразование в тип Word}

    j:=Word(k);

    WriteLn(‘ Тип Word = ‘,j);

    {Преобразование в тип Shortint}

    j:=Shortint(k);

    WriteLn(‘ Тип Sortint = ‘,j);

    {Преобразование в тип Integer}

    j:=Integer(k);

    WriteLn(‘ Тип Integer = ‘,j);

    {Преобразование в тип longint}

    j:=Longint(k);

    WriteLn(‘ Тип Longint = ‘,j);

    {}

    ReadKey; {Ожидание нажатия любой
    клавиши}

    end.

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

    Понравилась статья? Поделить с друзьями:
  • Тип word application не определен
  • Тип shape в excel
  • Тип range vba excel
  • Тип date vba excel
  • Технология экономических расчетов средствами ms excel