martabunova
?>

Ниже записаны две рекурсивные функции (процедуры): f и g.сколько символов «звёздочка» будет напечатано на экране при выполнении вызова f(12)? procedure f(n: integer); begin writeln('*'); if n > 0 then begin writeln('*'); g(n - 1); end; end; procedure g(n: integer); begin writeln('*'); if n > 1 then begin writeln('*'); f(n - 2); end; end; можете подробно расписать

Информатика

Ответы

rimmaskis
N=12
F (12) печатает * *
  вызывает G(11)   **
F(9) печатает     **
   вызывает G(8) 8**
F(6)   **
   G(5)  **
F(3)  **
   G(2) **
F(1) *    и идёт вызов G(0)  и n>1 не выполняется и > выход
Итого 17 *
( в Вашей программе ошибки, посмотрите мою)
annasv8
Для того, чтобы эта программа заработала надо добавить перед описанием процедуры F следующую строчку:
procedure G(n: integer);forward;
Так как в процедуре F есть вызов процедуры G описанной дальше по тексту программы.
После исправления кода и запуска программы с F(12) получим 17 звездочек. По шагам это будет выглядеть так:

 Вызов процедуры F и выполнение
* n = 12
* n = 12
Вызов процедуры G и выполнение
* n = 11
* n = 11
Вызов процедуры F и выполнение
* n = 9
* n = 9
Вызов процедуры G и выполнение
* n = 8
* n = 8
Вызов процедуры Fи выполнение
* n = 6
* n = 6
Вызов процедуры G и выполнение
* n = 5
* n = 5
Вызов процедуры F и выполнение
* n = 3
* n = 3
Вызов процедуры G и выполнение
* n = 2
* n = 2
Вызов процедуры F и выполнение
* n = 0

Ниже записаны две рекурсивные функции (процедуры): f и g.сколько символов «звёздочка» будет напечата
admin8808

using System;

using System.Collections.Generic;

using System.Linq;

namespace Prog

{

   class Program

   {

       static void Main(string[] args)

       {

           List<double> array = new List<double>() { 7, 25, 4.5, 0, 17, 61, -10, 0, 1, -4, 22 };

           // TASK 5

           int positive, negative, zero;

           var tmp = array.FindAll(x => x > 0);

           positive = tmp.Count;

           tmp = array.FindAll(x => x == 0);

           zero = tmp.Count;

           negative = array.Count - zero - positive;

           Console.WriteLine($"Кол-во полож. элементов: {positive}\n\rКол-во нулевых элементов: {zero}\n\rКол-во отриц. элементов: {negative}");

           // TASK 6  

           double prv = 1;

           for (int i = 0; i < array.Count; ++i)

           {

               if (array[i] != 0)

               {

                   prv *= array[i];

               }

           }

           Console.WriteLine($"Произведение ненулевых элементов равно: {prv}");

           Console.ReadKey();

       }

   }

}

Объяснение:

Taniagrachev

const e=0.0001; // точность

var gold: real; // пропорция "Золотого сечения"

   a,b: real; // начало и конец отрезка

   x1,x2: real; // точки деления

   y1,y2: real; // значения целевой функции в точках деления

 

function f(x:real):real; // целевая функция

begin

f:=x*x*x-8*x+1-5*sin(x);

end;

 

begin

gold:=(sqrt(5)+1)/2;

a:=-5;

b:=5;

repeat

x1:=b-((b-a)/gold);

x2:=a+((b-a)/gold);

y1:=f(x1);

y2:=f(x2);

if(y1<=y2) then a:=x1 else b:=x2; // условие - поиск максимума

until abs(y2-y1)<e;

writeln('max(',(x1+x2)/2:0:3,',',(y1+y2)/2:0:3,')'); // середина интервала

a:=-5;

b:=5;

repeat

x1:=b-((b-a)/gold);

x2:=a+((b-a)/gold);

y1:=f(x1);

y2:=f(x2);

if(y1>=y2) then a:=x1 else b:=x2; // условие - поиск минимума

until abs(y2-y1)<e;

writeln('min(',(x1+x2)/2:0:3,',',(y1+y2)/2:0:3,')');

End.

Объяснение:

Думаю код ясен.

f(X)=x*x*x-8*x+1-5*sinx

max(-1.612,14.703) min( 1.612,-12.703)

0

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Ниже записаны две рекурсивные функции (процедуры): f и g.сколько символов «звёздочка» будет напечатано на экране при выполнении вызова f(12)? procedure f(n: integer); begin writeln('*'); if n > 0 then begin writeln('*'); g(n - 1); end; end; procedure g(n: integer); begin writeln('*'); if n > 1 then begin writeln('*'); f(n - 2); end; end; можете подробно расписать
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Olga1233
antoska391
kirieskamod262
prettymarina2015
Igorevich1512
vfilina
Марина
Rik200081490
yuliyastatsenko3894
smartschoolfili6
savenko0109152
Marianna45
Бражинскене_Алексей
VASILEVNA
vanvangog199826