Логистинг задачи:
var i,n,max,d:LongInt;
x1,x2:Real;
begin
max:=1;
Read(n);
for i:=1 to n div 2 do
d:=sqr(2*i-1)+8*n;
if d<0 then Continue;
x1:=((1-2*i)-sqrt(d))/2;
x2:=((1-2*i)+sqrt(d))/2;
if (frac(x1)=0) and (x1>max) then
max:=Round(x1);
Break;
end;
if (frac(x2)=0) and (x2>max) then
max:=Round(x2);
Writeln(max);
end.
Листинг программы:
var n, s: longint;
readln(s);
s := 2 * s; {лучше s := s shl 1;}
n := trunc(sqrt(s)); {можно, как планировалось, n := trunc(sqrt(s + 0.25) - 0.5);}
while n > 1 do
if (s mod n = 0) and odd(s div n - n)
then break
else dec(n);
writeln(n)
Объяснение:1) Определить число логических переменных.
2) Определить количество базовых логических операций и их порядок.
3) Изобразить для каждой логической операции соответствующий ей вентиль.
4) Соединить вентили в порядке выполнения логических операций.
Пример 10
Составить логическую схему для логического выражения: F=¬XvY&X.
1) Две переменные – X и Y.
2) Две логические операции: 1 3 2
¬XvY&X.
3) Строим схему, соединяя вентили в порядке выполнения логических операций:
Пример 11
Постройте логическую схему, соответствующую логическому выражению F=X&Yv¬(YvX).
Вычислить значения выражения для X=1, Y=0.
1) Переменных две: X и Y.
2) Логических операций четыре: конъюнкция, две дизъюнкции и отрицание. Определяем порядок выполнения операций:
1 4 3 2
X&Yv ¬(YvX).
3) Схему строим слева направо в соответствии с порядком выполнения логических операций:
4) Вычислим значение выражения: F=1&0v¬(0v1)=0.
Логистинг задачи:
var i,n,max,d:LongInt;
x1,x2:Real;
begin
max:=1;
Read(n);
for i:=1 to n div 2 do
begin
d:=sqr(2*i-1)+8*n;
if d<0 then Continue;
x1:=((1-2*i)-sqrt(d))/2;
x2:=((1-2*i)+sqrt(d))/2;
if (frac(x1)=0) and (x1>max) then
begin
max:=Round(x1);
Break;
end;
if (frac(x2)=0) and (x2>max) then
begin
max:=Round(x2);
Break;
end;
end;
Writeln(max);
end.
Листинг программы:
var n, s: longint;
begin
readln(s);
s := 2 * s; {лучше s := s shl 1;}
n := trunc(sqrt(s)); {можно, как планировалось, n := trunc(sqrt(s + 0.25) - 0.5);}
while n > 1 do
if (s mod n = 0) and odd(s div n - n)
then break
else dec(n);
writeln(n)
end.
Объяснение:1) Определить число логических переменных.
2) Определить количество базовых логических операций и их порядок.
3) Изобразить для каждой логической операции соответствующий ей вентиль.
4) Соединить вентили в порядке выполнения логических операций.
Пример 10
Составить логическую схему для логического выражения: F=¬XvY&X.
1) Две переменные – X и Y.
2) Две логические операции: 1 3 2
¬XvY&X.
3) Строим схему, соединяя вентили в порядке выполнения логических операций:
Пример 11
Постройте логическую схему, соответствующую логическому выражению F=X&Yv¬(YvX).
Вычислить значения выражения для X=1, Y=0.
1) Переменных две: X и Y.
2) Логических операций четыре: конъюнкция, две дизъюнкции и отрицание. Определяем порядок выполнения операций:
1 4 3 2
X&Yv ¬(YvX).
3) Схему строим слева направо в соответствии с порядком выполнения логических операций:
4) Вычислим значение выражения: F=1&0v¬(0v1)=0.