Прочитать п.3.3.1, выписать в тетрадь стандартные функции Паскаля. Написать ответы: что выдает программа n_3 стр. 121 при х=10.2, х=10.8, х=-10.2 х=-10.8
function gcd(a: integer; b: integer): integer; {Нахождение НОД} var i: integer; begin while b <> 0 do begin a := a mod b; i := b; b := a; a := i end; result := a end;
function RedFrac(a: Frac): Frac; {Сокращение дроби} var igcd: integer; r: Frac; begin igcd := gcd(a.P, a.Q); r.P := a.P div igcd; r.Q := a.Q div igcd; RedFrac := r end;
function Add(a, b: Frac): Frac; {Сложение дробей} var r: Frac; begin r.P := a.P * b.Q + b.P * a.Q; r.Q := a.Q * b.Q; Add := RedFrac(r) end;
function Mult(a, b: Frac): Frac; {Умножение дробей} var r: Frac; begin r.P := a.P * b.P; r.Q := a.Q * b.Q; Mult := RedFrac(r) end;
var m, n, k: Frac;
begin m.P := 4; m.Q := 15; {4/15} n.P := 9; n.Q := 25; {9/25} k := Add(m, n); Writeln(k.P, '/', k.Q); k := Mult(m, n); Writeln(k.P, '/', k.Q); end.
Могу реализацию на питоне предложить, писать меньше, чем на c ++.
import random
a = []
count = 0
for i in range (20):
a.append(random.randint(1000)
for i in a:
if i % 2 == 0:
count += 1
print (count)
Примечания.
Там, где пробел между текстом и скобками, он не нужен (здесь просто без них написать не даёт). Так же нужно следить за отступами, чтобы компилятор не ругался. Если рандомный список вы всё-таки решите считывать, то меняете в первом цикле после append(int(input()).
Randint даёт рандомное число на указанном промежутке, если нужен промежуток больше, просто меняйте цифру в скобках. Count - счётчик.
Frac = record
P: integer;
Q: 1..32767
end;
function gcd(a: integer; b: integer): integer;
{Нахождение НОД}
var
i: integer;
begin
while b <> 0 do
begin
a := a mod b;
i := b; b := a; a := i
end;
result := a
end;
function RedFrac(a: Frac): Frac;
{Сокращение дроби}
var
igcd: integer;
r: Frac;
begin
igcd := gcd(a.P, a.Q);
r.P := a.P div igcd;
r.Q := a.Q div igcd;
RedFrac := r
end;
function Add(a, b: Frac): Frac;
{Сложение дробей}
var
r: Frac;
begin
r.P := a.P * b.Q + b.P * a.Q;
r.Q := a.Q * b.Q;
Add := RedFrac(r)
end;
function Mult(a, b: Frac): Frac;
{Умножение дробей}
var
r: Frac;
begin
r.P := a.P * b.P;
r.Q := a.Q * b.Q;
Mult := RedFrac(r)
end;
var
m, n, k: Frac;
begin
m.P := 4; m.Q := 15; {4/15}
n.P := 9; n.Q := 25; {9/25}
k := Add(m, n);
Writeln(k.P, '/', k.Q);
k := Mult(m, n);
Writeln(k.P, '/', k.Q);
end.
Результат выполнения программы:
47/75
12/125
Могу реализацию на питоне предложить, писать меньше, чем на c ++.
import random
a = []
count = 0
for i in range (20):
a.append(random.randint(1000)
for i in a:
if i % 2 == 0:
count += 1
print (count)
Примечания.
Там, где пробел между текстом и скобками, он не нужен (здесь просто без них написать не даёт). Так же нужно следить за отступами, чтобы компилятор не ругался. Если рандомный список вы всё-таки решите считывать, то меняете в первом цикле после append(int(input()).
Randint даёт рандомное число на указанном промежутке, если нужен промежуток больше, просто меняйте цифру в скобках. Count - счётчик.