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.
1. Первые вычислительные машины
Невозможно точно ответить на вопрос, кто именно изобрел компьютер. Дело в том, что компьютер не является изобретением одного человека. Компьютер вобрал в себя идеи и технические решения многих ученых и инженеров. Развитие вычислительной техники стимулировалось потребностью в быстрых и точных вычисления и продолжался сотни лет. В процессе развития вычислительная техника становилась все более совершенной. Этот процесс продолжается и в наше время.
Леонардо да Винчи
Считается, что первый в мире эскизный рисунок тринадцятирозрядного десятичного суммирующего устройства на базе колесиков с десятью зубцами был выполнен Леонардо да Винчи в одном из его дневников (ученый начал вести этот дневник еще до открытия Америки 1492 г).
Вильгельм Шиккард
В 1623 г. (более чем через 100 лет после смерти Леонардо да Винчи) немецкий ученый Вильгельм Шиккард предложил свою модель шестиразрядного десятичного вычислителя, который должен был состоять также из зубчатых колесиков и мог бы выполнять сложение, вычитание, а также умножение и деление. Изобретения да Винчи и Шиккарда были найдены лишь в наше время и остались только на бумаге.
Блез Паскаль
В 1642 г. 19-летний французский математик Блез Паскаль сконструировал первую в мире работающую механическую вычислительную машину, известную как суммирующая машина Паскаля («Паскалина»). Эта машина представляла собой комбинацию взаимосвязанных колесиков и приводов. На колесиках были изображены цифры от 0 до 9. Если первое колесико делает полный оборот от 0 до 9, автоматически начинает двигаться второе колесико. Если и второе колесико доходит до цифры 9, начинает вращаться третье и так далее. Машина Паскаля могла только прибавлять и отнимать.
Готфрид Вильгельм фон Лейбниц
В 1673 г. немецкий математик Готфрид Вильгельм фон Лейбниц сконструировал свою вычислительную машину. В отличие от Паскаля, Лейбниц использовал в своей машине цилиндры, а не колесики и приводы. На цилиндры были нанесены цифры. Каждый цилиндр имел девять строк выступов и зубцов. При этом первый ряд имел один выступ, второй ряд - два выступа и так до девятого ряда, который имел соответственно девять выступов. Цилиндры с выступами были передвижными, оператор устанавливал их в определенное положение.
Машина Лейбница, в отличие от суммирующей машины Паскаля, была значительно сложнее по конструкции. Она была выполнять не только сложение и вычитание, но и умножение, деление и вычисления квадратного корня.
2. Вычислительные машины XIX века
Чарльз Бэббидж
Изобретение первой программируемой вычислительной машины принадлежит выдающемуся английскому математику Чарльзу Бебиджу (1830 г.). Он посвятил почти всю свою жизнь этой работе, но так и не создал действующую модель. Бэббидж назвал свое изобретение «Аналитическая машина». По плану машина должна была действовать благодаря силе пара. При этом она была бы воспринимать команды, выполнять вычисления и выдавать необходимые результаты в напечатанном виде. Программы в свою очередь должны были кодироваться и переноситься на перфокарты. Идея использования перфокарт была заимствована Бэбиджем у французского изобретателя Жозефа Жаккара (конец XVIII в.). Для контроля ткацких операций Жаккар использовал отверстия, пробитые в карточках. Карточки с различным расположением отверстий давали разные узоры на плетении ткани. По сути, Бэббидж был первым, кто использовал перфокарты для вычислительных машин.