В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
TheAlexKillGame
TheAlexKillGame
04.02.2021 04:52 •  Информатика

Нужен алгоритм нахождения факториала и дискриминанта в программе С++, есть пример алгоритма другого задания, но нужно сделать так же только для факториала и дискриминанта Алгоритм:
1.Начало
2.Ввести с клавиатуры начальное значение и шаг.
3.Объявить обьект для сохранения в файл, используя библиотеку fstream, с заданием имени файла электронной таблицы.
4.Присвоить аргументу х, начальное значение.
5.В цикле, с проверкой на конец значения х, вычислить значение функции у(х).
6.В цикле вывести значение аргумента х и значение функции у(х) на экран.
7.В цикле вывести значение аргумента х и значение функции у(х) в файл Excel.
8.В цикле увеличить значение аргумента на шаг.
9.Конец.

Показать ответ
Ответ:
AnnaSind
AnnaSind
13.08.2020 04:48
procedure ShellStr(var s: string);
{ сортирует символы строки методом Шелла }
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.
0,0(0 оценок)
Ответ:
xile4t
xile4t
14.05.2021 01:57
Заданная уравнением прямая всегда будет гипотенузой прямоугольного треугольника, а его прямой угол всегда будет лежать в точке пересечения осей координат. Таким образом, размещение гипотенузы всегда будет определять четверть, в которой находится треугольник.
Гипотенуза пересекает ось Х в точке с координатами (х1; 0), а ось Y - в точке с координатами (0;y2). Найдем эти координаты, считая коэффициенты a и b в уравнении прямой заданными.
y=ax+b \\ y_1=ax_1+b; \ y_1=0 \to x_1=- \frac{b}{a} \\ y_2=ax_2+b; \ x_2=0 \to y_2=b
Теперь можно определить номера четвертей n, в которых располагается гипотенуза.
n=\begin {cases} 1, \ a<0, \, b0 \\ 2, \ a0, \, b0 \\ 3, \ a<0, \, b<0 \\ 4, \ a0, \, b<0 \end {cases}

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.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота