- •Лабораторная работа № 1. Программирование последовательных вычислений
- •Лабораторная работа № 2. Программирование разветвлений
- •Лабораторная работа № 3. Программирование циклов
- •Лабораторная работа № 4. Программирование задач с одномерными массивами
- •Лабораторная работа № 5. Программирование задач с двумерными массивами
- •Лабораторная работа № 6. Программирование процедур и функций
- •Лабораторная работа № 7. Программирование структурных типов данных
Лабораторная работа № 5. Программирование задач с двумерными массивами
Объясните понятие двумерного массива, его элемента, индекса? Как обозначаются двумерные массивы?
Двумерный массив (матрица) – одномерный массив, элементы которого также являются одномерными массивами.
Как описываются двумерные массивы и обозначаются их элементы? Приведите примеры.
Описание двумерного массива в разделе описания переменных (var) на языке Pascal имеет вид:
Mas : array [ IMin .. IMax , JMin .. JMax ] of T
Какие особенности у элементов на главной и побочной диагонали в квадратных матрицах?
I=j – главная, i+j - побочная
Чем отличается вычисление характеристик двумерного массива от таких же характеристик одномерного массива?
Наличием двойного цикла
Чем отличаются операции с двумерными массивами от таких же операций с одномерными массивами?
Наличием двойного цикла
Чем отличается вычисление характеристик массива по строкам от аналогичного вычисления по столбцам?
Параметрами массива
Напишите, что означает каждая строка в вышеприведённой программе.
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. |
Напишите программу к одной из задач дополнительного задания.
Дан массив 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. Программирование процедур и функций
Что такое подпрограмма? Перечислите виды подпрограмм.
Подпрограмма – именованный блок операторов, отдельно выделенный в составе программы и не зависящий от других её частей. Подпрограммы бывают 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 и т.д., причём вызов процедуры не может осуществляться в составе выражения.
Напишите, что означает каждая строка в вышеприведённых программах.
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. |
Напишите программу к одной из задач дополнительного задания.
Вычислить с использованием подпрограммы-функции вычисления тангенса.
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.