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



ЗНАЕТЕ ЛИ ВЫ?

Фрагменты вычисления характеристик строк и столбцов двумерного массива

Поиск
Характеристика Для каждой строки Для каждого столбца
1. Сумма s for i:=1 to m do begin s[i]:=0; for j:=1 to n do s[i]:=s[i]+A[i,j]; end; for j:=1 to n do begin s[j]:=0; for i:=1 to m do s[j]:=s[j]+A[i,j]; end;
2. Произведение p for i:=1 to m do begin p[i]:=1; for j:=1 to n do p[i]:=p[i]*A[i,j]; end; for j:=1 to n do begin p[j]:=1; for i:=1 to m do p[j]:=p[j]*A[i,j]; end;
3. Максимальное значение max for i:=1 to m do begin max[i]:=A[i,1]; for j:=1 to n do if A[i,j]>max[i] then max[i]:=A[i,j]; end; for j:=1 to n do begin max[j]:=A[1,j]; for i:=1 to m do if A[i,j]>max[j] then max[j]:=A[i,j]; end;
4. Минимальное значение min for i:=1 to m do begin min[i]:=A[i,1]; for j:=1 to n do if A[i,j]<min[i] then min[i]:=A[i,j]; end; for j:=1 to n do begin min[j]:=A[1,j]; for i:=1 to m do if A[i,j]<min[j] then min[j]:=A[i,j]; end;

Фрагменты операций с двумерными массивами

1. Ввод элементов массива writeln('Введи массив A'); for i:=1 to m do for j:=1 to n do read(A[i,j]);
2. Вывод элементов массива writeln('Массив A'); for i:=1 to m do begin for j:=1 to n do write(A[i,j]:10:3); writeln; end;
3. Замена элементов массива на величину z for i:=1 to m do for j:=1 to n do A[i,j]:=z;
4. Увеличение элементов массива на величину z (аналогично уменьшение, умножение, деление) for i:=1 to m do for j:=1 to n do A[i,j]:=A[i,j]+z;
5. Вычисление элементов массива B прибавлением к элементам массива A величины z (аналогично отниманием, умножением, делением) for i:=1 to m do for j:=1 to n do B[i,j]:=A[i,j]+z;

Квадратные матрицы

Матрица называется квадратной, если у неё количество строк равно количеству столбцов ().

Рассмотрим квадратную матрицу: . У ней

Контрольные вопросы

1. Объясните понятие двумерного массива, его элемента, индекса? Как обозначаются двумерные массивы?

2. Как описываются двумерные массивы и обозначаются их элементы? Приведите примеры.

3. Какие особенности у элементов на главной и побочной диагонали в квадратных матрицах?

4. Чем отличается вычисление характеристик двумерного массива от таких же характеристик одномерного массива?

5. Чем отличаются операции с двумерными массивами от таких же операций с одномерными массивами?

6. Чем отличается вычисление характеристик массива по строкам от аналогичного вычисления по столбцам?

7. Напишите, что означает каждая строка в вышеприведённой программе.

8. Напишите программу к одной из задач дополнительного задания.

Лабораторная работа № 6. Программирование процедур и функций


Подпрограммы

Подпрограмма – именованный блок операторов, отдельно выделенный в составе программы и не зависящий от других её частей. Подпрограммы бывают 2-х видов:

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

2. Подпрограмма-процедура – это подпрограмма для выполнения действий, которая не возвращает никаких значений.

Как правило, описание подпрограммы включает заголовок, разделы описаний и раздел операторов, начинающийся словом begin, а заканчивающийся словом end и точкой с запятой (;).

Формальные параметры – переменные, которые объявляются в заголовке подпрограммы.

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

Параметры-значения – параметры, значения которых передаются в подпрограмму в момент её вызова.

Параметры-переменные – параметры со словом var, значения которых могут использоваться после выполнения подпрограммы.

Локальные переменные – переменные, используемые только внутри подпрограммы.

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

Заголовок описания функции имеет вид:

function Func (FormPar1: T1, …): T;

Это означает, что задаётся подпрограмма-функция с именем Func, зависящая от формальных параметров FormPar1 типа T1 и т.д., а также вычисляющая значение типа T.

Вызов функции из основной программы или другой подпрограммы имеет вид:

Func (FaktPar1, …)

Это означает, что вычисляется значение функции Func, зависящей от фактических параметров FaktPar1 и т.д., причём вызов функции может осуществляться в составе выражения.

Заголовок описания процедуры имеет вид:

procedure Proc (FormPar1: T1, …);

Это означает, что задаётся подпрограмма-процедура с именем Proc, зависящая от формальных параметров FormPar1 типа T1 и т.д., а также выполняющая какие-либо действия.

Вызов процедуры из основной программы или другой подпрограммы имеет вид:

Proc (FaktPar1, …);

Это означает, что выполняются действия в теле процедуры Proc, зависящей от фактических параметров FaktPar1 и т.д., причём вызов процедуры не может осуществляться в составе выражения.

Порядок выполнения

1. Зайти в Borland Pascal.

2. Набрать текст программы для решения задачи № 1 и получить ответ для контрольного примера.

3. Получить ответ для своих исходных данных.

4. Набрать текст программы для решения задачи № 2 и получить ответ для контрольного примера.

5. Получить ответ для своих исходных данных.

Дополнительное задание

1. Вычислить с использованием подпрограммы-функции вычисления тангенса.

2. Вычислить с использованием подпрограммы-функции вычисления котангенса.

3. Вычислить с использованием подпрограммы-функции вычисления десятичного логарифма.

4. Вычислить с использованием подпрограммы-функции вычисления логарифма по произвольному основанию.

5. Вычислить с использованием подпрограммы-функции вычисления корня произвольной степени.

6. В двумерном массиве A из m строк и n столбцов вычислить сумму и среднее значение всех элементов с использованием подпрограммы-процедуры.

7. В двумерном массиве A из m строк и n столбцов вычислить максимальный и минимальный элементы с использованием подпрограммы-процедуры.

8. В двумерном массиве A из m строк и n столбцов вычислить сумму и количество элементов выше главной диагонали с использованием подпрограммы-процедуры.

9. В двумерном массиве A из m строк и n столбцов вычислить произведение и среднее значение элементов на главной диагонали с использованием подпрограммы-процедуры.

10. В двумерном массиве A из m строк и n столбцов вычислить максимальный и минимальный среди элементов ниже главной диагонали с использованием подпрограммы-процедуры.


Примеры задач

Задача 1. Вычислить , а также найти с использованием подпрограммы-функции возведения в степень. Program Lab6a; Var A:array[0..100] of real; B,C,x:real; i,n:integer; Function Step(a,b:real):real; begin Step:=exp(b*ln(a)); end; Begin writeln('Введи n,x'); read(n,x); writeln('Введи массив A'); for i:=0 to n do read(A[i]); B:=Step(2.1,5)+Step(7,0.3); C:=0; for i:=0 to n do C:=C+A[i]*Step(x,i); writeln('B=',B:10:3,' C=',C:10:3); End.
Контрольный пример.
Исходные данные: ; ; .
Результаты: ; .
Задача 2. В двумерном массиве A из 3 строк и 4 столбцов вычислить сумму и произведение отрицательных элементов с использованием подпрограммы-процедуры. Program Lab6b; Const m=3; n=4; Type TT=array [1..m,1..n] of real; Var A:TT; i,j:integer; s,p:real; Procedure SumPro(B:TT; m,n:integer; var s,p:real); var i,j:integer; begin s:=0; p:=1; for i:=1 to m do for j:=1 to n do if B[i,j]<0 then begin s:=s+B[i,j]; p:=p*B[i,j]; end; end; Begin writeln('Введи массив A'); for i:=1 to m do for j:=1 to n do read(A[i,j]); SumPro(A,3,4,s,p); writeln(s,p); End.
Контрольный пример.
Исходные данные: .
Результаты: ; .

Контрольные вопросы

1. Что такое подпрограмма? Перечислите виды подпрограмм.

2. Какие элементы входят в описание подпрограммы?

3. Что такое формальные и фактические параметры? Чем они отличаются?

4. Что такое параметры-значения и параметры-переменные? Чем они отличаются?

5. Что такое локальные и глобальные параметры? Чем они отличаются?

6. Какой вид имеет заголовок описания функции? Что это означает?

7. Какой вид имеет вызов функции? Что это означает?

8. Какой вид имеет заголовок описания процедуры? Что это означает?

9. Какой вид имеет вызов процедуры? Что это означает?

10. Напишите, что означает каждая строка в вышеприведённых программах.

11. Напишите программу к одной из задач дополнительного задания.




Поделиться:


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

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