3. Дан словарь, в котором ключи – названия месяца, а значения – объем осадков за месяц. Необходимо отсортировать месяцы по возрастанию количества осадков. Язык Питон
Program Markovsp1; uses crt; const eps=0.001; var t,s:real; i:integer; begin writeln('*** alphaues is thinking... ***'); writeln('*** OK ***'); writeln(); writeln('Программа вычисляет частичную сумму ряда '); writeln(' S=1+1/(2^2)+1/(3^2)+1/(4^2)+... '); writeln('Вычисление прекратится, когда модуль очередного слагаемого станет меньше 0,001'); используется цикл repeat'); writeln(); s:=0; i:=1; repeat t:=1/((i)*(i)); s:=s+t; //writeln('i=',i,' T=',t:0:6,' S=',s:0:6); i:=i+1; until abs(t)<eps; writeln('s=',s:0:6,' (pi^2)/6=',(pi*pi)/6:0:6); writeln('Приближение к (pi^2)/6 равно ',s-(pi*pi)/6:0:6); end.
Program Markovsp2; uses crt; const eps=0.001; var t,s:real; i:integer; begin writeln('*** alphaues is thinking... ***'); writeln('*** OK ***'); writeln(); writeln('Программа вычисляет частичную сумму ряда '); writeln(' S=1+1/(2^2)+1/(3^2)+1/(4^2)+... '); writeln('Вычисление прекратится, когда модуль очередного слагаемого станет меньше 0,001'); используется цикл while'); writeln(); s:=0; i:=1; t:=1; while t>eps do begin t:=1/(i*i); s:=s+t; //writeln('i=',i,' T=',t:0:6,' S=',s:0:6); i:=i+1; end; writeln('s=',s:0:6,' (pi^2)/6=',(pi*pi)/6:0:6); writeln('Приближение к (pi^2)/6 равно ',s-(pi*pi)/6:0:6); end.
Не лишу себя удовольствия показать еще одно очень красивое и очень странное решение через словари.
n = int(input())
print({1<=n<=4: "Начальная школа",
5<=n<=9: "Среднее звено",
10<=n<=11: "Старшее звено"}[True])
Здесь мы создаем неименованный словарь, который в качестве ключа использует условное выражение, а в качестве значения - соответствующую этому выражению строку.
Когда мы тут же передаем ему в качестве ключа True, словарь начнет проверять ключи и вернет именно то значение, у которого выражение-ключ было истинным.
Program Markovsp1;
uses crt;
const
eps=0.001;
var
t,s:real;
i:integer;
begin
writeln('*** alphaues is thinking... ***');
writeln('*** OK ***');
writeln();
writeln('Программа вычисляет частичную сумму ряда ');
writeln(' S=1+1/(2^2)+1/(3^2)+1/(4^2)+... ');
writeln('Вычисление прекратится, когда модуль очередного слагаемого станет меньше 0,001');
используется цикл repeat');
writeln();
s:=0;
i:=1;
repeat
t:=1/((i)*(i));
s:=s+t;
//writeln('i=',i,' T=',t:0:6,' S=',s:0:6);
i:=i+1;
until abs(t)<eps;
writeln('s=',s:0:6,' (pi^2)/6=',(pi*pi)/6:0:6);
writeln('Приближение к (pi^2)/6 равно ',s-(pi*pi)/6:0:6);
end.
Program Markovsp2;
uses crt;
const
eps=0.001;
var
t,s:real;
i:integer;
begin
writeln('*** alphaues is thinking... ***');
writeln('*** OK ***');
writeln();
writeln('Программа вычисляет частичную сумму ряда ');
writeln(' S=1+1/(2^2)+1/(3^2)+1/(4^2)+... ');
writeln('Вычисление прекратится, когда модуль очередного слагаемого станет меньше 0,001');
используется цикл while');
writeln();
s:=0;
i:=1;
t:=1;
while t>eps do
begin
t:=1/(i*i);
s:=s+t;
//writeln('i=',i,' T=',t:0:6,' S=',s:0:6);
i:=i+1;
end;
writeln('s=',s:0:6,' (pi^2)/6=',(pi*pi)/6:0:6);
writeln('Приближение к (pi^2)/6 равно ',s-(pi*pi)/6:0:6);
end.
Не лишу себя удовольствия показать еще одно очень красивое и очень странное решение через словари.
n = int(input())
print({1<=n<=4: "Начальная школа",
5<=n<=9: "Среднее звено",
10<=n<=11: "Старшее звено"}[True])
Здесь мы создаем неименованный словарь, который в качестве ключа использует условное выражение, а в качестве значения - соответствующую этому выражению строку.
Когда мы тут же передаем ему в качестве ключа True, словарь начнет проверять ключи и вернет именно то значение, у которого выражение-ключ было истинным.