Ответы на контрольные вопросы

1) Массив – упорядоченный набор нумерованных величин одинакового типа.

Элемент массива – величина, входящая в состав массива.

 

Индекс – порядковый номер элемента в одномерном массиве (целое число типа integer).

Размерность массива – количество элементов в массиве.

 

Массивы бывают одномерные (вектор-строка, вектор-столбец), двумерные (матрица) и многомерные (тензор).

 

2) Одномерные массивы обычно обозначаются так: ; , где A – массив; n – размерность Описание одномерного массива в разделе описания переменных (Var) на языке Pascal имеет вид: Mas : array [ IMin .. IMax ] of T ,

где array – массив, of – из, Mas – имя массива, IMin – минимальное значение индекса, IMax – максимальное значение индекса, T – тип элементов.

Это означает, что переменная Mas является массивом, который может иметь индексы от IMin до IMax у элементов типа T .

Например . Var A:array[1..100] of real;

Это означает, что переменная A – массив, который может содержать от 1 до 100 элементов вещественного типа.

 

Доступ к элементу массива на языке Pascal имеет вид: Mas [ Ind ],

где Mas – имя массива, Ind – индекс.

Это означает доступ к элементу массива Mas с индексом Ind .

Например . a[4]; b[8]; c[i]; d[j]; f[n-1].

Это означает 4-й, 8-й, i -тый элемент массива A и т.д.

 

3) При вычислении части элементов кроме цикла от 1 до последнего элемента массива так же присутствует оператор условного перехода if,преходящий к вычислениям суммы только если элемент больше или меньше какой-либо величины.

4) В обоих случаях используется цикл с параметром и оператор условного перехода, но при вычислении суммы мы прибавляем к переменной значение элемента массива ( s := s + A [ i ]), , а при вычислении количества - увеличиваем значение переменной на 1 ( k := k +1)

При вычислении суммы: s:=0; for i:=1 to n do s:=s+A[i]; При вычислении произведения: p :=1; for i :=1 to n do p:=p*A[i];

5) При вычислении произведения начальное значение переменной равно 1. При вычислении суммы равно 0.

6) При вычислении среднего значения, кроме вычисления суммы, нужно еще поделить эту сумму на количество элементов массива.

При вычислении суммы: s :=0;

for i:=1 to n do

s:=s+A[i];

При вычислении среднего значения: s :=0;

for i:=1 to n do

s:=s+A[i];

sr := s / n ;

7) Пусть первый элемент массива равен максимальный или минимальному. При вычислении максимального элемента оператор условного перехода переходит к вычислениям в случае, если следующий элемент массива больше первого максимального элемента. При вычислении минимального – в случае, если следующий элемент массива меньше первого минимального.

Максимальное значение max: max := A [1];

for i:=2 to n do

if A[i]>max then

max := A [ i ];

Минимальное значение min: min := A [1];

for i:=2 to n do

if A[i]<min then

min:=A[i];

8) Ввод элементов массива: writeln ('Введи массив A ');

for i:=1 to n do

read(A[i]);

Вывод элементов массива: writeln ('Массив A ');

for i:=1 to n do

writeln(A[i]:10:3);

9) Увеличение элементов массива на величину z : for i :=1 to n do

A[i]:=A[i]+z;

Замена элементов массива на величину z: for i:=1 to n do

A[i]:=z;

10) Увеличение элементов массива на величину z: for i :=1 to n do

A [ i ]:= A [ i ]+ z ;

Вычисление нового массива B прибавлением к элементам массива A величины z :

for i:=1 to n do

B[i]:=A[i]+z;

 

 

11) Максимальное значение max: max := A [1];

for i:=2 to n do

if A[i]>max then

max:=A[i];

Вычисление индекса максимального элемента imax : max := A [1]; imax :=1;

for i:=2 to n do

if A[i]>max then

begin

max:=A[i]; imax:=i;

end ;

12) Сначала присваивается значение первого элемента массива переменной, затем первому элементу присваивается значение второго, а после второму элементу массива присваивается значение переменной, то есть значение первого элемента массива.

 

13)

Program Lab4;   Программа по имени Program Lab 4;
Var   Раздел описания переменных
A:array[1..100] of real; переменная A – массив, который может содержать от 1 до 100 элементов вещественного типа.
i,n:integer; Переменные i , n целочисленного типа
s:real;   Переменная s вещественного типа
Begin   Начало раздела операторов( или начало составного оператора)
writeln('Введи n'); Ввод пояснительного текста ('Введи n ')
read(n); Ввод переменной n
s:=0; Переменной s присваивается значение равное 0
writeln('Введи массив A');   Ввод массива А
for i:=1 to n do  
begin   Начало раздела операторов( или начало составного оператора)
read(A[i]); Ввод (A[i])
s:=s+A[i];   Переменной s присваивается значение s + A [ i ]
end;   Конец раздела операторов
writeln('s=',s:10:3);   Вывод пояснительного текста ' s =' и числового значения переменной s , занимающей 10 позиций, в т.ч. 3 цифры после запятой
End.   Конец программы

 

Порядок выполнения. Зайти в Borland Pascal.

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

Исправить программу так, чтобы она находила сумму и количество положительных элементов.

Исправить программу так, чтобы она находила произведение и среднее значение всех элементов.

Исправить программу так, чтобы она находила максимальное и минимальное значение в массиве.

 

а)   Program Lab4a; Var A:array[1..100] of real; i,n:integer; s,k:real; Begin writeln('Введи n'); read(n); s:=0; k:=0; writeln('Введи массив A'); for i:=1 to n do begin read(A[i]); if A[i]>0 then s:=s+A[i]; if A[i]>0 then k:=k+1; end; writeln('s=',s:10:3,' k=',k:10:3); End.   b)   Program Lab4b; Var A:array[1..100] of real; i,n:integer; p,s,sr:real; Begin writeln('Введи n'); read(n); p:=1; s:=0; writeln('Введи массив A'); for i:=1 to n do begin read(A[i]); p:=p*A[i]; s:=s+A[i]; sr:=s/n end; writeln('sr=',sr:10:3,' p=',p:10:3); End.   c)   Program Lab4c; Var A:array[1..100] of real; i,n:integer; max,min:real; Begin writeln('Введи n'); read(n); writeln('Введи массив A'); for i:=1 to n do begin read(A[i]); end; max:=A[1]; min:=A[1]; for i:=2 to n do begin if A[i]>max then max:=A[i]; if A[i]<min then min:=A[i]; end; writeln('max= ',max:10:3,' min=',min:10:3); end.

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


program dz4dop1; Var L: array [1..100]of real; i,n:integer; s,k: real; begin writeln('Введите количество элементов массива n'); read(n); for i:=1 to n do begin write('введи L[',i,']='); readln(l[i]); end; s:=0; for i:=1 to n do if l[i]>0 then s:=s+l[i]; k:=0; for i:=1 to n do if (l[i]>sqrt(s)) then k:=k+1; writeln ('k=',k); writeln ('массив А'); for i:=1 to n do write (l[i],' '); end.    
Program dz4dop2; var G:array[1..100] of real; i,q:integer; p,s:real; begin writeln('введите q='); read(q); s:=0; p:=1; writeln('введите массив G='); for i:=1 to q do begin read(G[i]); if G[i]>0 then p:=p*G[i]; end; for i:=1 to q do begin if (G[i]>=10) and (G[i]<=20) then s:=s+G[i]; end; writeln('s=',s:10:3); writeln('p=',p:10:3); end.

 

 

Program dz4dop3;

var

A:array[1..100] of real;

i,n:integer;

c,s,sr,k:real;

begin

writeln('введите n=');

read(n);

for i:=1 to n do

begin

write('введи A[',i,']='); readln (a[i]);

end;

c:=0;

s:=0;

k:=0;

begin

s:=s+A[i];

sr:=s/n;

end;

for i:=1 to n do

begin

if A[i]=sr then

c:=c+A[i];

end;

for i:=1 to n do

begin

if A[i]=sr then

k:=k+1;

end;

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

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

end.

       
Program dz4dop4; var C:array[1..100] of real; i,m:integer; min,max,otn:real; begin writeln('введите m='); read(m); for i:=1 to m do begin write('введи C[',i,']='); readln (c[i]); end; min:=1E10; max:=C[1]; for i:=1 to m do begin if (C[i]<min) and (C[i]> -100) then min:=C[i]; end; for i:=2 to m do begin If C[i]>max then max:=C[i]; end; otn:=max/min; writeln('otn=',otn:1:2); end.
 

Program dz4dop6;

var

a:array[1..100] of real;

b:array[1..100] of real;

i,n:integer;

c: real;

begin

writeln('введите n=');

read(n);

for i:=1 to n do

begin

write('введи A[',i,']='); readln (a[i]);

end;

for i:=1 to n do

b[i]:=A[i]*100;

c:=b[3]; b[3]:=b[n-1]; b[n-1]:=c;

writeln('Массив B');

for i:=1 to n do

writeln(B[i]:10:3);

end.