Курс лекций для специальности «Прикладная математика» Первый семестр
Вид материала | Курс лекций |
СодержаниеАрифметические выражения Логические операции Пример Вычислить S = 1 - x**2/2! + x**4/4! - x**6/6! + ... с точностью E.Алгоритм Label m17,m18 M18: writeln(s) |
- Курс лекций для специальности Прикладная математика и информатика, 774.04kb.
- Календарный план лекций по курсу «математический анализ» Для специальности «Математика», 39.98kb.
- Рабочая программа, 160.99kb.
- Рабочая программа, 182.62kb.
- Цифровая обработка сигналов, 137.86kb.
- Курс лекций (28 часов) канд филос наук О. В. Аронсон Курс лекций «Математика и современная, 27.49kb.
- Урс «Численное решение обыкновенных дифференциальных уравнений» читает кафедра фн-2, 24.78kb.
- Курс IV семестр 8 Всего аудиторных занятий 52 Лекций, 117.53kb.
- Курс лекций в электронной форме содержит все лекции предусмотренные программой дисциплины, 32.88kb.
- Календарный план учебных занятий по обязательной дисциплине «Дискретная математика, 109.62kb.
Лекция 2
2.1. Договоренности о синтаксисе
Для того, чтобы построить таблицу перевода элементарных структур на алгоритмический язык, необходимо познакомиться с минимальными синтаксическими требованиями этого алгоритмического языка. На примере языка Турбо Паскаль (Turbo Pascal – ТР) мы сформулируем эти минимальные требования, чтобы каждый из вас мог самостоятельно построить таблицу перевода элементарных структур на другой алгоритмический язык. Поскольку в настоящем разделе мы познакомимся не с синтаксисом языка ТР, а лишь с его частью, достаточной для записи алгоритма, использоваться, пока, будет не вся мощь алгоритмического языка.
Нам потребуются следующие элементы языка ТР:
Целая константа - цепочка цифр, возможно со знаком (Например: 1,-1995,+22).
Действительная константа - цепочка цифр с точкой, возможно со знаком (Например: 3.1415, -0.0, +0.0001).
Переменная = <имя, тип, значение>. Имя - идентификатор (слово из латинских букв и цифр, начинающееся с буквы), Тип - действительный или целый (пока), значение должно соответствовать типу.
Арифметические операции + (сложение), - (вычитание), * (умножение), / (деление), div (деление целых), mod (взятие остатка).
Арифметические выражения – осмысленные комбинации арифметических (целых и действительных) величин (констант и переменных), связанных арифметическими операциями.
Отношения: равно (=), не равно (<>), больше (>), бльше либо равно (>=), меньше (<), меньше либо равно (<=) - связывают арифметические величины, результат - логическая величина (принимает значения либо «истина» (TRUE), либо «ложь» (FALSE)).
Логические операции – not (отрицание), and (логическое умножение), or (логическое сложение).
Логические выражения – осмысленные комбинации логических величин, связанных логическими операциями.
2.2. Текст программы на Turbo Pascal
Текст программы на языке ТР представляет собой последовательность символов (латинские буквы и некоторые знаки кодовой таблицы). Транслятор читает этот текст последовательно, игнорируя разбиение на строки, не различая строчные и прописные буквы, пропуская комментарии (часть текста, заключенная в фигурные скобки { }). Символ пробел является разделителем слов, несколько пробелов подряд воспринимается как один пробел. Символ точка с запятой является разделителем между предложениями (операторами языка). В любом месте программы, где допустимо записать какой-нибудь оператор, можно записать пустой оператор (ничего не писать).
Текст программы на языке ТР начинается с заголовка program <имя программы>, где имя программы – уникальный идентификатор в программе. Заканчивается текст программы на языке ТР закрывающей логической скобкой end с точкой. С открывающей логической скобки begin, соответствующей последнему end программы, начинается секция действий. Секция действий состоит из записи алгоритма решения задачи на алгоритмическом языке ТР. Именно сюда и помещается текст, полученный из алгоритма по таблице перевода.
После заголовка программы до секции действий расположена секция описаний. В этой части программы необходимо указать транслятору имена переменных, используемых в программе, и их тип.
2.3 Элементарные операции
При записи на ТР элементарной операции присваивания следует учесть, что имя операции – комбинация символов := (двоеточие и равенство), слева от имени оператора записывается имя переменной, которой присваивается значение, а справа – выражение. В выражении должны использоваться только допустимые для данного типа операции, порядок выполнения операций лучше указать скобками.
Элементарные операции ввода реализуются предопределенными в ТР процедурами ввода read и readln.
Read ( <список элементов ввода через запятую>)
Readln ( <список элементов ввода через запятую>)
Под элементами ввода подразумеваются имена переменных ввода. Ввод данных осуществляется с устройства ввода. Обе процедуры выполняют одну и ту же функцию – с устройства ввода последовательно погружают данные в элементы ввода. Отличие их заключается в том, что после завершения своей работы процедура readln на устройстве ввода осуществляет переход на новую логическую запись. Если устройство ввода – клавиатура, переход на новую логическую запись осуществляется пользователем нажатием на клавишу Enter. Поэтому ввод с клавиатуры лучше осуществлять процедурой readln.
Элементарные операции вывода реализуются предопределенными в ТР процедурами вывода write и writeln.
Write ( <список элементов вывода через запятую>)
Writeln ( <список элементов вывода через запятую>)
Под элементами вывода подразумеваются имена переменных и констант. Вывод данных осуществляется на устройство вывода. Отличие процедур заключается в том, что после завершения вывода данных процедура writeln осуществляет переход на новую логическую запись. Если устройство вывода – экран монитора, переход на новую логическую запись соответствует переходу курсора в начало следующей строки.
2.4. Таблица перевода для структур
Пусть нам удалось записать на языке ТР фрагменты Ф1 и Ф2.
Связать эти два фрагмента линейной структурой очень просто. Нужно выписать первый фрагмент, затем поставить знак ; (тока с запятой), а затем выписать второй фрагмент.
Чтобы связать фрагменты Ф1 и Ф2 структурой выбора, можно использовать следующий оператор ТР:
if Усл then begin Ф1 end else begin Ф2 end
Логические скобки begin … end можно опустить около фрагмента, если фрагмент представляет собой единый оператор.
Чтобы связать фрагменты Ф1 и Ф2 структурой цикла, можно воспользоваться следующей конструкцией:
M1: Ф1; if Усл then goto M2; Ф2; goto M1; M2:
Здесь используются метки M1 и M2, которые должны быть описаны в секции описаний. Предложенная реализация цикла довольно неуклюжа, однако, практически всегда можно модифицировать цикл так, либо фрагмент Ф1 отсутствовал, либо фрагмент Ф2 отсутствовал. Для таких частных случаев в языке ТР имеются очень удобные операторы:
repeat Ф1 until Усл
while not Усл do begin Ф2 end
Пример
Вычислить S = 1 - x**2/2! + x**4/4! - x**6/6! + ... с точностью E.
Алгоритм:
Текст программы
PROGRAM Example01;
LABEL M17,M18;
var X,E,S,A:REAL; I,ZN:INTEGER;
BEGIN
READLN(X,E);
S:=0;
ZN:=1;
I:=0;
A:=1;
M17: S:=S+ZN*A;
IF A
ZN:=-ZN;
I:=I+2;
A:=A*X*X/(I*(I-1));
GOTO M17;
M18: WRITELN(S);
END.
2.5 Практические рекомендации по решению задач
Вы получили задачу, сформулированную на русском языке. Прежде чем приступать к ее решению, постарайтесь вдуматься в условие задачи и точно его понять. Затем следует продумать, какие исходные данные и в каком порядке потребуются при решении задачи и что собой будет представлять результат работы будущей программы. Следует, также, продумать сюжет взаимодействия пользователя с Вашей программой (интерфейс пользователя). Интерфейс пользователя должен быть удобным и простым.
Особое внимание следует уделить обозначениям, используемым в алгоритме. Имена объектов алгоритма должны соответствовать смыслу обозначаемых ими объектов, но не забывайте, что эти же имена нужно будет использовать и в тексте программы на ТР, поэтому позаботьтесь о том, чтобы эти имена были допустимы в языке ТР.
Продумайте решение задачи и постарайтесь его изложить на русском языке. Пока не будет полной уверенности в правильности Вашего решения не начинайте детализацию сверху вниз с записью на языке схем алгоритмов. Только полностью закончив детализацию алгоритма, садитесь за компьютер.
2.6. Понятие о файловой системе
В современных операционных системах хорошо развиты средства поддержки файловой системы. Для уверенной работы за ПК необходимо уметь ориентироваться в существующей файловой структуре и выполнять основные операции поддержки файловой системы – создание , удаление, переименование, копирование и перенос файлов и папок.
2.7. Интегрированная среда ТР
Для создания программ на языке ТР необходимо освоить работу в интегрированной среде ТР. Интегрированная среда ТР содержит встроенный редактор, транслятор и сервисные средства. Необходимо научиться набирать и редактировать текст программ, компилировать, выполнять и просматривать результаты работы программы.