Электронная версия курса лекций по дисциплине "Информатика", страница 2

9  Отладка программы, т.е. обнаружение и исправление ошибок в ней. При компиляции программы компьютером, т.е. при переводе в ма­шинный код программы, написанной  на некотором языке программиро­вания, обнаруживаются синтаксические ошибки. Они заключаются в на­рушении программистом правил написания программы на языке про­граммирования. При их наличии программа не выполняется, и ЭВМ вы­дает сообщение об ошибках. На шаге выполнения программы на некото­ром наборе исходных данных компьютер может обнаружить только часть имеющихся логических ошибок, например, если ошибка приводит к си­туации “деление на ноль”. В этом случае происходит аварийное заверше­ние программы с выдачей сообщения об этом. Какие то ошибки могут привести к получению неправильного результата, а некоторые проявятся только при других исходных данных. Различают автономную и комплекс­ную отладку. Первая - это отладка части программного обеспечения (ПО) с имитацией работоспособности остальной его части. Вторая - это от­ладка всего ПО с помощью тестирования.

10  Решение задачи на ЭВМ.

11  Анализ  и  интерпретация  полученных  результатов и их оформление.

Часто приходится, с учетом полученных промежуточных результатов, осуществлять возврат к более ранним этапам.

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

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

Вопрос 2

Методический пример решения задачи с использованием математического моделирования. Программирование линейных алгоритмов.

1  Формулировка задачи (не является математической): определить величину значения сопротивления r данного резистора постоянному току. Для проведения измерений использовать источник тока, реостат, амперметр, вольтметр, а для расчетов ЭВМ.

2  Для подготовки к математической постановке задачи нужно осуществить следующие действия:

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

 


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

       в) измерить значение тока i, проходящего через резистор, а также падение напряжения на нем.

         Результаты измерений будут использованы в качестве исходных данных при математической постановке задачи. Цель решения сформулирована ранее.

3  Этапы решения данной задачи.

3.1  Математическая постановка задачи.

По известным значениям постоянного тока i (А) и напряжения u (В) на резисторе, рассчитать с помощью ЭВМ значение его сопротивления r (Ом).

3.2  В качестве математической модели резистора будем использовать закон Ома, согласно которого r=u/i, Ом.

3.3  Метод решения математической задачи - расчет по  известной формуле.

3.4  Составление схемы алгоритма

 


3.5  Запись алгоритма на языке программирования                           (в рассматриваем случае на языке программирования Паскаль).

       Текст программы:

{Иванов Иван Иванович АТС-151 j:\vtp\pas\lec1.pas 20.01.09}    {1}

program lec1;                                                                                    {2}

var u,i,r:real;                                                                                      {3}

begin                                                                                                 {4}

write('напряжение u(B)='); readln(u);                                          {5}

write('ток i(A)=');                 readln(i);                                          {6}

r:=u/i;                                                                                            {7}

writeln( 'Исходныеданные: u=', u:3:1, ',В i=', i:3:1,',А');              {8}

writeln('Результаты: r=', r:3:1, ',Ом');                                        {9}

writeln('...');                                                                                 {10}

writeln('Пpогpамма завершена. Нажмите Enter’);                 {11}

readln;                                                                                        {12}

end.                                                                                                 {13}

Часто имеют место следующие синтаксические ошибки: "ожидается ;", "неизвестный идентификатор", " несоответствие количества слов begin и end", "несоответствие типов", "количество открывающихся скобок не равно количеству закрывающихся", а также логические: "не инициализировано значение переменной", "программа не соответствует правильной блок-схеме" и др.

Вопрос 3

Анализ текста данной программы

1  Рассмотрим использование словаря (алфавита) языка программирования. В состав алфавита входят  ключевые (служебные) слова и символы. В рассматриваемой программе используются  служебные слова: program, var, real, begin, end, integer. Символы подразделяются на буквы, арабские цифры, знаки арифметических операций, знаки опера­ций сравнения, разделители (знаки препинания, скобки, апост­рофы, :=).

2  Комментарии помещаются в программу только  для программистов и пользователей программы. Текст комментария заключается в фигурные скобки и ЭВМ не анализируется. В программе запрещается использовать вне комментария русские буквы, за исключением вывода строки символов.

3  Вторая строка является заголовком программы. Имя программы lec1.  Она находится в файле j:\vtp\pas\lec1.pas.

4  В данной программе  используются  имена (идентификаторы): переменных - u , i , r и стандартных подпрограмм - write,  writeln,  readln. Стандартными на­зываются подпрограммы, входящие  в  комплект программного обеспечения языка программирования.  Идентификаторы должны начинаться с буквы, за которой могут следовать цифры.