Циклические структуры - лекция. Раздел ш

Циклические структуры - лекция. Раздел ш

Подписаться
Вступай в сообщество «de-kaizer.ru»!
ВКонтакте:

Циклические структуры

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

 циклы с параметром;

 итерационные циклы или циклы с условием.

Циклы с параметром используют тогда, когда количество повторов тела цикла заранее известно. В языке Pascal циклы с параметром реализуются с помощью оператора For.

Итерационные циклы используются тогда, когда число повторений заранее неизвестно, но задано условие окончания цикла. Причем, если условие окончания цикла проверяется перед выполнением тела цикла, то такие циклические структуры называют итерационными циклами с предусловием (“Выполнять пока”), а если проверка условия происходит после выполнения тела цикла – итерационными циклами с постусловием (“Выполнять до тех пор пока не”).

На практике циклы с условием чаще всего используют в двух случаях:

    Число повторений заранее неизвестно (например, цикл до достижения требуемой точности результата).

    Число повторений заранее известно, но шаг параметра цикла не равен 1 (или –1).

В языке Pascal итерационные циклы с предусловием реализуются с помощью оператора While, а итерационные циклы с постусловием - с помощью оператора Repeat … Until.

Оператор FOR

Цикл с параметром (счетчик)

Синтаксис оператора For:

Формат оператора:

for (параметр):=(начальное значение) to/ downto (конечное значение) do(оператор);

Значения параметра могут быть только порядкового типа, и шаг изменения параметра может быть только +1 (to) или -1 (downto). Цикл выполняется до тех пор, пока параметр цикла меньше или равен конечному значению.

Примеры :

    Протабулировать функцию (найти значения функции) y=sin x на отрезке с шагом h.

Программа, реализующая данный алгоритм имеет вид:

Программа, реализующая данный алгоритм будет иметь вид:

Цикл с предусловием While

Цикл с предусловием выполняется до тех пор, пока условие истинно. С предусловием, потому, что условие стоит перед телом цикла.

Формат оператора:

while (условие) do (оператор);

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

Цикл с постусловием

Бывает такая ситуация, что надо получить результаты первой итерации цикла, а только потом проверять выполнение условия. В этом случае можно воспользоваться оператором repeat…until.

Обеспечивается работа оператора repeat, пока не выполнится условие. Формат оператора:

(операторы)

until (условие);

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

Компонент Memo (многострочное окно редактирования). Используется для ввода, отображения и редактирования многострочных текстов. Относится к группе Standard.

Задает режим выравнивания текста внутри Memo.

Задает необходимость изменения размера компонента при изменении размера шрифта.

Задается стиль обрамления Memo.

Задает цвет, которым изображается элемент Memo на экране.

Определяет текст, который будет выведен построчно в окне Memo при запуске программы. Текст задается в окне String List Editor

Позволяет ограничивать число вводимых пользователем символов.

Задает наличие полос прокрутки.

Используется, чтобы получить текст компонента Memo как одну строку. Значение этого свойства не отображается в окне Object Inspector, к нему можно обратиться только во время выполнения программы.

Пример использования в программе

1. Заполнение Memo с использованием свойства Text на примере табулирования функции.

2. Тот же пример, но Memo заполняется с использованием свойства Lines. Метод Add, примененный к Lines позволяет добавить строку в Memo. Оператор memo1.Lines:=’ x | y ’; задает первую строку в Memo .

Работа с кнопкой

Delphi предоставляет большой выбор кнопок (Button, BitBtn, SpeedButton, MainMenu), но работа со всеми эти компонентами имеет много общего: кнопки служат для ввода некоторой информации и перехода к дальнейшим действиям программы. У кнопок есть заголовок (свойство Caption) и метод «нажать на кнопку» - onClick. BitBtn отличается от Button тем, что у первого имеется свойство Glyph, в которое можно загрузить картинку (конечный путь всегда одинаков: Program Files\Common Files\Borland Shared\Images\Buttons). Также у компонента BitBtn имеется свойство Kind, которое может принимать следующие значения, представленные на рисунке. При этом на кнопке появится соответствующая картинка. Если для кнопки установлено значение свойства Kind в bkClose, то при нажатии на данную кнопку будет закрываться текущее окно. Более подробное объяснение применению данного свойства будет рассмотрено ниже (работа с формой).

Значения свойства Kind

При выборе пользователем компонента мышью, ее курсор может принимать различные виды (песочные часы, рука и т.д.), если программист настроил свойство Cursor. Также можно настроить подсказку (высвечивается текст в прямоугольнике рядом с компонентом при наведении на него мышью). Для этого выбираем свойство Hint, в который печатаем необходимый текст, свойство ShowHint типа Boolean устанавливаем в значение True.

Значение свойства Cursor

Значение свойства Hint и ShowHint

Компонент Image (графический образ). Позволяет отображать рисунок, загруженный из графического файла. Относится к группе Additional.

Рекуррентная формула

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

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

Пример . Вычислить сумму бесконечного ряда:

Найдем коэффициент C, разделив (k+1)-ое слагаемое на k–ое:

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

Подпрограммы

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

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

Работа с любой подпрограммой включает в себя два этапа: описание подпрограммы и ее вызов.

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

Процедуры

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

Структура процедуры

Procedure (список формальных параметров);

Begin

Список формальных параметров может включать:

Параметры-значения или входные параметры, значения которых должны быть установлены до начала работы данной процедуры (определяют исходные данные для работы процедуры);

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

Каждый параметр имеет имя и тип, указанный через «:». Параметры отделяются друг от друга «;»

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

Функции

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

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

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

Параметры и аргументы

Параметры являются элементами подпрограммы и используются при описании ее алгоритма. Аргументы указываются при вызове подпрограммы и замещают параметры при выполнении подпрограммы. Параметры могут быть любого типа, включая структурированный. Существуют следующие виды параметров:

    Значение

    Константа

    Переменная

    Нетипизированная константа и переменная

Группа параметров, перед которыми в заголовке подпрограммы отсутствуют слова var или const и за которыми следует указание их типа, называются параметрами-значениями . В подпрограмме значения таких параметров можно изменять, но эти изменения не влияют на значение соответствующих им аргументов, которые были подставлены вместо фактических параметров-значений.

Рекурсия

Слово «рекурсия» происходит от латинского слова «recursio» - возвращение.

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

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

Циклической структуры на языке...

  • Разработка алгоритмов различной структуры и их реализация с помощью программных средств

    Курсовая работа >> Информатика

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

  • Особенности формирования полисопряженных структур в процессе термической и окислительной деструкции полиакрилонитрила

    Статья >> Химия

    Именно к азоту, находящемуся в составе промежуточных циклических структур , являются кинетические кривые изменения элементного... присоединения кислорода к полимеру является окисление циклических структур до N-оксидов. ЛИТЕРАТУРА Huron J. L., Meybek ...

  • Структура и принцип действия устройства контроля перегона методом счета осей

    Реферат >> Транспорт

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

  • ЦИКЛИЧЕСКИЕ СОЕДИНЕНИЯ (карбоциклические и гетероциклические)

    Органические соединения, молекулы которых содержат замкнутые цепи (циклы), называются циклическими.

    В зависимости от характера атомов, образующих цикл, эти вещества делятся на карбоциклические и гетероциклические.

    Карбоциклические (или изоциклические) соединения содержат в своих циклах (кольцах) только атомы углерода. Эти соединения в свою очередь делятся на алициклические и аролгатические.

    АЛИЦИКЛИЧЕСКИЕ СОЕДИНЕНИЯ

    Алициклические соединения - углеводороды циклического строения, молекулы которых построены из углеродных атомов, связанных между собой (Т-СВЯЗЬЮ.

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

    КЛАССИФИКАЦИЯ И НОМЕНКЛАТУРА АЛИЦИКЛИЧЕСКИХ СОЕДИНЕНИЙ

    Классификация. Алициклические соединения могут содержать

    различные по размеру циклы-от трехчленного до многочленного. В

    составе молекулы могут находиться одновременно и два цикла. Если эти циклы имеют один общий углеродный атом - это спираны (I), при наличии двух таких атомов - соединения с конденсированнылги цикла- лш (II). Имеются и "лгостиковые " соединения, которые содержат в цикле "мостик" между двумя атомами углерода (III):

    В зависимости от характера связей в циклах различают предельные алициклические соединения - циклоалканы (циклопарафины ) и непредельные - циклоалкены (циклоолефины ).

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


    Заместители в кольце нумеруют так, чтобы сумма этих цифр была наименьшей:

    Циклоалканы иначе называют полиметиленовыми углеводородами или нафтенами .

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

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

    1) от числа углеродных атомов в кольце:


    2) от положения заместителей в цикле:


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


    В алициклическом ряду важную роль играет конформационная (поворотная) изомерия.

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


    Рис.35.

    (б) до 160° (рис. 35, а; место изгиба показано пунктиром). Циклопентан также имеет неплоское строение. Место отклонения от плоскости не остается постоянным, а перемещается поочередно по его пяти углам, напоминая волнообразное движение (рис. 35, б). Молекула циклогексана в пространстве изогнута так, что для циклогексана существуют две основные формы без углового напряжения - "ванна" и "кресло" (рис. 36). В одной из них (кресло) углеродные атомы расположены по три в двух параллельных плоскостях.

    Каждая из форм этих соединений является пространственным (поворотным) изомером.

    Рис. 36.

    а - форма "кресла"; б - форма "ванны"

    Рис.37. Два типа связей в молекуле циклогексана (форма "кресло")

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

    выгодными. Так, установлено, что

    Рис. 38.

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

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

    • От арабск. naphtha - нефть. Производные циклопентана и циклогексанасодержатся в некоторых сортах нефти.
    • Под угловым напряжением понимают отклонение валентного угла в циклеот тетраэдрического (109° 28").

    Среди органических соединений многие являются циклическими. Впервые об их существовании узнали, когда в 1865 г. Ф. Кекуле определил строение молекулы бензола (рис. 140, А, Б).

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

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

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


    Рис. 140. Циклические органические соединения – бензол и анилин:

    А, Б – структурные формулы бензола; В – масштабная модель молекулы бензола; Г – структурная формула молекулы анилина


    Рис. 141. Применение бензола: 1 – добавка к бензину; 2 – производство растворителей; 3–7 – производство органических соединений (ацетона (3), анилина (4), пестицидов (5), лекарственных средств (6), фенолформальдегидных пластмасс (7))

    Широкое применение бензола представлено на рисунке 141.

    Утратив один атом водорода, бензол становится обладателем свободной валентной связи и превращается в радикал фенил. Вводя в его молекулу боковые группы различного строения, можно создать множество соединений, большинство из которых находит широкое практическое применение. Приведём в качестве примеров несколько таких производных. Фенол (устаревшее название – карболовая кислота) представляет собой вещество, образованное заменой одного атома водорода в молекуле бензола на гидроксильную группу. Это соединение служит сырьём для производства эпоксидных и формальдегидных смол, искусственных волокон – нейлона и капрона, антисептиков и аспирина. Фенол обладает слабыми бактерицидными свойствами, поэтому до открытия более эффективных препаратов его использовали в медицинских учреждениях в качестве антисептического средства. Присутствием фенола в дыме объясняется консервирующий эффект копчения продуктов. В то же время фенол опасен для человека из-за своей высокой токсичности. Попадая в организм, иногда даже через неповреждённую кожу, фенол быстро всасывается и действует на клетки головного мозга. Это может привести к потере сознания и даже остановке дыхания.

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

    Заменив атом водорода на группу СООН - , можно получить бензойную кислоту, обладающую выраженными антисептическими свойствами. Её применяют в медицине для лечения кожных и грибковых заболеваний, а также используют для консервирования продуктов. Производные бензойной кислоты используют в парфюмерной промышленности и при изготовлении красителей. Большое значение принадлежит производному этой кислоты – парааминобензойной кислоте . Она является витамином, причем, что особенно важно, не только у человека, но и у большинства болезнетворных бактерий. Синтезировав вещества, блокирующие действие этой кислоты, такие как стрептоцид, сульфадимезин, сульфадиметоксин и другие, фармакологи получили средства борьбы с многими опасными инфекционными заболеваниями.

    Существуют соединения, в молекулах которых бензольные кольца расположены так, что имеют общую «стенку». Такие соединения называют конденсированными . Соединение, состоящее из двух конденсированных бензольных колец, – нафталин (рис. 142). Нафталин обладает резким запахом, и в прошлом его использовали для защиты одежды от моли.

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

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


    Рис. 142. Масштабная модель молекулы нафталина

    Гетероциклические соединения – очень важный класс органических веществ, так как они входят в состав нуклеиновых кислот, алкалоидов (например, никотина, морфина, кофеина), многих лекарственных и других веществ.

    <<< Назад
    Вперед >>>

    ← Вернуться

    ×
    Вступай в сообщество «de-kaizer.ru»!
    ВКонтакте:
    Я уже подписан на сообщество «de-kaizer.ru»