Напишите программу, которая бы выполняла перевод единиц измерения. За основу можете взять код, приведенный
в уроке.
В программе должны быть:
1. Ввод значения – функция input().
2. Перевод единиц измерения.
3. Вывод значения – функция print().
На свое усмотрение, можете усовершенствовать программу, дополнив разными функциями. Выбор единиц измерения
на ваше усмотрение.
Результат работы: файл с расширением .py.
Выбор ПО на ваше усмотрение: Atom, PyCharm, Python IDLE.
Пример выполненной работы
Например, необходимо перевести единицы измерения
количества информации. Воспользуемся таблицей (см. рис.
1 на стр. 2).
Допустим, переводим гигабайты в мегабайты. То число,
которое ввел пользователь, следует умножить на 1024, согласно таблице.
В результате будет такая формула:
m = n*1024,
где n – число, которое ввел пользователь,
а m – результат вычислений.
Чтобы выполнить обратное преобразование, т. е. из мегабайтов в гигабайты, необходимо делить на 1024. Таким
образом, формула имеет вид:
m = n÷1024,
где n – число, которое ввел пользователь,
а m – результат вычислений.
//PascalABC.NET (версия 3.1, сборка 1196 от 09.03.2016)
Var n, i: integer;
Begin
writeln ('Введите число');
readln(n);
writeln('Делители числа:');
for i := 1 to n div 2 do
if (n mod i) = 0 then begin
write(i,' ');
end;
End.
Задача №2 (алгоритм не очень шустрый, но работает и понятный)
//PascalABC.NET (версия 3.1, сборка 1196 от 09.03.2016)
var
a, b, x, y, nod: integer;
begin
writeln('Введите a,b');
readln(a, b);
x := a;y := b;
while x <> y do
if x > y
then x := x - y
else y := y - x;
nod := x;
writeln('NOD(', a, ',', b, ')=', nod);
end.
procedure nod( var dv,tr,pt,dv1,tr1,pt1,dv2,tr2,pt2 :real; );
var a:array[1..6] of real;
i : integer;
begin
dv1:=100;
tr1:=100;
pt1:=100;
for i:= low(a) to high (a) do begin
readln(a[i]);
repeat
if( (a[i] mod 2) =0) then begin
a[i]:=a[i]/2;
dv:=dv+1;
end
else if( ( a[i] mod 3)=0) then begin
a[i]:=a[i]/3;
tr:=tr+1;
end
else if ( ( a[i] mod 5)=0) then begin
a[i]:=a[i]/5;
pt:=pt+1;
end;
untill(a=1);
if dvif trif ptdv:=0;
tr:=0;
pt:=0;
end;
if dv1>0 then dv2:=dv1*2 else dv2:=1;
if tr1>0 then tr2:=tr1*3 else tr2:=1;
if pt1>0 then pt2:=pt1*5 else pt2:=1;
nod:=dv2*tr2*pt2;
writeln(nod);
end;
begin
nod( dv,tr,pt,dv1,tr1,pt1,dv2,tr2,pt2 );
end.
end;