Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Готовая Информатика.docx
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
154 Кб
Скачать
☆

Вопрос 2. Алгоритмизация и программирование на языке Паскаль

Определение и порядок формирования логических выражений. Оператор условия. Примеры

Алгоритм применительно к вычислительной машине — точное предписание, т. е. набор операций, правил их чередования, при помощи которого, начиная с некоторых исходных данных, можно решить любую задачу фиксированного типа.

Алгоритмы в зависимости от цели, начальных условий задачи, путей ее решения, определения действий исполнителя подразделяются следующим образом:

Линейный алгоритм — набор команд (указаний), выполняемых последовательно друг за другом.

Разветвляющийся алгоритм — алгоритм, содержащий хотя бы одно условие, в результате проверки которого ЭВМ обеспечивает переход на один из двух возможных шагов.

Циклический алгоритм — алгоритм, предусматривающий многократное повторение одного и того же действия (одних и тех же операций) Над новыми исходными данными. К циклическим алгоритмам сводится большинство методов вычислений, перебора вариантов. Цикл программы — последовательность команд (серия, тело цикла), которая может выполняться многократно (для новых исходных данных) до удовлетворения некоторому условию.

Рассмотрим несколько примеров линейных алгоритмов.

ПРИМЕР 2.1. Зная длины трех сторон треугольника, вычислить площадь и периметр треугольника.

Пусть a, b, c - длины сторон треугольника. Необходимо найти S - площадь треугольника, P - периметр. Для нахождения площади можно воспользоваться формулой Герона:

[ 2.1]

где r - полупериметр.

Входные данные: a, b, c.

Выходные данные: S, P.

Блок-схема алгоритма представлена на рис. 2.1.

Рис. 2.1 - Размещение блоков в линейном алгоритме.

ПРИМЕР 2.2. Известны плотность и геометрические размеры цилиндрического слитка, полученного в металлургической лаборатории. Найти объем, массу и площадь основания слитка.

Входные данные: R - радиус основания цилиндра, h - высота цилиндра, ρ- плотность материала слитка.

Выходные данные: m - масса слитка, V - объем, S - площадь основания.

Блок-схема представлена на рис. 2.2.

Рис 2.2 – Алгоритм примера.

ПРИМЕР 2.3. Заданы длины двух катетов в прямоугольном треугольнике. Найти длину гипотенузы, площадь треугольника и величину его углов.

Входные данные: a, b - длины катетов.

Выходные данные: с - длина гипотенузы, S - площадь треугольника, α, β - углы.

Блок-схема представлена на рис.2.3.

Рис 2.3 – Алгоритм примера 2.3

Алгоритмы разветвленной структуры применяются, когда в зависимости от некоторого условия необходимо выполнить либо одно, либо другое действие. В блок-схемах разветвленные алгоритмы изображаются так, как показано на рис. 2.4 – 2.5

Рассмотрим несколько примеров построения алгоритмов разветвленной структуры.

ПРИМЕР 2.4. Составить программу нахождения действительных и комплексных корней квадратного уравнения. Можно выделить следующие этапы решения задачи:

Ввод коэффициентов квадратного уравнения a, b и c.

Вычисление дискриминанта d по формуле d = b2 - 4ас.

Проверка знака дискриминанта. Если d >= 0, то вычисление действительных корней по формуле 2.2 и вывод их на экран.

[ 2.2]

При отрицательном дискриминанте выводится сообщение о том, что действительных корней нет, и вычисляются комплексные корни. Комплексные числа записываются в виде a + ib (формула 2.3):

[ 2.3]

a - действительная часть комплексного числа, b - мнимая часть комплексного числа.У обоих комплексных корней действительные части одинаковые, а мнимые отличаются знаком. Поэтому можно в переменной x1 хранить действительную часть числа -b/2a, в переменной x2 - модуль мнимой части , а в качестве корней вывести x1+ix2 и x1-ix2.

На рис. 2.6 изображена блок-схема решения задачи. Блок 1 предназначен для ввода коэффициентов квадратного уравнения. В блоке 2 осуществляется вычисление дискриминанта. Блок 3 осуществляет проверку знака дискриминанта, если дискриминант отрицателен, то корни комплексные, их расчет происходит в блоке 4 (действительная часть корня записывается в переменную x1, модуль мнимой - в переменную x2), а вывод - в блоке 5 (первый корень x1 + i x2, второй - x1- i x2). Если дискриминант положителен, то вычисляются действительные корни уравнения (блок 6) и выводятся на экран (блок 7).

Рис 2.6 – Блок-схема решения квадратного уравнения.

Циклические алгоритмы. Команда повторения.

В отличие от линейных алгоритмов, в которых команды выполняются последовательно одна за другой, в циклические алгоритмы входит последовательность команд, выполняемая многократно. Такая последовательность команд называется телом цикла.

В циклах типа пока тело цикла выполняется до тех пор, пока выполняется условие. Выполнение таких циклов происходит следующим образом: пока условие справедливо (истинно), выполняется тело цикла, когда условие становится несправедливым, выполнение цикла прекращается.

Цикл, как и любая другая алгоритмическая структура, может быть:

• записан на естественном языке;

• изображен в виде блок-схемы;

записан на алгоритмическом языке; закодирован на языке программирования.

Рассмотрим циклический алгоритм типа пока на примере алгоритма вычисления факториала, изображенного на блок-схеме. Переменная N получает значение числа, факториал которого вычисляется. Переменной N!, которая в результате выполнения алгоритма должна получить значение факториала, присваивается первоначальное значение 1. Переменной К также присваивается значение 1. Цикл будет выполняться, пока справедливо условие К <= N. Тело цикла состоит из двух операций N! : = N!*K и К:=К+ 1.

Циклические алгоритмы, в которых тело цикла выполняется заданное число раз, реализуются с помощью цикла со счетчиком. Цикл со счетчиком реализуется с помощью команды повторения.

Рассмотрим в качестве примера алгоритм вычисления суммы квадратов целых чисел от 1 до 3. Запишем его на алгоритмическом языке. Телом цикла в данном случае является команда S : = S + п*п. Количество повторений тела цикла зафиксировано в строке, определяющей изменение значений счетчика цикла (для пот!доЗ), т. е. тело цикла будет выполнено три раза.