Подскажите хотя бы идею решения!!!
Type
mas=Array[1..100] of Integer;
function CheckMassiv(buf:mas; var nom:Integer):boolean;
var
even:boolean;
i:Integer;
begin
Result:=True;
even:=(buf[1] mod 2)=0;//первый элемент четный или нечетный
For i:=1 to 100 do
begin
If even then
begin
If (((i mod 2)<>0) and ((buf[i] mod 2)<>0)) or (((i mod 2)=0) and ((buf[i] mod 2)=0)) then
begin
nom:=i;
Result:=False;
exit;
end;
end
else
begin
If (((i mod 2)<>0) and ((buf[i] mod 2)=0)) or (((i mod 2)=0) and ((buf[i] mod 2)<>0)) then
begin
nom:=i;//номер элемента нарушающего закономерность
Result:=False;
exit;
end;
end;
end;
end;
program MaxFunc;
var
a, b, c, d, e, x1, x2, y, Max, int:Real;
procedure Recurs(a, b, c, d, e, x2:Real; var x1, int, y, Max:Real);
var
y2, x_int:Real;
begin
If x1>=x2 then
begin
exit;
end;
x_int:=x1+int;
y2:=(a*x_int*x_int+b*x_int+c)/(d*x_int)+e;
If Abs(y2-y)>0.01 then
begin
int:=int/2;
Recurs(a, b, c, d, e, x1, x2, int, y, Max);
end
else
begin
If y2>Max then
Max:=y2;
x1:=x1+int;
Recurs(a, b, c, d, e, x1, x2, int, y2, Max);
end;
end;
begin
Write('Enter a:');
Readln(a);
Write('Enter b:');
Readln(b);
Write('Enter c:');
Readln(c);
Write('Enter d:');
Readln(d);
Write('Enter e:');
Readln(e);
Write('Enter x1:');
Readln(x1);
Write('Enter x2:');
Readln(x2);
y:=(a*x1*x1+b*x1+c)/(d*x1)+e;
Max:=y;
int:=(x2-x1)/2;
Recurs(a, b, c, d, e, x2, x1, int, y, Max);
Writeln('Result=', Max);
Writeln('Press "Enter" to exit');
Readln;
end.program Magazins;
type
mags=array [1..3, 1..10] of real;
var
mag:mags;
i, j:Integer;
procedure A(mag:mags);
var
i, j, n:Integer;
max:array [1..3] of real;
maxsum:real;
begin
For j:=1 to 3 do
begin
max[j]:=mag[j, 1];
For i:=2 to 10 do
begin
If mag[j, i]>max[j] then
max[j]:=mag[j, i];
end;
end;
maxsum:=max[1];
n:=1;
For j:=2 to 3 do
begin
If max[j]>maxsum then
begin
maxsum:=max[j];
n:=j;
end;
end;
Writeln('Maxsimalniui doxod y magazina N', n);
end;
procedure B(mag:mags);
var
i, j, n:Integer;
max:array [1..10] of real;
maxsum:real;
begin
For j:=1 to 10 do
begin
max[j]:=0;
For i:=1 to 3 do
begin
max[j]:=max[j]+mag[i, j];
end;
end;
maxsum:=max[1];
n:=1;
For j:=2 to 10 do
begin
If max[j]>maxsum then
begin
maxsum:=max[j];
n:=j;
end;
end;
Writeln('Maxsimalniui doxod y firmi ', n, ' chisla');
end;
begin
For j:=1 to 3 do
begin
Writeln('Vvedite doxod po dniam ',j,'-go magazina:');
For i:=1 to 10 do
begin
Write(i,' den: ');
Readln(mag[j, i]);
end;
end;
Writeln;
A(mag);
Writeln;
B(mag);
Writeln;
Writeln('Dlia vixoda iz programmi nagmite Enter');
Readln;
end.program Kvadrat;
var
a, b:Word;
i:Integer;
begin
Write('Shirina: ');
Readln(a);
Write('Visota: ');
Readln(b);
If a=b then
begin
Writeln('Nevernoe yslovie!');
Writeln('Dlia vixoda nagmite Enter');
Readln;
exit;
end;
i:=0;
While (a>1) or (b>1) do
begin
inc(i);
If a>b then
begin
a:=a-b;
Writeln(i, ' kvadrat: ', b, '*', b);
end
else
begin
b:=b-a;
Writeln(i, ' kvadrat: ', a, '*', a);
end;
Writeln('Ostalsia priamoygolnik: ', a, '*', b);
end;
Writeln('Dlia vixoda nagmite Enter');
Readln;
end.
program Kvadrat;
var
a,b:Word;
i:Integer;
procedure Recurs(var a, b:Word; var i:Integer);
begin
If (a=1) and (b=1) then
exit;
If a=b then
begin
Writeln('Ostalsia kvadrat: ', a, '*', b);
Writeln('Dalshe reshenia net');
exit;
end;
inc(i);
If a>b then
begin
a:=a-b;
Writeln(i, ' kvadrat: ', b, '*', b);
Writeln('Ostalsia priamoygolnik: ', a, '*', b);
end
else
begin
b:=b-a;
Writeln(i, ' kvadrat: ', a, '*', a);
Writeln('Ostalsia priamoygolnik: ', a, '*', b);
end;
Recurs(a, b, i);
end;
begin
Write('Shirina: ');
Readln(a);
Write('Visota: ');
Readln(b);
If a=b then
begin
Writeln('Nevernoe yslovie!');
Writeln('Dlia vixoda nagmite Enter');
Readln;
exit;
end;
i:=0;
Recurs(a, b, i);
Writeln('Dlia vixoda nagmite Enter');
Readln;
end.