Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Топ:
Эволюция кровеносной системы позвоночных животных: Биологическая эволюция – необратимый процесс исторического развития живой природы...
Генеалогическое древо Султанов Османской империи: Османские правители, вначале, будучи еще бейлербеями Анатолии, женились на дочерях византийских императоров...
Методика измерений сопротивления растеканию тока анодного заземления: Анодный заземлитель (анод) – проводник, погруженный в электролитическую среду (грунт, раствор электролита) и подключенный к положительному...
Интересное:
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Дисциплины:
2017-07-01 | 1199 |
5.00
из
|
Заказать работу |
|
|
• Количество повторений тело заранее неизвестно.
• Решение о прекращении цикла принимается по результатам анализа текущей ситуации.
• В этом случае говорят о логически управляемых циклах.
• Любой цикл с управлением по счетчику можно построить с помощью логически управляемого цикла, но не наоборот.
• Языки С, С++, С#, java управление циклами:
1. Безусловный оператор break для выхода из цикла.
2. Безусловный оператор continue для досрочного прекращения текущей итерации с передачей управления на следующую итерацию цикла.
Особенности:
• Внутри всех выражений могут содержаться присваивания.
• Все выражения необязательны.
• Не существует явных счетчиков или параметров цикла.
• Все переменные, указанные в секции управления, могут изменяться в теле цикла.
• В качестве первого и третьего выражений разрешают применять составные выражения.
Отличия С++ от С:
• Для управления циклом он может использовать как арифметическое, так и булево выражение.
• Первое выражение может содержать определения переменных.
<Рекурсия>
• Описание объекта в терминах самого себя.
• С точки зрения математики- более простая форма организации повторений.
Простой пример рекурсии – ряд Фибоначчи1,1,2,3,5,8,13.
F(0)=1
F(1)=1
F(n)=F(n-2)+F(n-1) для n>2
• Подпрограмма называется рекурсивной, если она обращается к самой себе непосредственно, либо косвенно путем цепочки вызовов других функций.
Основные моменты:
• Основной недостаток – повторные вычисления. Необходимо ввести дополнительную структуру данных для запоминания значений, которые уже были вычислены – динамическое программирование сверху.
• Условие прекращения рекурсии – каждая рекурсивная подпрограмма должна предполагать такой вариант работы, когда нового рекурсивного вызова больше не производится и цепочка вызовов прекращается в исходной точке.
|
• Вызов с другим значением параметра - внутренний вызов нужно производить с модифицированным значением параметра.
Линейная рекурсия
• Линейная рекурсия – это рекурсия, при которой рекурсивные вызовы на любом рекурсивном срезе, инициируют не более одного последующего рекурсивного вызова.
Int factorial (int n){
If (n<1)
Return 1;
Else
Return n*factorial(n-1)}
Повторная рекурсия
• Частный случай линейной рекурсии с отсутствующими предварительными или отложенными вычислениями.
• Рекурсивный вызов внутри программы является последним оператором. Все действия программы в этом случае выполнены и внутренние состояния запоминать не нужно.
Int f (int n){
If n==0
Return 0;
Else if n%2==0 return f(n/2_;
Else return f(n-1)/2…}
Каскадная рекурсия
• Рекурсивные вызовы могут возникать более одного раза на одном рекурсивном срезе, образуя древовидную схему вызовов.
Int fibo (int n){
If(n<=1)
Return 1;
Else fibo (n-1)+ fibo (n-2);}
Удаленная рекурсия
• Если в теле функции при рекурсивных вызовах, в выражениях, являющихся фактическими параметрами, снова встречаются рекурсивные вызовы этой функции.
Int f(int i){
If(B1(n))
Return..;
Else
Return f(i-1);}
Взаимная рекурсия
• Циклическая последовательность вызовов несколько фунций F1, F2..Fk друг друга: F1 вызывает F2 и т.д.
• Практически всегда взаимную рекурсию можно свести к простой.
Int f1(int n){
If(n<1) return f2(n); вызывает}
62. Общая характеристика языков ассемблера: назначение, принципы построения и использования; структура языка.
Намечают три вида низкоуровневых языков
4) Машинный код
5) Мнемо код
6) Ассемблер, макроассемблер
Ассемблер - компьютерная программа, компилятор исходного текста программы, написанной на языке ассемблера, в программу на машинном языке.
Как и сам язык (ассемблера), ассемблеры, как правило, специфичны для конкретной архитектуры, операционной системы и варианта синтаксиса языка. Вместе с тем существуют мультиплатформенные или вовсе универсальные (точнее, ограниченно-универсальные, потому что на языке низкого уровня нельзя написать аппаратно-независимые программы) ассемблеры, которые могут работать на разных платформах и операционных системах.
|
Макроассемблеры является расширением ассемблера за счет включения макросредств
Машинный код – система команд конкретной вычислительной машины (процессора), которая интерпретируется непосредственно процессором. Команда, как правило, представляет собой целое число, которое записывается в регистр процессора. Процессор читает это число и выполняет операцию, которая соответствует этой команде.
Язык программирования низкого уровня (низкоуровневый язык программирования) – это язык программирования, максимально приближённый к программированию в машинных кодах. В отличие от машинных кодов, в языке низкого уровня каждой команде соответствует не число, а сокращённое название команды (мнемоника). Например, команда ADD – это сокращение от слова ADDITION (сложение). Поэтому использование языка низкого уровня существенно упрощает написание и чтение программ (по сравнению с программированием в машинных кодах). Язык низкого уровня привязан к конкретному процессору. Например, если вы написали программу на языке низкого уровня для процессора PIC, то можете быть уверены, что она не будет работать с процессором AVR.
Язык программирования высокого уровня – это язык программирования, максимально приближённый к человеческому языку (обычно к английскому, но есть языки программирования на национальных языках, например, язык 1С основан на русском языке). Язык высокого уровня практически не привязан ни к конкретному процессору, ни к операционной системе (если не используются специфические директивы).
Язык ассемблера – это низкоуровневый язык программирования, на котором вы пишите свои программы. Для каждого процессора существует свой язык ассемблера.
Ассемблер – это специальная программа, которая преобразует (компилирует) исходные тексты вашей программы, написанной на языке ассемблера, в исполняемый файл (файл с расширением EXE или COM). Если быть точным, то для создания исполняемого файла требуются дополнительные программы, а не только ассемблер.
|
63. Сериализация и десериализация. Методы сериализации объектов в базу данных.
Сериализация (в программировании) — процесс перевода какой-либо структуры данных в последовательность битов. Обратной к операции сериализации является операция десериализации (структуризации) — восстановление начального состояния структуры данных из битовой последовательности.
Сериализация используется для передачи объектов по сети и для сохранения их в файлы. Например, нужно создать распределённое приложение, разные части которого должны обмениваться данными со сложной структурой. В таком случае для типов данных, которые предполагается передавать, пишется код, который осуществляет сериализацию и десериализацию. Объект заполняется нужными данными, затем вызывается код сериализации, в результате получается, например, XML-документ. Результат сериализации передаётся принимающей стороне, например, по электронной почте или HTTP. Приложение-получатель создаёт объект того же типа и вызывает код десериализации, в результате получая объект с теми же данными, что были в объекте приложения-отправителя.
• Сериализация – процесс перевода какой-либо структуры данных в последовательность битов.
• Обратной к операции сериализации – десериализация – восстановление начального состояния структуры данных из битовой последовательности.
64. Динамическая диспетчеризация.
Динамический полиморфизм
• Динамический полиморфизм – структурная неопределенность сохраняется до этапа выполнения.
1. Вариантные и неограниченные записи – одна переменная может иметь значение разных типов.
2. Диспетчеризация во время выполнения – механизм, посредством которого разрешение обращения к преопределенному методу осуществляется во время выполнения, а не во время компиляции. Этот полиморфизм реализуется с помощью виртуальных функций.
65. Родовые (настраиваемые) сегменты.
Родовой (настраиваемый) сегмент – параметризованный шаблон подпрограммы, используется для создания различных конкретных экземпляров подпрограмм.
|
|
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!