begin writeln('Введите d'); read(d); writeln('Введите m,n,p'); read(m, n, p); if (m = d) or (n = d) or (p = d) then begin if (m = d) then writeln('m = d'); if (n = d) then writeln('n = d'); if (p = d) then writeln('p = d'); if (m = d) and (n = d) then writeln('m,n = d'); if (m = d) and (p = d) then writeln('m,p = d'); if (p = d) and (n = d) then writeln('p,n = d'); end else begin writeln('Ни одно не равно d'); if ((d - m) > (d - n)) and ((d - m) > (d - p)) then writeln('(d-m) - максимальное'); if ((d - n) > (d - m)) and ((d - n) > (d - p)) then writeln('(d-n) - максимальное'); if ((d - p) > (d - m)) and ((d - p) > (d - n)) then writeln('(d-p) - максимальное'); if ((d - m) = (d - n)) and ((d - m) = (d - p)) and ((d - n) = (d - p)) then writeln('(d-m)=(d-n)=(d-p)'); end; end.
Процессор взаимодействует с оперативной памятью не напрямую, а через специальный контроллер, подключенный к системной шине процессора приблизительно так же, как и остальные контроллеры периферийных устройств. Причем механизм обращения к портам ввода/вывода и к ячейкам оперативной памяти с точки зрения процессора практически идентичен. Процессор сначала выставляет на адресную шину требуемый адрес, а в следующем такте уточняет тип запроса: происходит ли обращение к памяти, портам ввода/вывода или подтверждение прерывания. В некотором смысле оперативную память можно рассматривать как совокупность регистров ввода/вывода, каждый из которых хранит некоторое значение.
var a: array[1..100] of real; i, n: integer; min, max: real; sum, product, harmonic: real; k: integer;
begin {ввод массива} if handsfree then n := random(20) + 5 else begin write('n = '); readln(n); end;
writeln('Данные массива:'); for i := 1 to n do begin if handsfree then begin a[i] := random(100) - 50; write(a[i], ' '); end else readln(a[i]); end; writeln();
{подсчет элементов} k := 0; for i := 1 to n do if a[i] > 5 then k := k + 1; writeln(k);
{минимум и максимум} max := a[1]; min := a[1]; for i := 1 to n do begin if max < a[i] then max := a[i]; if min > a[i] then min := a[i]; end; writeln('max = ', max); writeln('min = ', min);
{подсчет суммы и произведения и агригатов} sum := 0; product := 1; harmonic := 1; k := 0; for i := 1 to n do begin if true then {если нужен фильтр} begin sum := sum + a[i]; product := product * a[i]; harmonic := harmonic + 1 / a[i]; k := k + 1; end; end; writeln('sum = ', sum); writeln('product = ', product); writeln('average = ', sum / n); writeln('average (selected) = ', sum / k); writeln('harmonic mean = ', n / harmonic); writeln('harmonic mean (selected) = ', k / harmonic);
{изменение элементов} for i := 1 to n do begin if a[i] < 0 then a[i] := abs(a[i]); write(a[i], ' '); end; end.
m, n, p, d: real;
begin
writeln('Введите d');
read(d);
writeln('Введите m,n,p');
read(m, n, p);
if (m = d) or (n = d) or (p = d) then
begin
if (m = d) then writeln('m = d');
if (n = d) then writeln('n = d');
if (p = d) then writeln('p = d');
if (m = d) and (n = d) then writeln('m,n = d');
if (m = d) and (p = d) then writeln('m,p = d');
if (p = d) and (n = d) then writeln('p,n = d');
end else
begin
writeln('Ни одно не равно d');
if ((d - m) > (d - n)) and ((d - m) > (d - p)) then writeln('(d-m) - максимальное');
if ((d - n) > (d - m)) and ((d - n) > (d - p)) then writeln('(d-n) - максимальное');
if ((d - p) > (d - m)) and ((d - p) > (d - n)) then writeln('(d-p) - максимальное');
if ((d - m) = (d - n)) and ((d - m) = (d - p)) and ((d - n) = (d - p)) then writeln('(d-m)=(d-n)=(d-p)');
end;
end.