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

Лабораторная работа № 5. Программирование задач с двумерными массивами

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

Двумерный массив (матрица) – одномерный массив, элементы которого также являются одномерными массивами.

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

Описание двумерного массива в разделе описания переменных (var) на языке Pascal имеет вид:

Mas : array [ IMin .. IMax , JMin .. JMax ] of T

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

I=j – главная, i+j - побочная

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

Наличием двойного цикла

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

Наличием двойного цикла

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

Параметрами массива

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

Program lab5;

Var

A: array [1..10,1..15] of real;описание массива

i, j, m, n: integer; s, p, min, max: real;

Begin

writeln('Введи m,n'); read(m,n);ввод размерности массива

writeln('Введи массив A');

for i:=1 to m do

for j:=1 to n do

read(A[i,j]); ввод элементов двумерного массива

s:=0; p:=1; min:=A[1,1]; max:=A[1,1];задание начальных значений

for i:=1 to m do for j:=1 to n do

begin

s:=s+A[i,j]; p:=p*A[i,j];поиск суммы и произведения элементов

if A[i,j]<min then min:=A[i,j];поиск минимального элемента

if A[i,j]>max then max:=A[i,j]; поиск максимального элемента

end;

writeln('s=',s:10:3,' p=',p:10:3,

' min=',min:10:3,' max=',max:10:3);вывод результата

End.

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

Дан массив B (m, n). Найти сумму положительных элементов и количество элементов в диапазоне от 10 до 20.

Program lab5;

Var

A: array [1..10,1..15] of real;

i, j, m, n,k: integer; s: real;

Begin

writeln('Введи m,n'); read(m,n);

writeln('Введи массив A');

for i:=1 to m do

for j:=1 to n do

read(A[i,j]);

s:=0; k:=1

for i:=1 to m do

for j:=1 to n do

begin

if A[i,j]>0 then s:=s+A[i,j

if (A[i,j]>10) and (A[i,j]<20) then k:=k+1;

end;

writeln('s=',s:10:3,' k=',k:10:3);

End.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Func ( FaktPar1 , … )

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

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

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

procedure Proc ( FormPar1 : T1 , … ) ;

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

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

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

Proc ( FaktPar1 , … );

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

  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); вычисление В при помощи функции Step

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.

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. Напишите программу к одной из задач дополнительного задания.

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

Program Lab6a;

Var

X,y,z:real;

Function tg(a:real):real;

begin

tg:=sin(a)/cos(a);

end;

Begin

writeln('Введи X,Y'); read(x,y);

z:=tg(x)+tg(y);

writeln('z=',z:10:3);

End.