- •2.Константы: целые, вещественные, строковые, логические, символьные :
- •3.Простые переменные и их типы: вещественный, целый, логический, символьный. Раздел переменных.
- •4. Арифметические выражения. Математические функции. Арифметические операции. Возведение в степень, извлечение корня, вычисление тригонометрических функций.
- •5. Порядок действий в арифметических выражениях.
- •6. Оператор присваивания и его динамический смысл.Комментарии.
- •7. Логические выражения. Логические операции. Таблица истинности логических операций. Порядок действий в логических выражениях.
- •3.1. Логические выражения.
- •9. Ввод и вывод с использованием формы. Таблица функций преобразования чисел.
- •8. Условный оператор в сокращенной и полной форме. Составной оператор.
- •3.3. Составной оператор.
- •10.Понятие файла. Текстовый файл. Файловая переменная. Открытие и закрытие файлов. Чтение из вводного файла и запись в выводной файл. Использование окончания In.
- •11. Оператор цикла for в двух формах.
- •12. Оператор цикла while.
- •4.3. Программа с использованием оператора while.
- •13. Оператор цикла repeat … until.
- •14. Раздел констант, типов.
- •15.Одномерные и двумерные массивы. Их описание.
- •16. Раздел меток. Оператор goto.
- •17. Процедуры. Формальные параметры. Структура функций. Роль описателя var. Обращение к процедуре.
- •6.5. Программа с использованием процедуры.
- •18. Функции. Формальные параметры. Структура функций. Роль описателя var. Обращение к функции. Присваивание имени функции значения в теле функции.
- •19. Структура полной подпрограммы, создаваемой в процедуре режима OnClick.
- •20.Модули. Структура модуля.
16. Раздел меток. Оператор goto.
Раздел меток. Пример программы с использованием метки.
Метка – это целая константа без знака или идентификатор, стоящий перед исполняемым оператором и отделенный от последнего двоеточием (:). Она должна находиться в теле программы. Раздел меток следует сразу перед разделом констант и начинается со слова 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.
17. Процедуры. Формальные параметры. Структура функций. Роль описателя var. Обращение к процедуре.
Раздел процедур и функций.
Сокращения: СФП – список формальных параметров; ТРРФ - тип результата расчета функции.
Процедура начинается с заголовка процедуры:
procedure имя(СФП типа1: тип1; СФП типа2:тип2;...; СФП типа n: тип n);
Функция начинается с заголовка функции:
function имя(СФП типа1: тип1; ...; СФП типа n: тип n) :ТРРФ;
Формальные параметры называются так потому, что они служат для записи алгоритма, не занимая места в памяти компьютера. А фактические параметры занимают место в памяти ПК, используются для расчета и записываются при обращении к процедуре или функции.
Формальные параметры могут вызываться по имени или по значению. При вызове по имени перед формальным параметром ставится слово var. Будем считать, что для массивов это слово необходимо всегда.
Типы в наборе формальных параметров отделяются точкой с запятой, а внутри списка данного типа используется запятая.
Объявления в процедурах и функциях такие же, как и в основной программе.
Тела процедур и функций заключаются в операторные скобки begin ... end.
Если имеем дело с функцией, то ее имени внутри функции обязательно присваивается значение.
Устанавливается соответствие между порядком и количеством формальных и фактических параметров, причем параметры формальные и фактические стоящие на одинаковом удалении от начала должны быть одного типа.
Формальный и соответствующий ему фактический параметр должны ссылаться на один и тот же тип в разделе типов.
Формальные параметры должны всегда ссылаться на тип, либо стандартный Extended, integer, boolean и т. п., либо сконструированный нами в разделе типов основной программы. Отсюда и следует, что без раздела типов в серьезной программе, как правило, не обойтись.
Формальным параметром служит либо простая, либо агрегатная переменная. Если формальный параметр - простая переменная со словом var, то фактическим параметром может быть только переменная того же типа, если формальный параметр - простая переменная без слова var, то фактическим параметром может любое выражение того же типа. Если формальный параметр - агрегатная переменная, то будем его писать со словом var всегда и соответствующий ему фактический параметр - агрегатная переменная, ссылающаяся на тот же тип, что и соответствующий формальный параметр.
Обращение к процедуре находится в основной программе:
имя (список фактических параметров);
Результаты работы процедуры могут находиться среди этих параметров.
Если результатом работы процедуры является переменная, то в списке формальных параметров перед ней необходимо поставить слово var.
Обращение к функции содержится внутри некоторого выражения и имеет вид:
переменная: =…имя функции (список фактических параметров)….
Многоточие предполагает любую последовательность элементов, образующих выражение. Выражение может быть арифметическим, логическим или пр.
