sleeplessness5
12.12.2020 09:21

Составить рекурсивную функцию, которая находит k-е число последовательности, описанной в для самостоятельной работы 3 (к тематическому занятию 3), значение k задается пользователем. учесть ограничения, накладываемые диапазоном возможных значений используемого типа данных. вывести на экран таблицу трассировки значений переменных, используемых для рекурсивных вычислений. обязательные поля таблицы: текущий уровень рекурсии, значения на рекурсивном спуске, значения на рекурсивном возврате.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Mpazd
12.04.2021 16:04

Відповідь:

#include <iostream>

using namespace std;

int n, i, j, k;

double d, s;

int main()

{

cout << "Poryadok: " << endl;

cin >> n;

double **a = new double *[n];

for (i = 0; i <= n; i++)

a[i] = new double [n];

double **a1 = new double *[n];

for (i = 0; i <= n; i++)

a1[i] = new double [n];

double *b = new double [n];

double *x = new double [n];

cout << "Vvedite koefficienty i svobodnye chleny " << endl;

for (i = 1; i <= n; i++)

{

for (j = 1; j <= n; j++)

{

cout << "a[ " << i << "," << j << "]= ";

cin >> a[i][j];

a1[i][j] = a[i][j];

}

cout << "b,[ " << i << "]= ";

cin >> b[i];

}

for (k = 1; k <= n; k++) // прямой ход

{

for (j = k + 1; j <= n; j++)

{

d = a[j][k] / a[k][k]; // формула (1)

for (i = k; i <= n; i++)

{

a[j][i] = a[j][i] - d * a[k][i]; // формула (2)

}

b[j] = b[j] - d * b[k]; // формула (3)

}

}

for (k = n; k >= 1; k--) // обратный ход

{

d = 0;

for (j = k + 1; j <= n; j++)

{

s = a[k][j] * x[j]; // формула (4)

d = d + s; // формула (4)

}

x[k] = (b[k] - d) / a[k][k]; // формула (4)

}

cout << "Korni sistemy: " << endl;

for( i = 1; i <= n; i++)

cout << "x[" << i << "]=" << x[i] << " " << endl;

return 0;

}

Пояснення:

0,0(0 оценок)
Ответ:
Слендер12
10.06.2022 12:06

//PascalABC.NET версия 3.2, сборка 1389

//Если программа не запускается, то обновите версию

uses System.Linq;

begin

   writeln('III');

   var a := ReadArrInteger('Документы', ReadInteger('n=')).ToList;

   writeln;

   

   while a.Any() do

   begin

       write(a[0], ' ');

       a.RemoveAt(0);

       if not a.Any then break;

       

       write(a.Last, ' ');

       a.RemoveAt(a.Count - 1);

       if not a.Any then break;

       

       var n := 0;

       if a.Count > 1 then n := a.Count div 2 - 1;

       write(a[n], ' ');

       a.RemoveAt(n);

   end;

end.

Объяснение:

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