Курс лекций для специальности «Прикладная математика» Первый семестр

Вид материалаКурс лекций

Содержание


Арифметические выражения
Логические операции
Пример Вычислить S = 1 - x**2/2! + x**4/4! - x**6/6! + ... с точностью E.Алгоритм
Label m17,m18
M18: writeln(s)
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   13

Лекция 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. Интегрированная среда ТР


Для создания программ на языке ТР необходимо освоить работу в интегрированной среде ТР. Интегрированная среда ТР содержит встроенный редактор, транслятор и сервисные средства. Необходимо научиться набирать и редактировать текст программ, компилировать, выполнять и просматривать результаты работы программы.