Что такое int в паскале
Pascal-Паскаль
Программирование. Числовые типы данных Pascal-Паскаль
Программирование. Числовые типы данных Pascal-Паскаль
Числовые типы данных Pascal-Паскаль
Наиболее распространенные в математике числовые типы – это целые числа, которые представляют бесконечное множество дискретных значений, и действительные числа, которые представляют неограниченный континуум значений.
Описание числовых типов данных (целые) Паскаля
В пределах одного языка могут быть реализованы различные подмножества множества целых чисел. Диапазон возможных значений целых числовых типов зависит от их внутреннего представления, которое может занимать один, два или четыре байта. Так, в Паскале 7.0 используются следующие целые числовые типы данных:
Числовые типы данных (ЦЕЛЫЕ ТИПЫ) Паскаля | ||
---|---|---|
Название числового типа данных | Длина, байт числового типа данных | Диапазон значений числового типа данных |
Byte | 1 | 0..255 |
ShortInt | 1 | -128..+127 |
Word | 2 | 0..65535 |
Integer | 2 | -32768..+32767 |
LongInt | 4 | -2 147 483 648..+2 147 483 647 |
С целыми числовыми типами данных Паскаля можно выполнять следующие операции:
В Паскале используются следующие типы вещественных чисел, которые определяют произвольное число лишь с некоторой конечной точностью, зависящей от внутреннего формата вещественного числа:
При описании вещественной переменной типа real в памяти компьютера будет создана переменная размерностью 4 байта. При этом 3 байта будут отданы под мантиссу, а один – под порядок.
Над действительными числовыми типами данных можно выполнять следующие операции:
Исходники Pascal (127)
Справочник
Справочник по паскалю: директивы, функции, процедуры, операторы и модули по алфавиту
Целочисленные типы данных
Многие сегодня хотят стать программистами. Хотят. Но ничего не делают для этого. Не делают даже простых вещей. Не хотят даже прочитать книжку из 10 страниц. В итоге так и остаются никем. Потому что мечты не сбываются никогда. Сбываются только планы… Подробнее.
Почти все целочисленные типы данных относятся к порядковым типам. Эти типы данных представляют целые числа в определённом диапазоне. Конкретные наименования целочисленных типов и диапазоны значений зависят от конкретного языка программирования, от компилятора и от режима компиляции. Подробнее об этом надо узнавать в документации на компилятор.
Так как Lazarus использует компилятор Free Pascal, то всё сказанное о типах данных по отношению к Free Pascal справедливо и для Lazarus.
Итак, целочисленные типы данных Free Pascal перечислены в таблице 13.1.
Таблица 13.1. Целочисленные типы данных Free Pascal (Lazarus).
Тип | Размер, байт | Диапазон значений |
Byte | 1 | 0…255 |
Shortint | 1 | -128…127 |
Smallint | 2 | -35768…32767 |
Word | 2 | 0…65535 |
Integer | 2 или 4 | Зависит от режима компиляции |
Cardinal | 4 | 0…4294967295 |
Longint | 4 | -2147483648…2147483647 |
Longword | 4 | 0. 4294967295 |
Int64 | 8 | -9223372036854775808. 9223372036854775807 |
QWord | 8 | 0. 18446744073709551615 |
А теперь несколько пояснений к таблице.
В колонке ТИП приведены идентификаторы типов данных (ключевые слова, которые указывают компилятору, к какому типу относятся те или иные данные). Как использовать эти идентификаторы, вы узнаете в следующих уроках.
В колонке РАЗМЕР указан размер, который занимает тип данных в памяти компьютера. Например, целое положительное число можно представить разными типами: Byte, Word, Cardinal и др. Однако число типа Cardinal будет занимать в памяти 4 байта, в то время как число типа Byte – всего лишь 1 байт. Поэтому, если вы точно знаете, что число, с которым вы работаете, никогда не примет значение больше 255, то лучше определять его как тип Byte, так как это позволит сэкономить место в памяти компьютера. Хотя здесь не всё так однозначно (нюансы распределения памяти и других ресурсов компьютера выходят за рамки данного курса).
В колонке ДИАПАЗОН указан диапазон значений, которым оперирует тип данных. Например, число типа Byte может принимать значения от 0 до 255.
А теперь практика. Напишем программу, которая выводит на экран диапазоны значений всех целочисленных типов данных. Исходный код этой программы приведён ниже:
Стандартная функция Low определяет минимальное значение типа данных. Фунцкия High определяет максимальное значение. С функциями WriteLn и ReadLn вы уже немного знакомы. Более подробно о подпрограммах (процедурах и функциях) мы будем говорить в соответствующем разделе курса.
Правда, это относится к числам в десятичной системе счисления. Наверняка вы уже знаете, что есть и другие системы. Наиболее широко распространены двоичная, десятичная и шестнадцатеричная системы счисления.
Free Pascal поддерживает четыре формата записи целого числа:
Если для вас это пока слишком сложно, то пропустите эту часть. Просто добавьте страницу в закладки и вернётесь к ней когда будет нужно.
Создайте программу, которая выводит на экран диапазоны значений целых чисел (листинг 13.1). Откомпилируйте программу и запустите её. Убедитесь, что эти значения соответствуют указанным в таблице 13.1.
В исходном коде программы найдите строку, которая задаёт режим компиляции:
В этой строке вместо слова objfpc напишите слово tp. То есть итоговая строка должна выглядеть так:
Запустите программу. Посмотрите диапазон значений типа Integer. Сделайте выводы.
Учитесь думать как программист, то есть логически. Никто вам до пенсии не будет всё разжёвывать, как это делаю сейчас я. Надо привыкать думать самостоятельно. Иначе вы скатитесь к “обезьяньему принципу обучения”, и тогда ваши шансы стать классным программистом приблизятся к нулю. Чтобы помочь вам не скатиться на уровень “зубрёжки”, я буду периодически оставлять пробелы в вашем обучении, чтобы вы постарались сами додуматься до каких-то вещей.
Намного лучше, если вы сами додумаетесь до неправильного решения, сами найдёте ошибку и сами её исправите, чем будете всегда использовать чужие правильные решения и тупо их копировать.
Урок 11. Типы в PascalABC.NET. Создание своего типа
Приветствуем тебя, юный (или не очень юный) читатель нашего сайта! Сегодня мы с вами поговорим про типы в PascalABC.NET: числовые, символьные и логические. Они немного отличаются от стандартных типов Turbo Pascal.
Давайте вспомним какими могут быть величины? Об этом говорилось в отдельной статье. Сейчас мы быстренько все впомним. Любая величина может быть трех типов: числовой, символьной и логическй. Раньше мы использовали всего несколько типов (integer, real, boolean ), но пришло время расширить знания.
Все типы я буду оформлять в удобную табличку, хотя некоторые моменты буду пояснять. Таблица будет иметь три столбца: тип, размер в байтах, дапозон значений.
Принято разделять числовые типы на две большие подгруппы: целые и вещественные.
Целые типы
Тип | Размер в байтах | Диапазон значений |
shortint | 1 | -128..127 |
smallint | 2 | -32768..32767 |
integer, longint | 4 | -2147483648..2147483647 |
int64 | 8 | -9223372036854775808..9223372036854775807 |
byte | 1 | 0..250 |
word | 2 | 0..65535 |
longword, cardinal | 4 | 0..4294967295 |
uint64 | 8 | 0..18446744073709551615 |
Вещественные типы
Для удобства в Паскале заведены специальные константы, которые возвращают на свое место минимальное или максимальное значение разных типов. Ниже вы можете посмотреть таблицу, в которую занесены все константы.
Константа(1) | Константа(2) | Значение |
MaxShortInt | shortint.MaxValue | Максимальное значение типа shortint |
MaxByte | byte.MaxValue | Максимальное значение типа byte |
MaxSmallInt | smallint.MaxValue | Максимальное значение типа smallint |
MaxWord | word.MaxValue | Максимальное значение типа word |
MaxInt | integer.MaxValue | Максимальное значение типа integer |
MaxLongWord | longword.MaxValue | Максимальное значение типа longword |
MaxInt64 | int64.MaxValue | Максимальное значение типа int64 |
MaxUint64 | uint64.MaxValue | Максимальное значение типа uint64 |
MaxDouble | double.MaxValue | Максимальное значение типа double |
MinDouble | real.Epsilon | Минимальное значение типа double |
MaxReal | real.MaxValue | Максимальное значение типа real |
MinReal | real.Epsilon | Минимальное значение типа real |
MaxSingle | single.MaxValue | Максимальное значение типа single |
MinSingle | single.Epsilon | Минимальное значение типа single |
Логический тип
В PascalABC.NET только один логический тип — boolean. Про него была написана целая статья. Тип Boolean принимает значение true или false, и его размер — 1 байт.
Символьный тип и строки
Символьный тип
Символьный тип char занимает 2 байта и хранит Unicode-символ.
Чтобы не писать отдельную статью про символьный тип, вкратце расскажу про него здесь. В PascalABC.NET помимо стандартных функций chr и ord, добавлены новые функции — ChrUnicode и OrdUnicode.
Chr(n) — функция, возвращающая символ с кодом n в кодировке Windows;
Ord(с) — функция, возвращающая значение типа byte, представляющее собой код символа c в кодировке Windows.
ChrUnicode(w) — возвращает символ с кодом w в кодировке Unicode;
OrdUnicode(с) — возвращает значение типа word, представляющее собой код символа c в кодировке Unicode.
Давайте поэкспериментируем, составим вот такую небольшую программку.
Этой программой я хочу проверить накладываются ли друг на друга кодировка Windows и Unicode. Ниже, на скриншоте вы можете посмотреть результат работы программы.
Накладываются. Просто Unicode длиннее, чем кодировка Windows.
Строковой тип
Строки имеют тип string, состоят из набора последовательно расположенных символов char и используются для представления текста.
Строки могут иметь произвольную длину. Строки изменяемы.
Наверное, сейчас вы сомневаетесь в том, что в PascalABC.NET строки могут быть произвольной длины. Давайте проверим это с помощью небольшой программы.
Кроме того, в PascalABC.NET реализованы размерные строки. Для их описания используется тип string[n], где n — константа целого типа, указывающая длину строки.
Перечислимый и диапазонный типы
Перечислимый тип
Перечислимый тип определяется упорядоченным набором идентификаторов. Чтобы объявить новый тип, используется специальное слово — type. Его необходимо ставить перед var.
Значения перечислимого типа занимают 4 байта. Каждое значение value представляет собой константу типа typeName, попадающую в текущее пространство имен.
К константе перечислимого типа можно обращаться непосредственно по имени, а можно использовать запись typeName.value, в которой имя константы уточняется именем перечислимого типа, к которому она принадлежит:
Для значений перечислимого типа можно использовать функции Ord, Pred и Succ, а также процедуры Inc и Dec (Подробнее про эти функции и процедуры). Функция Ord возвращает порядковый номер значения в списке констант соответствующего перечислимого типа, нумерация при этом начинается с нуля.
Результат работы программы
Диапазонный тип
Диапазонный тип представляет собой подмножество значений целого, символьного или перечислимого типа и описывается в виде a..b, где a — нижняя, b — верхняя граница интервального типа, a Результат работы программы
Тип, на основе которого строится диапазонный тип, называется базовым для этого диапазонного типа. Значения диапазонного типа занимают в памяти столько же, сколько и значения соответствующего базового типа.
На сегодня все! Урок получился объемным, но, надеюсь, понятным. Если же у вас возникли вопросы, напишите нам.
Целые типы
Во Free Pascal определен ряд целых типов, различающихся между собой объемом отводимой под данные памяти. Чем больше памяти отводится, тем больший диапазон значений может принимать переменная данного типа.
На практике часто используется целочисленный тип integer, под который в зависимости от платформы отводится 2 или 4 байта.
Примеры часто используемых целых типов в Pascal
Тип | Диапазон допустимых значений | Отводимая память, в байтах |
---|---|---|
shortint | -128…127 | 1 |
integer | -32 768…32 767 | 2 |
longint | -2 147 483 648…2 147 483 647 | 4 |
byte | 0…255 | 1 |
word | 0…65 535 | 2 |
Переменные целого типа могут принимать только целые значения, попытка присвоения им вещественного числа приводит к ошибке.
Целочисленные переменные в программе описываются следующим образом:
Операции над целыми типами, дающие в результате значение целого типа:
Пример. Пусть a = 17, b = 5. Тогда a div b дает 3, a mod b дает 2 (остаток от деления).
Операции над операндами целого типа выполняются правильно только при условии, что результат и каждый операнд не меньше минимального (крайнего левого) и не больше максимального (крайнего правого) значений диапазона. Например, в Паскале существует константа maxint, в которой содержится максимально допустимое значение для типа integer. Тогда при выполнении операций в программе должны соблюдаться следующие условия:
Процедуры inc и dec изменяют значение переданной в них переменной, они ничего не возвращают в программу. Это их важное отличие от функций succ и pred.
Следующие функции принимают в качестве аргументов значения вещественного типа, а возвращают значения целого типа:
trunc(x) – отбрасывание десятичных знаков после точки;
round(x) – округление до целого.
Пример. Пусть x = 4.7389. Тогда trunc ( x ) дает 4, round ( x ) дает 5.
Pascal: Занятие №1. Часть 3: Типы данных в Паскаль
Типы данных в Паскале
Паскаль — это типизированный язык программирования. Это означает, что переменные, в которых хранятся данные, имеют определенный тип данных. Т.е. программе напрямую надо указать, какие данные могут храниться в той или иной переменной: текстовые данные, числовые данные, если числовые — то целочисленные или дробные, и т.п. Это необходимо в первую очередь для того чтобы компьютер «знал», какие операции можно выполнять с этими переменными и как правильно их выполнять.
Например, сложение текстовых данных, или как это правильно называется в программировании — конкатенация — это обычное слияние строк, тогда как сложение числовых данных происходит поразрядно, кроме того, дробные и целые числа складываются тоже по-разному. То же самое касается и других операций.
Рассмотрим наиболее распространенные в 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 | ||||||||||||||||||
Pascal | PascalABC.NET | ||||||||||||||||
ДЕЙСТВИЕ | РЕЗУЛЬТАТ | СМЫСЛ |
---|---|---|
2 + 3 | 5 | плюс |
4 — 1 | 3 | минус |
2 * 3 | 6 | умножить |
17 div 5 | 3 | целочисленное деление |
17 mod 5 | 2 | остаток от целочисленного деления |
Порядок выполнения операций
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:
Более сложное использование процедуры inc:
Inc(x,n) где x — порядкового типа, n — целого типа; процедура inc увеличивает x на n.
Пример использования функции odd:
begin WriteLn(Odd(5));
Пример использования процедуры sqr в Pascal:
var x:integer; begin x:=3; writeln(sqr(x)); <ответ 9>end.
Однако в компиляторе pascal abc возведение в степень осуществляется значительно проще:
Пример использования процедуры sqrt в Pascal:
var x:integer; begin x:=9; writeln(sqrt(x)); <ответ 3>end.
- Что такое int в информатике
- Что такое int в питоне