Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПВ ГОС_1.doc
Скачиваний:
8
Добавлен:
01.05.2025
Размер:
860.16 Кб
Скачать
  1. Понятие переменной в языках программирования высокого уровня.

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

Алфавит! – фиксированный для данного языка набор основных символов, допускаемых для составления текста программы на этом языке.

Синтаксис! – система правил, определяющих допустимые конструкции языка программирования из букв алфавита.

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

Переменная! — это ячейка (или несколько ячеек) оперативной памяти компьютера. Такой ячейке присвоено определенное имя, ее содержимое может изменяться в ходе выполнения программы.

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

Статическая и динамическая типизация переменных

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

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

Статические и динамические переменные

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

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

Локальные и глобальные переменные

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

Простые и сложные переменные

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

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

Существуют следующие типы переменных:

  • Integer (целые) – от -32 768 до +32 768.

  • Real (вещественные) – значения могут быть как дробные так и вещественные.

  • Boolean (логический) – True (истина), False (ложь).

  • Char (символьный) – @, %, $  и т.д.

  • String (строковый) – ‘доска’

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

Истинная константа - Она объявляется со значением. Ее тип неизвестен, поэтому ее значение в программе менять нельзя.

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

  1. Типы переменных в языках программирования высокого уровня.

Базовые типы

К базовым типам относятся:

  • тип целых чисел

  • int -2147483648 до 2147483647

  • Int16 -32768..32768

  • Int32 -2млрд..2млрд

  • Int64 -9223372036854775808 до 9223372036854775807

  • Byte 0..255

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

-25.000452

0.24

4.854E-12

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

double от ±5,0 × 10−324 до ±1,7 × 10308

double x = 3.7D;

double m = 8.2;

float от ±1,5 × 10−45 до ±3,4 × 1038 float x = 3.5F;

  • символьный тип - Char

Ключевое слово char используется для объявления символа Юникода в диапазоне, указанном в следующей таблице. Символы Юникода — это 10-разрядные символы, которые используются для представления большинства известных письменных языков мира. содержит внутри себя всего один символ например 'w' или '#'

Константы типа char могут быть записаны в виде символьных литералов, шестнадцатеричной escape-последовательности или представления Юникода. Кроме того, можно привести коды целых символов. Все следующие операторы объявляют переменную char и инициализируют ее символом X:

char c1 = 'Z'; // Буквенный символ

char c2 = '\x0058'; // Шестнадцатеричный код символа

  • строковый тип - string по умолчанию до 2Гбайт например " iit "

Тип данных string — это последовательность, содержащая ни одного или любое число знаков Юникода. В платформе.NET Framework string является псевдонимом для String.

string a = "hello";

string b = "h";

  • логический тип - bool (Может принимать два значения Истинно-true Ложно-false)

bool f = true;

Физически типы данных отличаются друг от друга количеством ячеек памяти (байтов), отводимых для хранения соответствующей переменной. Логическое же отличие проявляется в интерпретации хранящейся информации. Например, переменные типа Char и типа Byte занимают в памяти по одному байту. Однако в первом случае содержимое ячейки памяти интерпретируется как целое беззнаковое число, а во втором - как код (ASCII) символа.