Здавалка
Главная | Обратная связь

Задания к лабораторной работе



 

Задание 1. Составьте программы для решения следующих задач обработки двумерных массивов.

Вариант 0n, 3n. Найдите <условие А> элементов каждого столбца матрицы Х(4,5). Результат запишите в массив В.

Вариант 1n. Найдите <условие А> элементов каждой строки матрицы В(6,4). Результат запишите в массив Х.

Вариант 2n. Найдите максимальный по модулю элемент матрицы М(5,6), номер его строки и столбца. Определите <условие А> элементов найденной строки (нечетные варианты) или найденного столбца (четные варианты) исходной матрицы.

Условие А приведено в таблицы 4.

 

Таблица 4

N Условие А
максимальные отрицательные значения
минимальные положительные значения
суммы положительных кратных 5
количества отрицательн не кратных 3
минимальные четные значения
сумму элементов, принадлежащих интервалу [1;20]
максимальные кратные 4 значения
средние геометрические из интервала [10;50]
средние арифметические нечетных
средние геометрические, большие 15

Задание 2. Составьте программы для решения следующих задач обработки строк, столбцов и диагоналей матрицы.

Вариант 0n. Найдите разность <условие А> чисел главной диагонали и <условие Б> чисел К-й строки матрицы Х(6,6).

Вариант 1n. Найдите сумму <условие Б> чисел главной диагонали и <условие А> чисел побочной диагонали матрицы Z(5,5).

Вариант 2n. Найдите частное от деления <условие Б> чисел побочной диагонали на <условие А> чисел К-го столбца матрицы Y(6,6).

Условия А, Б и значения К приведены в табл.5.

 

Таблица 5

n <Условие A> <Условие Б> k
произведение четных количества положительных
произведение нечетных количества отрицательных
суммы положительных минимального кратного 3
суммы отрицательных максимального не кратного 3
количества отрицательных суммы четных
количества положительных произведение некратных 4
минимального положительного среднего арифметического нечетных
максимального отрицательного среднего геометрического положительных
произведение нечетных суммы отрицательных
суммы положительных минимального четного

 

 

Лабораторная работа 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 Все права принадлежат авторам размещенных материалов.