Если в программе используется переменная она должна быть описана в разделе var

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

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

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

Язык Си/С++. Урок 1. Часть 7 — Переменные и константы

Result, Intermediate, SubTotal: Real;

I, J, X, Y: Integer;

Accepted, Valid: Boolean;

Buffer: array[0..127] of Byte;

Раздел описания процедур и функций

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

Целесообразно оформить эти операторы в виде подпрограммы — процедуры или подпрограммы — функции. Процедуры и функции позволяют записать повторяющиеся участки один раз, а в нужных местах программы приводить лишь обращение к ним. Использование процедур позволяет сократить объем, улучшить структуру программы и уменьшить ве­роятность наличия ошибок. Основные стандартные процедуры и функции приведены в приложении 1.

Подпрограмма — функция

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

Function имя (а1;. ;аn): тип результата;

где а1;. ;an — список формальных параметров с указанием типа.

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

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

Переменные. Ввод и вывод в Паскале.

Пример А. Оформить в виде подпрограммы — функции алгоритм возведения в целочисленную степень у=х n .

Function rez1 (n:integer; x:real): real;

Пример Б. Оформить в виде подпрограммы — функции алгоритм возведения вещественного числа в вещественную степень y=a x .

Function rez2(x:real; a:real): real;

В примере Б подстепенное выражение не может принимать отрицательное значение или быть равным нулю. Впримере А может быть и отрицательным.

Переменные n, x, i примера A определены только в теле подпрограммы -функции. Вне тела функции они не определены, т.е. не существуют. Аналогичными пе­ременными являются параметры а, х впримере Б.

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

что соответствует решению задачи у=а*х n . Здесь переменная n обяза­тельно должна быть описана как переменная вещественного типа.

В примере Б переменные х и а являются формальными параметрами — переменные, формально присутствующие в подпрограмме и опреде­ляющие тип и место подстановки фактических значений, передаваемых из вызывающей программы. Конкретные (фактические) значения передают фактические параметры при обращении в вызывающей программе. Так, при рассмотренном выше обращении к функции rez2 фактическими параметрами являются переменные n и x.

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

Подпрограмма — процедура

В отличие от подпрограммы – функции подпрограмма – процедура в качестве результата может возвращать несколько значений. Структура процедуры имеет вид:

где a1;…an – список формальных параметров с указанием типа. Причем при указании типа параметра обязательно выделяют параметры, которые в ходе выполнения программы не меняют своего значения и которые могут его изменить. Если параметр меняет свое значение (обычно это результат), то перед ним ставится служебное слово Var.

Пример. Составить подпрограмму умножения двух квадратных матриц С=А*В m-го порядка.

Type Matr = array [1..10, 1..10] of real;

Читайте также:
Установить программу на мой компьютер английского языка

Procedure MultMat (n: integer; Mat1, Mat2:Matr; Var Mat3:Matr);

var i.k,j: integer;

for j:=1 to n do begin

Здесь массивы Mat1 и Mat2 в ходе выполнения процедуры не меняют своих значений, поэтому для них указывается только тип. Массив Mat3 формируется в процедуре, соответственно при описании его типа перед именем ставится ключевое слово Var. Переменные i, j, k задействованы только внутри процедуры, поэтому они описаны как локальные переменные.

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

MultMat (m. A, B, С);

Результат перемножения двух матриц располагается в массиве С.

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

Раздел операторов

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

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

В этом смысле Паскаль является языком последовательного программирования: операторы выполняются последовательно друг за другом и никогда не возникает ситуации, когда два каких-либо оператора выполняются одновременно. Раздел операторов начинается зарезервированным словом begin — начало и завершается словом end — конец. Между ними находятся операторы, разделенные друг от друга точкой с запятой. Операторы могут быть простыми или структурными.

Оператор присвоения

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

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

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

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

Здесь a – простая или индексная переменная; b – арифметическое или логическое выражение. Выполнение оператора состоит в вычислении выражения, находящегося справа от знака “:=”, и присвоения полученного значения левой части оператора с учетом типа находящейся там переменной. Примеры:

angle:= angle * p1;

SpherVol:= 4 * p1 * R * R;

Ввод – вывод данных

Ввод данных осуществляется бесформатными операторами ввода:

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

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

Read (a[1, 1], a[1, 2], a[1, 3],…)

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

Пример: ввести значения элементов вектора Х и матрицы А, которые соответственно равны:

Х = (5, 1.2, 0.1, 7, 8.6) А = 3, 0, 6, 14, 5

Значения элементов могут быть определены путем их инициализации:

Const X: array [1..5] of real = (5.0, 1.2, 0.1, 7.0, 8.6);

A: array [1..4, 1..5] of integer = ((4, 5, 10, 8, 0),

Вывод данных на дисплей осуществляется операторами write и writeln, например:

write (‘x=’, x:3, ‘ y=’, y:8:3);

На экран дисплея выводятся: значения переменной целого типа X, для которой выделяется 3 позиции, переменной Y вещественного типа, занимает 8 позиций. При атом под дробную часть переменной Y отводится 3 позиции; у переменной Х выводится только целая часть. Перед числовыми значениями переменных выводятся поясняющие их информации, состоящие из имен переменных.

Таким образом, как следует из примера, формат вывода переменных целого типа имеет вид :а, переменных вещественного типа :а:р, где а — общее количество позиций, отводимых под число, из них р — по­зиций отводится под дробную часть. В общее количество позиций а включаются позиции для знака числа и десятичное точки. Разделителя­ми в формате является символ «:». Если в операторе вывода формат не указан, то вывод будет осуществляться в нормализованной форме пред­ставления вещественного числа. Выводимый текст поясняющей информа­ции заключается в апострофы.

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

Write (‘ Кафедра вычислительной техники и’);

Write (‘ инженерной кибернетики’);

Источник: megalektsii.ru

Var Описание переменных

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

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

В Турбо-Паскале приняты следующие простые типы данных (типы значений констант и переменных):

Читайте также:
Программы для панорамирования звука

1. Integer Для хранения значения в переменной типа integer, в оперативной памяти компьютера отводится 2 байта памяти. Это может быть целое число в диапазоне от -32768 до +32767.

2. Real Под значение переменной типа REAL в памяти отводится 6 байт. Переменная типа real — это вещественное число

3. Char — это символьный (литерный) тип, в памяти занимает 1 байт, диапазон значений- один символ (одна буква, цифра, знак препинания и т.п.). 4. String — строковый тип, производный от типа Char. STRING — это строка символов. В памяти строка занимает MAX+1 байт, где MAX — объявленное максимальное количество символов в строке.

Например, если некоторая переменная была описана как переменная типа STRING[80], то в нее можно записать не более 80 символов, и в памяти она займет 81 байт. Если при описании строковой переменной максимальная длина строки точно не указана (слово STRING не сопровождается целым числом), то переменной автоматически дается максимальная для типа STRING размерность — 255 символов, что потребует 256 байт памяти для хранения значения.

5. Boolean — это логический тип данных, занимает в памяти 1 байт. Переменная этого типа может хранить только одно из двух возможных значений — True (истина) или False (ложь).

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

Стек — динамическая структура данных, добавление компоненты в которую и исключение компоненты из которой производится из одного конца, называемого вершиной стека. Стек работает по принципу (Last-In, First-Out) поступивший последним, обслуживается первым. Обычно над стеками выполняется три операции:

-запись первой компоненты;

-добавление компоненты в стек;

-выборка компоненты (удаление).

Очереди — динамическая структура данных, добавление компоненты в которую производится в один конец, а выборка осуществляется с другого конца. Очередь работает по принципу: (First-In, First-Out)

поступивший первым, обслуживается первым.

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

Файловый ввод-вывод Файловая переменная в Паскале — это любая переменная файлового типа. В Паскале имеются три класса файлов: типизированный файл, текстовый файл и не типизированный файл.

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

Когда связь с внешним файлом установлена, для подготовки ее к операции ввода или вывода файловая переменная должна быть «открыта». Существующий файл можно открыть с помощью процедуры Reset, а новый файл можно создать и открыть с помощью процедуры Rewrite. Текстовые файлы, открытые с помощью процедуры Reset доступны только по чтению, а текстовые файлы, открытые с помощью процедуры Rewrite, доступны только по записи.

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

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

Обычно доступ к файлам организуется последовательно, то есть, когда элемент считывается с помощью процедуры Read или записывается с помощью процедуры Write, текущая позиция файла перемещается к следующему по порядку элементу файла. Однако к типизированным и нетипизированным файлам можно организовать прямой доступ с помощью стандартной процедуры Sееk, которая перемещает текущую позицию файла к заданному элементу.

Когда программа завершает обработку файла, он должен закрываться с помощью стандартной процедуры Close. После полного закрытия файла связанный с ним внешний файл обновляется. Затем файловая переменная может быть связана с другим внешним файлом. Нетипизированные файлы представляют собой каналы ввода-вывода уровня, используемые в основном для прямого доступа к любому файлу на диске, независимо от его типа и структуры.

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

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

Множественные типы

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

Переменная множественного типа может принимать как все значения множества, так и ни одного.

Читайте также:
Написать программу которая выводит на экран ваше имя

Базовый тип не должен иметь более 256 возможных значений, и порядковые значения верхней и нижней границы базового типа должны не превышать диапазона от 0 до 255. В силу этого базовый тип множества не может быть коротким целым (Shortint), целым (Integer), длинным целым (Longint) или словом (Word).

Источник: studfile.net

Начальные сведения о программах на языке Pascal

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

Другой вариант оформления комментария :

(* комментарий *)

Внутри самого комментария символы > или *) встречаться не должны.

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

Директивы компилятора

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

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

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

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

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

Приведем список наиболее часто встречающихся зарезервированных слов :

and goto set array implementation shl begin in shr case interface string const label then div mod text do nil to downto not type else of unit end or until file pointer uses far procedure var for program while forward record with function repeat xor

Переменные и типы данных

Переменная — это программный объект , значение которого может изменяться в процессе работы программы .

Тип данных — это характеристика диапазона значений, которые могут принимать переменные , относящиеся к этому типу данных.

Все используемые в программе переменные должны быть описаны в специальном разделе var по следующему шаблону:

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

Константы

Константа — это объект , значение которого известно еще до начала работы программы .

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

В языке Pascal существует три вида констант:

  • неименованные константы (цифры и числа, символы и строки, множества);
  • именованные нетипизированные константы ;
  • именованные типизированные константы .

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

Неименованные константы не имеют имен, и потому их не нужно описывать.

Тип неименованной константы определяется автоматически, по умолчанию:

  • любая последовательность цифр (возможно, предваряемая знаком «-» или «+» или разбиваемая одной точкой) воспринимается компилятором как неименованная константа — число (целое или вещественное);
  • любая последовательность символов, заключенная в апострофы , воспринимается как неименованная константа — строка (см. лекцию 5);
  • любая последовательность целых чисел 3 Существует, однако, ограничение на объем множеств, поэтому последовательности чисел не должны быть слишком длинными либо символов через запятую, обрамленная квадратными скобками, воспринимается как неименованная константа — множество (см. лекцию 5).

Кроме того, существуют две специальные константы true и false, относящиеся к логическому типу данных.

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

int1 := -10; real2 := 12.075 + х; char3 := ‘z’; string4 := ‘abc’ + string44; set5 := [1,3,5] * set55; boolean6 := true;

Нетипизированные константы

Именованные константы , как следует из их названия, должны иметь имя. Стало быть, эти имена необходимо сообщить компилятору , то есть описать в специальном разделе const.

Если не указывать тип константы, то по ее внешнему виду компилятор сам определит, к какому ( базовому) типу ее отнести. Любую уже описанную константу можно использовать при объявлении других констант, переменных и типов данных . Вот несколько примеров описания нетипизированных именованных констант :

const n = -10; m = 1000000000; mmm = n*100; x = 2.5; c = ‘z’; s = ‘string’; b = true;

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

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

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

const : = ;

Из приведенных ниже примеров видно, как это сделать:

const n: integer = -10; x: real = 2.5; c: char = ‘z’; b: boolean = true;

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

Источник: intuit.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru