- •Лабораторная работа №1 Тема: "Системы счисления. Перевод чисел из одной системы счисления в другую."
- •Системы счисления, применяемые в эвм
- •Методы перевода чисел из одной позиционной системы счисления в другую
- •Расчетные методы перевода
- •Перевод целых чисел делением на основании q новой системы счисления
- •Перевод дробных чисел умножением на основание q новой системы счисления
- •Перевод чисел в кратных системах счисления
- •Лабораторная работа №2 Тема: "Выполнение арифметических операций над целыми и вещественными числами."
- •Восьмеричная таблица сложения
- •Шестнадцатеричная таблица сложения
- •Восьмеричная таблица умножения
- •Шестнадцатеричная таблица умножения
- •Лабораторная работа № 3
- •Лабораторная работа № 4
Лабораторная работа № 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
