рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Вопрос Рекурсия. Рекурсивные функции.

Вопрос Рекурсия. Рекурсивные функции. - раздел История, Вопрос Краткая история развития вычислительной техники ВТ Реку́рсия — Процесс Повторения Элементов Самоподобным Образом. Например,...

Реку́рсия — процесс повторения элементов самоподобным образом. Например, если два зеркала установить друг напротив друга, то возникающие в них вложенные отражения суть одна из форм бесконечной рекурсии.Термин «рекурсия» используется в различных специальных областях знаний — от лингвистики до логики, но наиболее широкое применение находит в математике и информатике. В математике и информатике рекурсия имеет отношение к методу определения функций: рекурсивно заданная функция в своём определении содержит себя, в частности, рекурсивной является функция, заданная рекуррентной формулой. Таким образом, можно одним выражением дать бесконечный набор способов вычисления функции, определить множество объектов через самого себя с использованием ранее заданных частных определений.

В программировании рекурсия — вызов функции (процедуры) из неё же самой, непосредственно (простая рекурсия) или через другие функции (сложная или косвенная рекурсия), например, функция вызывает функцию , а функция — функцию . Количество вложенных вызовов функции или процедуры называется глубиной рекурсии.

Преимущество рекурсивного определения объекта заключается в том, что такое конечное определение теоретически способно описывать бесконечно большое число объектов. С помощью рекурсивной программы же возможно описать бесконечное вычисление, причём без явных повторений частей программы.

Реализация рекурсивных вызовов функций в практически применяемых языках и средах программирования, как правило, опирается на механизм стека вызовов — адрес возврата и локальные переменные функции записываются в стек, благодаря чему каждый следующий рекурсивный вызов этой функции пользуется своим набором локальных переменных и за счёт этого работает корректно. Оборотной стороной этого довольно простого по структуре механизма является то, что на каждый рекурсивный вызов требуется некоторое количество оперативной памяти

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

Имеется специальный тип рекурсии, называемый «хвостовой рекурсией». Интерпретаторы и компиляторы функциональных языков программирования, поддерживающие оптимизацию кода (исходного или исполняемого), автоматически преобразуют хвостовую рекурсию к итерации, благодаря чему обеспечивается выполнение алгоритмов с хвостовой рекурсией в ограниченном объёме памяти. Такие рекурсивные вычисления, даже если они формально бесконечны (например, когда с помощью рекурсии организуется работа командного интерпретатора, принимающего команды пользователя), никогда не приводят к исчерпанию памяти. Однако, далеко не всегда стандарты языков программирования чётко определяют, каким именно условиям должна удовлетворять рекурсивная функция, чтобы транслятор гарантированно преобразовал её в итерацию. Одно из редких исключений — язык Scheme (диалект языка Lisp), описание которого содержит все необходимые сведения.

Любую рекурсивную функцию можно заменить циклом и стеком.

 

 

12 вопрос Массивы в языке Паскаль.

Поговорим о массивах в Паскале. Массив представляет собой последовательность элементов одного типа. Каждый массив характеризуется следующими особенностями:

каждый компонент, входящий в массив, можно обозначить явно и к нему устанавливается прямой доступ,

кол-во компонент, входящих в массив, может быть определено при его описании и в последующем не изменяется.

Чтобы обозначить компонент массива, используют имя переменной (переменной-массива), а также индексы, которые указывают необходимый элемент. Индекс может иметь только порядковый тип (за исключением longint). Часто используют интервальный тип (отрезок, диапазон). Приведем описание типа массива:

 

имя типа - правильный идентификатор;

список индексов - совокупность одного, либо нескольких индексных типов, которые отделяются друг от друга запятыми;

тип - всякий тип данных.

При работе с программой в Паскале массивы можно как вводить, так и выводить, лишь по одному элементу.

Одномерным массивом называется фиксированное число элементов одинакового типа.

Вот пример программы на одномерный массив: ввод и вывод.

 

Определение переменной в качестве массива возможно при ее описании без первоначального описания типа используемого массива:

 

В случае, когда массивы a и b описываются следующим образом:

 

то у переменных a и b будет разный тип. Чтобы обеспечить совместимость типов необходимо описать переменные через первоначальное описание типа. Если массивы имеют идентичные типы, то в исходном коде программы один массив можно присвоить другому. В соответствии с этим значения переменных одного массива присваиваются значениям элементов другого массива. Для массивов в Паскале не определены операции отношения. Сравнение двух массивов возможно только по каждому элементу.

Многомерные массивы - массивы, каждым элементом которых являются массивы.

Представим примеры описания двумерных массивов.

Пример 1.

 

Пример 2.

 

Глубина вложенности массивов представляется произвольной, вследствие этого размерность массива (число элементов, входящих в состав списка индексных типов) не ограничена, но не может превышать 65520 байт.

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

 

Чтобы красиво вывести на экран двумерный массив, используйте конструкцию вида:

 

 

– Конец работы –

Эта тема принадлежит разделу:

Вопрос Краткая история развития вычислительной техники ВТ

Вопрос Классификация ЭВМ... Рассмотрим некоторые из наиболее популярных классификаций... по принципу действия Критерием деления вычислительных машин здесь является форма представления информации с...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Вопрос Рекурсия. Рекурсивные функции.

Что будем делать с полученным материалом:

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

Все темы данного раздела:

Вопрос Краткая история развития вычислительной техники (ВТ).
  История развития средств инструментального счета позволяет лучше понять действие современных вычислительных машин. Как говорил Лейбниц: "Кто хочет ограничиться настоящим без зн

Вопрос Понятие о машинном языке
Машинный язык - система команд, непосредственно понимаемых аппаратурой данной электронно-вычислительной системы. Как следствие этого, машинный язык однозначно определяется системой команд процессор

Вопрос 3 Язык Паскаль. Структура Паскаль-программы.
Паскаль (англ. Pascal) — язык программирования общего назначения. Один из наиболее известных языков программирования[4], используется для обучения программированию в старших классах и на первых кур

Вопрос Типы данных в языке Паскаль.
В языке программирования Паскаль достаточно много типов данных. Кроме того, сам пользователь может определять свои типы данных. Тип переменной определяется тем, с какими данными она связан

Команды вывода на экран текста или (и) значения переменных
WRITE ( ); - выводит на экран, указанные в скобках параметры, курсор остается в этой же строке. WRITELN ( ); - выводит на экран, указанные в скобках параметры,

Команда ввода (считывания) с клавиатуры значения переменных во время работы программы
READ ( ); или READLN ( ); - считывает перечисленные в скобках переменные значения, введенные с клавиатуры (через пробел или после каждого значения нажимают Enter) Если значения вво

Вопрос Функции пользователя в языке Паскаль.
Функции в Паскале Подпрограмма - автономная часть программы, выполняющая определенный алгоритм и допускающая обращение к ней из различных частей общей программы. В языке Паскаль с

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

Вопрос Объектно-ориентированное программирование.
Объектно-ориентированное программирование оперирует объектами и классами. Эта парадигма развилась из процедурного программирования, в котором алгоритмы и субъекты применения алгоритмов (память, рег

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

Вопрос 18. Структура и архитектура ЭВМ.
Архитектура компьютера — логическая организация и структура аппаратных и программных ресурсов вычислительной системы. Архитектура заключает в себе требования к функциональности и принципы организац

Вопрос Процессор.
Центральный процессор (CPU, от англ. Central Processing Unit) — это основной рабочий компонент компьютера, который выполняет арифметические и логические операции, заданные программой,

Вопрос Внутренняя и внешняя память
Кроме устройств ввода/выводы информации компьютер также имеет внутреннюю и внешнюю память. Внутренняя память — это электронное устройство, которое хранит информацию, пока питается электроэ

Вопрос УСТРОЙСТВА ВВОДА ДАННЫХ
Клавиатура Клавиатура (keyboard) – традиционное устройство ввода данных в компьютер. Клавиатурами оснащены как персональные компьютеры, так и терминалы мэйнфреймов. Клавиатура современного

Вопрос Базовое ПО. Операционные системы
Базовое ПО – это минимальный набор программных средств, обеспечивающих работу компьютера. В базовое ПО входят операционная система, операционные оболочки (текстовые и графические), сетевая операцио

Вопрос Прикладное ПО. Системы обработки текста.
Прикладная программа или приложение — программа, предназначенная для выполнения определенных пользовательских задач и рассчитанная на непосредственное взаимодействие с пользователем. Также на прост

Вопрос Базы данных и СУБД.
База данныхпозволяет упорядоченно хранить данные о большом количестве однотипных объектов, обладающих одинаковым набором свойств. Для хранения и обработки больших объемов информации

ВОПРОС Прикладное ПО. Электронные таблицы.
Прикладная программа или приложение — программа, предназначенная для выполнения определенных пользовательских задач и рассчитанная на непосредственное взаимодействие с пользователем. Также на прост

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

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

Локальные компьютерные сети. Топология сетей.
  Для связи с внешними (периферийными) устройствами компьютер имеет порты, через которые он способен передавать и принимать информацию. Если через эти порты соединить дв

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

Телекоммуникации. Сеть Интернет.
Что такое телекоммуникации, и какие бывают сети Необходимость обмениваться информацией на расстоянии существует издавна. Для этого придумано множество разных средств: почта и телеграф, тел

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги