Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LD.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
391.17 Кб
Скачать
  1. Функции и процедуры пользователя (пример реализации в среде Delphi).

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

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

function SumFib(n:integer):integer; {Рекурсивное вычисление суммы чисел Фибоначчи }

function Fib (n: integer):integer;{Рекурсивное вычисление чисел Фибоначчи }

begin

if n<=2 then Fib:=1

else Fib:=Fib(n-2)+Fib(n-1);

end;

begin

if n=1 then SumFib:=1

else SumFib:=SumFib(n-1)+Fib(n);

end;

procedure TForm1.Button1Click(Sender: TObject);

var k:integer;

begin

k:=strtoint(edit1.Text);

label1.Caption:=inttostr(sumfib(k));

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

edit1.Clear;

end; end.

function factorial(n:integer):real;

var i:integer; p:real;

begin

p:=1;

for i:=1 to n do

p:=p*i;

factorial:=p;

end;

procedure TForm1.Button1Click(Sender: TObject);

var a,b:integer; f:real;

begin

a:=strtoint(edit1.text);

b:=strtoint(edit2.text);

if (a=0)or(b=0) then showmessage('ДЕЛЕНИЕ НА НОЛЬ') else

f:=(factorial(a)-(((a*a)/(3*b))-factorial(b)));

label1.Caption:=floattostrf(f,fffixed,7,3);

end;

end.

  1. Записи. Оператор with. Пример обработки массива записей (сортировка в среде Delphi).

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

 

 

 

Form1.label1.left:=Form1.label1.left+10; Form1.label1.caption:=label2.caption; Form1.label1.font.color:=clRed; с помощью with можно записать короче: with Form1.label1 do begin left:=Form1.label1.left+10; caption:=label2.caption; font.color:=clRed; end;

const n=10;

type Tknig=record

avt,naz:string[20];

end;

var sp:array[1..n] of Tknig;//массив записей

bf:Tknig; //буфер для сортировки записей

............................

//сортировка по фамилии

for i:=1 to n-1 do

for j:=i+1 to n do

if sp[i].avt>sp[j].avt then

begin

bf:=sp[i];

sp[i]:=sp[j];

sp[j]:=bf;

end;

  1. Множества. Операции (не менее 6 штук) работы с множеством. Определить количество гласных букв в заданном слове (пример реализации в среде Delphi)..

Множества объявляются в разделе type с помощью конструкции set of. В сле­дующем примере объявляется множество TSetofchar типа набор символов char:

type

TSetOfChar = set of char;

Тип char — это число от 0 до 255, значит, наша переменная может принимать одно из этих значений.

При работе с множествами допускается использование операций отношения (=, <>, >=, <=), объединения, пересечения, разности множеств и операции in.

Операции сравнения (=, <>). Два множества считаются равными, если они состоят из одних и тех же элементов. Порядок следования элементов в сравниваемых множествах значения не имеет. Два множества A и B считаются не равными, если они отличаются по мощности или по значению хотя бы одного элемента.

Выражение Результат  [1, 2] <> [1, 2, 3] True  [1, 2] = [1, 2, 2] True  [1, 2, 3] = [3, 2, 1] True  [1, 2, 3] = [1..3] True 

Операции принадлежности (>=, <=). Выражение A >= B равно True, если все элементы множества B содержатся в множестве A. Выражение A <= B равно True, если выполняется обратное условие, т.е. все элементы множества A содержатся в множестве B.

Выражение Результат  [1, 2] <= [1, 2, 3] True  [1, 2, 3] >= [1, 2] True  [1, 2] <= [1, 3] False 

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

Выражение Результат  5 in [1..9] True  5 in [1..4, 6..9] False 

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

if (X = 1) or (X = 2) or (X = 3) or (X = 5) or (X = 7) then

можно заменить более коротким:  if X in [1..3, 5, 7] then

Операцию in иногда пытаются записать с отрицанием: X not in S. Такая запись является ошибочной, так как две операции следуют подряд. Правильная запись имеет вид: not (X in S).

Объединение множеств (+). Объединением двух множеств является третье множество, содержащее элементы обоих множеств.

Выражение Результат  [ ] + [1, 2] [1, 2]  [1, 2] + [2, 3, 4] [1, 2, 3, 4] 

Пересечение множеств (*). Пересечение двух множеств - это третье множество, которое содержит элементы, входящие одновременно в оба множества.

Выражение Результат  [ ] * [1, 2] [ ]  [1, 2] * [2, 3, 4] [2] 

Разность множеств (-). Разностью двух множеств является третье множество, которое содержит элементы первого множества, не входящие во второе множество.

Выражение Результат  [1, 2, 3] - [2, 3] [1]  [1, 2, 3] - [ ] [1, 2, 3] 

var

i:word;

stroka:string;

kol:integer;

begin

for i:=0 to ListBox1.Items.Coount-1 do

begin

stroka:=ListBox1.Items[i];

kol:=0;

for i:=1 to length(stroka) do

if stroka[i] in sogl then inc(kol);

ListBox2.Items.Add('Количество согласных в строке= '+IntToStr(kol));

end;

end;

  1. Понятие файла. Функции (не менее 3) и процедуры (не менее 7) обработки файлов последовательного доступа. Пример обмена значений наибольшего и предпоследнего элементов числового файлами (пример реализации в среде Delphi).

Файл именованная последовательность однотипных эементов размещенных на внешнем устройстве. Типизированный- составляют элементы указанного типа, а нетипизированного тип которых не указан.

Технология работы с файлами в системе Delphi требует определённого порядка действий:

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

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

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

Function Eof(var F): Boolean;

Function FileSize(var F): Integer;

Возвращает размер в байтах файла F. Однако, если F - типизированный файл, FileSize возвратит число записей в файле.

Function FilePos(var F): LongInt;

Возвращает текущую позицию файла внутри файла.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]