Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОАиП_1 / ПАСКАЛЬ.doc
Скачиваний:
41
Добавлен:
25.02.2016
Размер:
2.11 Mб
Скачать

Занятие 3 Разработка и отладка линейных программ. Операторы ввода и вывода

ЦЕЛЬ РАБОТЫ - сформировать представление о структуре программы на языке Turbo Pascal 7.0; познакомить с форматами и предназначением основных арифметических выражений, операторами ввода и вывода; развивать умение по использованию арифметических выражений для составления простейших программ на языке Turbo Pascal.

1 Теоретические ОСНОВЫ

Структура программы

Любая программа на языке Turbo Pascal состоит из заголовка и программных блоков. Блок, который не входит ни в какой другой блок, называется глобальным. Если в глобальном блоке находятся другие блоки, то они называются локальными.

Глобальный блок — это основная программа, и он должен быть обязательно.

Локальные блоки — это процедуры и функции, их присутствие необязательно.

Program Имя; {заголовок}

Uses Список модулей;

{программный блок}

Type {раздел типов}

Const {раздел констант}

Label {раздел меток}

Var {раздел переменных}

Procedure, Function {раздел процедур и функций}

Begin

оператор1;

{раздел операторов}

операторN

End.

В заголовке программы указывается имя программы (идентификатор). Также можно указать комментарии, заключенные в круглые скобки. Заголовок программы выполняет декоративные функции и служит для совместимости с другими компиляторами языка Turbo Pascal. Заголовок программы компилятором игнорируется.

После заголовка при необходимости располагается Uses–часть, где вслед за ключевым словом Uses записывается список используемых модулей (библиотек), с процедурами или функциями, не являющимися зарезервированными для Turbo Pascal.

Блок программы состоит из пяти разделов описаний и раздела операторов. Разделы описания могут встречаться в программе любое количество раз и следовать в любом порядке, также могут отсутствовать. Присутствие раздела операторов является обязательным, и расположение его строго ограничено, за всеми разделами описания. Каждый раздел начинается соответствующим зарезервированным ключевым словом (Label, Const, …). В конце блока программы должно стоять ключевое слово End с точкой.

1.1 Раздел описания типов

В разделе описания типов программист может задать пользовательский тип, тип-диапазон или тип перечисления, сформированный на основе определенных правил с использованием стандартных типов.

Пример:

Type

Ocenki=2..5;

1.2 Раздел описания констант

Раздел описания констант используется для задания переменным начального значения при их описании. Для описания константы используется ключевое слово Const, имя константы, знак «=» и значение константы.

Пример:

Const

Max_Byte=255;

Flag = False;

1.3 Раздел описания меток

В Turbo Pascal метки используются для перехода к помеченному оператору, следующему за меткой, при помощи оператора GoTo. Метка допускается везде, где допустим разделитель. Метка отделяется от помеченного оператора «:». Все метки до их использования должны быть описаны. Их имена могут задаваться как целочисленные числа (от 0 до 9999) или как идентификатор. Каждая описанная метка должна использоваться в программе.

Пример:

Label

1,Lab1,met;

1.4 Раздел описания переменных

Для описания переменных предназначено зарезервированное слово Var. Перед тем как с переменными данными будут выполнены какие-либо действия, они должны быть описаны.

Область действия переменных – блок, где они описаны, а также все вложенные блоки, если в них переменные не описаны повторно

Пример:

Var

i,k:Integer;

p,l:Real;

1.5 Раздел описания процедур и функций

Раздел описания процедур и функций служит для задания имен с параметрами процедур или функций, которые будут использоваться в данной программе. В этом разделе после задания имени процедуры (функции) следует тело процедуры (функции), которое начинается ключевым словом Begin и заканчивается ключевым словом End;

Пример:

Functon Tg(x:Real):Real; Procedure Vivod(x:Real);

Begin Begin

Tg:=Sin(x)/Cos(x); WriteLn(‘X=’,x:7:3);

End; End;

1.6 Раздел операторов

Раздел операторов предназначен для написания тела программы и не может отсутствовать. В его состав входят основные операторы (присвоения, условные, операторы повтора), процедуры и функции, а также комментарии.

Пример программы нахождения корней уравнения:

Program Exemp1; { Заголовок программы }

Var { Описание используемых }

a,b,c,d,x1,x2:Real; { в программе переменных }

Begin { Начало программы }

a:=2; b:=3; c:=1; { Задание значения а,b,c }

D:=Sqr(b)-4*a*c; { Вычисление значения d }

x1:=(-b-Sqrt(d))/(2*a); { Вычисление значения x1 }

x2:=(-b+Sqrt(d))/(2*a); { Вычисление значения x2 }

WriteLn(‘x1 = ’,x1); { Вывод значения x1 }

WriteLn(‘x2 = ’,x2); { Вывод значения x2 }

End. { Конец программы }

Арифметические выражения языка Turbo Pascal

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

Выражение — задает порядок выполнения действий элементами данных и состоит из операндов, скобок и знаков операции.

Все операции в Turbo Pascal делятся на: арифметические (математические); отношения; логические; строковые.

Арифметические операции выполняются над данными типа Integer, Byte, Real. Арифметическое выражение порождает целое или двойственное значение. К ним принадлежат:

Divцелочисленное деление. Результатом будет деление числа без остатка. Перед выполнением оба операнда округляются до целых значений.

Пример:

с:=a Div b; { При a=11 и b=2 с будет равно 5 }

Mod — остаток, полученный при выполнении целочисленного деления.

Пример:

с:=a Mod b; { При a=11 и b=2 с будет равно 1 }

Математические процедуры языка Turbo Pascal обрабатывают данные любого простого типа.

Inc (X,K) — процедура увеличивает переменную X на величину равную K. Если процедура Inc записана без второго параметра, значение увеличения равно 1.

Пример:

Inc(K,5) { Значение K увеличется на 5 }

Inc(D) { Значение D увеличится на 1 }

Dec (X,K) — процедура уменьшает переменную X на величину равную K. Если процедура Dec записана без второго параметра, значение уменьшения равно 1.

Пример:

Dec(K,2) { Значение K уменьшится на 2 }

Dec(A) { Значение A уменьшится на 1 }

Арифметические процедуры и функции.

Они реализуют наиболее часто встречающиеся в практике математические действия и операции.

Используют следующие обозначения параметров:

B — байтовый тип Byte,

I — целочисленный тип Integer,

R — вещественный тип Real

Арифметические (математические) функции языка Turbo Pascal представлены в таблице.

Таблица – Математические функции языка Turbo Pascal

Функция

Переменная

Наименование

Тип результата

Abs (X)

IBR

Модуль Х

Как у переменной

Arctan (X)

IBR

Арктангенс Х

Real

Frac (X)

IBR

Косинус Х

Real

Exp (X)

IBR

Дробная часть Х

Real

Int (X)

IBR

Экспонента в степени Х

Real

Ln (X)

IBR

Целая часть Х

Real

Sin (X)

IBR

Натуральный логарифм Х

Real

Sqr (X)

IBR

Синус Х

Real

Sqrt (X)

IBR

Х в квадрате

Как у переменной

IBR

Корень квадратный из Х

Real

В Turbo Pascal зарезервированы три тригонометрические функции (Sin, Cos, Arctan). Для вычисления остальных тригонометрических функций необходимо использовать соотношения:

Tg(X)=Sin(X)/Cos(X) Ctg(X)=Cos(X)/Sin(X)

Arcsin X= Arcos x=/2-arcsin x

Arcctg x=/2-arctg x

Для вычисления логарифма с основанием a: Loga(x)=Ln(x) / Ln(a)

Для возведения числа x в степень a необходимо использовать формулу: xa=Exp(a*Ln(x))

Операторы ввода и вывода

Для выполнения операции ввода-вывода служат четыре оператора: Read, ReadLn, Write, WriteLn.

Оператор чтения Read обеспечивает ввод числовых данных, символов и строк для последующей их обработки программой.

Формат оператора Read:

Read (x1, x2,…xn).

Значения x1, x2, … xn набираются минимум через один пробел на клавиатуре пользователем и высвечиваются на экране. После набора значений нажимается клавиша Enter. Значения переменных должны вводится в соответствии с типами данных. Например: если х1Integer, а набирается тип Char, то машина выдает сообщение об ошибке.

Оператор чтения ReadLn аналогичен Read. Единственное отличие заключается в том, что после считывания последнего в списке значения для одного оператора ReadLn он переводит курсор в начало следующей строки.

Оператор записи Write производит вывод числовых данных, символов, строк и булевских значений.

Формат оператора Write:

Write (y1, y2,…,yn),

где y1, y2,…,ynInteger, Byte, Real, Char, Boolean.

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

I, p, q — Integer

R — Real

B — Byte

# — цифра

* — знак + или -

_ — пробел

Форматы оператора вывода Write.

I выводится десятичное число I, начиная с позиции расположения курсора.

Если I=134

Write (I) 134

I:p — выводится число I в крайние правые позиции поля шириной p

Write (I:6) _ _ _ 134

Rв поле шириной 18 символов выдается вещественное число R в формате с плавающей запятой

R >=0 _ _ #.##########E*##

R <=0 _ - #.##########E*##

Если R = 715.432

Write (R) _ _ 7.1543200000E+02

R:pвещественное число выводится в крайние правые позиции поля шириной p символов. Если R>=0, то минимальная длина поля 7 символов. Если R<0 минимальная длина поля 8 символов.

R>=0 _ _ _ ##.#..#E*##

Р - символов

R< 0 _.._ -#.##..#E*##

R:p:qвыводится число в крайние правые позиции поля шириной р, в котором q символов отводится для дробной части числа

Если R = 511.04

Write(R:8:4) 511.0400

WriteLn аналогичен Write, только производится перевод строки.

Рассмотрим решение задачи вычисления значения функции y=f(x), на языке Turbo Pascal. f(x)=cos(x)-x2

Program Exemp2; { Заголовок программы }

Var { Описание используемых }

y,x:Real; { в программе переменных }

Begin { Начало программы }

Write(‘Введите x - ’); {Вывод поясняющего текста}

ReadLn(x); { Считывание значение х }

y:=Cos(x)-Sqr(x); { Вычисление значения y }

WriteLn(‘y = ’,y); { Вывод значения y }

End. { Конец программы }

Требования к программе на языке Turbo Pascal

1. Программа должна соответствовать принципам структурного программирования (использование простых методов решения, желательно без крайней необходимости не использовать goto, выбор производить с использованием if, then, else, case, простота циклов, большие программы следует разбивать на логически завершенные процедуры и функции, имена констант, переменных, процедур должны нести смысловую нагрузку).

2. Максимальная длина программной строки не должна превышать 127 символов.

3. Слова Program, Procedure, Function должны начинаться с заглавных букв.

4. Операторы записываются строчными буквами.

5. Имена констант, переменных, функций начинаются с прописных букв.

6. Логически подчиненные структуры записываются ниже и на одну позицию вправо по отношению к более старшим.

7. Операторы на языке Turbo Pascal должны заканчиваться символом точка с запятой (;).

8. При использовании функции аргумент ее берется в скобки.

2. ХОД РАБОТЫ

1. Изучите теоретический материал и ответьте на контрольные вопросы.

2. Составьте программу вычисления функции f(x).

Вариант

Задание

Вариант

Задание

1

F(x)=(1+x)3

9

F(x)=

2

F(x)=

10

F(x)=cosx+tg2x

3

F(x)=cos()

11

F(x)=x-7e

4

F(x)=-x5+1

12

F(x)=tg3

5

F(x)=3x3+xCosx

13

F(x)=

6

F(x)=x7-2x3

14

F(x)=lgx2

7

F(x)=Sin3x+xcosx

15

F(x)=

8

F(x)=e

16

F(x)= +lnx

Занятие 4 Разработка и отладка разветвляющихся программ с использованием условных операторов if, case

ЦЕЛЬ РАБОТЫ - сформировать представления об условных операторах языка Turbo Pascal 7.0. Научить применять знания по составлению разветвляющих программ, с использованием составных и условных операторов.

1 Теоретические ОСНОВЫ

Составной оператор

Составной оператор представляет собой последовательность некоторых операторов, выполняющихся в том порядке, в котором они представлены в тексте программы. Зарезервированные слова Begin и End являются операторными скобками, в которые заключаются операторы, входящие в составной оператор. Когда необходимо обеспечить последовательное выполнение некоторого набора операторов, используется составной оператор.

Формат составного оператора:

Begin

ОПЕРАТОР1;

Операторn;

End;

Здесь ОПЕРАТОР1ОПЕРАТОРN – операторы, образующие составной оператор; зарезервированные слова Begin и End – операторные скобки. Частный случай составного оператора – раздел операторов (или тело) любой программы на Turbo Pascal. Составной оператор может включать другие составные операторы (т. е. составным может быть любой из операторов), причем допускается любой уровень вложенности.

Оператор If

Формат оператора If:

If УСЛОВИЕ

Then ОПЕРАТОР1

Else ОПЕРАТОР2;

При выполнении этого оператора сначала вычисляется некоторое логическое выраже-ние (УСЛОВИЕ), в случае истинности которого выполняется ОПЕРАТОР1, а в случае ложности – ОПЕРАТОР2.

Слова If, Then и Else имеют смысл, если,

то и иначе соответственно.

Формат сокращенного варианта оператора If:

If УСЛОВИЕ

Then ОПЕРАТОР;

Здесь, если УСЛОВИЕ истинно, выполняется ОПЕРАТОР. Если же УСЛОВИЕ ложно, управление просто передается следующему (за оператором If) оператору в программе.

В качестве УСЛОВИЯ в Turbo Pascal используется переменная логического типа (типа Boolean), либо один из шести операторов сравнения: > (больше), < (меньше), = (равно), <> (не равно), >= (больше или равно) и <= (меньше или равно). Результат сравнения всегда представляет собой значение логического типа. Так, результатом сравнения 77>63 будет TRUE, результатом сравнения 82<47 — FALSE.

В условии также могут использоваться три логических оператора: NOT, АND и OR (не, и, или соответственно).

Во многих программах, в зависимости от некоторого условия, часто требуется выполнить не одно, а последовательность действий. Однако оператор If в Turbo Pascal обеспечивает выполнение одного оператора, стоящего после зарезервированного слова Then или Else. Для решения этой проблемы, применяются составные операторы.

Оператор If с составными операторами имеет формат:

If Flag

Then

Begin

Оператор1;

Оператор2;

End

Else

Begin

Оператор3;

Оператор4;

End;

Здесь Оператор1…Оператор4 – некоторые операторы, образующие составные операторы.

Оператор выбора Case

Оператор Ifпозволяет осуществить выбор одной из двух альтернатив, когда необходимо рассмотреть более 2 альтернатив, используют операторCase.

Формат оператора Case:

Case ВЫРАЖЕНИЕ of

СПИСОК1 : ОПЕРАТОР1;

СПИСОК2 : ОПЕРАТОР2;

СПИСОКN : ОПЕРАТОРN

Else ОПЕРАТОР

End;

При выполнении этого оператора сначала вычисляется некоторое ВЫРАЖЕНИЕ, называемое селектором выбора, а затем, в зависимости от полученного значения, которые называются константами выбора, выполняется один из операторов: ОПЕРАТОР1,… , ОПЕРАТОРN; помеченный соответствующей константой. Причем каждый из этих операторов может быть составным. Операторы ОПЕРАТОР1,… , ОПЕРАТОРN отделяются один от другого точками с запятой. Значение селектора выбора в операторе CASE может повторяться, однако в этом случае будет выполнена только первая подходящая ветвь, а затем управление передается следующему (после CASE) оператору в программе.

Если значение ВЫРАЖЕНИЯ не совпадает ни с одной из констант выбора, выполняется ОПЕРАТОР содержащийся после ключевого слова Else, причем ветвь Else в операторе Case необязательна. Использованные здесь зарезервированные слова Case, Of, Else и End имеют смысл вариант, из, иначе и конец соответственно.

Выражение, играющее роль селектора выбора, должно принадлежать порядковому типу данных (т.е. типу, имеющему конечное число значений). К порядковым относятся типы данныхInteger, Byte, Boolean и Char

Кроме одиночных констант, в операторе Case могут использоваться диапазоны значений и СПИСКИ (представленные через запятую)

Соседние файлы в папке ОАиП_1