Мы давно уже привыкли к персональным компьютерам. Включаем их и работаем, собственно говоря, ни мало не задумываясь над тем, как они устроены и как работают. Все это благодаря тому, что разработчики ПК и программного обеспечения к ним научились создавать надежные продукты, которые не дают нам повода лишний раз задуматься над устройством компьютера или обслуживающих его программ.Тем не менее, вероятно, читателям блога небезынтересно узнать о принципах работы компьютера и программного обеспечения. Этому и будет посвящена серия статей, которые публикуются в рубрике «Как работает ПК». Как работает ПК: часть 1. Обработка информацииКомпьютер изначально был задуман для автоматизации процессов обработки информации. Он устроен соответствующим образом, чтобы иметь все возможности для успешного выполнения своего предназначения.Для того чтобы обрабатывать в компьютере информацию, с ней необходимо делать следующие основные операции:- вводить информацию в компьютер:Эта операция нужна для того, чтобы компьютеру было что обрабатывать. Без возможности ввода информации в компьютер он становится как бы вещью в себе.- хранить введенную информацию в компьютере:Очевидно, что если дать возможность вводить информацию в компьютер, то надо и иметь возможность эту информацию в нем хранить, и затем использовать в процессе обработки.- обрабатывать введенную информацию:Здесь надо понимать, что для обработки введенной информации нужны определенные алгоритмы обработки, иначе ни о какой обработке информации речи быть не может. Компьютер должен быть снабжен такими алгоритмами и должен уметь их применять к вводимой информации с тем, чтобы «правильно» преобразовывать ее в выходные данные.- хранить обработанную информацию,Так же как и с хранением введенной информации, в компьютере должны храниться результаты его работы, результаты обработки входных данных с тем, чтобы в дальнейшем ими можно было бы воспользоваться.- выводить информацию из компьютера:Эта операция позволяет вывести результаты обработки информации в удобочитаемом для пользователей ПК виде. Понятно, что данная операция дает возможность воспользоваться результатами обработки информации на компьютере, иначе эти результаты обработки так и остались бы внутри компьютера, что сделало бы их получение совершенно бессмысленным.Самое важное умение компьютера – это обработка информации, так как его прелесть как раз и состоит в том, что он может информацию преобразовывать. Все устройство компьютера обусловлено требованием обработки информации в кратчайшие сроки, наиболее быстрым Под обработкой информации на компьютере можно понимать любые действия, которые преобразуют информацию из одного состояния в другое. Соответственно, компьютер имеет специальное устройство, называемое процессором, которое предназначено исключительно для чрезвычайно быстрой обработки данных, со скоростями, доходящими до миллиардов операций в секунду.ПроцессорТребуемые для обработки данные процессор получает (берет) из оперативной памяти – от устройства, предназначенного для временного хранения как входных, так и выходных данных. Там же в оперативной памяти находится и место для хранения промежуточных данных, формируемых в процессе обработки информации. Таким образом, процессор как получает данные из оперативной памяти, так и записывает обработанные данные в оперативную память.Оперативная память (ОЗУ)Наконец, для ввода и вывода данных к компьютеру подключаются внешние устройства ввода-вывода, которые позволяют вводить информацию, подлежащую обработке, и выводить результаты этой обработки.Внешний винчестер, внешнее DVD-устройство, флешка, клавиатура, мышьПроцессор и оперативная память работают с одинаково большой скоростью. Как уже говорилось выше, скорость обработки информации может составлять многие миллионы и миллиарды операций в секунду. Никакое внешнее устройство ввода и вывода информации не может работать на таких скоростях.Поэтому для их подключения в компьютере предусмотрены специальные контроллеры устройств ввода-вывода. Их задача состоит в том, чтобы согласовать высокие скорости работы процессора и оперативной памяти с относительно низкими скоростями ввода и вывода информации.Эти контроллеры подразделяются на специализированные, к которым могут быть подключены только специальные устройства, и универсальные. Примером специализированного устройства контроллера служит, например, видеокарта, которая предназначена для подключения к компьютеру монитора.ВидеокартаКонтроллеры могут быть и универсальными, в этом случае – это так называемые порты ввода-вывода, К портам ввода-вывода могут подключаться разнообразные устройства (клавиатуры, манипуляторы «мышь», принтеры, сканеры и т.п.).
begin SetWindowSize(w,h); // поле для графика в окне var xLeft:=50; var yLeft:=50; var xRight:=w-xLeft; var yRight:=h-yLeft; // интервалы по осям var ax:=-12.0; var bx:=12.0; var hx:=1.0; var ay:=-6.5; // минимум f(x) с запасом var by:=6.5; var hy:=0.5; // масштабы по осям var mx:=(xRight-xLeft)/(bx-ax); var my:=(yRight-yLeft)/(by-ay); // точка начала координат графика var x0:=xLeft+Trunc(abs(ax)*mx); var y0:=yRight-Trunc(abs(ay)*my); // рисование координатных осей Line(xLeft,y0,xRight+10,y0); Line(x0,yLeft-10,x0,yRight); SetFontSize(12); SetFontColor(clBlue); TextOut(xRight+15,y0-10,'X'); TextOut(x0-4,yLeft-30,'Y'); SetFontSize(8); SetFontColor(clGreen); // рисование засечек var s:string; for var i:=1 to Round((bx-ax)/hx)+1 do begin var num:=ax+(i-1)*hx; var x:=xLeft+Trunc(mx*(num-ax)); Line(x,y0-3,x,y0+3); Str(num,s); if abs(num)>1E-15 then TextOut(x-TextWidth(s) div 2,y0+10,s) end; for var i:=1 to Round((by-ay)/hy)+1 do begin var num:=ay+(i-1)*hy; var y:=yRight-Trunc(my*(num-ay)); Line(x0-3,y,x0+3,y); Str(num,s); if abs(num)>1E-15 then TextOut(x0+7,y-TextHeight(s) div 2,s) end; TextOut(x0-10,y0+10,'0'); // собственно график var xi:=ax; while xi<=bx do begin var yi:=f(xi); var x:=x0+Round(xi*mx); var y:=y0-Round(yi*my); if (y>=yLeft) and (y<=yRight) then SetPixel(x,y,clRed); xi+=1e-3 end end.
begin SetWindowSize(w,h); // поле для графика в окне var xLeft:=50; var yLeft:=50; var xRight:=w-xLeft; var yRight:=h-yLeft; // интервалы по осям var ax:=-15.0; var bx:=15.0; var hx:=1.0; var ay:=-6.5; // минимум f(x) с запасом var by:=6.5; var hy:=0.5; // масштабы по осям var mx:=(xRight-xLeft)/(bx-ax); var my:=(yRight-yLeft)/(by-ay); // точка начала координат графика var x0:=xLeft+Trunc(abs(ax)*mx); var y0:=yRight-Trunc(abs(ay)*my); // рисование координатных осей Line(xLeft,y0,xRight+10,y0); Line(x0,yLeft-10,x0,yRight); SetFontSize(12); SetFontColor(clBlue); TextOut(xRight+15,y0-10,'X'); TextOut(x0-4,yLeft-30,'Y'); SetFontSize(8); SetFontColor(clGreen); // рисование засечек var s:string; for var i:=1 to Round((bx-ax)/hx)+1 do begin var num:=ax+(i-1)*hx; var x:=xLeft+Trunc(mx*(num-ax)); Line(x,y0-3,x,y0+3); Str(num,s); if abs(num)>1E-15 then TextOut(x-TextWidth(s) div 2,y0+10,s) end; for var i:=1 to Round((by-ay)/hy)+1 do begin var num:=ay+(i-1)*hy; var y:=yRight-Trunc(my*(num-ay)); Line(x0-3,y,x0+3,y); Str(num,s); if abs(num)>1E-15 then TextOut(x0+7,y-TextHeight(s) div 2,s) end; TextOut(x0-10,y0+10,'0'); // собственно график var xi:=ax; while xi<=bx do begin var yi:=f(xi); var x:=x0+Round(xi*mx); var y:=y0-Round(yi*my); if (y>=yLeft) and (y<=yRight) then SetPixel(x,y,clRed); xi+=1e-3 end end.
Как работает ПК: часть 1. Обработка информацииКомпьютер изначально был задуман для автоматизации процессов обработки информации. Он устроен соответствующим образом, чтобы иметь все возможности для успешного выполнения своего предназначения.Для того чтобы обрабатывать в компьютере информацию, с ней необходимо делать следующие основные операции:- вводить информацию в компьютер:Эта операция нужна для того, чтобы компьютеру было что обрабатывать. Без возможности ввода информации в компьютер он становится как бы вещью в себе.- хранить введенную информацию в компьютере:Очевидно, что если дать возможность вводить информацию в компьютер, то надо и иметь возможность эту информацию в нем хранить, и затем использовать в процессе обработки.- обрабатывать введенную информацию:Здесь надо понимать, что для обработки введенной информации нужны определенные алгоритмы обработки, иначе ни о какой обработке информации речи быть не может. Компьютер должен быть снабжен такими алгоритмами и должен уметь их применять к вводимой информации с тем, чтобы «правильно» преобразовывать ее в выходные данные.- хранить обработанную информацию,Так же как и с хранением введенной информации, в компьютере должны храниться результаты его работы, результаты обработки входных данных с тем, чтобы в дальнейшем ими можно было бы воспользоваться.- выводить информацию из компьютера:Эта операция позволяет вывести результаты обработки информации в удобочитаемом для пользователей ПК виде. Понятно, что данная операция дает возможность воспользоваться результатами обработки информации на компьютере, иначе эти результаты обработки так и остались бы внутри компьютера, что сделало бы их получение совершенно бессмысленным.Самое важное умение компьютера – это обработка информации, так как его прелесть как раз и состоит в том, что он может информацию преобразовывать. Все устройство компьютера обусловлено требованием обработки информации в кратчайшие сроки, наиболее быстрым Под обработкой информации на компьютере можно понимать любые действия, которые преобразуют информацию из одного состояния в другое. Соответственно, компьютер имеет специальное устройство, называемое процессором, которое предназначено исключительно для чрезвычайно быстрой обработки данных, со скоростями, доходящими до миллиардов операций в секунду.ПроцессорТребуемые для обработки данные процессор получает (берет) из оперативной памяти – от устройства, предназначенного для временного хранения как входных, так и выходных данных. Там же в оперативной памяти находится и место для хранения промежуточных данных, формируемых в процессе обработки информации. Таким образом, процессор как получает данные из оперативной памяти, так и записывает обработанные данные в оперативную память.Оперативная память (ОЗУ)Наконец, для ввода и вывода данных к компьютеру подключаются внешние устройства ввода-вывода, которые позволяют вводить информацию, подлежащую обработке, и выводить результаты этой обработки.Внешний винчестер, внешнее DVD-устройство, флешка, клавиатура, мышьПроцессор и оперативная память работают с одинаково большой скоростью. Как уже говорилось выше, скорость обработки информации может составлять многие миллионы и миллиарды операций в секунду. Никакое внешнее устройство ввода и вывода информации не может работать на таких скоростях.Поэтому для их подключения в компьютере предусмотрены специальные контроллеры устройств ввода-вывода. Их задача состоит в том, чтобы согласовать высокие скорости работы процессора и оперативной памяти с относительно низкими скоростями ввода и вывода информации.Эти контроллеры подразделяются на специализированные, к которым могут быть подключены только специальные устройства, и универсальные. Примером специализированного устройства контроллера служит, например, видеокарта, которая предназначена для подключения к компьютеру монитора.ВидеокартаКонтроллеры могут быть и универсальными, в этом случае – это так называемые порты ввода-вывода, К портам ввода-вывода могут подключаться разнообразные устройства (клавиатуры, манипуляторы «мышь», принтеры, сканеры и т.п.).
// PascalABC.NET 3.1, сборка 1204 от 24.03.2016
uses graphABC;
const
w=1000;
h=600;
function f(x:real):=0.5*x*cos(2*x);
begin
SetWindowSize(w,h);
// поле для графика в окне
var xLeft:=50;
var yLeft:=50;
var xRight:=w-xLeft;
var yRight:=h-yLeft;
// интервалы по осям
var ax:=-12.0;
var bx:=12.0;
var hx:=1.0;
var ay:=-6.5; // минимум f(x) с запасом
var by:=6.5;
var hy:=0.5;
// масштабы по осям
var mx:=(xRight-xLeft)/(bx-ax);
var my:=(yRight-yLeft)/(by-ay);
// точка начала координат графика
var x0:=xLeft+Trunc(abs(ax)*mx);
var y0:=yRight-Trunc(abs(ay)*my);
// рисование координатных осей
Line(xLeft,y0,xRight+10,y0);
Line(x0,yLeft-10,x0,yRight);
SetFontSize(12); SetFontColor(clBlue);
TextOut(xRight+15,y0-10,'X');
TextOut(x0-4,yLeft-30,'Y');
SetFontSize(8); SetFontColor(clGreen);
// рисование засечек
var s:string;
for var i:=1 to Round((bx-ax)/hx)+1 do begin
var num:=ax+(i-1)*hx;
var x:=xLeft+Trunc(mx*(num-ax));
Line(x,y0-3,x,y0+3);
Str(num,s);
if abs(num)>1E-15 then TextOut(x-TextWidth(s) div 2,y0+10,s)
end;
for var i:=1 to Round((by-ay)/hy)+1 do begin
var num:=ay+(i-1)*hy;
var y:=yRight-Trunc(my*(num-ay));
Line(x0-3,y,x0+3,y);
Str(num,s);
if abs(num)>1E-15 then TextOut(x0+7,y-TextHeight(s) div 2,s)
end;
TextOut(x0-10,y0+10,'0');
// собственно график
var xi:=ax;
while xi<=bx do begin
var yi:=f(xi);
var x:=x0+Round(xi*mx);
var y:=y0-Round(yi*my);
if (y>=yLeft) and (y<=yRight) then SetPixel(x,y,clRed);
xi+=1e-3
end
end.
*******************************************
// PascalABC.NET 3.1, сборка 1204 от 24.03.2016
uses graphABC;
const
w=1000;
h=600;
function f(x:real):=8*sin(x)*sin(2*x);
begin
SetWindowSize(w,h);
// поле для графика в окне
var xLeft:=50;
var yLeft:=50;
var xRight:=w-xLeft;
var yRight:=h-yLeft;
// интервалы по осям
var ax:=-15.0;
var bx:=15.0;
var hx:=1.0;
var ay:=-6.5; // минимум f(x) с запасом
var by:=6.5;
var hy:=0.5;
// масштабы по осям
var mx:=(xRight-xLeft)/(bx-ax);
var my:=(yRight-yLeft)/(by-ay);
// точка начала координат графика
var x0:=xLeft+Trunc(abs(ax)*mx);
var y0:=yRight-Trunc(abs(ay)*my);
// рисование координатных осей
Line(xLeft,y0,xRight+10,y0);
Line(x0,yLeft-10,x0,yRight);
SetFontSize(12); SetFontColor(clBlue);
TextOut(xRight+15,y0-10,'X');
TextOut(x0-4,yLeft-30,'Y');
SetFontSize(8); SetFontColor(clGreen);
// рисование засечек
var s:string;
for var i:=1 to Round((bx-ax)/hx)+1 do begin
var num:=ax+(i-1)*hx;
var x:=xLeft+Trunc(mx*(num-ax));
Line(x,y0-3,x,y0+3);
Str(num,s);
if abs(num)>1E-15 then TextOut(x-TextWidth(s) div 2,y0+10,s)
end;
for var i:=1 to Round((by-ay)/hy)+1 do begin
var num:=ay+(i-1)*hy;
var y:=yRight-Trunc(my*(num-ay));
Line(x0-3,y,x0+3,y);
Str(num,s);
if abs(num)>1E-15 then TextOut(x0+7,y-TextHeight(s) div 2,s)
end;
TextOut(x0-10,y0+10,'0');
// собственно график
var xi:=ax;
while xi<=bx do begin
var yi:=f(xi);
var x:=x0+Round(xi*mx);
var y:=y0-Round(yi*my);
if (y>=yLeft) and (y<=yRight) then SetPixel(x,y,clRed);
xi+=1e-3
end
end.