Jump to content

Вложение (вычисления)

В информатике и информатике вложение [1] это когда информация организована по слоям или где объекты содержат другие подобные объекты. В каком-то смысле это почти всегда относится к самоподобным или рекурсивным структурам.

Терминология

[ редактировать ]

Вложенность может означать:

В таблицах

[ редактировать ]

В электронной таблице функции можно вкладывать друг в друга, образуя сложные формулы. Мастер функций приложения OpenOffice.org Calc позволяет перемещаться по нескольким уровням вложенности, [ нужны дальнейшие объяснения ] позволяя пользователю редактировать (и, возможно, исправлять) каждый из них отдельно.

Например:

=IF(SUM(C8:G8)=0,"Y","N")

В этой формуле Microsoft Excel функция СУММ вложена в функцию ЕСЛИ. Сначала формула вычисляет сумму чисел в ячейках от C8 до G8. Затем он решает, равна ли сумма 0, и отображает букву Y, если сумма равна 0, и букву N, если это не так.

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

Из-за потенциального скопления скобок только в одной строке кода редактирование и обнаружение ошибок (или отладка ) могут стать несколько неудобными . Вот почему современные среды программирования, а также программы работы с электронными таблицами выделяют жирным шрифтом пару, соответствующую текущей позиции редактирования. (Автоматический) контроль балансировки открывающей и закрывающей скобок известен как проверка соответствия скобок .

В программировании

[ редактировать ]

Структуры управления

[ редактировать ]

В структурированного программирования языках вложенность связана с включением управляющих структур одна в другую, что обычно обозначается различными уровнями отступов в исходном коде , как это показано в этой простой BASIC функции :

function LookupCode(sCode as string) as integer
  dim iReturnValue as integer
  dim sLine, sPath as string  

  sPath="C:\Test.dsv"
  if FileExists(sPath) then
    open sPath for input as #1
    do while not EOF(1)
      line input #1, sLine
      if sCode=left(sLine, 3) then
        'Action(s) to be carried out
      End if
    loop
    close #1
  End if
  LookupCode=iReturnValue
end function

В этом небольшом и простом примере условный блок «if... then... end if» вложен в блок «do while...».

Некоторые языки, такие как Паскаль и Ада, не имеют ограничений на объявления в зависимости от уровня вложенности, что позволяет создавать точно вложенные подпрограммы или даже вложенные пакеты (Ада). Вот пример обоих (упрощенный из реального случая):

-- Getting rid of the global variables issue (cannot be used in parallel)
-- from a set of old sources, without the need to change that code's
-- logic or structure.
--
procedure Nesting_example_1 is

  type Buffer_type is array(Integer range <>) of Integer;

  procedure Decompress(
    compressed  :  in Buffer_type;
    decompressed: out Buffer_type
  )
  is
    -- Here are the legacy sources, translated:
    package X_Globals is
      index_in, index_out: Integer;
      -- *** ^ These variables are local to Decompress.
      -- ***   Now Decompress is task-safe.
    end X_Globals;
    -- Methods 1,2,3,... (specifications)
    package X_Method_1 is
      procedure Decompress_1;
    end X_Method_1;
    -- Methods 1,2,3,... (code)
    package body X_Method_1 is
      use X_Globals;
      procedure Decompress_1 is
      begin
        index_in:= compressed'First;
        -- Here, the decompression code, method 1
      end Decompress_1;
    end X_Method_1;
    -- End of the legacy sources
  begin
    X_Method_1.Decompress_1;
  end Decompress;

  test_in, test_out: Buffer_type(1..10_000);

begin
  Decompress(test_in, test_out);
end Nesting_example_1;

Структуры данных

[ редактировать ]

Вложенные структуры данных также часто встречаются в программировании.

В языках функционального программирования , таких как Lisp , существует структура данных списка , а также более простая структура данных атома . [2]

  • Простые списки содержат только атомы. [2]
( A T O M S )

Атомы в списке — A, T, O, M и S.

  • Вложенные списки содержат как атомы, так и другие списки. [2]
( ( ( N E S T E D ) L I S T S ) ( C A N ) ( B E ) U N N E C E S S A R I L Y ( C O M P L E X ) )

См. также

[ редактировать ]
  1. ^ https://study.com/academy/lesson/nesting-loops-stan Программирование на C
  2. ^ Jump up to: а б с Себеста, Роберт В. (2012). Концепции языков программирования (печать) (10-е изд.). Бостон, Массачусетс, США: Аддисон-Уэсли. п. 49. ИСБН  978-0-13-139531-2 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: a74c6b9740dde49cf51954f9b234a5a8__1709083800
URL1:https://arc.ask3.ru/arc/aa/a7/a8/a74c6b9740dde49cf51954f9b234a5a8.html
Заголовок, (Title) документа по адресу, URL1:
Nesting (computing) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)