Лабораторная работа 2. Элементы математического моделирования
Сегодня вы впервые решите с помощью ЭВМ реальную физическую задачу - задачу о равноускоренном движении тела. Как вы уже знаете, сначала надо иметь математическую модель физического явления и сымитированного на ЭВМ исполнителя, способного выполнить алгоритм решения задачи. Математическая модель была создана в § 3. Что касается исполнителя, то нас вполне устроит ВЫЧИСЛИТЕЛЬ (см. § 5).
Прежде чем приступить к решению задачи, давайте познакомимся с реализацией допустимых действий ВЫЧИСЛИТЕЛЯ ("Сообщить", "Запросить", "Присвоить") на ЭВМ. С действием "СООБЩИТЬ" вы уже знакомы по лабораторной работе 1. Помните ли вы, как выполняется это действие?
Проверьте себя, заставив ЭВМ вычислить значение числового выражения
Действие
ЗАПРОСИТЬ А, В
выполняется так: на экране появляется надпись "ВВЕДИ ЧИСЛО", после чего ЭВМ ждет, пока вы наберете число и нажмете клавишу "ПЕРЕВОД СТРОКИ". Затем ВЫЧИСЛИТЕЛЬ обозначит ваше число буквой А и попросит ввести еще одно число, обозначив его буквой В. И вообще, по команде "ЗАПРОСИТЬ" ВЫЧИСЛИТЕЛЬ будет столько раз требовать у вас число, сколько букв записано после слова "ЗАПРОСИТЬ".
Обратите внимание: в команде "ЗАПРОСИТЬ" переменные надо разделять запятой, а не точкой, не пробелом и не точкой с запятой. На первый взгляд это - мелочь, но при работе с машиной такая мелочь способна свести на нет весь ваш труд. Если заменить запятую на какой-нибудь другой знак, то из хорошо знакомой ВЫЧИСЛИТЕЛЮ команды получится бессмысленный для него набор символов. Об этом он сообщит, напечатав слова "СИНТАКСИЧЕСКАЯ ОШИБКА".
Заставьте ВЫЧИСЛИТЕЛЯ выполнить команду
ЗАПРОСИТЬ А, В, С
Функциональные клавиши облегчат вам набор команды и уберегут от многих ошибок при записи команд. Вспомните, как этими клавишами пользоваться.
Как проверить, правильно ли ВЫЧИСЛИТЕЛЬ выполнил вашу команду? Хороший способ-заставить его напечатать значения А, В и С на экране, дав ему команду
СООБЩИТЬ А, В, С
Введите эту команду и убедитесь, что все в порядке.
А теперь давайте поручим ВЫЧИСЛИТЕЛЮ выполнить несколько присваиваний. Введите команду
А = 2 ∗ 3
Курсор на мгновение исчез, а затем появился вновь. Это означает, что ВЫЧИСЛИТЕЛЬ исполнил вашу команду. Проверьте с помощью команды
СООБЩИТЬ А
что значение переменной А стало равно 6. Можно, конечно, изменить значение А. Скажем - увеличить А на 3, дав, например, ВЫЧИСЛИТЕЛЮ команду
А = 9
Впрочем, даже не зная значения А, вы все равно можете заставить ВЫЧИСЛИТЕЛЯ увеличить А на 3. Достаточно ввести
команду
А = А + 3
Эта запись может вас удивить: она похожа на уравнение. Но дело в том, что команда присваивания только с виду похожа на уравнение. В уравнениях одни и те же буквы обозначают одни и те же числа. А команда присваивания нужна как раз для того, чтобы изменять значения переменных. Действие команды A = A + 3 можно представить себе так: в "ящике", на котором написана буква А, лежит число (неважно какое); ВЫЧИСЛИТЕЛЬ берет это число, увеличивает его на три и кладет обратно.
Итак, с имитацией ВЫЧИСЛИТЕЛЯ на ЭВМ вы познакомились. Можно приступать к решению задачи о равноускоренном движении. Напомним ее формулировку.
Задача. Тело движется прямолинейно с ускорением а м/с2 и начальной скоростью v м/с. Требуется определить, какой путь пройдет тело за Т секунд.
При построении математической модели интервал времени разбивался на большое количество маленьких промежутков, и мы предположили, что скорость тела на каждом из них постоянна и меняется "мгновенно" в конце каждого промежутка.
При этом была получена такая формула:
Она задает связь между исходными данными (ускорением а, начальной скоростью v, временем Т и числом промежутков N) и результатом (длиной пути S).
Теперь, когда вы вспомнили математическую модель, пора приниматься за составление алгоритма решения задачи.
Алгоритм вычисления S таков:
Запросить значения А, V, Т, N.
Присвоить S значение выражения .
Сообщить значение S.
Чтобы ЭВМ выполнила этот алгоритм, превратим его в программу. Сделать это просто. Надо только для каждого действия из алгоритма записать соответствующую команду и эти команды перенумеровать:
1 ЗАПРОСИТЬ А, V, Т, N
2 S=V ∗ T + A ∗ Т^2 ∗ (N - 1)/(2∗N)
3 СООБЩИТЬ "Путь равен"
4 СООБЩИТЬ S
На языке Бейсик та же программа выглядит так:
1 INPUT A,V,T,N
2. LET S ∗ V ∗ T + A ∗ T^2 ∗(N -1)/(2 ∗ N)
3 PRINT "Путь равен"
4 PRINT S
Теперь наберите текст составленной программы на клавиатуре ЭВМ. Только не забывайте нажимать клавишу "ПЕРЕВОД СТРОКИ" после набора каждой строки (последний раз напоминаем вам об этом!). Если же вы допустили синтаксическую или орфографическую ошибку (не поставили в нужном месте запятую или написали "СААПЧЩИТЬ"), машина сообщит вам об этом. Не теряйтесь, найдите ошибку и исправьте ее, как вас учили на лабораторной работе 1.
Вводя программу, вы могли случайно пропустить какую-нибудь строку. Не беда, строки программы можно набирать в любом порядке, главное - верно их нумеровать. ВЫЧИСЛИТЕЛЬ сам расставит строки в нужном порядке.
Может случиться и так, что вы ввели лишнюю строку. Для того чтобы уничтожить ее, надо набрать номер этой строки, а затем клавишу "ПЕРЕВОД СТРОКИ". Недостаточно просто стереть строку на экране - в памяти ВЫЧИСЛИТЕЛЯ она останется.
Вы, возможно, удивились, что машина не торопится, как раньше, выполнять ваши команды после нажатия клавиши "ПЕРЕВОД СТРОКИ". Чем же эти команды отличаются от тех, которые вы вводили раньше? Тем, что они занумерованы. В этом-то все и дело. Команду без номера ЭВМ выполняет немедленно, но не запоминает ее; а занумерованную команду ЭВМ запоминает, но будет исполнять ее только по специальному указанию. Таким указанием служит команда "ПУСК" (на Бейсике команда "RUN").
Не спешите, однако, вводить команду "ПУСК", т. е., как говорят программисты, "запускать программу на исполнение". Лучше сначала вызвать текст программы на экран, чтобы проверить, правильно ли ЭВМ ее запомнила. Для этого служит команда "ТЕКСТ" (на Бейсике команда "LIST"). Если найдете ошибку - исправьте ее, снова проверьте и т. д. Только после того как вы убедитесь, что машина правильно поняла, что ей надо будет делать, запускайте программу.
Ура! Машина начала выполнять первую в вашей жизни программу: появилась надпись "ВВЕДИ ЧИСЛО" (или вопросительный знак, если вы используете Бейсик). Скорее вводите в ЭВМ ускорение А, скорость V, время Т и число интервалов N. В ответ машина сообщит вам путь S.
Запустите программу еще несколько раз, увеличивая значения N и сохраняя значения А, V, Т. Проследите за тем, как сближаются соответствующие значения S. Добейтесь, чтобы два последовательных значения S отличались друг от друга меньше, чем на 0,01. При каком N вам удалось этого достичь?
Итак, мы составили программу и провели расчеты на ЭВМ. Этим, как вы помните, еще не завершается решение задачи с помощью ЭВМ. Результаты надо проанализировать. И в первую очередь вас, конечно, волнует, как эти результаты согласуются с тем, что вам говорили на уроках физики. Узнать это вам тоже поможет ЭВМ.
Составьте самостоятельно программу для вычисления S по известной вам из курса физики формуле:
Заметьте, что команды 3 и 4 можно оставить прежними, а команды 1 и 2 лишь несколько укоротить. Поэтому не надо набирать программу заново, достаточно вызвать ее на экран и внести изменения. Запустив программу и получив значение S, вы сможете убедиться в том, что оно весьма близко к значениям, вычисленным по предыдущей программе. Это свидетельствует о том, что наша математическая модель согласуется со сведениями, полученными вами в курсе физики, что и требовалось.