PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018 Внимание! Если программа не работает, обновите версию!
function gcd(a,b:integer):integer; // НОД begin while b<>0 do begin a:=a mod b; Swap(a,b) end; Result:=a end;
procedure RedFrac(var a,b:integer); // сокращение дроби begin var (sgna,sgnb):=(Sign(a),Sign(b)); // мы должны учитывать знак! (a,b):=(Abs(a),Abs(b)); var d:=gcd(a,b); a:=(a div d)*sgna; b:=(b div d)*sgnb end;
begin var (a,b):=ReadInteger2('Введите числитель и знаменатель 1-й дроби:'); var (c,d):=ReadInteger2('Введите числитель и знаменатель 2-й дроби:'); (a,b):=(a*c,b*d); RedFrac(a,b); Writeln('Результат умножения: ',a,' / ',b) end.
Пример Введите числитель и знаменатель 1-й дроби: 32 1024 Введите числитель и знаменатель 2-й дроби: 60 300 Результат умножения: 1 / 160
В качестве бонуса - решение на базе входящей в состав PascalABC.NET библиотеки численных методов
uses NumLibABC;
begin var (a,b):=ReadInteger2('Введите числитель и знаменатель 1-й дроби:'); var (c,d):=ReadInteger2('Введите числитель и знаменатель 2-й дроби:'); Writeln('Результат умножения: ',Frc(a,b)*Frc(c,d)) end.
Задача 1. Общее количество символов: 50*85*15= 63750 Один символ кодируется 8 битами или 1 байтом, следовательно объем текста = 63750 байт = 62,26 Кбайт
Задача 2. Количество символов на странице: 60*64 = 3840 Разделив объем текста (в байтах) на количество символов на странице получим количество страниц: (9*1024)/3840 = 2,4 Следовательно ответ: 3 страницы
Задача 3. Время передачи файла можно определить разделив объем файла( переведя в биты) на скорость передачи t= (9*1024*8)/256 = 288 сек.
Задача 4. В тексте содержится 51 символ, на каждый символ приходится 1 байт, следовательно фраза содержит 51 байт информации.
Внимание! Если программа не работает, обновите версию!
function gcd(a,b:integer):integer; // НОД
begin
while b<>0 do begin a:=a mod b; Swap(a,b) end;
Result:=a
end;
procedure RedFrac(var a,b:integer); // сокращение дроби
begin
var (sgna,sgnb):=(Sign(a),Sign(b)); // мы должны учитывать знак!
(a,b):=(Abs(a),Abs(b));
var d:=gcd(a,b);
a:=(a div d)*sgna; b:=(b div d)*sgnb
end;
begin
var (a,b):=ReadInteger2('Введите числитель и знаменатель 1-й дроби:');
var (c,d):=ReadInteger2('Введите числитель и знаменатель 2-й дроби:');
(a,b):=(a*c,b*d);
RedFrac(a,b);
Writeln('Результат умножения: ',a,' / ',b)
end.
Пример
Введите числитель и знаменатель 1-й дроби: 32 1024
Введите числитель и знаменатель 2-й дроби: 60 300
Результат умножения: 1 / 160
В качестве бонуса - решение на базе входящей в состав PascalABC.NET библиотеки численных методов
uses NumLibABC;
begin
var (a,b):=ReadInteger2('Введите числитель и знаменатель 1-й дроби:');
var (c,d):=ReadInteger2('Введите числитель и знаменатель 2-й дроби:');
Writeln('Результат умножения: ',Frc(a,b)*Frc(c,d))
end.
Общее количество символов: 50*85*15= 63750
Один символ кодируется 8 битами или 1 байтом, следовательно объем текста = 63750 байт = 62,26 Кбайт
Задача 2.
Количество символов на странице: 60*64 = 3840
Разделив объем текста (в байтах) на количество символов на странице получим количество страниц: (9*1024)/3840 = 2,4
Следовательно ответ: 3 страницы
Задача 3.
Время передачи файла можно определить разделив объем файла( переведя в биты) на скорость передачи
t= (9*1024*8)/256 = 288 сек.
Задача 4.
В тексте содержится 51 символ, на каждый символ приходится 1 байт, следовательно фраза содержит 51 байт информации.