1.
Const
N = 30;
Var
A:array[1..N] of integer;
i,Max,kMax:integer;
Begin
Randomize;
Write('Исходный массив:');
For i:= 1 to N do
Begin
A[i]:=random(N);
Write(' ',A[i]);
End;
WriteLn;
{Нахождение максимума}
Max:=A[1];
For i:= 2 to N do
if A[i]>Max then Max:=A[i];
WriteLn('Max = ',Max);
{Подсчёт максимумов}
kMax:=0;
For i:= 1 to N do
if A[i] = Max then kMax:=kMax+1;
WriteLn('kMax = ',kMax);
End.
Пример:
Исходный массив: 11 13 9 8 19 9 22 29 0 23 6 26 14 21 24 24 26 26 23 13 12 20 1 21 0 27 25 28 13 0
Max = 29
kMax = 1
2.
Const
N = 30;
Var
A:Array[1..N] of integer;
i,SMax,iSMax:integer;
Begin
Randomize;
Write('Исходный массив:');
For i:= 1 to N do
Begin
A[i]:=random(N);
Write(' ',A[i])
End;
WriteLn;
iSMax:=1;
SMax:=A[1]+A[2]+A[3];
For i:= 3 to N-2 do
if A[i]+A[i+1]+A[i+2]>SMax then
Begin
iSMax:=i;
SMax:=A[i]+A[i+1]+A[i+2];
End;
WriteLn('Номера элементов, сумма которых максимальна: ',iSMax,', ',iSMax+1,', ',iSMax+2);
WriteLn('Максимальная сумма = A[',iSMax,'] + A[',iSMax+1,'] + A[',iSMax+2,'] = ',SMax)
End.
Пример:
Исходный массив: 15 13 25 8 4 4 8 20 26 25 25 7 27 16 28 18 26 24 17 20 7 15 10 12 18 13 22 19 4 25
Номера элементов, сумма которых максимальна: 9, 10, 11
Максимальная сумма = A[9] + A[10] + A[11] = 76
Var a, b:real;
begin
readln(a, b);
writeln('Площадь равна ', a*b);
writeln('Периметр равен ', 2*(a + b));
end.
<em>// PascalABC.NET 3.2, сборка 1417 от 28.03.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
unit ASM;
interface
type SF=(integer,integer);
function AddSF(a,b:SF):SF;
function SubSF(a,b:SF):SF;
function MultSF(a,b:SF):SF;
function DivSF(a,b:SF):SF;
implementation
function Gcd(p:SF):integer;
begin
(var a,var b):=p;
a:=abs(a); b:=abs(b);
while b>0 do (a,b):=(b,a mod b);
Result:=a
end;
function ReductSF(p:SF):SF;
begin
var t:=Gcd(p);
if t>1 then Result:=(p[0] div t,p[1] div t)
else Result:=p
end;
function AddSF(a,b:SF):=ReductSF((a[0]*b[1]+a[1]*b[0],a[1]*b[1]));
function SubSF(a,b:SF):=ReductSF((a[0]*b[1]-a[1]*b[0],a[1]*b[1]));
function MultSF(a,b:SF):=ReductSF((a[0]*b[0],a[1]*b[1]));
function DivSF(a,b:SF):=ReductSF((a[0]*b[1],a[1]*b[0]));
end.
<u>***** Пример работы с модулем *****</u>
uses ASM;
begin
var a:=(5,24);
var b:=(7,8);
var c:=AddSF(a,b);
Writeln(a[0],'/',a[1],'+',b[0],'/',b[1],'=',c[0],'/',c[1])
end.
<u>Результат</u>
5/24+7/8=13/12
<span>Ну такое выдал онлайн калькулятор:
111001.01111101011</span>