ВУЗ: Смоленский областной казачий институт промышленных технологий и бизнеса
Категория: Методичка
Дисциплина: Системы искусственного интеллекта
Добавлен: 29.10.2018
Просмотров: 761
Скачиваний: 12
ЛАБОРАТОРНАЯ РАБОТА №1 .
ТЕМА ЗАНЯТИЯ: ПРОГРАММИРОВАНИЕ В МАТКАДЕ.
В МАТКАДЕ имеется встроенный язык программирования. Это язык более высокого уровня, чем Бейсик и Паскаль, он позволяет производить ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ программы. Программа в МАТКАДЕ является обычно только частью большой задачи, решаемой, в основном с помощью встроенных функций. Переменные, используемые в программе, называются ЛОКАЛЬНЫМИ. Переменные вне программы называются ГЛОБАЛЬНЫМИ. Иногда они могут совпадать.
Для составления программ необходимо, прежде всего, вызвать ПАНЕЛЬ ПРОГРАММИРОВАНИЯ.
Для этого следует на математической панели нажать кнопку с изображением стрелок, прямоугольника и ромба .
Появится новая панель - ПАНЕЛЬ ПРОГРАММИРОВАНИЯ, состоящая из кнопок:
1 .Кнопка ADD LINE- добавь строку. При ее нажатии возникает вертикальная линия, объединяющая два оператора в блок с одним входом и одним выходом. Для объединения большего числа операторов кнопку следует нажимать несколько раз.
2 .Кнопка - это оператор присвоения, например A B . Локальной переменной А присваивается значение В.
Кнопка IF аналогична оператору условного перехода в языках Бейсик и Паскаль, например, выражение
C D if A >B означает , что , если А>B, то С присваивается значение D.
Если в зависимости от условия следует выполнить несколько операторов, то Запись будет иметь вид:
if A>B
E F
F G
П ри наборе if следует сначала набрать саму функцию if и только потом A>B и C D.
3. Кнопка OTHERWISE дает возможность сделать выбор (аналог ELSE в Бейсике и Паскале).
C D if A>B Если A>B, то С присваивается значение D, в
противном случае E присваивается значение F.
E F otherwise
4.Кнопка FOR вводит в программу цикл с параметром ( когда заранее известно, сколько циклов необходимо выполнить).Количество циклов задается несколькими способами:
А) FOR A 5,4.7,8.9,7.3*10-5
В) FOR I 1..10
С) FOR A V (V- вектор)
5.Кнопка WHILE - образует заголовок цикла с предусловием. Такой цикл используется, если мы заранее не знаем, сколько циклов нам необходимо сделать для решения задачи.
( Аналогичные операторы имеются в Бейсике - оператор WHILE - WEND и в Паскале - оператор WHILE - DO).
В МАТКАДЕ набирается: WHILE < логическое условие>
< операторы, которые должны выполняться>.
Ниже приводятся элементы программ в МАТКАДЕ. Студент должен набрать их и прогнать.
ПРИМЕР 1. Задано значение Х. В зависимости от этого значения z принимает значение 0 или 3.
При изменении Х меняется Z
ПРИМЕР 2. Задано значение Х. Значение У по-прежнему зависит от Х, но вариантов здесь уже три.
ПРИМЕР 3. Задано найти сумму первых десяти натуральных чисел. До начала следует присвоить сумме S нулевое значение. Так как число циклов известно, используем оператор FOR.
В процессе решения примера
-
измените наибольшее значение Х до 100 ,
-
Суммируйте квадраты Х
ПРИМЕР 4. Сумма составляется в зависимости от величины Х
ПРИМЕР 5. Применение оператора WHILE. Суммировать натуральный ряд следует до тех пор, пока сумма не превысит число 30. Здесь используются две линии ADD LINE. Прежде всего устанавливаются начальные значения S и Х. Затем пишется оператор WHILE и во втором цикле - само накапливание. Нижняя буква S показывает, по какой переменной производится операция.
Порядок вычислений следующий:
1.Устанавливаются начальные значения S и X.
2.Осуществляется проверка условия. Так как оно выполняется, производится операция
S=S + X = 0+1.
-
Проверяется условие S<30
-
Производится вычисление S.
И так далее. То есть проверка производится ДО вычислений. Поэтому результат превышает заданный. Проверка то проводилась ДО вычисления, тогда было s<30, а после вычисления стало S>30 на очередной Х.
Оператор WHILE проверяет условие ( S<=30) ДО ОЧЕРЕДНОГО ЦИКЛА.
После решения заданного примера измените предельное значение S на 15,20, 50.
. Пользуясь материалом предыдущей лаб. работы, составить программы для решения следующих задач:
ЗАДАЧА 1. Найти сумму 25 натуральных чисел
S=1+2+3+4+.......+25
ЗАДАЧА 2. Найти сумму 25 членов числового ряда
S=1-2+4-8+16-32+..........
ПОДСКАЗКА. Здесь, если U n >0 , то Un+1= U n*(-2). В противном случае Un+1= abs (U n)*2
ЗАДАЧА 3. Суммировать 25 членов ряда
S= (3+4)/2 +(6+3)/4 +(12+2)/6 + (24+1)/8 + ............
ПОДСКАЗКА. Здесь следует представить общий член ряда в виде (a+ b)/c и определить закономерности изменения каждой составляющей.
ЗАДАЧА 4. Как известно, индийский владетель расплатился с изобретателем шахмат следующим образом: на первую клетку шахматного поля было положено одно зерно, на вторую - два, на третью -четыре (22 ), на четвертую - восемь (23 ) и т.д. На последнюю, 64-ую клетку было положено 263 зерен. Сколько зерна получил изобретатель шахмат, если одно зерно весит 0,3 г.?
ЗАДАЧА 5. Задан вектор v( 1,67,5,8,3). Найти его максимальную компоненту.
Все вышеприведенные задачи имели в ответе скаляр. МАТКАД позволяет получать ответ в виде вектора и матрицы. В задаче 6 ответы получаются в виде вектора.
ЗАДАЧА 6. Составить циклическую программу заполнения вектора числами:
А) v=(1,2,3) , В) v=(3,2,1) , С) v=( 1.4.9).