Системы, обеспечивающие многопользовательский доступ, будь то операционная система ОС, программное обеспечение (ПО), система управления контентом (CMS), очень важно иметь инструментарий для надёжного управления пользователями (их аккаунтами или учётными записями, пользовательскими конфигурациями, домашними каталогами и т. д.), а также для организации и управления самим пользовательским доступом. В таких случаях грамотное и продуманное управление пользователями (точнее, их учётными записями) является ключевым аспектом, от которого зависят безопасность, стабильность и, как следствие — надёжность всей системы. В современных дистрибутивах Linux имеются автоматизированные системы управления пользователями с наглядным графическим пользовательским интерфейсом (GUI), что позволяет быстро и удобно выполнять рутинные (как оказывается на самом деле) мероприятия по управлению пользователями и конфигурации их учётных записей. Однако, очень важно знать и понимать как и какие на самом деле процессы и изменения происходят в самой системе во время управления пользователями.
Объяснение:
Требуется написать программу, вычисляющую значение какой-либо функции у = f(x). Допустим, такой:
у = x – 2, если x > 0,
y = 0, если x = 0,
y = |x|, если x < 0.
Решение
При определении значений подобных функций переменная y вычисляется по-разному (по разным формулам) в зависимости от значения x.
Такие задачи решаются с конструкции условного оператора if - else. Поскольку в данном случае мы имеем три условия (x > 0, x = 0 и x < 0), то потребуется использование еще вложенной конструкции if - else, т. к. в языке Pascal нет оператора множественного ветвления (оператор case в данном случае не подходит).
В языке программирования Паскаль (да и в других тоже) желательно вложенные конструкции if - else помещать во внешнюю ветку else, а не if. Так проще не запутаться.
Таким образом, алгоритм вычисления значения функции может быть таким:
Если x > 0, то у = x - 2
Иначе (ниже идет вложенная конструкция)
Если x = 0, то y = 0
Иначе y = |x|.
В последнем пункте можно опустить оператор if с проверкой, что x < 0, так как если ход выполнения программы дошел до этого пункта, то x уже другим быть и не может (варианты, когда он больше или равен нулю, уже были исключены).
Для определения модуля (абсолютного значения) переменной можно использовать встроенную функцию abs() языка Pascal. В данном случае можно обойтись и без нее: поскольку уже известно, что x отрицателен, то, чтобы получить положительное число (модуль), нужно его умножить на -1.
var x, y: integer; begin write ('x = '); readln (x); if x > 0 then y := x - 2 else if x = 0 then y := 0 else y := abs(x); writeln ('y = ', y); end.
сорр
handsfree = false;
var
a: array[1..500] of integer;
i, n, j: integer;
temp: integer;
begin
{ввод массива}
if handsfree then
n := random(500) + 1
else begin
write('n = ');
readln(n);
end;
writeln('Данные массива:');
for i := 1 to n do
begin
if handsfree then begin
a[i] := random(100000);
write(a[i], ' ');
end
else readln(a[i]);
end;
writeln();
{сортировочка пузыречком по убыванию}
for i := 1 to n - 1 do
for j := i + 1 to n do
if A[i] < A[j] then begin
temp := A[i];
A[i] := A[j];
A[j] := temp;
end;
{вывод массива}
writeln('Вывод массива:');
for i := 1 to n do
write(a[i], ' ');
writeln();
writeln('Наибольшая купюра = ', a[1], a[2]);
end.
Вывод (при handfree = true)
Данные массива:
14326 83146 41199 15524 45803 60252 17062 77469 66347 48671 98328 61915 65607 88427 62486 50724 86714 97620 39326 61552 6654 93608 22718 77352 63933 29408 99498 63255 23230 7413 67602 67278 76628 87483 71421 12343 30770
Вывод массива:
99498 98328 97620 93608 88427 87483 86714 83146 77469 77352 76628 71421 67602 67278 66347 65607 63933 63255 62486 61915 61552 60252 50724 48671 45803 41199 39326 30770 29408 23230 22718 17062 15524 14326 12343 7413 6654
Наибольшая купюра = 9949898328