
- •1.1 Алгоритм и блок-схема
- •1.2 Особенности языка Турбо Паскаль и структура программы
- •1.3 Алгоритмы линейной структуры и используемые в них операторы
- •1.4 Пример алгоритма и программы линейной структуры
- •2.2 Примеры решений задач разветвленной структуры
- •I, m1, m2 могут быть только переменными целого типа;
1.3 Алгоритмы линейной структуры и используемые в них операторы
Алгоритм называется линейным, если все операции в нем выполняются последовательно друг за другом.
Оператор присваивания позволяет изменить текущее значение переменной. Вид оператора приведен в таблице D1. Вычисляется выражение, стоящее справа от знака ":=" ("присвоить"), полученный результат присваивается переменной, стоящей в левой части оператора. При этом старое значение, хранившееся в ней, безвозвратно пропадает. Например, Р:= 5; (в переменную Р запишется число 5).
Для ввода данных и вывода результатов используются процедуры ввода и вывода (таблица D1). Существуют форматный и бесформатный способы вывода.
1.4 Пример алгоритма и программы линейной структуры
Даны
переменные a
и b.
Найти
При составлении алгоритма необходимо выделить однотипные выражения (здесь a2+b2), которые достаточно посчитать один раз, а затем использовать результат вычислений. Желательно разбить сложные вычисления одного выражения на более простые (например, отдельно вычислить числитель и знаменатель дроби) для того, чтобы в алгоритме не было громоздких формул. На рисунке 1.1 представлен вариант блок-схемы алгоритма и программа.
|
Program Primer1; Var a,b,c,z:real; Begin Write ('Введите a и b'); Read (a, b); C := sqr(a) + sqr(b); z := sqrt (sqrt(c)) + sin(c) – 1/с; Write('Z=', z:10:3) End.
|
Рисунок 1.1 - Блок-схема алгоритма и программа линейной структуры
Вычисление значения Z производится в следующей последовательности:
в блоке 2 вводятся исходные данные – значения a и b;
в блоке 3 вычисляется арифметическое выражение a2+b2 и результат запоминается в переменной c;
в блоках 4-6 вычисляются первое слагаемое, числитель и знаменатель второго слагаемого;
в блоке 7 производится окончательный расчет Z;
в блоке 8 выводятся исходные данные и результат.
В программе действия блоков 3-7 записываются операторами присваивания, блоки 2 и 8 реализуются операторами ввода/вывода. Ввод осуществляется с запросом, поэтому сначала записан оператор Write, а затем Read. Вывод осуществляется форматным способом. Все переменные, участвующие в программе, объявляются в разделе Var ее описательной части.
1.5 Варианты заданий
Составить блок-схему и программу вычисления значений функции при заданных значениях аргумента.
1)
|
2)
|
3)
|
4)
|
5) |
6)
|
7) |
8)
|
9)
|
10)
|
11)
|
12)
|
13)
|
14)
|
15)
|
16)
|
17)
|
18)
|
19)
|
20)
|
21)
|
22)
|
23)
|
24)
|
25)
|
26)
|
27)
|
28)
|
29)
|
30)
|
1.6 Контрольные вопросы
1 Назовите основные этапы подготовки и решения задач на ПК?
2 Что такое алгоритмический язык?
3 Что такое алгоритм? Назовите основные свойства алгоритмов.
4 Что понимается под «блок-схемой»? Назовите элементы блок-схемы.
5 Опишите структуру простейшей Паскаль-программы.
6 Какие типы данных используются в Паскале?
7 Какой алгоритм называется линейным? Опишите оператор присваивания.
8 Каких правил следует придерживаться при составлении арифметических выражений?
9 Подумайте как можно представить в Паскале функции tg x, ctg x, lg x ?
10 Какие операторы используются для ввода и вывода данных в Паскале?
11 Как осуществляется форматный и бесформатный выводы в Паскале?
12 Как осуществляется вывод с комментарием в Паскале?
Лабораторная работа №2. Программирование алгоритмов разветвленной структуры
Цель работы – ознакомление с особенностями программирования алгоритмов разветвленной структуры, а также использования различных операторов перехода.
2.1 Алгоритмы разветвленной структуры. Операторы перехода и выбора
Ветвящимся (разветвленным) называется алгоритм, в котором в зависимости от исходных данных или промежуточных результатов вычисления реализуется по одному из нескольких заранее предусмотренных (возможных) направлений, называемых ветвями вычислений.
Оператор условного перехода реализует разветвление алгоритма и применяется, когда в зависимости от условия необходимо выполнить либо одно, либо другое действие. В качестве условий используются логические отношения. Логические отношения представляют собой записи равенств и неравенств: <, >, =, <=, >=,<> (не равно), AND (логическое "и"), OR (логическое "или"). В Паскале оператор условного перехода имеет две конструкции (таблица D1).
В Паскале принят порядок выполнения операторов согласно их следованию в программе. Если необходимо обойти какую-то группу операторов, то используется оператор безусловного перехода, который в блок-схеме отображается в виде стрелки, а не отдельного блока (таблица D1). Метка, используемая в операторе, показывает, что дальнейшая работа должна проводиться в другой части программы, с той строки, на которую она указывает и должна быть предварительно описана в разделе Label (например, Goto NM;). Этот оператор используется только в исключительных ситуациях, поскольку такие переходы разрушают связи между структурой программы и структурой вычислений, что приводит к потере ясности программы и затрудняет задачу верификации (доказательства правильности составления программы).
Кроме оператора безусловного перехода, в Турбо Паскале 7.0 иногда используются четыре безусловные функции:
- Break – позволяет досрочно закончить цикл;
- Continue – позволяет начать новую итерацию цикла, не дожидаясь окончания предыдущей итерации;
- Exit – позволяет завершить работу текущего программного блока (программу, процедуру);
- Halt(n) – позволяет завершить работу программы с кодом завершения n.
К операторам разветвляющейся структуры относится также оператор выбора (варианта), позволяющий программировать сложные ветвления, когда имеется несколько (обычно равновероятных) вариантов действия (таблица D1).