Begin
Begin
Ответ
End.
End
End
End
End
Begin
Begin
End.
Writeln
Writeln
Begin
clrscr;
input(a,2,3,'a.pas');
input(b,3,3,'b.pas');
for i:=1 to 2 do begin
for j:=1 to 3 do write(' ',a[i,j]);
end;
writeln;
for i:=1 to 3 do begin
for j:=1 to 3 do write(' ',b[i,j]);
end;
Рассмотрим пример, когда исходные одномерные массивы различной длины определяются как типизированные константы, а затем их надо обработать одной функцией или процедурой.
Задание:
В массивах A(8) и B(5) найти произведение элементов. элементы массива, где это произведение окажется меньше – увеличить в два раза.
uses crt;
const a:array[1..8] of real=(-2.3,4.2,-1.5,5.7,0.8,6.1,3.5,9.7);
b:array[1..5] of real=(10.3,7.2,0.04,-3.6,-4.1);
var i:byte;
function mult(c:array of real):real;
var i:byte; p:real;
p:=1;
for i:=low(c) to high(c) do p:=p*c[i];
mult:=p
end;
clrscr;
if mult(a)<mult(b) then begin writeln('massiv A');
for i:=1 to 8 do begin
a[i]:=a[i]*2;
write(' ',a[i]:5:1)
else begin writeln('massiv B');
for i:=1 to 5 do begin
b[i]:=b[i]*2;
write(' ',b[i]:5:1)
|
Здесь стандартные функции LOW(C) и HIGH(C) возвращают нижнее и верхнее значение индекса входного массива соответственно.
|
|
uses crt;
const n=3;
type matr=array[1..n,1..n] of real;
const a:matr=((0.5,2.25,1.5),(0.8,1.5,-1),(3.3,4.1,0.5));
b:matr=((3.5,2.15,-1.5),(0.5,4.5,3),(0.3,-7.1,3.5));
c:matr=((-2.5,8.25,0.4),(-3.8,-2.5,1),(4.3,-1.1,-3.5));
d:matr=((3.3,4.1,0.5),(0.8,1.5,-1),(0.5,2.25,1.5));
var a_b,c_d,p:matr; i,j,k:byte; s:real; sled:real;
procedure sum(x,y:matr; var z:matr);
var i,j:byte;
for i:=1 to n do
for j:=1 to n do z[i,j]:=x[i,j]+y[i,j]
end;
procedure print(x:matr;t:string);
var i,j:byte;
writeln;
writeln(t);
for i:=1 to n do begin
for j:=1 to n do write(' ',x[i,j]:4:1);