- •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.3.2. Цикл с постусловием
Цикл выполняется до тех пор, пока заданное условие не станет верным.
На Паскале:
repeat
<действия>
until <условие>
На Фортране цикл с постусловием реализуется с помощью условного оператора. Проверка условия осуществляется после тела цикла.
Пример 4. Вычислить значение функции y=x+sinx при изменении аргумента x от 0,1 до 0,9 с шагом 0,1 (рис.4).
Паскаль-программа: var x, y:real; begin {задаем начальные значения параметра цикла} x:=0.1; repeat y:=x+sin(x); writeln(‘x=’, x, ‘y=’, y); {вычисление текущего значения параметра цикла} x:=x+0.1 {проверка условия окончания цикла} until x>0.9 end. |
Рис. 4. Блок-схема решения примера 4
1.3.3. Цикл с предусловием
Цикл выполняется, пока условие истинно.
На Паскале:
while <условие> do <действия>
На Фортране:
do while(<условие>)
<действия>
enddo
Пример 5. Даны действительные числа x и . Определить k, при котором выражение становится меньше , где k=1, 2, 3,… (рис.5).
Рис. 5. Блок-схема решения примера 5
Паскаль-программа: var x, eps, d:real; k:integer; begin {ввод исходных данных} readln(x,eps); {задание начального значения параметра цикла} k:=1; d:=(sqrt(abs(x)); while d>=eps do begin {изменение параметра цикла} k:=k+1; d:=sqrt(abs(x)/(k*k*k)) end; writeln(‘d=’, d, ‘k=’, k); end. |
1.3.4. Вложенные циклы
Цикл называется вложенным, если он содержит внутри себя один или несколько других циклов.
Пример 6. Вычислить (рис.6).
Рис. 6. Блок-схема решения примера 6
Паскаль-программа: var i, j:integer; summa:real; begin {задаем начальнoe значение суммы} summa:=0; {внешний цикл} for i:=1 to 100 do {внутренний цикл} for j:=1 to i do summa:=summa+1/(2*j+i); writeln(‘Сумма=’, summa) end.
|
1.4. Использование подпрограмм
Подпрограмма позволяет использовать одну и ту же группу операторов при различных исходных данных. Различают подпрограмму-функцию и подпрограмму-процедуру.
1.4.1 Подпрограмма-функция
Отличительные особенности подпрограммы-функции:
-
она имеет только один результат выполнения;
-
результат обозначается именем функции и передается в основную программу.
На Паскале:
function <имя функции>(<список формальных параметров с указанием их типа>): <тип функции>
На Фортране:
[<тип функции>] function <имя функции>(<список формальных параметров>)
Подпрограмму-функцию можно использовать в выражениях наравне со стандартными встроенными функциями.
Пример 7. Даны действительные числа a, b. Получить u=min(a,b), v=min(ab, a+b) (рис.7).
Рис. 7. Блок-схема решения примера 7
Паскаль-программа: var a, b, u, v:real; function min(x,y:real):real; {x, y – формальные параметры функции min} begin if x<y then min:=x else min:=y end; begin writeln(‘Введите действительные числа a и b ‘); write(‘a=’); readln(a); write(‘b=’); readln(b); u:=min(a,b); {a, b – фактические параметры функции min} v:=min(a*b,a+b); {a*b, a+b – фактические параметры функции min} writeln(‘u=’, u); writeln(‘v=’, v); end.
|