Файл: Лабораторная работа № 1.doc

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

ЛАБОРАТОРНАЯ РАБОТА №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.

В процессе решения примера

  1. измените наибольшее значение Х до 100 ,

  2. Суммируйте квадраты Х


ПРИМЕР 4. Сумма составляется в зависимости от величины Х

ПРИМЕР 5. Применение оператора WHILE. Суммировать натуральный ряд следует до тех пор, пока сумма не превысит число 30. Здесь используются две линии ADD LINE. Прежде всего устанавливаются начальные значения S и Х. Затем пишется оператор WHILE и во втором цикле - само накапливание. Нижняя буква S показывает, по какой переменной производится операция.

Порядок вычислений следующий:

1.Устанавливаются начальные значения S и X.

2.Осуществляется проверка условия. Так как оно выполняется, производится операция

S=S + X = 0+1.

  1. Проверяется условие S<30

  2. Производится вычисление 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).


1