< меньше
> больше
<= меньше или равно
<= больше или равно
= равно <> не равно.
На ветвях условного оператора могут находиться простые или составные операторы.
Составной оператор – это последовательность операторов, заключенная между
служебными словами begin и end.
Основной циклической структурой является цикл с предусловием (цикл-пока). С
помощью этой структуры можно построить любой циклический алгоритм.
Оператор цикла с предусловием в Паскале имеет следующий формат:
while <логическое выражение> do <оператор>.
Служебное слово while означает «пока», do — делать, выполнять.
Оператор, стоящий после слова do, называется телом цикла. Тело цикла может быть
простым или составным оператором, т.е. последовательностью операторов между
Еще один вид цикла - Цикл с параметром:
For i:=A to B do
<тело цикла>.
i- параметр (счетчик), автоматически изменяется на 1.
A- начальное значение параметра
B- конечное значение параметра.
Основные этапы разработки программ.
1. Постановка задачи.
2. Математическая формализация.
3. Построение алгоритма.
4. Составление программы на языке программирования.
5. Отладка и тестирование программы.
6. Проведение расчетов и анализ полученных результатов.
В чистом виде программированием, то есть разработкой алгоритма и программы,
здесь являются лишь 3-й, 4-й и 5-й этапы.
На этапе постановки задачи должно быть четко определено, что дано и что
требуется найти.
Второй этап — математическая формализация. Здесь задача переводится на язык
математических формул, уравнений, отношений. Далеко не всегда эти формулы
очевидны. Нередко их приходится выводить самому или отыскивать в специальной
литературе. Если решение задачи требует математического описания какого-то
реального объекта, явления или процесса, то формализация равносильна получению
соответствующей математической модели.
Третий этап — построение алгоритма (блок-схема).
Первые три этапа — это работа без компьютера. Дальше следует собственно
программирование на определенном языке в определенной системе программирования.
Отладка и тестирование. Под отладкой программы понимается процесс испытания
работы программы и исправления обнаруженных при этом ошибок. Обнаружить
ошибки, связанные с нарушением правил записи программы на Паскале
(синтаксические и семантические ошибки) помогает используемая система
программирования. Пользователь получает сообщение об ошибке, исправляет ее и
снова повторяет попытку исполнить программу.
Проверка на компьютере правильности алгоритма производится с помощью тестов.
Тест — это конкретный вариант значений исходных данных, для которого известен
ожидаемый результат. Прохождение теста — необходимое условие правильности
программы. На тестах проверяется правильность реализации программой
запланированного сценария.
Проведение расчетов и анализ полученных результатов — этот этап технологической
цепочки реализуется при разработке практически полезных (не учебных) программ.
Например, «Программа расчета прогноза погоды». Ясно, что ей будут пользоваться
длительное время, и правильность ее работы очень важна для практики. А поэтому в
процессе эксплуатации эта программа может дорабатываться и совершенствоваться.
Билет 6
Технология нисходящего программирования. Разбиение задачи на подзадачи.
Процедуры и функции.
Человек может разобраться в отдельном алгоритме, объем которого не превосходит
нескольких сотен строк. При дальнейшем увеличении объема теряется общая логика
работы. Изменить или исправить такой алгоритм — труднейшая задача. Решить эту
проблему позволяет расчленение алгоритма на составляющие — отдельные алгоритмы,
выполняющие простые действия. Такие алгоритмы называют вспомогательными. В
языках программирования используется термин - подпрограмма. Чтобы обратиться к
вспомогательному алгоритму (подпрограмме), его надо вызвать.
1. Стандартные подпрограммы
Многие вспомогательные алгоритмы используются очень часто и в разнообразных
задачах. Например, часто требуется вычислять типичные математические функции
или выполнять стандартные действия над строками. Если бы каждый программист
записывал такие алгоритмы сам, это было бы большой потерей времени. Проблема
решается путем применения стандартных подпрограмм. Стандартные подпрограммы
обычно определены не в языке программирования, а в системе (среде)
программирования. Они входят в библиотеки подпрограмм, прилагаемые к
транслятору.
2. Нисходящее проектирование
Для того чтобы представить программу в виде набора простых алгоритмов, ее
разрабатывают сверху вниз. Такой подход называют нисходящим проектированием, или
последовательной детализацией.
Сначала программу делят на модули, решающие глобальные задачи. Затем каждый из
этих модулей также разбивают на подпрограммы. Такие действия продолжают до тех
пор, пока каждая отдельная подпрограмма не оказывается достаточно простой.
Такой подход имеет целый ряд достоинств:
- Программист мыслит на предметном уровне, не касаясь до конкретных операторов и
переменных.
- Порядок реализации отдельных подпрограмм может быть любым. Еще не написанные
подпрограммы можно временно заменить коротким фрагментом кода, дающим разумные
(хотя и неправильные) результаты. Отладка программы в целом возможна и при
отсутствии некоторых подпрограмм.
- Небольшие по размеру программы и подпрограмм проще писать и отлаживать.
- Имеется возможность повторного использования ранее написанных подпрограмм.
3. Типы вспомогательных алгоритмов
Подпрограммы обычно делят на две категории: процедуры и функции. Процедура
просто выполняет некоторую последовательность операторов. Функция же вычисляет
определенное значение и передает {возвращает) его в вызванную программу
(подпрограмму). Это значение принадлежит к определенному типу данных, к которому
принято относить и саму функцию.
4. Параметры подпрограммы
Чтобы работа подпрограммы имела смысл, ей надо получить данные из той программы,
которая ее вызывает. Данные передаются в подпрограмму в виде параметров.
Каждая подпрограмма ожидает получить в качестве параметров определенный набор
значений, относящихся к конкретным типам. Допустимо создание подпрограмм, вообще
не нуждающихся в передаче параметров.
При создании подпрограммы значения передаваемых в нее параметров еще неизвестны.
При описании в заголовке подпрограммы указываются формальные параметры. Это
произвольные идентификаторы, определяющие тип передаваемых данных. Они нужны
только для описания действий, выполняемых подпрограммой.
При вызове подпрограммы указываются фактические параметры, которые и передаются
в нее. При выполнении операторов подпрограммы вместо формальных параметров
подставляются фактические значения.
5. Вызов подпрограмм
Вид оператора вызова подпрограммы зависит от типа подпрограммы и синтаксиса
конкретного языка программирования. Чтобы вызвать подпрограмму, надо указать ее
имя. После него в скобках идет список фактических параметров. Тип фактических
параметров и их количество должно соответствовать описанию формальных параметров
в объявлении подпрограммы. В качестве фактических параметров могут
использоваться не только переменные, но и константы или выражения.
Вызов функции допустим в любом месте программы, щ можно указать выражение
соответствующего типа. Например, функцию можно вызвать в правой части оператора
присваивания, в выражении отношения или логическом выражении, в списке
фактических параметров другой подпрограммы и так далее. В следующем примере
переменной z присваивается длина гипотенузы прямоугольного треугольника с
катетами х и у. Для вычислений используется обращение к стандартной функции.
z : =sqrt(x*x+y*y) ; (Паскаль)
Вызов процедуры обычно оформляется как отдельный оператор. Например, вызвать
процедуру Р, принимающую в качестве параметров два целых числа, можно следующим
образом.
Р(1,2) ; (Паскаль)
6. Программирование вспомогательных алгоритмов
Описание вспомогательных алгоритмов включается в исходный текст программы. В
большинстве языков программирования требуется, чтобы подпрограмма была описана
до того, как она вызывается в первый раз.
Описание подпрограммы состоит из заголовка, тела, содержащего выполняемые
операторы, и завершения. Заголовок содержит имя подпрограммы и описание
формальных параметров. Для функции надо также указать тип возвращаемого
значения.
Boт пример записи функции, вычисляющей квадрат целого числа, переданного в
качестве параметра.
Паскаль
function Square(x: Integer): Integer;
begin
Square:=x*x;
end;
Тело функции располагается между операторами begin и end.
В языке Паскаль значение, возвращаемое функцией, надо присвоить переменной, имя
которой совпадает с именем функции. Внутри тела функции эта переменная может
использоваться только в левой части оператора присваивания.
Способ записи процедур иной. В описании процедуры используются иные ключевые
слова. Кроме того, нет необходимости вычислять возвращаемое значение. Далее
приведено описание процедуры, осуществляющей вывод суммы двух целых чисел,
переданных в процедуру как параметры.
procedure printsum(x, у:integer);
writeln(x-y);
Обычно предполагается, что описание подпрограммы должно быть помещено до ее
первого использования — это удобно транслятору. Однако это может быть по
каким-то причинам неудобно программисту. Некоторые языки программирования
допускают размещение описания подпрограммы после ее первого использования, но в
этом случае они требуют упрощенного объявления подпрограммы до ее первого
использования.
В языке Паскаль в этом случае повторяют заголовок процедуры. Отсутствие после
него ключевого слова begin говорит о том, что это не описание, а только
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22