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.