Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Пример 3.1.





Function HlighFactor(N1,N2:lnteger):lnteger;

Var P: Integer;

Begin

If N1 > N2 Then P:=HighFactor(N1,N2)

Else

If N2<0 Then р:=N1 {нерекурсивное решение}

Else P:=HighFactor(N2,N1 Mod N2);

HighFactor:= P

End;

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

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

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

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

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

 

C.10.6. Лекция 6 (1 часа)Понятие данных символьного типа. Представление символов в ЭВМ. Таблица ASCI. Операции над символьными данными. Функции CНR(), ORD(), SUCC(), PRED().Символьные строки (string). Операции над строками, встроенные процедуры и функции для работы со строками символов

String (строка) - это один из дополнительных типов данных, введенных в системе программирования Турбо-Паскаль. Структура данных типа String [ N ] аналогична структуре данных типа Array [1.. N ]Of Char. Количество символов в данных типа String [ N ] может быть любым от 1 до N. Максимальное возможное значение константы N= 255. Это максимальное значение принимается по умолчанию, если в описании строки отсутствует конструкция [ N ]. В отличие от массивов строки (а не только их отдельные элементы) могут быть параметрами в процедурах ввода и вывода.
К любому символу в строке можно обратиться точно также, как к элементу одномерного массива, указав имя строки и индекс. В системе Турбо-Паскаль для работы со строками предусмотрен ряд процедур и функции:
К строкам можно применять операцию “+” - сцепление, например:
st:= ‘a’ + ‘b’;
st:= st + ‘c’; {st содержит ‘abc’}

Copy(st, index, count) - функция типа String; копирует из строки st count символов, начиная с символа с номером index.
Delete(st, index, count) - процедура; удаляет сount символов в строке st, начиная с символа с номером index.
Insert(subst, st, index) - процедура; вставляет подстроку subst в строку st, начиная с символа с номером index.
Length(st) - функция типа Integer; возвращает длину строки st.
Pos(subst,st) - функция типа Integer; отыскивает в строке st первое вхождение подстроки subst и возвращает номер позиции, с которой она начинается; если подстрока не найдена, возвращается 0.
Str(x:[width[: decimals] ], st) - процедура; преобразует число x вещественного или целого типов в строку символов st так, как это делает процедура Writeln перед выводом.
Val(st,x,code) - процедура; преобразует строку символов st во внутреннее представление целой или вещественной переменной x, которое определяется типом этой переменной; параметр code содержит ноль, если преобразование прошло успешно, и тогда в x помещается результат преобразования, в противном случае он содержит номер позиции в строке st, где обнаружен ошибочный символ, и в этом случае содержимое x не меняется; ведущие пробелы в строке st должны отсутствовать.
Операции отношения =, <>, >, <, >=, <= выполняются над двумя строками посимвольно, слева направо с учетом внутренней кодировки символов.

 







Дата добавления: 2015-09-04; просмотров: 425. Нарушение авторских прав; Мы поможем в написании вашей работы!




Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


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


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...


Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Характерные черты официально-делового стиля Наиболее характерными чертами официально-делового стиля являются: • лаконичность...

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

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

Подкожное введение сывороток по методу Безредки. С целью предупреждения развития анафилактического шока и других аллергических реак­ций при введении иммунных сывороток используют метод Безредки для определения реакции больного на введение сыворотки...

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

ПРОФЕССИОНАЛЬНОЕ САМОВОСПИТАНИЕ И САМООБРАЗОВАНИЕ ПЕДАГОГА Воспитывать сегодня подрастающее поколение на со­временном уровне требований общества нельзя без по­стоянного обновления и обогащения своего профессио­нального педагогического потенциала...

Studopedia.info - Студопедия - 2014-2025 год . (0.011 сек.) русская версия | украинская версия