Четырехзначное число в расширенной записи имеет вид
Известно, что первая и последняя цифры одинаковы, отсюда d=a. Сумма цифр числа равна 16, т.е. 2a+b+c=16 (1) Если число делится на 2, то оно четное, следовательно "a" может равняться 2, 4, 6, 8. (2) Нулю оно равняться не может, поскольку тогда число станет трехзначным. Если четырехзначное число делится на 11, то модуль разности между суммами цифр, стоящих на четных и нечетных местах должна делиться на 11, т.е. |(a+c)-(a+b)|= |(c-b| делится на 11. Но разность двух однозначных чисел не может превышать 9, поэтому если она делится на 11, то она должна быть равна нулю. Но тогда с=b и число имеет вид 1000a+100b+10b+a. А уравнение (1) будет выглядеть как 2a+b+b=16; 2a+2b=16; b=8-a (3) C учетом (2) можно из (3) получить 4 решения: a=2, b=6 a=4, b=4 a=6, b=2 a=8, b=0 И это породит 4 возможных кода: 2662, 4444, 6226, 8008.
Program Parabolas; Uses Crt; Var a, b, c, d, m, n, dis, x1, x2 : real; begin writeln('Введите коэфициенты первой параболы'); write('A=');readln(a); write('B=');readln(b); write('C=');readln(c); writeln('Введите коэфициенты второй параболы'); write('D=');readln(d); write('M=');readln(m); write('N=');readln(n); writeln('*** alphaues is thinking... ***'); if a=d then if b=m then if c=n then writeln('Параболы совпадают!') else writeln('Параболы не пересекаются!') else begin x1:=(c-n)/(b-m); writeln('Параболы пересекаются в 1-й точке: ',x1,' ',a*x1*x1+b*x1+c); end else begin dis:=(b-m)*(b-m)-4*(a-d)*(c-n); if dis>0 then begin x1:=((m-b)+sqrt(dis))/(2*(a-d)); x2:=((m-b)-sqrt(dis))/(2*(a-d)); writeln('Параболы пересекаются в 2-x точкax: '); writeln(x1,' ',a*x1*x1+b*x1+c); writeln(x2,' ',a*x2*x2+b*x1+c); end else if dis=0 then begin x1:=(m-b)/(2*(a-d)); writeln('Параболы пересекаются в 1-й точке: ',x1,' ',a*x1*x1+b*x1+c); end else writeln('Параболы не пересекаются!'); end; end.
Program MassXY; uses crt; const n = 20; var x,y:array [1..n] of real; i,k, maxnum, minnum:integer; max, min,temp: real; begin k:=1; randomize; for i:=1 to n do begin x[i]:=random(101)-50; if (1<=x[i]) and (x[i]<=2) then begin y[i]:=x[i]; k:=k+1; end; end; writeln('*** alphaues is thinking... ***'); max:=y[1]; maxnum:=1; min:=y[1]; minnum:=1; for i:=1 to k do begin if max<y[i] then begin max:=y[i]; maxnum:=i; end; if min>y[i] then begin min:=y[i]; minnum:=i; end; end; temp:=y[maxnum]; y[maxnum]:=y[minnum]; y[minnum]:=temp; writeln('Массив Y состоит из ',k,' элементов:'); for i:=1 to k do write(y[i],' '); end.
Program MatrixP; uses crt; const n=10; const m=8; var p:array[1..n,1..m] of integer; sum:array[1..n] of integer; st:array[1..m] of integer; i,j,tempsum,min,max,minnum,maxnum : integer; begin Randomize; {ввод и вывод матрицы} writeln('Начальная матрица:'); for i:=1 to n do begin for j:=1 to m do begin p[i,j]:= Random(100); write(p[i,j]:5); end; writeln; end; writeln('*** alphaues is thinking... ***'); {нахождение сумм строк} for i:=1 to n do begin tempsum:=0; for j:=1 to m do tempsum:=tempsum+p[i,j]; sum[i]:=tempsum; end; maxnum:=1; tempsum:=sum[1]; for i:=1 to n do if tempsum>sum[i] then begin tempsum:=sum[i]; minnum:=i; end; writeln('Min сумма в ',minnum,'-й строке: ',sum[minnum]); {нахождение max элемента матрицы} max:=p[1,1]; for i:=1 to n do for j:=1 to m do begin if max<p[i,j] then max:=p[i,j]; maxnum:=i; end; writeln('Max элемент ',max,' находится в ',maxnum,'-й строке'); for j:=1 to m do begin st[j]:=p[maxnum,j]; p[maxnum,j]:=p[minnum,j]; p[minnum,j]:=st[j]; end; {вывод матрицы} writeln('Результат:'); for i:=1 to n do begin for j:=1 to m do begin write(p[i,j]:5); end; writeln; end; end.
Известно, что первая и последняя цифры одинаковы, отсюда d=a.
Сумма цифр числа равна 16, т.е. 2a+b+c=16 (1)
Если число делится на 2, то оно четное, следовательно "a" может равняться
2, 4, 6, 8. (2)
Нулю оно равняться не может, поскольку тогда число станет трехзначным.
Если четырехзначное число делится на 11, то модуль разности между суммами цифр, стоящих на четных и нечетных местах должна делиться на 11, т.е. |(a+c)-(a+b)|= |(c-b| делится на 11. Но разность двух однозначных чисел не может превышать 9, поэтому если она делится на 11, то она должна быть равна нулю. Но тогда с=b и число имеет вид
1000a+100b+10b+a.
А уравнение (1) будет выглядеть как
2a+b+b=16; 2a+2b=16; b=8-a (3)
C учетом (2) можно из (3) получить 4 решения:
a=2, b=6
a=4, b=4
a=6, b=2
a=8, b=0
И это породит 4 возможных кода: 2662, 4444, 6226, 8008.
Program Parabolas;
Uses Crt;
Var
a, b, c, d, m, n, dis, x1, x2 : real;
begin
writeln('Введите коэфициенты первой параболы');
write('A=');readln(a);
write('B=');readln(b);
write('C=');readln(c);
writeln('Введите коэфициенты второй параболы');
write('D=');readln(d);
write('M=');readln(m);
write('N=');readln(n);
writeln('*** alphaues is thinking... ***');
if a=d then
if b=m then
if c=n then
writeln('Параболы совпадают!')
else
writeln('Параболы не пересекаются!')
else
begin
x1:=(c-n)/(b-m);
writeln('Параболы пересекаются в 1-й точке: ',x1,' ',a*x1*x1+b*x1+c);
end
else
begin
dis:=(b-m)*(b-m)-4*(a-d)*(c-n);
if dis>0 then
begin
x1:=((m-b)+sqrt(dis))/(2*(a-d));
x2:=((m-b)-sqrt(dis))/(2*(a-d));
writeln('Параболы пересекаются в 2-x точкax: ');
writeln(x1,' ',a*x1*x1+b*x1+c);
writeln(x2,' ',a*x2*x2+b*x1+c);
end
else
if dis=0 then
begin
x1:=(m-b)/(2*(a-d));
writeln('Параболы пересекаются в 1-й точке: ',x1,' ',a*x1*x1+b*x1+c);
end
else writeln('Параболы не пересекаются!');
end;
end.
Program MassXY;
uses crt;
const n = 20;
var
x,y:array [1..n] of real;
i,k, maxnum, minnum:integer;
max, min,temp: real;
begin
k:=1;
randomize;
for i:=1 to n do
begin
x[i]:=random(101)-50;
if (1<=x[i]) and (x[i]<=2) then
begin
y[i]:=x[i];
k:=k+1;
end;
end;
writeln('*** alphaues is thinking... ***');
max:=y[1];
maxnum:=1;
min:=y[1];
minnum:=1;
for i:=1 to k do
begin
if max<y[i] then
begin
max:=y[i];
maxnum:=i;
end;
if min>y[i] then
begin
min:=y[i];
minnum:=i;
end;
end;
temp:=y[maxnum];
y[maxnum]:=y[minnum];
y[minnum]:=temp;
writeln('Массив Y состоит из ',k,' элементов:');
for i:=1 to k do
write(y[i],' ');
end.
Program MatrixP;
uses crt;
const n=10;
const m=8;
var
p:array[1..n,1..m] of integer;
sum:array[1..n] of integer;
st:array[1..m] of integer;
i,j,tempsum,min,max,minnum,maxnum : integer;
begin
Randomize;
{ввод и вывод матрицы}
writeln('Начальная матрица:');
for i:=1 to n do
begin
for j:=1 to m do
begin
p[i,j]:= Random(100);
write(p[i,j]:5);
end;
writeln;
end;
writeln('*** alphaues is thinking... ***');
{нахождение сумм строк}
for i:=1 to n do
begin
tempsum:=0;
for j:=1 to m do
tempsum:=tempsum+p[i,j];
sum[i]:=tempsum;
end;
maxnum:=1;
tempsum:=sum[1];
for i:=1 to n do
if tempsum>sum[i] then
begin
tempsum:=sum[i];
minnum:=i;
end;
writeln('Min сумма в ',minnum,'-й строке: ',sum[minnum]);
{нахождение max элемента матрицы}
max:=p[1,1];
for i:=1 to n do
for j:=1 to m do
begin
if max<p[i,j] then max:=p[i,j];
maxnum:=i;
end;
writeln('Max элемент ',max,' находится в ',maxnum,'-й строке');
for j:=1 to m do
begin
st[j]:=p[maxnum,j];
p[maxnum,j]:=p[minnum,j];
p[minnum,j]:=st[j];
end;
{вывод матрицы}
writeln('Результат:');
for i:=1 to n do
begin
for j:=1 to m do
begin
write(p[i,j]:5);
end;
writeln;
end;
end.