Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
№___230105__ МУ_лаб и пр_ОАиП_часть первая.docx
Скачиваний:
4
Добавлен:
26.04.2019
Размер:
383.97 Кб
Скачать

Структура программы на Турбо Паскаль

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

Заголовок программы содержит имя программы, например: Program PRIM;

Описания могут включать в себя:

раздел подключаемых библиотек (модулей);

раздел описания меток;

раздел описания констант;

раздел описания типов;

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

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

Раздел операторов представляет собой составной оператор, который содержит между служебными словами

begin.......end

последовательность операторов. Операторы отделяются друг от друга символом ;. Текст программы заканчивается символом точка.

Кроме описаний и операторов Паскаль - программа может содержать комментарии, которые представляют собой произвольную последовательность символов, расположенную между открывающей скобкой комментариев { и закрывающей скобкой комментариев }.

Операторы ввода и вывода Ввод данных:

Для ввода исходных данных чаще всего используется процедура ReadLn:

ReadLn(A1,A2,...AK);

Процедура производит чтение К значений исходных данных и присваивает эти значения переменным А1, А2, ..., АК.

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

Значения исходных данных могут отделяться друг от друга пробелами и нажатием клавиш табуляции и Enter.

Не допускается разделение вводимых чисел запятыми!

Вывод данных:

Для вывода результатов работы программы на экран используются процедуры:

Write(A1,A2,...AK);

WriteLn(A1,A2,...AK);

Первый из этих операторов производит вывод значений переменных А1, А2,...,АК в строку экрана. Второй оператор, в отличие от первого, не только производит вывод данных на экран, но и производит переход к началу следующей экранной строки. Если процедура writeln используется без параметров, то она просто производит пропуск строки и переход к началу следующей строки.

Оператор условного перехода

Оператор условного перехода в Турбо Паскаль имеет вид:

if условие then оператор 1 else оператор 2;

условие - это логическое выражение, в зависимости от которого выбирается одна из двух альтернативных ветвей алгоритма. Если значение условия истинно (TRUE), то будет выполняться оператор 1, записанный после ключевого слова then. В противном случае будет выполнен оператор 2, следующий за словом else, при этом оператор 1 пропускается. После выполнения указанных операторов программа переходит к выполеннию команды, стоящей непосредственно после оператора if.

Необходимо помнить, что перед ключевым словом else точка с запятой никогда не ставится!

else - часть в операторе if может отсутствовать:

if условие then оператор 1;

Тогда в случае невыполнения логического условия управление сразу передается оператору, стоящему в программе после конструкции if.

Базовые операции и математические процедуры и функции

Математические выражения в алгоритмической записи состоят из операций и операндов. Большинство операций является бинарными, т.е. содержат два операнда (унарные операции содержат один операнд, например : -а, взятие адреса @В).

Арифметические операции:

+, -, /, *, div (целочисленное деление), mod (остаток от деления),

Логические: not, and, or, xor,

Операции отношения: >, <, >=, <=, <>, =.

Логические вычисления и операции отношения

Наличие типа Boolean и операций с ним позволяет программировать логические вычисления, в основу которых заложена Булева алгебра. Введены четыре логических операции, результат которых всегда имеет тип Boolean и может иметь только одно из двух значений (Trueº1 (истинно) или Falseº0 (ложно)).

P=A or B

P= A and B

P=A xor B

P= not B

P

A

B

P

A

B

P

A

B

P

B

0

0

0

0

0

0

0

0

0

1

0

1

0

1

0

0

1

1

0

1

1

0

1

1

0

0

1

0

1

1

0

0

1

1

1

1

1

1

1

0

1

1

0

1

Чтобы не было ошибок, при логических вычислениях лучше расставлять скобки самим. Так, например, запись Not A And B будет воспринята компилятором как (Not A )And B, а, может быть, необходимо было бы так: Not (A And B).

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

Системная библиотека Turbo Pascal’я приведена в таблице:

Математические функции

Вызов аргумента

Тип аргумента

Тип значения

Назначение функции

Вызов функции

Результат

Abs(x)

целый/вещ.

как у аргумента

Абсолютное значение Х

Y:=Abs(x);

Abs(-6.5) = 6.5

Pi

-

Вещественный

Значение числа «Пи»

3,141592…

Y:=Pi;

-

Тригонометрические функции

Sin(x)

Вещественный

Вещественный

Синус Х радиан

Y:=Sin(x);

Sin(Pi)=0

Sin(-3*pi)=0

Cos(x)

Вещественный

Вещественный

Косинус Х радиан

Y:=Cos(x);

Cos(0)=1

Cos(-Pi)=-1

ArcTan(x)

Вещественный

Вещественный

Арктангенс Х радиан

Y:=ArcTan(x)

ArcTan(0)=

Sqrt(x)

целый/вещ.

Вещественный

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

Y:=Sqrt(x);

Sqrt(4)=2.0

Sqrt(-4)-ошибка

Sqr(x)

целый/вещест.

как у аргумента

Значение квадрата Х

Y:=Sqr(x);

Sqr(3.0)=9.0

Sqr(4)=16

Exp(x)

Вещественный

Вещественный

Значение е в степени Х

Y:=Exp(x);

Exp(0)=1.0

Ln(x)

Вещественный

Вещественный

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

Y:=Ln(x);

Ln(1)=0.0

Ln(0)- ошибка

Trunc(x)

Вещественный

Целый

Целая часть значения Х

Y:=Trunc(x);

Trunc(3.3)=3

Trunc(3.99)=3

Trunc(-4.5)=-4

Frac(x)

Вещественный

Вещественный

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

Y:=Frac(x);

Frac(6.89)=0.89

Frac(-6.89)=-0.89

Int(x)

Вещественный

Вещественный

Целая часть значения Х

Y:=Int(x);

Int(-8.9)=-8.0

Int(8.9)=8.0

Round(x)

Вещественный

LongInt

Правильное округление Х до ближайше-го целого

Y:=Round(x)

Round(3.45)=3

Round(3.5)=4

Round(-3.45)=-3

Round(-3.51)=-4

Random

-

Вещественный

Случайное число (0…1)

Y:=Random;

-

Random(x)

Word

Word

Случайное число (0…Х)

Y:=Random(x);

-

Odd(x)

Целый

логический

Возвращает True, если Х – нечетное число.

Z:=Odd(x);

Odd(3)=True

Odd(-3)=True

Odd(4)=False

Математические процедуры

Randomize

Гарантирует неповторяемость значений в случайной последовательности

Inc( Var X:целое)

Увеличивает х на 1

Dec( Var X:целое)

Уменьшает х на 1

Inc(Var X:целое; N:целое)

Увеличивает х на N

Dec(Var X:целое; N:целое)

Уменьшает х на N

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

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

Функция PI генерирует число «Пи» с точностью, зависящей от наличия сопроцессора и содержит от 10 до 14 значащих цифр после запятой, она может использоваться в вычислениях как константа, но не может быть поставлена в вычислимые константы блока Const.

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

Типы данных

Идентификатор

Длина (байт)

Диапазон значений

Операции

Целые типы

integer

2

-32768..32767

+, -, /, *, Div, Mod, >=, <=, =, <>, <, >

byte

1

0..255

+, -, /, *, Div, Mod, >=, <=, =, <>, <, >

word

2

0..65535

+, -, /, *, Div, Mod, >=, <=, =, <>, <, >

shortint

1

-128..127

+, -, /, *, Div, Mod, >=, <=, =, <>, <, >

longint

4

-2147483648..2147483647

+, -, /, *, Div, Mod, >=, <=, =, <>, <, >

Вещественные типы

real

6

2,9x10-39 - 1,7x1038

+, -, /, *, >=, <=, =, <>, <, >

single

4

1,5x10-45 - 3,4x1038

+, -, /, *, >=, <=, =, <>, <, >

double

8

5x10-324 - 1,7x10308

+, -, /, *, >=, <=, =, <>, <, >

extended

10

3,4x10-4932 - 1,1x104932

+, -, /, *, >=, <=, =, <>, <, >

Логический тип

boolean

1

true, false

Not, And, Or, Xor, >=, <=, =, <>, <, >

Лабораторная работа №2(2 часа)

Тема: Составление и запись алгоритмов для вычисление суммы числового ряда в виде программы (циклической структуры). Компиляция и тестирование программы.

Цель: Приобрести навыки составления и анализа алгоритмов обработки (нахождение суммы и произведения элементов), представления их в виде программ.

Задание: Разработать алгоритм вычисления значения У согласно варианта для заданного n ( ) и представить его в виде блок-схемы и программы на языке программирования Turbo Pascal. Провести компиляцию и тестирование программы.

Вариант 1

Вариант 2

Вариант 3

Вариант 4

В ариант 5

Y=

Вариант 6

Вариант 7

Вариант 8

Вариант 9

Вариант 10

Y=