Invest-currency.ru

Как обезопасить себя в кризис?
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Идентификатор переменной паскаль

Идентификаторы

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

Для обозначения заранее определенных разработчиками языка типов данных, констант, процедур и функций служат стандартные идентификаторы, например: integer, Sin, Cos, Ln, Sqr, Sqrt, Read, Readln, Write, Writeln. В этом примере стандартный идентификатор Sin вызывает функцию, вычисляющую синус заданного угла, Read, Readln вызывают процедуру, организующую ввод данных, Write, Writeln вызывают процедуру, организующую вывод данных. Любой из стандартных идентификаторов, в отличие от зарезервированных слов, можно переопределить, но это чаще всего приводит к ошибкам. Поэтому на практике стандартные идентификаторы лучше использовать без каких-либо изменений.

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

Компилятор Turbo Pascal строго следит за этим, и если это требование не соблюдается, то компиляция прерывается, а на экран выводится сообщение об ошибке «Error 4: Duplicate identifier» и указывается дублирующийся идентификатор.

В идентификатор не могут входить пробелы и специальные символы. Обратите внимание, что буквы русского алфавита не могут входить в идентификатор Turbo Pascal.

При написании программ следует соблюдать общие правила написания идентификаторов:

1. Идентификатор может начинаться только с буквы или знака подчеркивания (исключение составляют метки, которые могут начинаться также и с цифры);

2. Идентификатор может состоять из букв, цифр и знаков подчеркивания (пробелы, точки и другие специальные символы недопустимы);

3. Между двумя идентификаторами должен быть по крайней мере один пробел;

4. Максимальная длина идентификатора составляет 127 символов, но значимыми являются только первые 63 символа;

5. При записи идентификаторов можно использовать как прописные, так и строчные буквы. Компилятор не делает различий между ними, хотя они и имеют различные ASCII-коды. На практике рекомендуется применять эту особенность для более простого чтения и понимания значений идентификаторов. Так, вместо идентификатора nomerotdela лучше написать NomerOtdela, выделив прописными буквами каждую из двух смысловых частей.

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

2graph – ошибка, идентификатор начинается с цифры

Nomer.Doma – ошибка, идентификатор содержит точку

Сумма – ошибка, идентификатор содержит буквы русского алфавита.

Локальные и глобальные идентификаторы Паскаль

Когда мы используем процедуры и функции в Паскале, то имеем дело с идентификаторами (т.е. именами) в программе. При составлении программного кода для использования не все имена оказываются доступными.

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

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

Локальные идентификаторы Паскаль:

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

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

Глобальные идентификаторы Паскаль:

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

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

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

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

Другими словами, если есть два блока, один из которых вложен в другой, и в обоих блоках содержатся переменные с одинаковыми именами, то после перехода во «внутренний» блок мы будем работать с переменной, локальной для рассматриваемого блока. А переменная с этим же именем, заключенная во «внешнем» блоке, оказывается временно недоступна — это будет продолжаться до тех пор, пока не осуществим выход из «внутреннего» блока. Совет.

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

Пример. Создадим программу, которая вычисляет значение функции y=a*ln(sin(x))

Идентификатор переменной паскаль

1. Лингвистическая концепция языка Паскаль

Целью работы И. Вирта было создание языка, который

строился бы на небольшом количестве базовых понятий,

имел бы простой синтаксис,

допускал бы перевод программ в машинный код простым компилятором.

По природе своей компьютер может выполнять только простейшие операции, которые можно вводить одну за другой в его память прямо в машинных кодах. Изнурительная монотонность такой работы привела когда-то первых программистов к естественному решению — созданию Ассемблеров, т.е. средств, упрощающих подготовку машинных кодов программ пользователя за счет написания их в некоторых мнемонических обозначениях с последующим автоматическим переводом. Дальнейшее развитие этих идей привело к созданию языков программирования высокого уровня, в которых длинные и сложные, но часто применяемые последовательности машинных операций были заменены каждая одним-единственным обозначающими ее словом — оператором. В области малых ЭВМ среди языков программирования высокого уровня следует в первую очередь назвать БЕЙСИК. Программы, написанные на этом языке, к сожалению, часто содержат запутанные последовательности операторов, называемые иногда на жаргоне программистов блюдо спагетти. Лингвистическая концепция Паскаля отрицает методы программирования, которые могут привести к подобным эффектам. В mei, напротив, пропагандируется системный подход, выражающийся, в частности, в расчленении крупных проблем на меньшие по сложности и размеру задачи, легче поддающиеся решению.

Читать еще:  Целевое программирование это

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

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

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

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

Язык программирования ТП 7.0, как и любой другой, имеет свой алфавит. Как правило, алфавитом языка программирования называют набор символов, разрешенный к использованию и воспринимаемый компилятором, с помощью которого могут быть образованы величины, выражения и операторы данного языка. Алфавит языка ТП 7.0 включает в себя все символы, представленные в кодировочной таблице, которая в настоящий момент загружена в оперативную память или хранится в ПЗУ Вашего компьютера. Каждому символу алфавита соответствует индивидуальный числовой код от 0 до 255.

Примечание: Символы с кодами от 0 до 127 представляют собой так называемую основную таблицу кодов ASCII. Их состав и порядок определены американским стандартом на коды обмена информацией. Часть кодировочной таблицы с кодами от 0 до 127, т.е. «Основная таблица кодов ASCII, идентична на всех IBM-совместимых компьютерах.

Алфавит языка ТП 7.0 составляют:

1. Символы, используемые для составления идентификаторов:

латинские строчные и прописные буквы,

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

символ подчеркивания (ASCII, код 95).

Символ пробела (ASCII, код 32). Как уже отмечалось, символ пробела является разделителем в языке ТП 7.0. Основное назначение этого символа — разделение ключевых слов и имен.

Управляющие символы (имеют ASCII-коды от 0 до 31). Эти символы могут применяться при описании строчных и символьных констант. Управляющие символы с ASCII-кодом 9 (табуляция), а также 10 и 13 (замыкающее строку) используются в качестве разделителей при написании программ на ТП 7.0.

В любом месте программы, где можно расположить один символ-разделитель, их можно разместить сколько угодно, т.е. для компилятора следующие записи будут эквивалентны:
A:=B+C-D;Write(A);
А := В + С — D; Write (A);
A:=
В+С
— D ; Write (А);

3. Специальные символы — символы, выполняющие определенные функции при построении различных конструкций языка:
+ — * / < >[ ] ( ) . , ‘ : ; ^ @ # $

4. Составные символы — группа символов, которые воспринимаются компилятором как единое целое:
:= (* *) (. .) ..

5.»Неиспользуемые» символы.
Символы так называемой расширенной таблицы ASCII, т.е. символы, имеющие коды от 128 до 255 (в этой области находятся символы алфавита русского языка и символы псевдографики на IBM-совместимых компьютерах), а также некоторые символы из основной таблицы ASCII (например: (&), (!), (%), (-), («) и некоторые другие) не входят в алфавит языка, т.е. эти символы не используются в идентификаторах. Тем не менее, их можно использовать в тексте комментариев, а также в виде значений констант строк или констант символов.

6. Зарезервированные слова.
ТП 7.0, как и его предшественники, включает в себя так называемые ключевые или зарезервированные слова (BEGIN, END, PROGRAM). В качестве имен идентификаторов в программе зарезервированные слова использоваться не могут. Если Вы будете использовать зарезервированные слова не по назначению, это вызовет ошибку при попытке откомпилировать программу.

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

В Паскале лексемы условно делятся на несколько классов:

числа без знака;

Читать еще:  Целевая функция задачи линейного программирования

специальные знаки (слова-символы и специальные знаки);

символьные константы (строки),

Блок лексического анализа Паскаль-компилятора, рассматривая символы входного языка, должен определить, какому классу принадлежит лексема. Между лексемами разрешено вставлять один и более разделителей. В качестве разделителей в стандарте Паскаля используются пробелы, комментарии, символы «конец строки». В Турбо-Паскале кроме этих в качестве разделителей разрешено использование и других символов. Комментарии заключают в фигурные скобки <>. Вместо них также могут использоваться пары символов (**)

В первом примере записаны три лексемы “12”, “-“, “А”, между которыми нет разделителей. Во втором примере между первой и второй лексемами, а также между второй и третьей использован разделитель пробел.

А<присвоить>:=1;
Между лексемами “А” и “:=” в качестве разделителя использован комментарий.

А:<присвоить>=1
Последний пример ошибочен, так как разделитель в виде комментария разрывает лексему «:=”.

Идентификатор является именем, которое использует программист при обращении к какому-то значению. В качестве имен не могут быть использованы зарезервированные слова (слова-символы, например слово “PROGRAM”). В стандартном Паскале идентификаторы используются для обозначения переменных, констант, типов, процедур и функций. Имена могут быть длинными, но при трансляции рассматривается ограниченное число символов (по стандарту Паскаля — первые восемь символов, тоесть идентификаторы “dlinniy_identifikator1” и “dlinniy_identifikator2” будут восприняты компилятором как одно и тоже слово). В Турбо-Паскале идентификатор кроме символов букв и цифр может содержать символ “_” (подчеркивание). Подчеркивание полезно, когда имя состоит из нескольких осмысленных слов. В общем случае следом за зарезервированным словом PROGRAM в программе стоит пробел, разделяющий в Паскале слова, и далее — имя, данное программе. Это имя представляет собой пример идентификатора. Идентификатор -имя, свободно избираемое программистом для элементов программы (процедур, функций, констант, переменных и типов данных).

При обозначении какого-либо элемента программы с помощью идентификатора Вы должны руководствоваться следующими постулатами:

Идентификатор должен начинаться буквой или символом подчеркивания “_”.

ТП 7.0 не различает прописные и строчные буквы. Поэтому можно записать WriteLN, Writeln или даже wRITeLn, не опасаясь быть непонятым компилятором. Для него все три записи эквивалентны.

Начиная со второй позиции, в идентификаторе можно применять наряду с буквами цифры

Пробел в ТП 7.0 является разделителем и не может стоять внутри идентификатора. Для создания идентификаторов, состоящих из двух слов, можно воспользоваться большими буквами (например, ReadText) или символом подчеркивания (Read_Text), но не пробелом (bRead Text – два отдельных слова).

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

Зарезервированные слова (такие как BEGIN, END или PROGRAM) в качестве идентификаторов не используются.

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

Кроме того, при написании программы рекомендуется следовать ряду правил хорошего тона, которые упрощают редактирование программы и повышают ее наглядность:

Изобретая идентификаторы, старайтесь делать их «осмысленными», не экономьте на именах — имя ReadTest всегда лучше, чем RT. Не бойтесь потратить время на написание длинных идентификаторов. Встроенный в ИПО (Интегрированная Пользовательская Оболочка) редактор предоставляет возможность копировать и переносить фрагменты текста.

Все структуры языка имеют англоязычные идентификаторы. Для своих элементов Вы можете изобрести русскоязычные идентификаторы (записанные латинскими литерами), например PROGRAM Privetstvie. Но для удобства, создавая идентификаторы, выполняйте не транслитерацию русских слов в английские, а перевод на английский язык (приветствие — welcome).

В нашей учебной программе слово PROGRAM и последующий идентификатор представляют собой незаконченный оператор программы. Для правильного оформления его необходимо завершить символом точка с запятой (;). Таким образов завершается каждый оператор программы на языке Паскаль, за исключением последнего оператора END, после которого всегда ставится точка, тем самым информируя компилятор об окончании текста программы.

Язык программирования TurboPascal

Turbo Pascal. Основные понятия и элементы языка

Первая версия языка программирования Паскаль была разработана на кафедре информатики Стэнфордского университета швейцарским ученым Никласом Виртом в 1968 году. Предложенный им язык назван в честь французского ученого Блеза Паскаля, который изобрел первую в мире вычислительную машину. Язык Паскаль создавался как средство для обучения студентов программированию.

В 1979 году был утвержден международный стандарт языка Паскаль. Дальнейшее развитие языка Паскаль связано с американской корпорацией Borland International. На основе стандартного языка Паскаль была разработана система программирования Турбо Паскаль. С этого момента язык Турбо Паскаль становится одним из наиболее важных и широко используемых языков программирования. Сегодня Турбо Паскаль не только профессиональная система программирования, но и классический язык обучения студентов основам программирования.

Основные понятия и элементы языка

Состав языка

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

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

Алфавит языка

Алфавит языка Турбо Паскаль включает:

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

а также символы, которые записываются как единое целое:

Каждому символу алфавита соответствует индивидуальный числовой код от 0 до 255. Символы с кодами от 0 до 127 образуют основную таблицу ASCII. Их состав и порядок определены международным стандартом. Символы с кодами от 128 до 255 образуют расширенную таблицу кодов ASCII. В ней находятся символы национального языка (для России – русского языка), символы псевдографики, а также некоторые другие символы, которые не входят в алфавит языка.

Читать еще:  Применение динамического программирования

Из символов алфавита формируются лексемы языка:

  • идентификаторы;
  • зарезервированные слова;
  • знаки операций;
  • константы;
  • разделители.

Идентификаторы

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

Идентификатор – это имя объекта в программе. Например, идентификатор переменной – это имя, данное переменной автором программы. Так, в записи a+b*x буквы a,b,x – идентификаторы, выбранные для обозначения некоторых переменных в программе.

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

Идентификаторы, определяемые пользователем, должны удовлетворять следующим правилам написания:

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

Нужно обратить особое внимание на то, что идентификатор в программе имеет тот и только тот смысл, который дан ему автором программы. Для улучшения читаемости программы следует объектам давать осмысленные имена. Неудачные имена часто являются источником проблем.

Примеры идентификаторов:

x, i, z, znak, x1, y1, flag, dy, _dat и т.д.

Примеры неправильных идентификаторов:

Идентификатор переменной паскаль

В Турбо Паскале используются типы констант: числовые (целые или вещественные), логические (или булевские), символьные, строковые.

  • Целые константы — целые числа (без точки). Знак «+» можно опускать. Турбо-Паскаль позволяет использовать также шестнадцатеричные целые значения. При использовании шестнадцатеричной константы перед ней указывается знак «$». Например, $27 определяет десятичное число 39.
  • Вещественные константы могут быть представлены в двух видах: с фиксированной и плавающей точкой. Константы с фиксированной точкой — числа, содержащие точку, разделяющую целую и дробную части. Константы с плавающей точкой — числа, представленные с десятичным порядком: mEp, где m — мантисса, E — признак записи с десятичным порядком и p — порядок числа.
  • Логические константы — True (истинно) и False (ложно).
  • Символьные константы — один символ, заключенный в апострофы.
  • Строковые константы — ряд символов, заключенные в апострофы. Строковые константы могут быть записаны как последовательность кодов символов: #96#100 эквивалентна строковой константе ‘bd’.

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

Примеры использования константных выражений при описании констант.
Const Min = 0;
Max = 100;
Center = (Max — Min) div 2;
Message = ‘Не хватает памяти’;
ErrorText = ‘Error: ‘ + Message + ‘.’;
ErrorPos = 80 — Length(ErrorText) div 2;
NumChars = Ord(‘Z’) — Ord(‘A’) + 1;

Кроме того, в выражениях для определения констант можно использовать следующие функции:
Abs Chr Hi Length Lo Odd Ord Pred Ptr SizeOf Succ Swap Trunc

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

4.3. Типизированные константы.

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

Характеристика типизированных констант:

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

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

Формат: Const имя_константы : тип = значение;
Пример: Const
VideoSeg : word = $8800;
Max : integer = 999;
MySet : set of char = [‘a’ .. ‘z’];
Arr : array[1..3] of Color = (Red,Yellow,Green);

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

4.4. Переменные.

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

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

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

Итак, переменные в Pascal-программе являются информационными объектами, предназначенными для хранения значений.

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

Формат: var имя_переменной : тип;
Пример: var Sum1, Sum2 : real; I, J : integer;

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

Ссылка на основную публикацию
ВсеИнструменты 220 Вольт
Adblock
detector
×
×