Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы1-4.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.08 Mб
Скачать

Лабораторная работа № 3

Тема: "Основы алгоритмизации. Программирование линейного, разветвленного и циклического вычислительного процесса"

Цель работы: изучить основные возможности приложения MathCad для программирования линейного, разветвленного и циклического вычислительного процесса. Краткие теоретические сведения.

Схемы алгоритмов и программ состоят из имеющих заданное назначение символов, краткого пояснительного текста и соединяющих линий (таблица 6).

Таблица 6 — Символы, применяемые в схемах программ

Символ схемы

Наименование

Описание

Данные

Символ отражает данные, носитель данных не определен

Процесс

Символ отображает функции обработки данных любого вида (выполнение определенной группы операций, приводящее к изменению значения, формы или размещения информации)

Предопределенный процесс

Символ отображает предопределенный процесс, состоящий из одной или нескольких операций или шагов программы, которые определены в другом месте (в подпрограмме, в модуле)

Решение

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

Граница цикла

Символ, состоящий из двух частей, отображает начало и конец цикла. Обе части цикла имеют один и тот же идентификатор. Условия для инициализации, приращения и завершения помещаются внутри символа в начале или в конце в зависимости от расположения операции, проверяющей условие

Соединитель

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

Терминатор

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

Правила применения символов:

-символы в схеме должны быть расположены равномерно;

-не должны изменяться углы и другие параметры, влияющие на форму символов. Символы должны быть, по возможности, одного размера

- внутри символа помещают минимальное количество текста.

- если объем текста, помещаемого внутри символа, превышает его размеры, следует использовать символ комментария.

Правила выполнения соединений:

- в схемах следует избегать пересечения линий (рисунок 1а);

- две или более входящие линии могут объединяться в одну исходящую линию, причем место объединения должно быть смещено (рисунок 1б);

-линии в схемах должны подходить к символу либо слева, либо сверху, а исходить либо справа, либо снизу (рисунок 1в);

а)

б)

в)

Рисунок 1 — Правила соединений

Базовые конструкции языка посредством символов представлены на рисунке 2.

а) линейный алгоритм

б) разветвленный алгоритм

в) циклический алгоритм с заранее известным числом шагов

Рисунок 2 — Базовые контструкции языка: а) графическое представление алгоритма умножения двух чисел; б) графическое представление алгоритма определения максимального из трех чисел; в) графическое представление алгоритма определения z=xy

Программа – представление алгоритма с использованием операторов выбранного языка программирования, предназначенное для исполнения на ЭВМ.

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

Линейный вычислительный процесс.

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

Пример: Составим программу для вычисления выражения в среде MathCad:

где

Алгоритм программы:

Рисунок 3 – Схема программы

Схема документа в среде (рисунок 4):

Рисунок 4

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

Рисунок 5

Здесь имя функции rez() выбирается пользователем, в скобках указываются имена вводимых переменных, после знака := на ПИ «Программирование» выбирают команду line. Появится линия и два «квадратика» для ввода операторов. Чтобы таких «квадратиков» стало 3, как в рассматриваемом примере, нужно мышью потянуть окно шаблона вниз за правый нижний угол. В 1-й и 2-й строке записываем операторы для вычисления z и b. Для организации вывода четырех переменных (рис. 2.3) в 3-й строке с помощью ПИ «Матрица» записываем вектор.

Теперь, записав имя функции и значения x и y, можно получить результат для любого набора исходных данных.

Разветвленный вычислительный процесс.

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

Оператор условного перехода if выбирается на ПИ «Программирование» и позволяет изменить порядок выполнения операторов в программе в зависимости от определенных условий. Общий вид оператора (рисунок 6):

Рисунок 6- Условный оператор в среде MathCad

Если условие, заданное в операторе if, истинно, то выполняется оператор (простой или составной), стоящий во второй строке. В противном случае выполняется оператор, стоящий после else. После выполнения одной из ветвей, работа программы продолжается с оператора, следующего за if.

Если в какой-то ветви требуется выполнить более одного оператора, из них необходимо образовать составной оператор, т. е. заключить эти операторы в операторные скобки – оператор line на ПИ «Программирование».

Пример. Вычислить значение функции

Значение х спрашивать в диалоге.

Алгоритм программы:

Рисунок 7

Теперь запишем этот алгоритм всреде MathCad. Записываем произвольное значение х, например x := 3. На ПИ «Программирование» выбираем оператор if. После оператора указываем условие x < 0, во второй строке – значение y при x < 0, после else – значение y при x ≥ 0. Выводим значение y =.

Вид документа:

Рисунок 8

Если условий больше, например при вычислении выражения вида

,

то это записывается в среде следующим образом. Записываем произвольное значение х, например x := 0,5. На ПИ «Программирование» выбираем оператор if. После оператора указываем условие x < 0, во второй строке – значение y при x < 0, после else – ПИ

«Программирование» выбираем оператор line и снова записываем оператор if. Выводим значение y =.:

Рисунок 9

Вид документа в среде:

Рисунок 10

Для более рациональной организации вычислений и возможности запрашивать значение x в диалоге, рекомендуется записывать расчет в виде функции пользователя. Вид документа для нахождения функций будет иметь вид:

Рисунок 11

Рисунок 12

Циклический вычислительный процесс.

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

В среде используют 3 оператора цикла: while, for(3) и for(4). С помощью оператора while можно реализовать циклический процесс, состоящий из ряда операторов, который выполняется до тех пор, пока выполняется определенное условие:

while (условие) .

оператор

Если в цикле необходимо выполнить более одного оператора, то их следует заключить в операторные скобки (line), т. е. образовать из них составной оператор:

while условие

оператор 1

оператор 2

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

for(4) – это цикл со счетчиком, для которого нужно задать количество повторений:

for k := 1; k ≤ n; k := k + h

оператор

где k – переменная-счетчик, n – количество повторений, h – шаг изменения переменной k.

for(3) – это цикл, аналогичный for(4), но в нем счетчик цикла х меняется сам, и принадлежит некоторому заданному диапазону (рисунок 13):

Рисунок 13

Пример. Найти сумму ряда

с шагом изменения h=1:

а) используя цикл WHILE;

б) используя цикл FOR(4).

Цикл с предусловием WHILE. Алгоритм программы будет иметь вид (рисунок 14.) Вид документа представлен на рисунке 15.

Рисунок 14

Рисунок 15

Для цикла с известным числом шагов следует определить количество повторений по формуле:

где - разность конечного и начального значения аргумента; h - шаг изменения аргумента; знак [ ] означает, что берется целая часть от деления.

В среде для нахождения целой части используют стандартную функцию round(< число1>; < число1>) – округление <числа 1> до заданного <числа 2>.

Алгоритм программы представлен на рисунке 16. Вид документа на рисунке 17.

Рисунок 16

Рисунок 17

Индивидуальные задания.

Задание 1. Составить программу для вычисления функций b = f(x,y,z), где z = w(x,y) при постоянных значениях x и y . Значения x и y функций заданы в таблице 7.

Таблица 7

Задание 2. Вычислить значение функции

Виды функций f1(x), f2(x), f3(x) заданы в табл. 8. Значение х следует запрашивать в диалоге.

Таблица 8

Задание 3. Найти сумму

где а≤х≤b, x меняется с шагом изменения h=с:

а) используя цикл WHILE;

б) используя цикл FOR(4).

Исходные данные приведены в таблице 9.

Таблица 9