- •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).