При открытии файла желательно использовать функцию
Таблица 4.1
№ варианта | Функция | № варианта | Функция |
Пример разработки приложений в среде Delphi:
Задание:
Составить программу для вычисления
.
1. Создание консольного приложения в среде Delphi
Создать консольное приложение можно различными способами. Наиболее простой из них следующий.
После запуска среды Delphi в главном меню выберите команды File|New. В результате откроется окно так называемого репозитория (архива) Delphi, предназначенного для накопления типовых форм и проектов.
Далее щелчком мыши выберите пиктограмму с подписью «Console Application» и нажмите кнопку ОК. После этого раскроется окно файла проекта (он имеет расширение .dpr) или, другое название, главного модуля проекта.
Наберите в окне файла проекта текст программы для вычисления значения z:
program Project2;
{$APPTYPE CONSOLE}
uses SysUtils;
var х,у,z:real;
begin
writeln('Enter х,у');
readln(x,у);
z := (sqr(х)+sin(2*х-1)+0.5)/sqrt(x*x+y*y+1e4);
writeln('z=',z:7:4);
readln
end.
Перед тем как запустить программу на выполнение, необходимо сохранить ее при помощи команды File|Save All . Каждый проект рекомендуется хранить в отдельной папке. По умолчанию файл проекта имеет имя Project2.dpr, а программа - Project2. Если сохранить файл проекта под другим именем, например MyProgram.dpr. Delphi автоматически изменит имя программы на MyProgram. Строки программного кода, которые формируются средой Delphi, редактировать нельзя, иначе появятся сообщения об ошибках.
После этого запустите проект на выполнение с помощью команд Run|Run, или нажатием функциональной клавиши <F9>, или выбором кнопки Run на инструментальной панели быстрых кнопок.
После успешной компиляции и запуска программы на выполнение на экране появится стандартное окно программы с символьной строкой 'Enter х,у'. Необходимо ввести значения x и y и нажать Enter. В результате появится значение переменной z. Для того чтобы завершить работу программы и вернуться в среду Delphi, необходимо повторно нажать клавишу Enter (т.к. процедура readln без параметров приостанавливает выполнение программы).
Если после запуска программы компилятор выдал сообщение об ошибке, то ее следует исправить. Затем вновь запустить программу на выполнение. Этот процесс повторяется до тех пор, пока все синтаксические ошибки не будут исправлены после чего программа запустится на выполнение.
Второй способ создания консольного приложения.
После запуска Delphi или выполнения команды File|New Application необходимо закрыть окно формы (окно с заголовком Forml) и окно модуля приложения (окно с заголовком Unitl.pas).
При закрытии окна модуля Delphi выводит запрос:
Save changes to Unitl.pas? (Сохранить изменения в Unitl.pas?),
на который надо ответить «Нет», т.е. нажать кнопку No. В результате на экране останется только главное окно Delphi (заголовок: Delphi - Projectl) и окно инспектора объектов (заголовок: Object Inspector), которое тоже можно закрыть. После этого следует выполнить команду Project|View Source. В результате откроется окно Projectl.dpr файла проекта.
Далее файл проекта следует сохранить. Если имя файла будет изменено, то это отразится также в заголовке программы. Затем необходимо убрать все строки, кроме строк, содержащих ключевые слова program, uses, begin и end. После этого можно набрать текст программы, приведенной выше.
В содержимом папки, в которой сохраняется проект, находятся следующие файлы:
- MyProgram.cfg - файл конфигурации проекта. Он содержит установки проекта, например используемые директивы компилятора.
- MyProgram.dof - файл опций проекта. В нем хранится информация, необходимая для установки опций проекта.
- MyProgram.dpr - файл проекта (главный модуль проекта).
- MyProgram.exe - файл приложения или исполняемый файл. Он будет создан компилятором, если в процессе компиляции не будет обнаружено синтаксических ошибок. Исполняемый файл является автономным исполняемым файлом, т.е. для его работы не требуются какие-либо другие файлы. Его можно запускать на выполнение как любую другую исполняемую программу из терминала.
Файлы опций проекта и конфигурации проекта создаются Delphi автоматически, одновременно с созданием файла проекта.
Кроме перечисленных файлов, часто в папке размещается файл с расширением .~dpr, например MyProgram. ~dpr . Эго резервная копия файла проекта, которая создается при редактировании существующего файла проекта и содержит предыдущий вариант текста программы. Резервная копия используется, когда необходимо отказаться от внесенных в программу исправлений. При этом достаточно будет убрать символ «~» из имени файла.
2. Создание оконного приложения в среде Delphi
1. Необходимо создать новую папку, в которой будут размещены все файлы, входящие в проект (для каждого нового проекта создается отдельная папка). Создать новую папку можно также и в момент сохранения файлов, входящих в проект, используя кнопку Создание новой папки,имеющуюся в диалоговом окне сохранения файлов.
2. Создайте новый проект с помощью команд главного меню File|New Application или, если только что загружена среда Delphi, можно сразу приступать к созданию нового проекта.
3. Из страницы Standard Палитры Компонентов поместите на форму Forml следующие компоненты (рис.1.2):
Рис.1.2
4. Установите свойства формы, используя Инспектор Объектов:
Caption (Заголовок) = 'Расчет функции'
Height = 200
Width = 415
Left = 200
Тор = 170
Свойства Height и Width можно задать, изменяя размеры формы с помощью мыши. При этом автоматически будут изменяться указанные свойства, находящиеся в Инспекторе Объектов. Свойства Left и Тор можно задать, переместив форму с помощью мыши за ее заголовок приблизительно на середину экрана.
5. Установите свойства компонентов Labell, Label2 и Label3:
Labell: TLabel Name = Inf_Label Caption='Расчет значений функции Y(X)=(sqr(х)+sin(2*х-1)+ 0.5)/sqrt(x*x+y*y+1e4)’ Height = 25 Width = 360 Left = 25 Top = 5 AutoSize = False WordWrap = True Alignment = taCenter Font = Times New Roman Font Style = Bold Size = 12 | Label2: TLabel Name = X_Label Caption = ‘X=‘ Height = 25 Width = 95 Left = 25 Top = 55 Font = Times New Roman Font Style = Normal Size = 12 | Label3: TLabel Name = Y_Label Caption = ‘Y=‘ Height =25 Width = 95 Left = 25 Top = 95 Font = Times New Roman Font Style = Normal Size = 12 |
Размеры меток и их местоположение также регулируется вручную.
Для выравнивания компонентов используется панель инструментов Align (Выровнять), которая вызывается на экран дисплея с помощью команды View|Alignment Palette главного меню Delphi.
Выравнивать можно не только один компонент, но несколько компонентов одновременно. Для того чтобы выделить группу компонентов, необходимо при выделении удерживать нажатой клавишу Shift. Выравнивание компонентов автоматически изменяет значения свойств Left и Тор в Инспекторе Объектов.
6. Установите свойства Editl и Edit2:
Editl: TEdit Name = X_Edit Text = ‘ ‘ Height = 25 Width = 80 Left = 125 Top = 55 | Edit2: TEdit Name = Y_Edit Text = ‘ ‘ Height = 25 Width = 80 Left = 125 Top = 95 |
7. Установите свойства компонента Memol:
Memol: TMemo
Name = Z_Memo
Height = 65
Width = 175
Left = 225
Top = 55
Lines = ‘ ‘
Для установления свойства Lines щелкните по кнопке с тремя точками. В появившемся окне String list editor удалите строку 'Memol'. Нажмите ОК.
8. Установите свойства кнопок Buttonl, Button2 и Button3:
Buttonl: TButton Name = Calculate_Button Caption='Расчет' Height = 25 Width = 105 Left = 25 Top = 135 | Button2: TButton Name =Clear_Button Caption=’Очистка’ Height = 25 Width = 105 Left = 105 Top = 135 | Button3: TButton Name = Exit_Button Caption='Выход' Height = 25 Width = 105 Left = 280 Top = 135 |
9. Двойным щелчком активизируйте кнопку Расчет. В результате окно редактора кода станет активным и будет содержать заготовку обработчика события OnClick. Добавьте в заготовку код для вычисления функции Z.
procedure TForm1.Calculate_ButtonClick(Sender: TObject);
var x,y,z:real;
begin
x:=StrToFloat(X_Edit.Text);
y:=StrToFloat(Y_Edit.Text);
z:=(sqr(x)+sin(2*x-1)+0.5)/sqrt(x*x+y*y+1e4);
Z_Memo.Lines.Add('Результат:');
Z_Memo.Lines.Add('z='+FloatToStrF(z,ffGeneral,7,2));
end;
10. Нажмите клавишу <F12> и вернитесь в форму. Двойным щелчком активизируйте кнопку Очистка и в обработчик события OnClick вставьте строки:
X_Edit .Clear;
Y_Edit.Clear;
Z_Memo.Clear;
11. Нажмите клавишу <F12> и вернитесь в форму. Двойным щелчком активизируйте кнопку Выход и в обработчик события OnClick вставьте строку
Close;
12. Сохраните программу перед запуском. Для сохранения проекта необходимо выполнить команду главного меню File|Save All. Имена файла проекта и модуля должны быть различными.
В главном меню Delphi имеются также другие команды для сохранения:
Save - сохранить текущий модуль;
Save As - сохранить текущий модуль под новым именем;
Save Project As - сохранить текущий проект под новым именем.
После сохранения проекта запустите его на выполнение, используя функциональную клавишу <F9>.
Для расчета значения функции z введите x и y и нажмите кнопку Расчет. Для очистки нажмите кнопку Очистка. Для выхода из приложения нажмите кнопку Выход.
В папке, в которой сохранен файл проекта и модуль, находится группа файлов, часть из которых уже известна при создании консольных приложений, а новыми будут:
Unitl.pas - файл модуля, используемый для хранения программного кода;
Unit1.dfm - файл, содержащий описание формы;
Unit1.dcu - откомпилированный файл модуля;
р21.res - файл, содержащий используемую проектом пиктограмму и прочие ресурсы.
Полный текст сформированного модуля Unitl.pas имеет вид:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Inf_Label: TLabel;
Label2: TLabel;
X_Edit: TEdit;
Z_Memo: TMemo;
Calculate_Button: TButton;
Clear_Button: TButton;
Exit_Button: TButton;
Label3: TLabel;
Y_Edit: TEdit;
procedure Calculate_ButtonClick(Sender: TObject);
procedure Clear_ButtonClick(Sender: TObject);
procedure Exit_ButtonClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Calculate_ButtonClick(Sender: TObject);
var x,y,z:double;
begin
x:=StrToFloat(X_Edit.Text);
y:=StrToFloat(Y_Edit.Text);
z:=(sqr(x)+sin(2*x-1)+0.5)/sqrt(x*x+y*y+1e4);
Z_Memo.Lines.Add('Результат:');
Z_Memo.Lines.Add('z='+FloatToStrF(z,ffGeneral,7,2));
end;
procedure TForm1.Clear_ButtonClick(Sender: TObject);
begin
X_Edit .Clear;
Y_Edit.Clear;
Z_Memo.Clear;
end;
procedure TForm1.Exit_ButtonClick(Sender: TObject);
begin
Close;
end;
end.
Контрольные вопросы:
1. Кратко опишите внешний вид среды Delphi.
2. Какие виды помощи представляет Delphi, как ее получить?
3. Как создать консольное приложение в среде Delphi?
4. Как создать оконное приложение в среде Delphi?
5. Приведите порядок размещения любого компонента на форме.
6. Как изменить геометрические размеры размещенного компонента?
7. Как получить реакцию на событие для определенного компонента формы?
8. Каким образом оформляется программа, в каком порядке записываются разделы описаний и определений?
9. Назовите типы данных. Как задать тип данных в программе?
10. Как осуществить форматированный вывод действительных чисел?
11. Как компилировать, связать и выполнить программу средствами RAD?
12. Подробно опишите программный код, который разработан для выполнения лабораторной работы.
Лабораторная работа №13
ПРОГРАММИРОВАНИЕ ТИПОВЫХ АЛГОРИТМОВ ВЫЧИСЛЕНИЙ
Цель:
- изучить операторы языка Object Pascal;
- получить практические навыки программирования на языке Object Pascal и создания оконного приложения в среде Delphi.
Общие сведения:
1. Составной оператор – это группа операторов, заключенная в операторные скобки begin…end. Операторы, входящие в составной, выполняются в порядке их написания. Точка с запятой предназначена для разделения операторов, т.е. не входит в состав оператора.
2. Условный оператор IF предназначен для реализации разветвляющегося вычислительного процесса. В общем виде оператор записывается следующим образом:
If <логическое выражение> then <оператор1> else <оператор2>;
Сокращенная форма записи оператора имеет вид:
If <логическое выражение> then <оператор1>;
3. Оператор выбора CASE позволяет выбрать и выполнить один оператор из нескольких. В общем случае оператор case имеет следующий вид:
case <выражение> of
<список_меток_1>: <оператор1>;
<список_меток_2>: <оператор2>;
…………………………………….
<список_меток_N>: <операторN>;
else
<оператор>
end;
4. Оператор перехода GOTO - это простой оператор, передающий управление в программе на другой оператор, перед которым стоит метка, указанная в операторе goto. В общем виде оператор записывается следующим образом:
goto <метка>;
С помощью goto нельзя передавать управление внутрь сложных операторов (if, case, операторы циклов), а также из вызывающей программы в подпрограмму. Данный оператор следует использовать в исключительных ситуациях.
5. Операторы циклов
5.1. Оператор цикла FOR организует выполнение последовательности операторов заранее известное число раз. Существуют два варианта оператора:
1) с увеличением счетчика:
for <счетчик>:= <начальное значение> to <конечное значение> do <оператор>;
2) с уменьшением счетчика:
for <счетчик>:= <начальное значение> downto <конечное значение> do <оператор>;
где <счетчик> - параметр цикла;
<начальное значение> и <конечное значение> - выражения, которые должны быть совместимыми для присваивания с параметром цикла;
<оператор> - это оператор, который выполняется в цикле и образует так называемое тело цикла.
Среди операторов, которые повторяются во время выполнения цикла, могут встречаться другие операторы цикла. Такие циклы называются вложенными.
5.2. Оператор цикла с предусловием WHILE имеет следующий формат:
while <логическое выражение> do <оператор>;
Логическое выражение вычисляется при выполнении каждой итерации, поэтому его следует делать по возможности более простым. Если в цикле нужно выполнить не один оператор, а несколько, то их следует заключить в операторные скобки begin...end.
5.3. Оператор цикла с постусловием REPEAT имеет следующий формат:
repeat <оператор1>; <оператор2>; ...; <операторN> until
<логическое выражение>;
Условие выхода из цикла проверяется в конце цикла, поэтому операторы, образующие тело цикла, выполняются по крайней мере один раз.
Задание:
1. Из таблицы 2.1 взять условие задачи (вариант согласовать с преподавателем).
Таблица 2.1
№ | Функция | № | Функция |
xÎ[0;7] и dx=1 | xÎ[0;5] и dx=0,5 | ||
xÎ[-2;4] и dx=0.5 | xÎ[1;4] и dx=0,4 | ||
xÎ[-3;5] и dx=1 | xÎ[-1;3] и dx=0,4 | ||
xÎ[-1;2] и dx=0,2 | xÎ[-3;1] и dx=0,3 | ||
xÎ[-2;4] и dx=0,5 | xÎ[-4;0] и dx=0,5 | ||
xÎ[0;7] и dx=1 | xÎ[1;4] и dx=0,5 | ||
xÎ[-4;4] и dx=1 | xÎ[-1;3] и dx=0,3 | ||
xÎ[-1;3] и dx=0,5 | xÎ[1;7] и dx=0,6 | ||
xÎ[0;5] и dx=1 | xÎ[0;3] и dx=0,3 | ||
xÎ[0;7] и dx=1 | xÎ[0;7] и dx=0,8 | ||
xÎ[-3;7] и dx=1 | xÎ[1;4] и dx=0,4 | ||
xÎ[0;5] и dx=0,5 | xÎ[1;2,5] и dx=0,2 | ||
xÎ[-1;3] и dx=0,4 | xÎ[0;3p/2] и dx=p/4 | ||
xÎ[-2;5] и dx=1 | xÎ[0;7] и dx=1 | ||
xÎ[-5;5] и dx=1 | xÎ[4;7] и dx=0,4 |
2. Составьте блок-схему и создайте оконное приложение в среде Delphi для расчета значений функции Y(X) (см. лабораторную работу №1 и приведенный ниже пример).
Пример:
Задание:
Вычислить значение функции, заданной несколькими аналитическими выражениями.
Блок-схема алгоритма (рис.2.1):
Рис.2.1
Программа на языке Object Pascal:
program pr_1;
{$APPTYPE CONSOLE}
uses SysUtils;
var xn,xk,dx,y,x:real;
v:integer;
begin
write('Введите Xn Xk dX :');
readln(xn,xk,dx);
x:=xn;
while x<=xk do
begin
v:=0;
writeln;
write(' X = ',x:5:3);
if not((x<0) and (x>0)) and not((x<1) and (x>1)) then
begin
if (x<0) then
begin
if (cos(pi/2-x)<>0) then
begin
y:=x/sin(pi/2-x)/cos(pi/2-x);
v:=1;
end;
end
else
begin
if (x<1) then
begin
y:=cos(x)/sin(sqrt(x));
v:=2;
end
else
begin
y:=1/(x*x-1);
v:=3;
end;
end;
end;
if v<>0 then write(' Y = ',y:5:4,' V = ',v)
else write(' Y не определено');
x:=x+dx;
end;
readln;
end.
Контрольные вопросы:
1. Дайте определения цикла, параметра цикла, итерации, программы разветвляющейся, циклической и сложной циклической структуры.
2. Назовите назначение и правила организации ветвлений в программе.
3. Назовите назначение и правила организации цикла.
4. По какой формуле можно подсчитать количество итераций цикла?
5. При каких условиях заканчивается цикл?
6. Чем отличаются циклы с предусловием и постусловием?
7. Назовите основные правила организации вложенных циклов.
8. Подробно опишите программный код, который разработан для выполнения лабораторной работы.
Лабораторная работа №14
ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ ПОДПРОГРАММ
Цель:
- изучить правила описания и определения процедур и функций языка Object Pascal;
- получить практические навыки программирования с использованием процедур и функций на языке Object Pascal и создания оконного приложения в среде Delphi.
Общие сведения:
Программу можно представить в виде отдельных подпрограмм, которые могут взаимодействовать между собой. Каждая подпрограмма описывается один раз, при необходимости к ней можно многократно обращаться. В Object Pascal существуют два вида подпрограмм: функция и процедура. Используемые функции и процедуры должны быть описаны в разделе описания функций и процедур.
Описания подпрограмм включают в себя заголовок подпрограммы, разделы описаний (меток, констант, типов, переменных, а также дополнительных функций и процедур, являющихся локальными по отношению к данной подпрограмме), тело процедуры. В заголовке подпрограммы за ключевым словом (function или procedure) указываются имя подпрограммы, а в скобках - список формальных параметров со своими описаниями. В отличие от процедуры в заголовке функции должен быть определен тип результата, передаваемого функцией.
Описание действий в подпрограмме осуществляется с использованием формальных параметров. Обращение к подпрограмме осуществляется с фактическими параметрами, которые должны соответствовать формальным по числу, типу и месту расположения.
Функции используются для вычисления одного значения. Общий вид записи функции:
function F (q1:T1; q2:T2;…):T;
<Разделы определений и описаний локальных параметров и подпрограмм>
begin
p1;
p2;
¼
end;
где F - имя функции; qi - имена формальных параметров; Т - тип имени функции; Ti - типы параметров; pi - операторы тела функции.
Обращение к функции записывается в правой части оператора присваивания, при этом указывается имя и в скобках — фактические параметры в виде F (b1, b2, ...), где bi - фактические параметры.
Процедуры используются при получении нескольких результатов. Общий вид записи процедуры:
procedure F (q1:T1; q2:T2;…var q3:T3);
<Разделы определений и описаний локальных параметров и подпрограмм>
begin
p1;
p2;
¼
end;
где F - имя процедуры; qi - имена формальных параметров; Ti - типы параметров; pi - операторы тела подпрограммы.
Обращение к процедуре осуществляется оператором процедуры в виде
F(b1, b2,...);
где F - имя подпрограммы; bi - имена фактических параметров.
Задание:
1. Из таблицы 3.1 взять условие задачи (вариант согласовать с преподавателем).
Таблица 3.1
№ | Функция | № | Функция |
, xÎ[0;1], dx=0,1 | , , xÎ[0;1], dx=0,1 | ||
, , xÎ[0;1] и dx=0,1 | , ; xÎ[0;1], dx=0,1 | ||
, , xÎ[20;30], dx=1 | , ; xÎ[1;2], dx=0,1 | ||
, , xÎ[0;1] и dx=0,1 | , , xÎ[0;1], dx=0,1 | ||
, Z0=10, , xÎ[10;20], dx=1 | , ; xÎ[0;1]; dx=0,1; Z0=1 | ||
, , xÎ[10;20], dx=1 | , , xÎ[0;1], dx=0,1 | ||
, , xÎ[0;1], dx=0,1 | , , xÎ[0;1], dx=0,1 | ||
, , xÎ[0;1], dx=0,1 | , ; xÎ[0;1], dx=0,1 | ||
, , , xÎ[0;1], dx=0,1 | , ; xÎ[0;1], dx=0,1 | ||
, , xÎ[0;1], dx=0,1 | , , xÎ[0;1], dx=0,1 | ||
, , xÎ[0;1], dx=0,1 | , , xÎ[0;1], dx=0,1 | ||
, , xÎ[0;10], dx=1 | , , xÎ[0;1], dx=0,1 | ||
, , xÎ[1;2], dx=0,1 | , xÎ[0;1], dx=0,1 | ||
, , , xÎ[0;1], dx=0,1 | , ; xÎ[0;1], dx=0,1 | ||
, , xÎ[0;1], dx=0,1 | , ; xÎ[0;1], dx=0,1 |
2. Составьте блок-схему и создайте оконное приложение для расчета значений Z с использованием процедур или функций (см. лабораторную работу №1 и приведенный ниже пример).
Пример:
Вычислить
Блок-схема алгоритма с использованием процедуры (рис.3.1).
Рис.3.1
Программа 1 с использованием процедуры:
program p1;
{$APPTYPE CONSOLE}
uses SysUtils;
var а,b,c,tl,t2,t3,u:real;
procedure max(x,y:real;var z:real);
begin
if х>у then z := х else z := у
end;
begin
writeln('Enter а,b,с');
readln(a,b,c);
max(a,a+b,tl);
шах(а,b+c,t2);
max(a+b*c,a*c,t3);
u := (tl+t2)/(1+t3);
writeln('u=',u:7:3);
readln
end.
Блок-схема алгоритма с использованием функции (рис.3.2).
Рис.3.2
Программа 2 с использованием функции:
program p2;
{$APPTYPE CONSOLE}
uses SysUtils;
var а,b,c,u:real;
function max(x,y:real):real;
begin
if х>у then result := х else result := у
end;
begin
writeln('Enter а,b,с');
readln(a,b,c);
u := (max(a,a+b)+mах(а,b+c))/(1+max(a+b*c,a*c));
writeln('u=',u:7:3);
readln
end.
Контрольные вопросы:
1. При каких условиях целесообразно использовать подпрограммы?
2. Опишите структуру процедур и функций.
3. Каково назначение процедур и функций и различие в их записи?
4. Перечислите правила описания и определения функций.
5. Перечислите правила описания и определения процедур.
6. Как передаются параметры в подпрограмму?
7. Как согласуются формальные и фактические параметры?
8. Подробно опишите программный код, который разработан для выполнения лабораторной работы.
Лабораторная работа №15
ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ
СТРУКТУРИРОВАННЫХ ТИПОВ ДАННЫХ
Цель:
- изучить правила описания и определения массивов на языке Object Pascal;
- получить практические навыки программирования на языке Object Pascal и создания оконного приложения в среде Delphi .
Общие сведения:
Массив – это упорядоченная совокупность элементов одного и того же типа. Элементы массива имеют уникальные индексы. Каждый элемент массива однозначно определяется именем массива и собственным индексом.
Массивы подразделяются на статические и динамические.
Статические массивы - это фиксированное количество упорядоченных однотипных компонентов (элементов) с индексами. Статический массив объявляется следующим образом:
var <имя массива> :array [<тип индекса (индексов)>] of <тип элементов>;
Индексом массива может быть любой порядковый тип, на практике обычно применяется тип Integer.
Доступ к компонентам массива осуществляется указанием имени массива, за которым в квадратных скобках помещается значение индекса (индексов) компонента.
Задание статического двумерного массива осуществляется следующим образом:
var <имя массива> : array[1..N,1..M] of <тип элементов>;
Динамические массивы - это массив, в котором при объявлении указывается только тип его элементов. Размеры динамических массивов изменяются в ходе выполнения программы.
Объявить одномерный динамический массив можно следующим образом:
var <имя массива> :array of <тип>;
Длина массива задается при помощи процедуры SetLength:
SetLength(<имя массива>,N);
Данная команда отводит в памяти массив на N элементов с индексами от 0 до (N-1).
Индексами динамических массивов всегда являются целые числа. Начальный индекс – всегда 0.
Доступ к элементам динамического массива аналогичен доступу к элементам статического массива.
Многомерный динамический массив объявляется следующим образом:
var <имя массива> :array of array of <тип>;
Длина многомерного динамического массива задается при помощи процедуры SetLength:
SetLength(<имя массива>,N,M);
Динамический массив из памяти удаляется следующим образом:
<имя массива>:= nil;
Для организации операций ввода-вывода массивов следует использовать циклы.
Задание:
1. Из таблицы 4.1 взять условие задачи (вариант согласовать с преподавателем) Массив X[i,j] заполнить случайными числами, 5£i£7; 5£j£7.
Таблица 4.1