Что означает определить тип числовой переменной

Структура языка программирования

Содержание

Дополнительно

Классификация типов данных

Что означает определить тип числовой переменной. Смотреть фото Что означает определить тип числовой переменной. Смотреть картинку Что означает определить тип числовой переменной. Картинка про Что означает определить тип числовой переменной. Фото Что означает определить тип числовой переменной

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

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

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

Числовые типы данных

Целочисленные типы данных

Исходя из машинного представления целого числа, в ячейке памяти из n бит может хранится 2 n для беззнаковых, и 2 n-1 для знаковых типов.

Рассмотрим теперь конкретные целочисленные типы в трёх языках.

У некоторых типов есть приписка «16 разрядов» или «32 разряда». Это означает, что в зависимости от разрядности операционной системы и компилятора данный тип будет находится в соответствующем диапазоне. По-этому, рекомендуется не использовать int, unsigned int, а использовать их аналоги, но уже жестко определенные, short, long, unsigned short, unsigned long.

В Java нет беззнаковых целочисленных типов данных.

Вещественные типы данных

Числа вещественного типа данных задаются в форме чисел с плавающей запятой.

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

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

Рассмотрим конкретные типы данных в наших трёх языках.

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

Символьный тип данных

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

Логический тип данных

Перечислимый тип данных

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

Чтобы прочувствовать эту концепцию, приведем пример на языке С++ (в С# и Java аналогично)

Теперь переменные перечислимого типа Forms могут принимать лишь значения, определенные в примере кода. Это очень удобно, ведь мы уже оперируем не с числами, а с некими смысловыми значениями, замечу лишь, что для компьютера эти значения всё-равно являются целыми числами.

Массив

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

В языках программирования нельзя оперировать всем массивом, работают с конкретным элементом. Чтобы доступиться до него в трёх рассматриваемых нами языках используют оператор «[]».

Структура

Структуры реализованы в языке программирования, чтобы собрать некие близки по смыслу вещи воедино.

Например, есть колесо автомобиля. У колеса есть диаметр, толщина, шина. Шина в свою очередь является структурой, у которой есть свои параметры: материал, марка, чем заполнена. Естественно, для каждого параметра можно создать свою переменную или константу, у нас появится большое количество переменных, которые, чтобы понять к чему они относятся, нужно в именах общую часть выделять. Имена будут нести лишнюю смысловую нагрузку. Получается запутанная история. А так мы определяем две структуры, а затем параметры в них.

Класс

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

Источник

Числовые типы данных, переменные и арифметические действия

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

Любая программа так или иначе обрабатывает какие-то данные, их необходимо где-то хранить.

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

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

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

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

Числовые типы данных Паскаля можно было бы поделить на два основных вида: целочисленные и работающие с дробными значениями. Разумеется, в каждом из них жёстко прописано — сколько отводится байт для хранения данных каждого типа. Этим же обусловлено, в каких диапазонах могут меняться значения переменных, а также точность представления действительных чисел. Обо всём по порядку. Приведу таблицу с характеристиками целочисленных типов данных. Да, их несколько.

Самым часто используемым является — Integer, на хранение данных такого типа отводятся два байта и диапазон значений чисел этого типа лежит от −32 768 до 32 767 со знаком плюс. Для большинства типовых учебных задач его хватает. Однако бывает так, что нам не нужны, например, отрицательные числа или не требуется такого разброса значений. А бывает и наоборот, обычного интеджера становится недостаточно и тогда используют Longint. Какой тип данных использовать, следует решать в каждой конкретной задаче.

Для объявления переменных в программах на Паскале отведено конкретное место. Со временем, когда мы изучим и другие механизмы языка, то более детально определим это место, а сейчас следует помнить, что раздел с переменными размещают перед главным бегином программы. Позже (не на этом уроке), мы поговорим об областях видимости переменных, пока же все наши переменные будут глобальными и раздел с ними начинается с ключевого слова «var» от английского «variable» — переменная, изменяемая. Это ключевое слово записывается один раз и следом за ним идут все необходимые нам в программе переменные. Их описывают просто:

На имена переменных налагаются те же ограничения, что и на прочие идентификаторы языка — русские буквы и пробелы исключены. Имя не может начинаться с цифры. После имени переменной необходимо поставить двоеточие «:» и затем указать тип данных, например, Integer. Закончить объявление переменной надо точкой с запятой «;» как и любой оператор. Если нам нужны несколько переменных одного типа, их имена можно указать через запятую.

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

Имя программе задано произвольно и из него ясно, что мы сегодня говорим о типах данных, переменных и операциях (имеются в виду арифметические операции над числами). Итак, перед главным бегином программы я разместил раздел с переменными, которые для краткости обозвал «a» и «b». Это переменные целого типа Integer.

Далее в самой программе расположены два оператора присваивания — знак «:=» – двоеточие, равно без пробелов между ними. С его помощью в переменную a я поместил целое число пять, а в b — двойку. Каждый оператор, само собой, заканчивается точкой с запятой. С процедурой writeln вы уже знакомы. С её помощью мы выведем на экран сумму чисел, которые сохранили в переменных. Запустите программу любым способом — (F9 или Ctrl + F9) и посмотрите на результат. Очевидно — семь.

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

А в процедуру writeln передадим в качестве аргумента не сумму переменных, а только нашу переменную a. Если ещё не ясно, программа примет следующий вид:

Запустите программу. Результат — три. Что же произошло? Как следует понимать третью строку программы? В правой части оператора написано a−b, исходя из помещённых в наши переменные значений, результат 5−2 действительно равен трём. А весь оператор следует понимать так: вычитаем значение переменной b из значения переменной a, и затем уже присваиваем новое значение в переменную a. Вообще, слева в операторе присваивания могла стоять любая целочисленная переменная, куда бы мог быть записан наш результат. Другое дело, что чаще всего используется тот же тип данных, что и в складываемых или вычитаемых переменных.

Очевидно, что кроме суммы «+» и разности «−», есть ещё умножение «*» и деление «/». Однако с делением не всё так гладко. Если мы скроем третью строчку программы — закомментируем её, а в процедуру writeln передадим в качестве аргумента «a / b», то процедура, положим, разберётся, что надо делать и выдаст нам результат, равный 2.5 — смотрите листинг 3.

Если же мы раскомментируем третью строку и попробуем в переменную a поместить результат деления a на b, то мы получим ошибку при выполнении нашей программы. Почему? — Правильно, нельзя дробное число поместить в переменную целого типа. И даже если бы мы с вами делили, скажем, четыре на два, то и тогда результат нужно было бы сохранять в переменную дробного типа. Почему? — Да потому что в общем случае результат деления — число дробное. Так мы плавно добрались до дробных типов данных в Паскале. Или, говоря более академично, до типов с плавающей запятой. Их тоже несколько, привожу таблицу.

Диапазоны чисел в этой таблице просто космические. Вместе с тем, такое представление чисел не всегда точное. К выбору дробных типов данных (типов с плавающей запятой) следует подходить ещё более аккуратно, чем к целочисленным. Однако зачастую выбирают тип Real — действительные числа. Шести байт, выделяемых для хранения данных в этом типе с лихвой хватает для большинства задач.

Если мы теперь объявим переменную этого типа и результат деления a на b поместим в неё (листинг 4) Паскаль ругаться не станет.

С результатом деления как с потенциально дробным числом, которое следует сохранять в дробных переменных, мы разобрались. Добавлю, однако, что в переменные типа Real можно запросто помещать и целые числа. К ошибке это не приведёт. Более того, умненький PascalABC даже не поставит в таком числе точку — разделитель целой и дробной части. Если вы сохраните в нашей переменной r число пять и выведете его на экран, то среда разработки выведет «5», а не «5.0», что с формальной точки зрения было бы правильнее. Мы к этому ещё вернёмся, когда будем говорить о приведении типов в Паскале.

Здесь самое место упомянуть о таких арифметических операциях как целочисленное деление и взятие остатка от целочисленного деления. Отдельно также стоят возведение в квадрат и взятие квадратного корня из числа. А операции возведения произвольного числа в произвольную (даже отрицательную, даже дробную) степень и вовсе не было в старых средах разработки. Поэтому все эти тонкости мы будем затрагивать на будущих уроках, а сегодня на этом всё.

Нет, не всё, есть ещё видеоролик.

Источник

Переменные числового типа

Типы данных

Данные и их типы

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

Числовые типы данных

Числовые данные представляют собой числа. Они бывают следующих типов: целые, длинные целые, обычной точности, двойной точности:

Символьные типы данных

Строка переменной длины(STRING)— это последовательность длиной до 32567 символов из таблицы ASCII. В памяти она занимает столько байт, какова ее длина + 4 байта на описатель.

Строка фиксированной длины (STRING* num)— символьная строка длиною num байт. В памяти такая строка занимает num байт.

Пользовательские типы данных (записи)

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

Например, нам необходимо ввести табельный номер работника, его фамилию и тарифную ставку.

‘Определим пользовательский тип данных Record

‘с помощью оператора TYPE

TabNomer AS INTEGER

Family AS STRING * 15

‘Присваиваем переменной Rabotnikпользовательский тип

DIM Rabotnik AS Record

‘Последовательно вводим значение каждого элемента записи

INPUT «Введите табельный номер»; Rabotnik.TabNomer

INPUT «Введите фамилию работника»; Rabotnik.Family

INPUT «Введите тарифнуюставку»; Rabotnik.Stavka

Пользовательский тип данных занимает в памяти столько байт, сколько занимают в сумме каждый из составляющих его элементов. Для нашего примера запись Rabotnik включает целое число (2 байта), строку фиксированной длины (15 байт) и число удвоенной точности (8 байт). Таким образом она имеет размер 25 байт.

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

Константы

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

В языке QuickBASIC имеются 2 типа констант — неименованные и именованные.

Неименованные константы

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

Символьные константы— это последовательность до 32767 алфавитно-числовых символов (за исключением кавычек («) и символов перевода каретки и пропуска строки (CR — ASCII 13 и LF — ASCII 10). Они обязательно должны заключаться в кавычки:

PRINT «Средняя заработная плата»

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

Обычной точности: 9.0846

Двойной точности: 4.35D-10

Именованные константы

Они также бывают символьные и числовые, тех же типов, чтои неименованные. Чтобы использовать именованную константу, ее необходимо объявить при помощи ключевого слова CONST, например:

CONST MaxArray% = 512

В этом примере объявляется целочисленная константа МахАrrау и ей присваивается значение 512. В дальнейшем к этой константе можно обращаться по имени:

Символьная константа объявляется и используется аналогично:

CONST BAD$ = «mbt120o016eee12c»

При обращении к именованным константам вы можете опускать расширение, как показано в этих примерах.

Использование именованных констант имеет ряд преимуществ по сравнению с использованием для этих целей переменных:

• Однажды определив константу, вы не сможете случайно изменить ее значение. BASIC сразу выдаст сообщение об ошибке «Duplicate Definition» (Двойное определение);

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

• BASIC выполняет операции с константами быстрее, чем с переменными.

HELP: MaxArray MaxArray is в synbol that, is used in your program as follows: Untitled constant of type: INTEGER Value = 512

Если подвести курсор к названию именованной константы где-либо в Вашей программе и нажать клавишу среда QB покажет тип и значение этой константы:

Удобно использовать именованные константы для обозначения функциональных клавиш. Это очень помогает при написании программ — не надо держать в голове, коды этих клавиш — вместо этого можно просто написать:

CONST F1% = 59, F2% = 60, F3% = 61, F4% = 62, F5% = 63

CONST F6% = 64, F7% = 65, F8% = 66, F9% = 67, F10% = 68

Переменные

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

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

Имена переменных

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

Так, в примере содержится ошибка — LOCATE (разместить) является зарезервированным словом (без учета регистра):

Однако следующий пример допустим:

Зарезервированными словами в QuickBASIC являются команды, операторы, имена функций.

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

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

Переменные числового типа

Переменные числового типа представляют собой, естественно, числа. Они бывают целые (INTEGER), длинные целые (LONG INTEGER), обычной точности (SINGLE), двойной точности (DOUBLE):

а) поставить в начало программы оператор объявления целого типа данных DEFINT (DEFINED INTEGER):

‘объявить переменные в программе (от А до Z) целого типа

б) Явно задать переменную с помощью суффикса «%»

‘Переменная Flag% – целого типа

в) Использовать оператор описания переменной

‘описываем переменную как целую

DIM Flag AS INTEGER

Длинные целые (LONG) – 4 байта. Используются для значений в диапазоне от 2,147,483,648до +2,147,483,647. Они используются в тех случаях, когда необходимы операции с целочисленными переменными, выходящими за рамки диапазона целых чисел в представлении BASIC. Присвоить переменной длинный целый тип можно следующим образом:

а) поставить в начало программы оператор объявления длинного целого типа данных DEFLNG (DEFINED LONG):

‘объявить переменные в программе (от В до С)

‘длинного целого типа

‘Переменная BisunessTotal – длинная целая, так как

‘она начинается с буквы В, которая входит в диапазон В-С BisunessTotal = 999999999

б) Явно задать переменную с помощью суффикса «&»:

‘Переменная BisunessTotal& – длинная целая

в) Использовать оператор описания переменной:

‘описываем переменную как длинную целую

DIM BisunessTotal AS LONG

Присвоить переменной тип обычной точности можно следующим образом:

а) поставить в начало программы оператор объявления данных обычной точности DEFSNG (DEFINED SINGLE).

‘объявить переменные в программе, начинающиеся с буквы S

‘начинается с буквы S

б) Явно задать переменную с помощью суффикса «!». Следует учесть, что поскольку переменная в BASIC имеет тип обычной точности по умолчанию, то числовая переменная, у которой указан суффикс «!» и та, у которой этот суффикс отсутствует, считаются одинаковым и не различаются языком BASIC.

‘Переменная SingleValue! – обычной точности, она же

PRINT SingleValue!, SingleValue

в) Использовать оператор описания переменной

‘описываем переменную обычной точности

DIM SingleValue AS SINGLE

а) поставить в начало программы оператор объявления длинного типа данных типа данных DEFLNG (DEFINED LONG):

‘объявить переменные, начинающие с буквы D, а также

‘входящие в диапазон от М до Р, двойной точности

‘начинается с буквы D

б) Явно задать переменную с помощью суффикса «#»

‘Переменная Determinant# – двойной точности

в) Использовать оператор описания переменной

Источник

Что означает определить тип числовой переменной

4. Переменные: тип, имя, значение.

В объектно-ориентированном языке программирования Visual Basic переменные используются для хранения и обра­ботки данных в программах.

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

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

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

Таблица 2.2. Некоторые типы переменных в языке Visual Basic 2 010

Объем занимаемой памяти

Целые неотрицательные числа от 0 до 255

Целые числа от –32 768 до 32 767

Целые числа от –2 147 483 648 до 2 147 483 647

Целые числа от –9 223 372 036 854 до

Десятичные числа одинарной точности (7-8 значащих цифр) от –1,4·10 –45 до 3,4·10 38

Логическое значение True или False

Строка символов в кодировке Unicode

Даты от 1 января 0001 года до 31 декабря 9999 года и время от 0:00:00 до 23:59:59

Имя переменной. Имена переменных определяют облас­ти оперативной памяти компьютера, в которых хранятся значения переменных. Имя каждой переменной (идентифи­катор) уникально и не может меняться в процессе выполне­ния программы. Имя переменной может состоять из различ­ных символов (латинские и русские буквы, цифры и т. д.), но должно обязательно начинаться с буквы и не должно включать знак точка «.». Количество символов в имени не может быть более 1023, однако для удобства обычно ограни­чиваются несколькими символами.

Объявление переменных. Необходимо объявлять пере­менные, для того чтобы исполнитель программы (компью­тер) «понимал», переменные какого типа используются в программе.

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

Значение переменной может быть задано числом, стро­кой или логическим значением, а также может быть пред­ставлено с помощью арифметического, строкового или логи­ческого выражения.

Проект «Переменные». Создать проект, в котором объя­вить переменные различных типов, присвоить им значения и вывести значения в поле списка, размещенное на форме.

Создадим графический интерфейс (рис. 2.8).

1. Поместить на форму:

• поле списка ListBox 1 для вывода значений перемен­ных;

• кнопку Button 1 для запуска событийной процедуры.

Private Sub Button1_Click (. )

3. Запустить проект на выполне­ние. После щелчка по кнопке начнет выполняться событийная процедура, в которой будут вы­полнены операции присваива­ния (в отведенные переменным области оперативной памяти бу­дут записаны их значения).

Что означает определить тип числовой переменной. Смотреть фото Что означает определить тип числовой переменной. Смотреть картинку Что означает определить тип числовой переменной. Картинка про Что означает определить тип числовой переменной. Фото Что означает определить тип числовой переменной

Рис. 2.8. Проект «Переменные»

Проанализируем процесс выполнения программы компьютером. После запуска проекта оператор объявления переменных Dim отведет в оперативной памяти для их хра­нения необходимое количество ячеек (табл. 2.3):

• для целой неотрицательной переменной А — одну ячейку;

• для целочисленной переменной В — две ячейки;

• для переменной одинарной точности С — четыре ячейки;

• для строковой переменной D — по две ячейки на сим­вол;

• для логической переменной G — две ячейки.

Таблица 2.3. Значения переменных в оперативной памяти

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *