Объявление двумерных массивов. 


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



ЗНАЕТЕ ЛИ ВЫ?

Объявление двумерных массивов.



 

Двумерный массив также как и одномерный – это набор данных одного типа, названных одним именем и расположенных в памяти компьютера подряд.

У элементов двумерного массива два индекса – номер строки и номер столбца, в которых расположен элемент.

В математике такая конструкция называется матрицей.

Сокращения: НЗИ – начальное значение индекса, КЗИ – конечное значение индекса массива.

Объявляются двумерные массивы так:

список имен массивов: array[НЗИ1..КЗИ1, НЗИ2..КЗИ2] of тип;

Примеры: объявим вещественные массивы A и B, содержащие не более 20 строк и 10 столбцов, а также целый массив ALFA, содержащий не более 30 строк и 15 столбцов.

A,B:array[1..20,1..10] of Extended;

ALFA:array[1..30,1..15] of integer;

Обращение к элементу двумерного массива:

имя[ЗИ1,ЗИ2],

где ЗИ1 – значение первого индекса, ЗИ2 – значение второго индекса.

Так, обращение к элементу, находящемуся в 5-ой строке и в 7-ом столбце матрицы B: B[5,7]. В общем случае значения индексов - арифметические выражения целого типа.

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

Раздел меток. Оператор 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.

Процедуры. Формальные параметры. Структура функций. Роль описателя var. Обращение к процедуре.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

 



Поделиться:


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

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