Нужен алгоритм нахождения факториала и дискриминанта в программе С++, есть пример алгоритма другого задания, но нужно сделать так же только для факториала и дискриминанта Алгоритм:
1.Начало
2.Ввести с клавиатуры начальное значение и шаг.
3.Объявить обьект для сохранения в файл, используя библиотеку fstream, с заданием имени файла электронной таблицы.
4.Присвоить аргументу х, начальное значение.
5.В цикле, с проверкой на конец значения х, вычислить значение функции у(х).
6.В цикле вывести значение аргумента х и значение функции у(х) на экран.
7.В цикле вывести значение аргумента х и значение функции у(х) в файл Excel.
8.В цикле увеличить значение аргумента на шаг.
9.Конец.
{ сортирует символы строки методом Шелла }
var
i, j, n, step: integer;
c: char;
begin
s := Trim(s);
n := Length(s);
step := n div 2;
while step > 0 do
begin
for j := n - step downto 1 do
begin
i := j;
while i <= n - step do
begin
if s[i] > s[i + step] then
begin
c := s[i];
s[i] := s[i + 1];
s[i + 1] := c
end;
i := i + step
end
end;
step := step div 2
end
end;
procedure TrimNullsLeft(var s: string);
{ Усекает левые (незначащие нули) в строке s }
var
i, n: integer;
begin
i := 1; n := Length(s);
while (s[i] = '0') do i := i + 1;
s := Copy(s, i, n - i + 1)
end;
var
p: integer;
s, M, N: string;
f: text;
begin
Assign(f, 'input.txt');
Reset(f);
Readln(f, s);
Close(f);
Assign(f, 'output.txt');
Rewrite(f);
s := Trim(s);
p := Pos(' ', s);
M := Copy(s, 1, p - 1);
N := Copy(s, p + 1, Length(s) - p);
s := M + N;
ShellStr(s);
TrimNullsLeft(s);
Writeln(f, s);
Close(f);
Writeln('Программа завершила работу')
end.
Гипотенуза пересекает ось Х в точке с координатами (х1; 0), а ось Y - в точке с координатами (0;y2). Найдем эти координаты, считая коэффициенты a и b в уравнении прямой заданными.
Теперь можно определить номера четвертей n, в которых располагается гипотенуза.
var
a, b: integer;
f: Text;
begin
Assign(f, 'input.txt');
Reset(f);
Readln(f, a, b);
Close(f);
Assign(f, 'output.txt');
Rewrite(f);
if a < 0 then
if b < 0 then Writeln(f, '3') else Writeln(f, '1')
else
if b < 0 then Writeln(f, '4') else Writeln(f, '2');
Close(f)
end.