Упражнение: * Разработайте и разработайте класс рациональных чисел, называемый рациональным.
* Рациональное число состоит из двух частей:
* 1. числитель.
* 2. знаменатель
* Например: 1/3, 2/5, 7/3,...
* Обеспечивает функции сложения, вычитания, умножения, меньшего, большего,
* деления и равенства для выполнения логических/математических операций между
* два объекта рационального типа.
* Также добавьте "конструкторы (по умолчанию/общие)", "деструкторы", "добытчики", "установщики" и т.д.
*/
C++
// PascalABC.NET 3.2, сборка 1389 от 01.03.2017
// Внимание! Если программа не работает, обновите версию!
begin
var F:real->real:=x->2*x*x-6*x+8;
var a,b:real;
Write('a b= '); Read(a,b);
Writeln('Min=',Range(a,b,9).Select(x->F(x)).Min)
end.
Пример
a b= -2 6
Min=3.50617283950617
2. Решение "по-школьному" ("дедушкин метод")
function F(x:real):real;
begin
F:=2*x*x-6*x+8
end;
var
a,b,y,h,min:real;
i:integer;
begin
Write('a b= '); Read(a,b);
h:=(b-a)/9;
min:=F(a);
for i:= 1 to 9 do begin
y:=F(a+i*h);
if y<min then min:=y
end;
Writeln('Min=',min)
end.
Пример
a b= -2 6
Min=3.50617283950617
Цикл с параметром был уже рассмотрен нами в разделе "Алгоритм" в теме "Виды алгоритмов".
Цикл с параметром используется, когда заранее известно сколько раз должен выполниться цикл.
Формат записи цикла:
For <пар.цикла> := <нач.знач> to <кон.знач.> do <оператор>
Здесь for, to, do - зарезервированные слова (для, до, выполнить);
<пар. цикла> - параметр цикла – переменная целочисленного типа (типа integer);
<нач. знач.> - начальное значение - число или переменная целочисленного типа (типа integer);
<кон. знач.> - конечное значение - число или переменная целочисленного типа (типа integer);
<оператор> - произвольный оператор Паскаля.
Пример: For i:=1 to n do <оператор>
здесь i - параметр цикла
1 - начальное значение
n - конечное значение
Если в теле цикла используется несколько операторов, тогда, используются операторные скобки: begin ... end.
При выполнении оператора for вначале вычисляется выражение <нач .знач.> и осуществляется присваивание его значения переменной цикла <пар .цикла> := <нач. знач.>. Далее сравниваются <пар .цикла> и <кон.знач.>. До тех пор, пока они не станут равными будет выполняться оператор (операторы). Значение переменной цикла <нач.знач> автоматически увеличивается на единицу в ходе выполнения цикла. Надо сразу заметить, что задать шаг цикла, отличный от 1 в этом операторе нельзя.
Объяснение: