Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ShPORKI_33_33_33_2jhtg.doc
Скачиваний:
6
Добавлен:
25.09.2019
Размер:
143.36 Кб
Скачать

Оператор case of и его использование.

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

В языке Delphi есть инструкция case, которая позволяет эффективно реализовать множественный выбор. В общем виде она записывается следующим образом:

case Селектор of список! : begin

{ инструкции 1 }

end;

СПТ/1СОК2: begin

{ инструкции 2 }

end; списокЫ: begin

{ инструкции N } end; else

begin

{ инструкции } end;

end;

Многомерные массивы и способы их описания в Object Pascal.

В общем виде инструкция объявления двумерного массива выглядит так:

Имя:array[Н^жняяТраница1..ВерхняяГраница 1,

Н1'1ЖняяГран1'1ца2. . ВерхняяГран1'ща2\ of Тип

Имя — имя массива;

array — слово языка Delphi, указывающее, что объявляемый элемент данных является массивом;

НижняяГраница 1, ВерхняяГраница 1, Н^икняяГр а ниц а 2, ВерхняяГраница 2 — целые константы, определяющие диапазон изменения индексов и, следовательно, число элементов массива;

тип — тип элементов массива.

Ввод и вывод двумерных массивов (матриц) в Object Pascal.

Матрица - прямоугольная сетка чисел. Элементы матрицы - числа.

Каждый элемент матрицы имеет два индекса - номер строки и номер столбца, в котором он расположен.

Принято сначала указывать индекс строки, а затем индекс столбца.

Создадим тип матрицы:

const

NN = 10; { число СТРОК! }

MM = 10; { число СТОЛБЦОВ! }

type

TElem = integer;

Matrix = array[1..NN, 1..MM] of TElem;

Очень часто при решении задач, необходимо проходить по всем элементам строки\столбца\строк и столбуов.

Для этого используют цикл со счетчиком. (FOR ... TO ... DO )

Ввод матрицы:

Опишем процедуры ввода и вывода на экран матрицы.

const

NN = 10; { число СТРОК! }

MM = 10; { число СТОЛБЦОВ! }

type

TElem = integer;

Matrix = array[1..NN, 1..MM] of TElem;

(* Построчный ввод матрицы *)

Procedure ReadMatr(var A:Matrix; var n,m:word );

var i, j: word;

begin

repeat

write('Введите количество строк: '); readln(N)

until (N>0) and (N<=NN);

repeat

write('Введите количество столбцов: '); readln(m)

until (M>0) and (M<=MM);

For i:=1 to n do begin

For j:=1 to m do begin

write('A[',i,j,']= '); readln(A[i,j])

end end end;

(* Построчный вывод матрицы *)

Procedure PrintMatr(A:Matrix; n,m:word);

Var i, j: word;

begin

For i:=1 to n do begin

For j:=1 to m do write(A[i,j],' ');

writeln

end end;

{ тестовая программа}

var

n, m: word;

a: matrix;

begin

Readmatr(a,n,m);

PrintMatr(a,n,m)

end.

Процедуры. Формальные, фактические параметры, параметры-значения, параметры-переменные.

Процедура — это разновидность подпрограммы. Обычно подпрограмма реализуется как процедура в двух случаях:

когда подпрограмма не возвращает в основную программу никаких данных. Например, вычерчивает график в диалоговом окне;

когда подпрограмма возвращает в вызвавшую ее программу больше чем одно значение. Например, подпрограмма, которая решает квадратное уравнение, должна вернуть в вызвавшую ее программу два дробных числа — корни уравнения.

Объявление процедуры

В общем виде объявление процедуры выглядит так:

procedure Имя (var параметр! :тип1; ... var параметрК: типК) ; var

// здесь о&ьявление локальных переменных begin

// здесь инструкции процедуры

end;

Различают два вида подпрограмм: процедуры и функции. Как процедура. так и функция, представляют собой последовательность инструкций, предназначенных для выполнения некоторой работы. Чтобы выполнить инструкции подпрограммы, надо вызвать эту подпрограмму. Отличие функции от процедуры заключается в том, что с именем функции связано значение, поэтому имя функции можно использовать в выражениях.

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

Пусть процедура SQ осуществляет решение квадратного уравнения ax2+bx+c=0. Тогда она должна иметь пять формальных параметров: для значений коэффициентов а,в,с и х1 и х2. Для того, чтобы запустить процедуру, необходимо к ней обратиться (ее вызвать). Вызов процедуры N производится оператором вида

N(P1,P2,P3,...);

Здесь N - имя процедуры, P1,P2,P3 - фактические параметры

Если в качестве формального параметра указана переменная, то такой параметр и есть параметр-значение

Если перед именем формального параметра стоит ключевое слово var, то такой параметр и есть параметр-переменная. Пример: X1 и X2 в процедуре SQ

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