Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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

Поиск

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

 

Идентификаторы - это имена, служащие для обозначения переменных и других объектов.

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

Примеры идентификаторов: alfa, cena_detali, i231, a.

Ключевые слова.

 

В Object Pascal имеется множество ключевых (зарезервированных) слов: absolute; and; const и т.п. Эти слова по форме являются идентификаторами, но использовать их можно только по своему назначению, что станет ясно из контекста.

2.Константы: целые, вещественные, строковые, логические, символьные:

Числовые константы.

 

Эти константы бывают двух типов: целые и вещественные.

Примеры целых констант: 2; -5; 6; +6; 20000

Вещественные константы бывают в двух формах: с фиксированной и плавающей точкой.

Примеры констант с фиксированной точкой:

2.5; +2.5; 0.0001; -1000000; -5.0

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

В случаях, когда число содержит много нулей в самом конце, то его запись в форме с фиксированной точкой становится громоздкой. Например, скорость света в вакууме запишется в этой форме 300000000 (м/с). В тоже время в математике ее можно записать так: 3*108. Звездочка означает знак умножения. В Object Pascal имеется возможность изобразить эту скорость как константу в форме с плавающей точкой. Вместо числа 10 пишется либо большая, либо малая буква e (от слова exponent – показатель (степени)). Знак умножения опускается.

Результат: 3e8, или 3.е8, или 0.3E9.

Мы видим, что в форме с плавающей точкой точка может вообще отсутствовать, а может “плавать” по числу. Число, стоящее слева от буквы е, называется мантиссой, а справа – порядком. Отметим, что мантисса и порядок в этой форме должны присутствовать обязательно,

Другие примеры чисел с плавающей точкой: 0.1e-05; 25.1E+10;+3.210е2.

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

Отметим, что две константы 5 и 5. имеют одинаковое значение, но по смыслу различны, ибо первая означает количество, а вторая – что-то другое. Одинаковые по значению целые и вещественные константы в памяти ПК записываются по-разному. Одинаковые по значению вещественные константы с фиксированной и плавающей точкой в памяти ПК записываются одинаково.

 

2.3.2. Логические константы.

 

Их две – true (истина) и false (ложь).

 

2.3.3. Символьные константы.

 

Символьная константа – это один произвольный символ. Символьная константа заключается в апострофы. Примеры: ‘f’, ’Б’, 'б’.

Две константы ’Б’ и 'б’ различны, так как имеют в памяти ПК различные коды.

 

 

2.3.4. Строковые константы.

 

Строковая константа – это два и более символов, объединенных в единое целое. Строковая константа заключается в апострофы. Примеры строковых констант:

‘Лабораторная работа’, ‘лабораторная работа’, ‘Лабораторная работа’, ‘alfa’.

Все константы разные: в первой буква “Л” – большая, во второй буква “л” – малая, в первых двух между словами – один пробел, в третьей – два пробела.

Максимальная длина строковой константы не более 255 символов.

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

Простые переменные.

 

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

 

Раздел переменных.

 

Переменные должны быть обязательно объявлены в разделе переменных var (variable – переменная).

Примеры объявлений: a,alfa,i25:integer; omega,t,g:Extended; tril:boolean;

integer – целый тип; Exended – вещественный тип наивысшей степени точности; boolean – логический тип. Последний тип назван так в честь английского математика Джорджа Буля (1815–1864гг.) – изобретателя алгебры логики.

Оператор присваивания и его динамический смысл.Комментарии.

Этот оператор присваивает переменной значение выражения, стоящего справа от знака присваивания. Знак присваивания – это пара символов “:=”, пробелы и другие символы между которыми не допускаются. Типы переменных и выражений должны совпадать. Из этого правила есть одно исключение: вещественной переменной может быть присвоено значение выражения целого типа.

Примеры:

a:=c+5; i:=j+1

Нельзя целой переменной присвоить вещественное значение. Так, если переменная i – целого типа, то оператор i:=5. ошибочен.

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

Например, оператор a:=a+1; увеличивает значение переменной a на единицу, но если рассматривать это равенство с математической точки зрения, то оно просто неверно.

 

Комментарии.

 

Набор символов, находящихся в одной строке за символами //, идущими подряд, игнорируются транслятором и служат для пояснений к программе, т.е. являются комментарием. Комментарием также служит набор символов, обрамленных символами { и }. И, наконец, комментарием является набор символов, заключенных между парами символов (* и *).

Примеры: // это комментарий

{это тоже комментарий}

(* это опять таки комментарий*)

Логические выражения. Логические операции. Таблица истинности логических операций. Порядок действий в логических выражениях.

 

Логические выражения.

 

3.1.2. Логические переменные.

Они объявляются в разделе переменных var, и для их объявления используется описатель boolean (см. выше).

Пример объявления: p, q, omega:boolean;

Логические переменные принимают одно из значений true или false.

 

3.1.3. Логические выражения.

Простые логические выражения-отношения (сравнения).

В отношениях сравниваются два арифметических выражения, и вырабатывается логическое значение true, если отношение истинно и false, если оно ложно.

 

Таблица 3.1. Знаки отношений.

Математическая запись Знак отношения в Object Pascal
< <
<=
= =
> >
>=
<>

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

В отношениях могут использоваться арифметические выражения.

Примеры:

a<b+5; c<d.

 

3.1.4. Логические операции.

 

Логические операции используют в качестве операндов логические выражения.

Мы рассматриваем следующие логические операции: not, and, or.

В приведенной ниже таблице истинности логических операций
a означает первое логическое выражение, b - второе логическое выражение.

Операция not одноместная (один операнд) остальные двухместные (два операнда).

 

Таблица 3.2. Таблица истинности логических операций.

а b not a a and b a or b
true true false true true
true false false false true
false true true false true
false false true false false

Операция not изменяет значение выражения на противоположное.

Операция and истинна только тогда, когда оба операнда истинны, иначе она ложна.

Операция or ложна только тогда, когда оба операнда ложны, иначе она истинна.

 

Для чего нужны логические операции?

Написать логическое выражение, которое истинно, если переменная x попадает в область 1<x<5. Двойные отношения в Object Pascal запрещены, поэтому

Ответ: (x>1) and (x<5).

Написать логическое выражение, которое истинно, если x>5 или x<-3.

Ответ:(x>5) or (x<-3).

Скобки нужны из-за особого порядка действий в Object Pascal (см. ниже).

 

3.1.5. Порядок действий в логических выражениях.

 

1. Вычисление функций;

2. Операция not;

3. Операции типа умножения * / div mod and;

4. Операции типа сложения + - or;

5. Операции отношения (см. табл. 2.3).

Примеры логических выражений:

a<b; (c+d>0)or(a>b).

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

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

 

Условный оператор.

Условный оператор.

 

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

if< логическое выражение> then <оператор1> else <оператор2>;

(если) (тогда) <оператор1> (иначе) <оператор2>;.

Если логическое выражение истинно, то выполняется оператор1, иначе выполняется оператор2 и затем следующий оператор программы. Перед словом else точку с запятой ставить нельзя!

Сокращенная форма этого оператора:

if логическое выражение then оператор1;

Если логическое выражение истинно, то выполняется оператор1, иначе выполняется следующий оператор программы.

Примеры:

Пусть а имеет значение 6.

Тогда после выполнения оператора if a>5 then d:=8.5 else d:=3;

переменная d примет значение 8.5,

а после выполнения оператора if a>7 then d:=7;

переменная d не изменит своего значения.

 

Составной оператор.

 

Если после then или else надо выполнить несколько операторов, то эти операторы заключают в операторные скобки begin... end и получают составной оператор.

Структура составного оператора:

 

begin

<оператор1>;

<оператор2>;

..........

<операторn>

end;

Заметим, что перед end точка с запятой “;” может не ставится.

9. Ввод и вывод с использованием формы. Таблица функций преобразования чисел.

Понятие файла. Текстовый файл. Файловая переменная. Открытие и закрытие файлов. Чтение из вводного файла и запись в выводной файл. Использование окончания In.

Оператор цикла for.

for <п.ц.>:= <н.з.> to <к.з.> do <оператор>;

(для) (до) (выполнить)

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

Другая форма оператора цикла:

for <п.ц.>:= <н.з.> downto <к.з.> do <оператор>;

(для) (до с уменьшением) (выполнить)

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

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

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

Фрагмент программы вычисления суммы первых 100 натуральных числа в прямом и обратном порядке.

s1:=0;

for i:=1 to 100 do

s1:=s1+i; s2:=0;

for i:=100 downto 1 do

s2:=s2+i;

12. Оператор цикла while.

while <логическое выражение> do <оператор>;

(пока) (выполнить)

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

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

while true do a:=a+1;

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

while false do a:=a+1;

Операторы цикла for и while - операторы с предварительной проверкой условия (циклы с предусловием).

Раздел констант, типов.

Название раздела Сonst. В качестве констант используются идентификаторы. Для этого таким идентификаторам в разделе констант присваиваются значения с помощью знака равенства (а не присваивания!). Тип константы определяется ее внешним видом, но можно определить тип константы и явно. Объявление константы одного типа от объявления константы другого отделяется точкой с запятой (;).

Пример раздела констант:

const

cr=10; stroka='пример'; a=2.5e3; ch='ф';

 

Здесь cr - целая константа, stroka - строковая константа, a - вещественная и
ch - символьная константы.

Раздел меток. Пример программы с использованием метки.

Метка – это целая константа без знака или идентификатор, стоящий перед исполняемым оператором и отделенный от последнего двоеточием (:). Она должна находиться в теле программы. Раздел меток следует сразу перед разделом констант и начинается со слова label(метка), а затем следует список меток, заканчивающийся точкой с запятой. Объявленная здесь метка должна появиться один раз перед оператором программы. Метки вообще при программировании используется редко. Но есть случаи, когда без них программа значительно усложняется. Для передачи управления помеченному оператору используется оператор безусловного перехода goto <метка>.

Пример программы, где лучше воспользоваться меткой.

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

Оператор break в данном случае напрямую применить нельзя, так как он прерывает выполнение только цикла по переменной j, но не по i (j- номер, столбца а i - номер строки), что неприемлемо для решения поставленной задачи. Конечно, усложнив алгоритм, используя оператор break дважды, можно было бы решить эту задачу и без применения метки, что едва ли имеет смысл.

Ниже приводятся форма программы и ее код.

 

Рис.7.2. Вид формы.

 

unit Unit1;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Buttons, StdCtrls;

 

type

TForm1 = class(TForm)

Label1: TLabel;

Button1: TButton;

BitBtn1: TBitBtn;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

 

 

implementation

 

{$R *.dfm}

 

procedure TForm1.Button1Click(Sender: TObject);

label 1;

const nm=10;

var

A:array[1..nm,1..nm] of Extended;

n,i,j,k,m:integer; F1,F2:TextFile;

 

begin

AssignFile(F1,'d:\delph\metka\metka.txt');reset(F1);

AssignFile(F2,'d:\delph\metka\metka.res');rewrite(F2);

read(F1,n);

for i:=1 to n do for j:=1 to n do read(F1,A[i,j]);

k:=0;

for i:=1 to n do for j:=1 to n do

if A[i,j]<0 then begin k:=i; m:=j; goto 1 end;

1:if k=0 then

writeln(F2,'Матрица не содержит отрицательных чисел')

else

writeln(F2,'Номер строки первого отрицательного эл-нта k=', k:5,

', Номер его столбца m=',m:5);

CloseFile(F1);CloseFile(F2);

Label1.Caption:='конец';exit;

End;

End.

Исходные данные размещены в файле metka.txt, результаты помещаются в файл metka.res.

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

Сокращения: СФП – список формальных параметров; ТРРФ - тип результата расчета функции.

Процедура начинается с заголовка процедуры:

procedure имя(СФП типа1: тип1; СФП типа2:тип2;...; СФП типа n: тип n);

Функция начинается с заголовка функции:

function имя(СФП типа1: тип1;...; СФП типа n: тип n):ТРРФ;

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

Формальные параметры могут вызываться по имени или по значению. При вызове по имени перед формальным параметром ставится слово var. Будем считать, что для массивов это слово необходимо всегда.

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

Объявления в процедурах и функциях такие же, как и в основной программе.

Тела процедур и функций заключаются в операторные скобки
begin... end.

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

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

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

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

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

Обращение к процедуре находится в основной программе:

имя (список фактических параметров);

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

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

Обращение к функции содержится внутри некоторого выражения и имеет вид:

переменная: =…имя функции (список фактических параметров)….

 

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

 

Модули. Структура модуля.

Понятие модуля.

Модуль - автономная программная единица, имеющая следующую структуру:

UNIT имя;{unit-модуль}

INTERFACE

интерфейсная часть

IMPLEMENTATION

исполняемая часть

[ BEGIN

инициирующая часть]

end.

Модуль содержится в файле, имя которого совпадает с именем модуля, но содержит расширение pas. Имя модуля – идентификатор, содержащий не более 63 значащих символов.

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

Исполняемая часть{IMPLEMENTATION} содержит тела процедур и функций модуля, причем заголовки совпадают с заголовками интерфейсной части и порядок следования совпадает с порядком следования заголовков в интерфейсной части.

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

Инициирующая часть может содержать открытие файлов и другие действия. Эта часть может вообще отсутствовать вместе со словом BEGIN (см. квадратные скобки). Заканчивается модуль, как и основная программа, ключевым словом End с точкой.

Каждый модуль компилируется отдельно и в результате создается файл имеющий имя модуля. Рассмотрим модуль, реализующий арифметические действия над комплексными числами.

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

 

Идентификаторы - это имена, служащие для обозначения переменных и других объектов.

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

Примеры идентификаторов: alfa, cena_detali, i231, a.

Ключевые слова.

 

В Object Pascal имеется множество ключевых (зарезервированных) слов: absolute; and; const и т.п. Эти слова по форме являются идентификаторами, но использовать их можно только по своему назначению, что станет ясно из контекста.

2.Константы: целые, вещественные, строковые, логические, символьные:

Числовые константы.

 

Эти константы бывают двух типов: целые и вещественные.

Примеры целых констант: 2; -5; 6; +6; 20000

Вещественные константы бывают в двух формах: с фиксированной и плавающей точкой.

Примеры констант с фиксированной точкой:

2.5; +2.5; 0.0001; -1000000; -5.0

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

В случаях, когда число содержит много нулей в самом конце, то его запись в форме с фиксированной точкой становится громоздкой. Например, скорость света в вакууме запишется в этой форме 300000000 (м/с). В тоже время в математике ее можно записать так: 3*108. Звездочка означает знак умножения. В Object Pascal имеется возможность изобразить эту скорость как константу в форме с плавающей точкой. Вместо числа 10 пишется либо большая, либо малая буква e (от слова exponent – показатель (степени)). Знак умножения опускается.

Результат: 3e8, или 3.е8, или 0.3E9.

Мы видим, что в форме с плавающей точкой точка может вообще отсутствовать, а может “плавать” по числу. Число, стоящее слева от буквы е, называется мантиссой, а справа – порядком. Отметим, что мантисса и порядок в этой форме должны присутствовать обязательно,

Другие примеры чисел с плавающей точкой: 0.1e-05; 25.1E+10;+3.210е2.

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

Отметим, что две константы 5 и 5. имеют одинаковое значение, но по смыслу различны, ибо первая означает количество, а вторая – что-то другое. Одинаковые по значению целые и вещественные константы в памяти ПК записываются по-разному. Одинаковые по значению вещественные константы с фиксированной и плавающей точкой в памяти ПК записываются одинаково.

 

2.3.2. Логические константы.

 

Их две – true (истина) и false (ложь).

 

2.3.3. Символьные константы.

 

Символьная константа – это один произвольный символ. Символьная константа заключается в апострофы. Примеры: ‘f’, ’Б’, 'б’.

Две константы ’Б’ и 'б’ различны, так как имеют в памяти ПК различные коды.

 

 

2.3.4. Строковые константы.

 

Строковая константа – это два и более символов, объединенных в единое целое. Строковая константа заключается в апострофы. Примеры строковых констант:

‘Лабораторная работа’, ‘лабораторная работа’, ‘Лабораторная работа’, ‘alfa’.

Все константы разные: в первой буква “Л” – большая, во второй буква “л” – малая, в первых двух между словами – один пробел, в третьей – два пробела.

Максимальная длина строковой константы не более 255 символов.

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

Простые переменные.

 

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

 

Раздел переменных.

 

Переменные должны быть обязательно объявлены в разделе переменных var (variable – переменная).

Примеры объявлений: a,alfa,i25:integer; omega,t,g:Extended; tril:boolean;

integer – целый тип; Exended – вещественный тип наивысшей степени точности; boolean – логический тип. Последний тип назван так в честь английского математика Джорджа Буля (1815–1864гг.) – изобретателя алгебры логики.



Поделиться:


Последнее изменение этой страницы: 2016-07-11; просмотров: 1966; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.149.23.123 (0.016 с.)