- •Литература
- •10. Основы программирования на языке turbopascal. Учебное пособие. Б. А. Крымов, а. О. Мовшин, с. В. Кулакова. Воронеж: вгта. 2000.
- •Тема 1. Информатика и информационные процессы
- •1.1. Основные понятия информатики
- •Хранение данных
- •Восприятие информации
- •Изменение окружающей среды
- •Применение знаний
- •1.2. Информационные процессы: подробности
- •1.2.1. Процесс сбора данных
- •1.2.2. Процесс хранения данных.
- •1.2.3. Процесс передачи данных
- •Оконечное оборудование
- •1.2.4. Процесс обработки данных
- •Тема 2. Алгоритмизация и программирование
- •2.1.Алгоритм и его свойства
- •2.2. Формы записи алгоритма
- •2.3. Базовые алгоритмические структуры
- •2.4. Последовательность подготовки и решения задачи на эвм
- •2.5. Конструктивные элементы языка pascal
- •2.6. Обзор языков программирования
- •Тема 3. Общие принципы организации и функционирования компьютера
- •3.1. Архитектура и структура эвм. Принципы построения компьютеров
- •3.2. Аппаратные средства. Функции основных блоков эвм.
- •3.3. Устройство персонального компьютера
- •Тема 4. Программное обеспечение пк
- •4.1. Структура программного обеспечения
- •Прикладное по
- •4.2. Функции операционной системы
- •4.3. Операционные системы Windows
- •4.4. Объектно-ориентированная платформа ос Windows
- •4.5. Пользовательский графический интерфейс ос Windows
- •Приложение 1 Наиболее часто используемые служебные слова pascal
- •Приложение 2 Стандартные функции pascal
2.4. Последовательность подготовки и решения задачи на эвм
Подготовка и решение инженерной задачи на ЭВМ (электронной вычислительной машине) включает в себя ряд последовательно выполняемых этапов.
постановка задачи;
составление математического описания задачи;
разработка алгоритма решения;
составление текста программы;
ввод программы в ЭВМ, ее трансляция и отладка;
ввод исходных данных и выполнение программы (счет);
анализ результатов.
Постановка задачи должна включать в себя
- цель решения;
- словесную формулировку самой задачи в терминах той области знаний, для которой она решается;
- перечень исходных данных, необходимых для решения задачи;
- перечень искомых величин и форму их представления;
- сведения о требуемой точности счета.
Во многих случаях в постановку задачи включают ее экономическое обоснование.
Математическое описание (математическая модель) задачи представляет собой формализованную запись содержания поставленной задачи в виде совокупности математических соотношений, которые связывают между собой исходные данные и результаты счета. Математическая модель технической или научной задачи формулируется, как правило, с использованием понятий таких математических дисциплин, как дифференциальное и интегральное исчисление, линейная алгебра и т.д.
Вспомним пример 1.1. Если мул возьмёт у лошади один мешок, его ноша станет вдвое тяжелее лошадиной. А если перенести со спины мула один мешок на спину лошади, их поклажи сравняются. Сколько мешков несла лошадь, и сколько нёс мул?
В постановке задачи сформулирована цель – узнать количество мешков в каждой поклаже. Записав условия задачи в формализованном виде, мы получим математическую модель.
Обозначим Х и Y – количество мешков на спине лошади и мула, соответственно.
Если снять у лошади один мешок и положить на мула, то у них будет X – 1 – у лошади и Y + 1 – у мула. По условию Y + 1 = 2 (X – 1) – первое уравнение (формализованное представление первого условия).
Если снять у мула один мешок и положить на лошадь, то у них будет X + 1 – у лошади и Y – 1 – у мула. По условию Y – 1 = X + 1 – второе уравнение.
После преобразований получим систему уравнений
,
которая и является математической моделью данной проблемы. Чтобы решить задачу, надо составить алгоритм, например, на основе правила Крамера (см. 1.2.4).
Трансляция программы – перевод текста программы с алгоритмического языка (например, PASCAL) на язык машинных команд. Для этого используется специальная программа – транслятор, которая просматривает текст программы и осуществляет автоматический перевод.
Отладка программы – анализ работы программы и исправление ошибок. Существует два вида ошибок: синтаксические и семантические (см. далее определения синтаксиса и семантики языка программирования). Синтаксические ошибки обусловлены неправильным синтаксисом текста программы, т.е. если текст написан с нарушением правил выбранного языка программирования. Поскольку в транслятор заложены синтаксические правила языка, то при трансляции синтаксические ошибки обнаруживаются самим компьютером и выдаются соответствующие сообщения.
Семантические ошибки (смысловые) возникают при неправильно составленном алгоритме. В этом случае программа, даже составленная по всем правилам, выдает неправильный результат. Такие ошибки не могут быть исправлены автоматически, а требует активного вмешательства программиста. Наиболее универсальный способ обнаружения семантических ошибок – тестирование. Тестирование программы – пробное решение примеров с заранее известными ответами. Если ответ, полученный программой не совпадает с известным, это означает, что программа содержит ошибки. Правильно составленный тест позволяет достаточно точно определить ошибочный участок текста программы (локализовать ошибку), найти ее и исправить. Составление хороших тестов – сложное занятие, требующее большого мастерства и опыта.
Пример 2.3. Пусть необходимо составить программу решения системы уравнений, полученной в примере 1.1. Воспользуемся для этого правилом Крамера. Представим данную систему в общем виде
Тогда, согласно правилу Крамера, решение будет иметь следующий вид:
; , гдеD = А11А22 – А21А12, Dx = b1A22 – b2A12,
Dy = A11b2 – A21b1.
Соответствующая программа будет иметь вид:
var x,y,A11,A12,A21,A22,b1,b2,Dx,Dy,D : real;
begin readln(A11,A12,b1);
readln(A21,A22,b2);
D:=A11*A22-A21*A12;
Dx:=b1*A22-b2*A12; Dy:=A11*b2-A21*b1;
x:=Dx/D; y:=Dy/D;
writeln(x:10:2,y:10:2);
readln;
end.
Как было сказано, в программе возможны синтаксические и семантические ошибки. Синтаксические ошибки обнаруживаются транслятором, а семантические – тестированием программы. Наиболее вероятные семантические ошибки в любой программе – неправильно записанные формулы. Для проверки правильности формул данной программы решим какую-нибудь простую, легко решаемую систему, например, систему
с единичной матрицей, т.е. при A11 = 1, A12 = 0, A21 = 1, A22 = 0. Тогда для любых b1 и b2 при правильных формулах получим x = b1, y = b2. В противном случае формулы содержат ошибки. Если, например, мы при b1 = 10, b2 = 6 получили х = 6, у = 10, то это означает, что мы перепутали формулы для Dx и Dy и в программу надо внести соответствующее изменение.