
- •Основные элементы схем алгоритма
- •Основные элементы схем алгоритма
- •1.1. Порядковые
- •Лексическая структура языка.
- •Математические операции
- •Понятие программного продукта
- •Содержание документа
- •Вопрос 19, но с определением плюс или минус.
- •Константы
- •Типизированные константы
- •2.2. Структура и способы описания языков программирования высокого уровня
- •3.1 Оператор присваивания и выражения
- •3.2 Операторы процедур. Ввод/вывод информации
- •3.3 Оператор перехода goto
- •4. Структурные операторы. Организация ветвлений и циклов
- •4.1 Составной и пустой операторы
- •4.2 Организация ветвлений. Операторы выбора
- •4.3 Организация циклов. Операторы повторения
- •3.1 Оператор присваивания и выражения
- •3.2 Операторы процедур. Ввод/вывод информации
- •4.1 Составной и пустой операторы
- •Общая форма записи цикла со счетчиком
- •Доступ к элементам массива
- •Изменение значения некоторых элементов
- •Нахождение номеров элементов с заданным свойством
- •Понятие структуры
- •Массив – однородная совокупность элементов
- •Индекс массива
- •Ввод массива Паскаля
- •Вывод массива Паскаля
- •Записи с вариантами
- •1. Введение
- •1.1. Интерпретаторы
- •1.2. Компиляторы
- •2. Классификация языков программирования
Содержание документа
В описании языка должны быть изложены следующие сведения:
Назначение и сфера применения языка.
Чем является текст, написанный на этом языке. Иначе говоря, что на этом языке пишут: программы, макросы, документы определенного назначения и т.п.
Основные синтаксические правила языка, т. е. типы элементов текста и допустимые способы их соединения друг с другом. Например, программа на алгоритмическом языке вроде Фортрана или Бейсика представляет собой последовательность операторов, а XML-документ — дерево вложенных друг в друга элементов.
Логика исполнения программы или обработки документа. В разных языках она, вообще говоря, разная. Например, операторы в программе на алгоритмическом языке обрабатываются последовательно сверху вниз (если эта последовательность не изменяется явно посредством всевозможных операторов перехода и ветвления или неявно механизмами вроде исключений). И совсем по-другому происходит применение XSLT-стиля к XML-документу или CSS-стиля к HTML-документу.
Конкретные элементы языка и связанные с ними синтаксические конструкции. В случае языка программирования это, как правило, операторы, в случае языка разметки всевозможные элементы или ключи.
Встроенные функциональные блоки, например, стандартные функции (хотя это касается, скорее, определенного транслятора, фреймворка или парсера, нежели языка как такового).
Кроме того, в описании языка могут быть приведены:
рекомендации по стилю программирования (кодирования);
типология ошибок, методы их выявления и поиска;
методы оптимизации по быстродействию, памяти и прочим параметрам;
перечень рекомендованных трансляторов, фреймворков или парсеров.
И любые другие детали, знание которых помогает пользователю делать свою работу по возможности хорошо и быстро.
Простые и сложные циклы
К циклическим относятся алгоритмы, в которых одно или несколько действий повторяются.
Эту повторяющуюся часть в алгоритме называют циклом, а операторы, которые повторяются, называют телом цикла. Циклы бывают простые и сложные.
Цикл называется сложным, если он содержит в себе еще один или несколько циклов. Цикл находящийся внутри называется вложенным (внутренним), а цикл, содержащий в себе др. циклы называется охватывающим (внешним). Чтобы сложные циклы работали нормально, необходимо чтобы внутренний цикл заканчивался раньше внешнего.
Все циклы можно разделить еще на циклы с заранее известным количеством шагов (повторений) и циклы с неизвестным количеством шагов (итерационные)
Детерминированные циклы
Алгоритм циклической структуры - это алгоритм, в котором происходит многократное повторение одного и того же участка программы. Такие повторяемые участки вычислительного процесса называются циклами. Программа циклической структуры содержит один или несколько циклов. Различают детерминированные циклы с заранее известным числом повторений и итерационные циклы, в которых число повторений заранее неизвестно. Изменяющаяся в цикле переменная называется параметром цикла. Для организации цикла необходимо выполнить следующие действия:
1) задать перед циклом начальное значение параметра цикла;
2) изменять параметр перед каждым новым повторением цикла;
3) проверять условие повторения цикла;
4) управлять циклом, т.е. переходить к его началу, если он не закончен, или выходить из него по окончании.
В языке Паскаль существует 3 вида циклов:
1) цикл с параметром или цикл типа for,
2) цикл с предусловием или цикл типа while,
3) цикл с постусловием или цикл типа repeat ... until.
В цикле типа for число повторений известно заранее, в циклах типа while и repeat ... until число повторений цикла заранее неизвестно, производится проверка условия повторения цикла: в цикле типа while - перед циклом, в цикле типа repeat ... until - после его окончания. В циклах типов for и while повторяющяся часть (тело цикла) состоит из одного оператора, если требуется выполнить в цикле несколько операторов, они заключаются в операторные скобки begin ... end, образуя составной оператор. В цикле типа repeat ... until тело цикла помещается между зарезервированными словами языка (лексемами) repeat и until, операторные скобки не требуются, в названии цикла его тело условно обозначается тремя точками. С помощью цикла типа for удобно находить суммы, произведения, искать максимальные и минимальные значения и т.п. При нахождении суммы некоторой переменной, например S присваивается значение 0, затем в цикле к этой переменной прибавляется соответствующий член заданной последовательности. При нахождении произведения переменной присваивается значение 1, затем в цикле эта переменная умножается на общий член последовательности.
Итерационные циклы
Алгоритм циклической структуры - это алгоритм, в котором происходит многократное повторение одного и того же участка программы. Такие повторяемые участки вычислительного процесса называются циклами. Программа циклической структуры содержит один или несколько циклов. Различают детерминированные циклы с заранее известным числом повторений и итерационные циклы, в которых число повторений заранее неизвестно.
1) задать перед циклом начальное значение параметра цикла;
2) изменять параметр перед каждым новым повторением цикла;
3) проверять условие повторения цикла;
4) управлять циклом, т.е. переходить к его началу, если он не закончен, или выходить из него по окончании.
В языке Паскаль существует 3 вида циклов:
1) цикл с параметром или цикл типа for,
2) цикл с предусловием или цикл типа while,
3) цикл с постусловием или цикл типа repeat ... until.
В цикле типа for число повторений известно заранее, в циклах типа while и repeat ... until число повторений цикла заранее неизвестно, производится проверка условия повторения цикла: в цикле типа while - перед циклом, в цикле типа repeat ... until - после его окончания. В циклах типов for и while повторяющяся часть (тело цикла) состоит из одного оператора, если требуется выполнить в цикле несколько операторов, они заключаются в операторные скобки begin ... end, образуя составной оператор. В цикле типа repeat ... until тело цикла помещается между зарезервированными словами языка (лексемами) repeat и until, операторные скобки не требуются, в названии цикла его тело условно обозначается тремя точками. С помощью цикла типа for удобно находить суммы, произведения, искать максимальные и минимальные значения и т.п. При нахождении суммы некоторой переменной, например S присваивается значение 0, затем в цикле к этой переменной прибавляется соответствующий член заданной последовательности. При нахождении произведения переменной присваивается значение 1, затем в цикле эта переменная умножается на общий член последовательности.
Типовой приём алгоритмизации: определение суммы
Определение суммы или произведения членов числовой последовательности производится в цикле с заданным числом повторений или итерационном, в зависимости от того, известно число членов этого ряда, входящих в сумму (произведение), или оно будет определяться каким-то условием, проверяемым каждый раз после очередного увеличения суммы (произведения). При этом предварительно, перед открытием цикла, для вычисления суммы переменная, отслеживающая сумму, обнуляется (S=0), а при вычислении произведения - приравнивается к 1 (Р=1). Сумма элементов одномерного массива А1, A2,...,AN вычисляется в цикле с заданным числом повторений путем прибавления каждого очередного элемента массива к сумме предыдущих элементов. При этом используется операция присваивания для накопления суммы: S = S + АI,. Она указывает на необходимость прибавления к уже известному значению суммы (переменная S в правой части арифметического выражения) значения очередного слагаемого AI и присваивания полученного значения в качестве нового значения переменной S.
Повторяя в цикле операцию присваивания, получаем процесс, реализующий вычисление требуемой суммы: S = S + А,+ А2 + А3 + ... + AN(pиc. 1.14a). В процессе вычисления суммы при первом прохождении цикла первоначальное значение переменной S прибавляется к значению первого элемента массива А,, следовательно, начальное значение S не должно влиять на конечный результат, что возможно, только если оно равно 0. Поэтому перед выполнением цикла переменной S присваивается нулевое значение.
Типовой приём алгоритмизации: определение произведения
На рис. 1.146 приведена схема вычисления произведения элементов одномерного массива. Как видим, произведение элементов массива накапливается по аналогичной формуле Р = Р*АI, при обязательном присвоении переменной начального значения Р, равного 1 (Р=1).
Типовой приём алгоритмизации: определение суммы положительных (отрицательных) чисел с заданной последовательностью