- утилиты управления файловой системой;
- утилиты управления процессами;
- утилиты управления коммуникацией данных;
- библиотеки служебных подпрограмм;
- среда программирования.
Ядро в свою очередь можно условно разделить на четыре части:
- управление памятью;
- поддержка файловой системы;
- размещение системных ресорсов;
- обеспечение прав доступа.
Работа ядра основана на справочных таблицах, которые описывают всю структуру вычислительной сети: ресурсы сети, пользователей сети, организацию данных в сети, текущее состояние процессов сети и т.д. работа ядра состоит в сопоставлении данных в одних таблицах и внесении необходимых изменений в другие таблицы. Инструкции для выполнения этих действий поступают от пользователей и процессов в форме команд UNIX. Эти команды прочитываются интерпретатором команд, расшифровываются и затем вызывается соответствующая утилита UNIX.
4. Программирование на языке Паскаль.
4.1. Примеры алгоритмов
Прежде, чем анализировать принципы и приемы соствления алгорит¬мов, приведем несколько примеров.
Пример 1. Вычисление расстояния между двумя точками на плоскости.
а). Блок-схема алгоритма.
б).Программа на Паскале.
program length;
var x1,x2,y1,y2,r: real;
begin readln (x1,y1,x2,y2);
r := (x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);
r := sqrt (r);
writeln (r)
end.
Пример 2. Вычислить частную сумму ряда .
а). Блок-схема алгоритма с предусловием.
k=1; s=0 k?n да s=s+1/k2; k=k+1 результат в s
нет
б). Блок-схема алгоритма с постусловием.
да
k=0; s=0 k=k+1 s=s+1/k2 k?n нет результат в s
в). Программа на Паскале с предусловием и безусловным переходом.
program summa;
var k,n: integer; s: real;
label m1,m2;
begin readln (n);
s := 0; k := 1;
m1: if k>n then goto m2;
s := s + 1/(k*k); k := k+1; goto m1;
m2: writeln (s)
end.
г). Программа на Паскале с постусловием и безусловным переходом.
program summa;
var k,n: integer; s: real;
label m1;
begin readln (n);
s := 0;
k := 0;
m1: k := k+1;
s := s + 1/(k*k);
if k
writeln (s)
end..
д). Программа на Паскале с оператором цикла с предусловием, эквивалент¬ная программе пункта в).
program summa;
var k,n: integer; s: real;
begin readln (n);
s := 0;
k := 1;
while k
begin s := s + 1/(k*k);
k := k+1;
end;
writeln (s)
end.
е). Программа на Паскале с оператором цикла с постусловием, эквивалентная программе пункта г).
program summa;
var k,n: integer; s: real;
begin readln (n);
s := 0;
k := 0;
repeat k := k+1;
s := s + 1/(k*k);
until k>n;
writeln (s)
end.
ж). Программа на Паскале с оператором цикла со счетчиком.
program summa;
var k,n: integer; s: real;
begin readln (n);
for k := 1 to n do s := s + 1/(k*k);
writeln (s)
end.
З). Другой вариант цикла:
program summa;
var k,n: integer; s: real;
begin readln (n);
for k := n downto 1 do s := s + 1/(k*k);
writeln (s)
end.
Пример 3. Поиск значения x в массиве a.
а). Блок-схема алгоритма (длина массива равна 100).
нет
n=0 n=n+1 n>100 нет a[n]=x да Элемент имеет в массиве номер n
да
Элемент в массиве отсутствует
б). Фрагмент программы на Паскале.
var n,x: integer;
a: array [1..100] of integer;
label m1 ;
begin {Заполнить массив a}
readln (x);
for n:=1 to 100 do
if a[n] = x then goto m1;
n := 0;
m1: …;
end.
Пример 4. Определение номера дня в невисокосном году по числу и месяцу (программа на Паскале).
function numerday (d,m: integer): integer; {d- день, m — месяц}
8th Май 2011
|
Теги:
|