Задания к лабораторной работе
Задание 1. Составьте программы для решения следующих задач обработки двумерных массивов. Вариант 0n, 3n. Найдите <условие А> элементов каждого столбца матрицы Х(4,5). Результат запишите в массив В. Вариант 1n. Найдите <условие А> элементов каждой строки матрицы В(6,4). Результат запишите в массив Х. Вариант 2n. Найдите максимальный по модулю элемент матрицы М(5,6), номер его строки и столбца. Определите <условие А> элементов найденной строки (нечетные варианты) или найденного столбца (четные варианты) исходной матрицы. Условие А приведено в таблицы 4.
Таблица 4
Задание 2. Составьте программы для решения следующих задач обработки строк, столбцов и диагоналей матрицы. Вариант 0n. Найдите разность <условие А> чисел главной диагонали и <условие Б> чисел К-й строки матрицы Х(6,6). Вариант 1n. Найдите сумму <условие Б> чисел главной диагонали и <условие А> чисел побочной диагонали матрицы Z(5,5). Вариант 2n. Найдите частное от деления <условие Б> чисел побочной диагонали на <условие А> чисел К-го столбца матрицы Y(6,6). Условия А, Б и значения К приведены в табл.5.
Таблица 5
Лабораторная работа 5
ПРОЦЕДУРЫ И ФУНКЦИИ
Цель работы: выработать практические навыки в написании и отладке программ с использованием процедур и функций.
Процедуры
В языке Паскаль предусмотренная возможность объединения любой последовательности операторов в самостоятельную программу, которая называется процедурой. В простейшем случае процедура может являться лишь поименованной группой операторов, например:
procedure aa; begin d:=x; x:=y; y:=d end; В такой процедуре без параметров и без объявления переменных все имена предполагаются известными программе, объявленными ранее. Эти переменные называются глобальными. Переменная может быть локализована, т.е. объявлена в процедуре. Процедура с параметрами перечисляет переменные - параметры, которые будут использоваться при выполнении процедуры. Такие параметры указываются в круглых скобках после имени процедуры, например: procedure tr(a,b,c:real; var y:real); Указанные в скобках параметры называются формальными. Если перед именем формального параметра стоит слово var, то такой параметр есть параметр-переменная, в противном случае - значение. Для обращения к процедуре достаточно указать ее имя и список фактических параметров в круглых скобках, например: tr(p1, p2, p3, rez); При обращении требуется, чтобы фактические параметры p1,p2, p3,rez имели тот же тип, что и формальные параметры a,b,c,y.В нашем случае тип real. Фактический параметр, соответствующий параметру-переменной, может быть только переменной. Фактический параметр, соответствующий параметру-значению может быть любым выражением соответствующего типа, в частности константой. Например, обратиться к tr можно так:
tr (2.5,sqr(x)+4,a+b*x,r); Результатом выполнения процедуры может быть значение, помещенное в переменную некоторого типа. Если такая переменная введена в список формальных параметров, то она должна быть обязательно параметром - переменной. Процедура имеет ту же структуру, что и главная программа, т.е. состоит из заголовка и блока. Блок содержит разделы label, const, type, var и выполняемую часть (от begin до end;). Процедура помещается в главной программе после раздела var и перед begin программы. В любой процедуре может содержаться обращение к ранее описанной процедуре.
Функции
Функции отличаются от процедур тем, что в них результат вычислений присваивается непосредственно имени функции. Описание функции должно начинаться со служебного слова function и заканчиваться указанием типа функции: function f(x:matr; var y:real):real; Среди операндов функции обязательно должно быть присваивание имени функции некоторого значения: f:=<значение>; Формальные параметры функций вводятся по тем же правилам, что и формальные параметры процедур.
Пример выполнения задания лабораторной работы Пример 29. Вычислить значения выражения
.
Элементы массивов a(10) и b(5) определяются по формулам:
ai=3,1i2+4,9i-5, bi=10ln(i+5)+cos2(pi).
Вычисление произведения модулей элементов оформим в виде процедуры, а вычисление суммы квадратов элементов - в виде функции. Программа имеет вид:
program pr29; uses crt; const m=10; n=5; type raz=1..m; mac=array[raz] of real; var a,b:mac; pa,pb,sa,sb,z:real;i:integer; w:char; procedure pro(x:mac;k:integer; var p:real); var i:integer; begin p:=1; for i:=1 to k do p:=p*abs(x[i]) end; function sum(x:mac;k:integer):real; var i:integer; s:real; begin s:=0; for i:=1 to k do s:=s+sqr(x[i]); sum:=s END; BEGIN CLRSCR; WRITELN(' ':10,'МАССИВ А '); for i:=1 to m do begin a[i]:=3.1*sqr(i)+4.9*i-5; Write(a[i]:8:2,' ':4); IF I MOD 5 = 0 THEN WRITELN; END; WRITELN; WRITELN(' ':10,'МАССИВ B '); for i:=1 to n do begin b[i]:=10*ln(i+5)*sqr(cos(pi*i)); write(b[i]:8:2,' ':4); end; writeln; pro(a,m,pa); pro(b,n,pb); sa:=sum(a,n); sb:=sum(b,n); z:=(pa+pb)/(sa+sb); writeln; WRITELN(' PA = ',PA:8:2,' PB = ',PB:8:2); WRITELN(' SA = ',SA:8:2,' SB = ',SB:8:2); WRITELN(' Z = ',Z:8:2); w:=readkey end. ©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|