Основни алгоритмични структури

Има три основни алгоритмични структури: следване, разклоняване, повторение.

Следната структура се състои от две команди с посочения ред на изпълнение и изглежда така:

Структурата от тип клон в пълна форма се състои от определено условие, което се проверява за истина при изпълнение на структурата, команда, която се изпълнява, когато е изпълнено провереното условие, и команда, която се изпълнява, когато условието не е изпълнено. Структурата има формата

Ключовите (служебни) думи на Паскал са ако (ако), тогава (тогава), иначе (в противен случай). Ключовите думи не могат да се променят, заменят, тъй като техните стандарти са фиксирани в преводача от езика Паскал (повече за това - по-долу).

Пример. Команда за преглед

Структурата на типа разклоняване в непълна форма е специален случай на разклоняване в пълна форма, при която, ако условие не е изпълнено, управлението просто се прехвърля към следващата команда и командата на разклонение не извършва повече действия. Тази структура има формата

Структурата на повторение (цикъл) се използва за компактно записване на един и същ набор от команди, повторени за различни стойности на параметрите на командите.

Структурата на повторение на типа "while (while)" се записва като:

Ключовите думи на Паскал са while (while), do (изпълнение), начало (начало), край (край).

Тялото на цикъла е последователност от повтарящи се команди, които могат да бъдат празни (рядък случай).

Част от командата за цикъл "while" - заглавна част на цикъла .

Този цикъл се изпълнява съгласно правилото: ако условието за повторение за текущите му параметри не е изпълнено, тогава повторението на командите (тялото) на цикъла завършва там; ако е изпълнено, тогава тялото на цикъла се изпълнява и отново се проверява условието за повторение на командите на тялото на цикъла .

Пример. Да предположим, че е необходимо да се намери сумата от всички нечетни елементи на естествена поредица от числа, докато тази сума надвиши стойността n. Срокът, за който тази сума надвишава n - включете в сумата.

Нека временно да „забравим“ чисто математическо решение на този проблем - като използваме сумата от аритметична прогресия със стъпка 2. Програмата на алгоритъма) има формата

Втората форма на повторение е for цикъл, който изглежда така

Тук е името, идентификаторът на променливата, която се преизчислява.

Паскални ключови думи - за (за), до (k).

Този цикъл се изпълнява съгласно следното правило: за началната стойност на променлива командите на тялото на цикъла се изпълняват по ред и след това се проверява дали текущата стойност на променливата е надвишила определената крайна стойност; ако е надвишено - цикълът завършва, в противен случай стойността на променливата се увеличава с единица и тялото на цикъла се повтаря отново и т.н.

Пример. Необходимо е да се изчисли средната единична цена на всички n вида стоки (мерната единица е еднаква, например тон), ако единичната цена на всеки продукт се увеличава с 10, а най-малката единична цена е 2. Ако "забравите" временно най-доброто, "чисто математическо" решение на този проблем, тогава алгоритъмът ще има формата

Помислете за примери за задачи на алгоритми (програмиране) в Pascal .

Пример. Нека съставим алгоритъм за изчисляване на факториал на дадено естествено число n, т. Е. Произведението n! = 1 * 2 * 3 *. * (n - 1) * n с помощта на повтарящата се формула n! = (n - 1)! * н. Нека да опишем метода на решението. За целта обърнете внимание на веригата от справедливи равенства:

един! = 1, 2! = 1 * 2 = 1! * 2, 3! = 1 * 2 * 3 = 2! * 3,., м! = 1 * 2 * 3 *. * (m - 1) * m = (m - 1)! * м .

Следователно, за изчисляване на факториал m! факториал (m - 1) се изисква! умножете по m, където m = 1, 2,. н. Програмата Паскал е

Пример. Нека съставим алгоритъм за преобразуване на дадено десетично естествено число n в двоична система. Методът на решението се определя от процедурата за превод - чрез последователно разделяне на числото n на 2 и последващо събиране на остатъците от делението. Ако c равно на 1,0,1,0,0,1 са били издадени последователно, тогава двоичното изображение c е равно на 100101. Алгоритъмът има формата