- •1. Основные приемы программирования
- •1.1 Линейный алгоритм
- •1.2. Алгоритмы разветвляющейся структуры
- •1.3. Простейшие циклы
- •1.3.1. Цикл с параметром
- •1.3.2. Цикл с постусловием
- •1.3.3. Цикл с предусловием
- •1.3.4. Вложенные циклы
- •1.4. Использование подпрограмм
- •1.4.1 Подпрограмма-функция
- •1.4.2 Подпрограмма-процедура
- •1.5. Массивы и файлы
- •2. Указания
- •3. Задания
1. Основные приемы программирования
Алгоритм любой сложности строится из комбинации алгоритмов трех типов: линейного, разветвляющегося и циклического.
1.1 Линейный алгоритм
Линейный алгоритм предусматривает получение результата при однократном выполнении простой последовательности действий, которые выполняются в порядке их следования.
Пример 1. Три сопротивления R1, R2, R3 соединены параллельно. Найти сопротивление соединения.
Решение. Вычисления проводим по известной формуле
.
Алгоритм решения задачи приведен на рис.1.
Рис. 1. Блок-схема решения примера 1
Паскаль-программа: var R, R1, R2, R3:real; begin {вывод сообщения на экран} write(‘Введите значения сопротивлений R1, R2, R3 через пробел ‘); {чтение данных с клавиатуры} readln(R1, R2, R3); {вычисление} R:=1 / (1 / R1+1 / R2+1 / R3); writeln(‘Сопротивление соединения R=’, R) end. |
1.2. Алгоритмы разветвляющейся структуры
Алгоритмы разветвляющейся структуры характеризуются наличием логического блока, который определяет ход решения задачи.
На Паскале разветвляющийся алгоритм чаще всего реализуется с помощью условного оператора if <условие> then <действия 1> else <действия 2>.
На Фортране можно использовать условный оператор в блочной форме:
if <условие> then
<действия 1>
else
<действия 2>
endif
Если <условие> истинно, то выполняются <действия 1>, иначе – <действия 2>.
Пример 2. Дано действительное число a (рис.2). Вычислить f(a), если
Рис. 2. Блок-схема решения примера 2
Паскаль-программа: var a, y:real; begin write(‘Введите действительное число a ‘); readln(a); if a<=0 then {выполняется, если a<=0} y:=0 else {выполняется, если a>0} if a<=1 then {выполняется, если 0<a<=1} y:=a else {выполняется, если a>1} y:=sqr(a); writeln(‘f(a)=’, y) end. |
1.3. Простейшие циклы
Циклом называют многократное выполнение одной и той же последовательности действий (тела цикла) при различных значениях параметров.
Для организации цикла необходимы следующие этапы:
-
Задание начального значения параметра цикла.
-
Вычисление текущего значения параметра цикла внутри цикла.
-
Выход из цикла при достижении параметром цикла заданного значения.
1.3.1. Цикл с параметром
На Паскале:
for <параметр цикла>:= <начальное значение> to|downto <конечное значение> do
При использовании to шаг равен 1, downto -1.
На Фортране:
do <параметр цикла>= <начальное значение>, &
<конечное значение>[, <шаг>]
<действия>
enddo
Пример 3. Вычислить. (рис.3).
Паскаль-программа: var i, factor:integer; summa:real; begin {задаем начальные значения суммы и факториала} summa:=1; factor:=1; {параметр цикла i изменяется от 2 до 10 с шагом 1} for i:=2 to 10 do begin factor:=factor*i summa:=summa+1/factor; end; {вывод итогового значения суммы} writeln(‘Сумма=’, summa) end. |
Рис. 3. Блок-схема решения примера 3