Программа на Turbo-Pascal состоит из: заголовка программы; блока; знака (. ). Заголовок программ

Вид материалаПрограмма

Содержание


Program” < идентификатор программы > “ ; “
Директивы компиляторов
Раздел подключения библиотек
У каждого объекта имя должно быть уникальное
Логический тип.
Перечисляемый тип.
Интервальный тип данных
Вещественный тип
Лабораторная работа №1
Оператор присвоения.
Оператор перехода.
Структурированные операторы.
Условный оператор.
Запись констант, переменных, стандартных функций.
Правильные записи арифметических выражений.
Арифметический оператор присвоения.
Y:=y+0.5 pn:=1.26+(t+sqr(a*a-b))
Организация простого ввода-вывода данных.
Для ввода информации используются операторы
Организация подключения библиотеки
...
Полное содержание
Подобный материал:
  1   2   3   4   5



Программирование на языке

TURBO-PASCAL.


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

“…” - ограничитель ключевых слов.

[…] - необязательные конструкции.

{…} – повторение произвольное число раз.

/ - выбор варианта.

= - равнозначность.

Программа на Turbo-Pascal состоит из: заголовка программы; блока; знака ( . ) .

Заголовок программ состоит из ключевого слова “program” < идентификатор программы > “ ; “ .


Идентификатор – название программы, ее назначения, номер версии, указания программиста. Длина идентификатора не более 25 символов, начинается обязательно с буквы и не должен быть оператором на Турбо-Паскале. Заголовок может быть опущен, но это не этично.


Блок - состоит из описательной части (декларативной) и исполнительной.


Исполнительная часть содерж ит определение всех действий по обработке информации.


Описательная часть - содержит описание каждого элемента информации, над которыми эти действия будут производиться. Эта часть должна предшествовать исполнительной части.


Program” < идентификатор программы > “ ; “

Блок программ.

[ { $ … } ] – директива компиляторов;

[ uses ] – раздел подключения библиотек;

[ label ] – раздел объявления меток;

[ const ] – раздел объявления констант;

[ type ] – раздел объявления типов, переменных и констант;

[ var ] – раздел объявления переменных;

[раздел объявления процедур и функций ]


исполняемая часть:

“begin” , операторы , end.

Директивы компиляторов. В данном разделе могут быть даны оказания компиляторов.

@ { $0 + } – поддерживать создание оверлейной структуры;

{ $A + } – выравнивать данные на границу слова;

{ $I - } – отключить контроль над оттирками ввода-вывода.

Раздел подключения библиотек-

-объявляет имена всех внешних модулей, ресурсы которых используются в программе.


Uses, control, graph;

Раздел объявления меток.

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

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

Program proba;

Uses Ctr;

Label A1, A2, A3

Begin

A3: goto A1; A2: оператор;

. . . . . .

A1: оператор; goto A3;

. . . . . .

goto A2; end.


Если метка описана, то она обязательно должна присутствовать в исполняемой части и наоборот.


Раздел описания типов служит для определения нестандартных типов данных.

Чтобы описать тип нужно пользоваться “ type “

{ mas = “массив символов, в котором 3строки, 5столбцов” }

mas= arroy of char [ 1 … 3, 1 … 5];

var a: mas;

Раздел описания constant.

Служит для объявления объектов, типы значения которых принимает до исполнения команд начальной части. Если constant-а использует нестандартный тип, этот тип должен быть описан выше раздела констант.

Constant-ы бывают типизированные и нетипизированные. Транслятор под нетипизированную const выделяет стандартный участок памяти, куда помещает конкретные значения const и не разрешают изменять это значение в ходе работы программы.

Транслятор под типизированную const выделяет участок памяти согласно типу const и помещает туда конкретное значение и разрешает менять это значение const, в ходе работы программы. Сonst-ы принимают конкретные значения до выполнения программы.

“Const” {имя конст. [ “ : ” тип конст. ] “ = ” значение “ , ” } “ ; ”

Const Ca, Cb: mas = ( (1,3,5,7,9),

(2,4,4,8,10),

(3,5,7,9,11). );


const = mas = 3, n = 5;

type - mas = arras of char [ 1 … m, 1 … k ],


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

Служит для определения имен и типов объектов, под которые транслятор согласно типу выделит определённый участок памяти и разрешит диапазон допустимых значений.

Имя переменной будет служить адресом обращения к участку оперативной памяти.

У каждого объекта имя должно быть уникальное, объявленное один раз, не совпадать с оператором на turbo pascal, и область действия с этим объектом будет ограничена его типам, может повторяться.

{ и.п, и.п, и.п }

“ Var “ { имя переменной “ : “ тип переменной “ ; ” }

Раздел описания подпрограмм.

Служит для описания процедур и функций согласно синтаксису языка Turbo Pascal.

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

“Begin” (выделить его).

Операторы

“end”


Norton Commander-

Загрузочный файл NC.exe. Чтобы запустить надо: путь набрать nc.exe.

Для создания папки в корневом каталоге F7 и имя.

Ins – выделить или отменить

“ + ” - выделить все файлы с каким-либо расширением

“ - ” и Enter – отменить выделение по расширению файла

“ * ” - выделить все файлы или отменить.


Инвертировать выделенные файлы: нажать Ins, выделить несколько файлов и нажать *.

Перенести файлы. Выделить на правой панели файлы с ini перевести курсор на левую панель и нажать F5.

Вызвать “дерево” нажатием F10 набрать ST1, выполнить (Enter).

Переименовать файл с тем же расширением: выделить файл, нажать на F6 и написать новое имя.

Удалить каталог - F8

(Встать на него и F8)

F9 – выделить файл, появляется количество Байт.

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

Описание ключевых символов.

“…” – ограничитель ключевых слов.

Типы переменных

Тип переменной определяется при её декларации. Декларацией называется формат ( объем оперативной памяти), в котором эта переменная храниться в памяти и диапазон её возможных значений.

Типы данных делятся на пять основных классов:

1. простые типы;

2. структурированные типы;

3. ссылочные;

4. процедурочные;

5. объектные.


Простые типы делятся: целочисленный тип; логический тип; символьный тип; перечисляемый тип; интервальный тип; вещественный тип; целочисленный тип.

- byte 0: 255 1 байт без знака. От 0 до 255

- shortint – 128 : 127 1байт со знаком.

- word 0: 65565 2байта без знака.

- integer – 32768: 32764 2байта со знаком.

- longint - 2147483648: 2147483647 4байта со знаком


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

- boolean 1бит} True = 1 истина

- bytebool 1бит} False = 0 ложь

- wordbool 2бит}

- longbool 4бит}


25 1 ”c”

byte boolean char


Символьный тип.

Предназначен для хранения одного символа.

Случайное слово

Char 1б. ( содержит код любого символа)

Символы могут быть: [ ‘A’…’Я’ ] [ ‘a’…’я’ ]

[ ‘A’…’Z’ ] [ ‘a’…’z’ ]

[ ‘0’…’9’ ]

Перечисляемый тип.

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

Type day = ( Понед. Втор. Среда. Четверг. Пятница. )

Var week: day;

week: = ‘понедельник’

(переменная)

Интервальный тип данных

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

1 type Main = (1…31)

от1 до31

Week = (1…7)

Sim = ‘A’…’Я’;

2 var Month : (31,29,31,30,31);

day : (1…7)

day : week;

ss: sim;


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

В компьютере представлен в формате с правающ. десятичной точкой.

Real 6Б. 11-12 знаков ( под матиссу)

Single с одинарной точностью 4б. выделяется 7-8 знаков

Double с двойной точностью 8б. 15-16 знаков

Extended с повышенной точностью 10б. 19-20 знаков

Comp сложный 8б. 19-20 знаков


Var a,b: Real ; a [__] b[__]

6б 6б


type sim = Real

( переменная)

var ss: sim ; ss [__]




Константы.

Real 2,9 E-39 … 1,7E+38

Диапазон допустимых значений


Single 1,3E-45 … 3,4E+38

Double 5,0E-324 … 1,7E+308

Extended 3,4E-4932 … 1,1E+4932

Comp -9,2E+18 … 9,2E+18


Процедуры ввода-вывода информации.

Read (переменная)

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

Read (a)

Readln (переменная)

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

Write (переменная)

Из оперативной памяти, по адресу переменной. Значение выводится на монитор в точку где находится курсор.

3 1

Write (a): 5 : 2;

8 4

Если количество целых цифр не попадает в диапазон, то они выдавятся, но после “ , ” будет указано столько цифр сколько указано в формате.

= [__][__][__][_1_][_7_][_8_][_,_][_5_]

writeln

Тоже самое, что и readln.







Программа проводник.

1. Пуск -> программы -> проводник.

2. Пуск -> контекстное меню пункта -> пуск.

3. Решеточка + Е.

Заголовок – самая верхняя строчка.

[ - ] - свернуть задание на время.

Внизу текущее окно (нажать) – вернуться в проводник.

[x] – завершить работу с программой.

[_] – свернуть развернуть окно

Вторая строка – строка меню.

Третья – инструментальная панель.

[ ] – таблица (нажать) – появиться другое содержимое папки.


Вид (крупные значки, мелки и т.д.)

Все папки (только папки)

Создать папку ( диск С: )

1. Файл – создать – папка – набрать имя.

Нажатие правой клавиши мыши – контекстное меню.

В папке создать папку.

Папка NC(Кл.) – (таблица)

Выделить в разброс (нажать на один потом на другой файл)

Правка – выделить все или ctrl+alt

Выделить от и до ( выделить 1, потом скопировать- выделенные объекты.)

1. Копировать ( правка – копировать или ctrl+C или инструментальная панель или контекстное меню выделить объект (копировать)

2. Вставить Stp – правка – вставить или ctrl+X или вставить из буфера или контекстное меню.

3. Скопировать с помощью перетаскивания NC – выделить файл – нажать на правую клавишу мыши – перетащить в Stp. (копировать).

4. Переименовать (нажать на значок файла – на имя)

5. Удалить (нажать на правую клавишу мыши, удалить).


Turbo.exe.

1. Пуск – программа – turbo.exe.

2. Пуск – найти – нажать имя Turbo.exe.

Рабочее окно.

Верхнее и нижнее меню.

Program proba 1

Var a,b,r: real;

Begin

Begin

Read (a) r:= a+b; (клавиша end (конец строки), клавиша home (начальная строка))

Вывод результата write ( Результат ‘r: 5: 2’)

End

Теперь нужно обработать программу:

Ctrl+F9

Далее

14.25 (enter)

16.52 (enter)

Alt+F5 (вернуться назад)

Можно подключить библиотеку uses

После begin tex attr:=27;

Имя переменной

Это байт атрибут, который принимает цвет символа и фона.

Textattr:=27; clrscr

(цвет фона)

перед read (а) пишем gotoxy (5,10); write (‘ ’)

x – символ

y – строка.

Перед end можно вставить readln;

Затем ctrl+F9

вернуться enter.

На дом: оболочка turbo pascal, опции меню, модуль ert


Program proba 1;

Uses ctr

Var a,b,r: real;

Begin

Textattr:=27; clrscr;

Gotoxy (30,2); write ( ‘лабораторная работа’)

Gotoxy (4,4); textcolor(5); write(‘фамилия’)

Textattr:=27

Gotoxy (5,10); write ( ‘введите а=’); read(a)

Gotoxy (5,11); write ( ‘введите b=’); read(b)

r:= a+b

write (‘результат=’, r: 5: 2);

readln;

readln;

end.


Вместо textcolor(5) набрать textattr(36)


Операции.

Действия над операндами называются операциями. Операнд – это переменная или выражение. Операции делятся на упарные и бипарные. Каждая операция имеет свой приоритет. Представим операции в соответствии с уменьшением приоритета.

Упарные. Изменение знака [ - ] ‘not’-отрицание, -(-2)=2, -(+2)=-2

Not true – false.

Not false – true.

Бипарные типы умножения

2) *, /, d; v, mad, and, she, shr;

3) +, -, or, xor;

4) Бипарные операции отношения

(=, <>, <, >, <=, >=, in;)

Операцией изменения знака “-” может быть только для данных типа real и integer.

Операция отрицания “not” может производиться, только над величинами типа Boolean, integer;

Каждый вид величины изменяется на противоположный.

Not 0 – -1

Not -32768 – 32767

Бипарные операции умножения.

- умножение, / - деление над данными целого и вещественного типа.

d; v – деление на целое } выполняется только над

mod – остаток от деления } целыми числами.

And(u) может применяться для данных типа boolean, integer.

She и shr – смещение влево и вправо. Используется только для величин целого типа.

Операция Операнд1 Операнд2 Результат

real real real

real integer real

integer real real

integer integer integer

/ real real real

r. in. r.

in. r. r.

in. in. r.


div in. in. in.

mod in. in. in.

const a=25; b=5; c=7;

var res: integer; (только целочисленные значения)

begin

res: = A div B; {Res=5} Res:= A mod B; {Res=0}

res: = A div C; {Res=3} Res:= A mod C; {Res=4}

and integer integer integer

boolean boolean boolean (истина)

Результатом операции “and” над данными типа “boolean” будет конъюнкция по следующим правилам: логическое произведением двух битов = 1, тогда когда оба бита = 1. Иначе сложное условие считается выполненным, если выполняются все простые условия.

And Boolean Boolean Boolean

(true) (true) (true) a and b

(false) (false) (false)

(true) (false) (false)

(false) (false) (false)

false and true -> false

2 and 22 -> 2

Сложное условие будет истинно, если каждое из простых условий истинно.

1. 2 and 22 -> 4

2. 2 and 2 -> 2

Бипарные операции сложения и вычитания.

Применяются для данных типа real, integer ( + , - )

+,- r r r

r in r

in r r

in in in


Остальные операции сложения.

(дизъюнкция) выполняются для операндов одинакового типа integer и Boolean (or; xor)

дизъюнкция

ox, xor in in in

Boolean Boolean Boolean

Результатом операции “or” над величинами типа integer будет величина типа integer, являющаяся логической суммой соответствующих других других пар битов. Логическая сумма пары битов равна 0 или в том случае, если оба бита=0. В противном случае сумма=1

(сложное условие считается выполненным, если выполняется хотя бы одно простое условие)

or (или) f f f

t f t

f t t

t t t


12 or 22 -> 30

2 or 3 -> 3

Результатом операции xor над величинами типа Boolean будет симметрическая разность (строгая конъюнкция). Результат 2 битов равен 0 лишь в том случае, если оба бита одинаковые.

Xor f f f

t t f

t f t

f t t

12 xor 22 -> 26

4. Операции отношений.

Могут применяться для всех типов данных. Результатом операций всегда будет величина типа “Boolean” со значением false или true. Оба операнда соединенные знаком отношения должны быть одного типа.

a: char b: real

Ё- неравно Наличие скобок, изменяя приоритет

20 = 20 true F > T F

30,5>15,7 true F < T T


Лабораторная работа №1

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

Abs(x) – (x) (возвращает абсолютное значение числа х)

Cos(x) – cosx

Sin(x) – sinx

Arctg(x) – arctgx

Exp(x) – ex

Ln(x) – lg x

Pi – пи

Sgr(x) – x2

Sgrt(x) – кв. корень x

Exp(nxln(x)) – xn

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

1. Изучить:

- запись констант, переменных, стандартных функций;

- правильные записи арифметических выражений;

- арифметический оператор присваивания;

- организацию простого ввода-вывода данных;

- организацию подключения библиотеки управляющей текстовыми режимами монитора;

- процедуры и функции модуля Ctr.

2. Разработать алгоритм решения в соответствии с задачей.

3. Составить программу решения задачи.

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

5. Использовать модуль Ctr.


1. Задание к работе.

1. Вычислить на ЭВМ значения переменных, указанных в таблице 1. По заданным расчетным формулам и наборам исходных данных. Ввод исходных данных и ввод результата сопровождать пояснениями.

y = [xy/x-3*y/x]

2. Программу выполнить на ЭВМ таким образом, чтобы использовать модуль Ctr, управляющий текстовым режимом монитора.

Контрольные вопросы.

1. Какие типы величин использованы в программе.

2. Указать диапазон значений величин целого и вещественного типов.

3. Какие имена переменных допустимы в программе?

4. Как задается тип переменных в программе?

5. Указать имена стандартных функций для вычисления: sqrt x, ex, sin x, cos x, ln x, [x].

6. Можно ли в качестве операнда в арифметическом выражении использовать:

а) имя массива; 6

б) имя стандартной функции, например, siny,

в) имя символьной переменной или переменной логического типа.

7. Назвать последовательность действий при выполнении арифметической операции присваивания. Допустимо ли использование величин разных типов.

8. Написать арифметический оператор присваивания для вычисления значения;

p(x) = ((((a5x+a4)x+a3)x+a1)x+a0);

9. Указать средства имеющиеся в языке программирования для управления размещения данных по строке. Как организовать ввод значения сопровождая выводимое числовое значение наименованием переменной? Как организовать пропуск одной, двух строк при вводе?

10. Как выбрать значение исходных данных для тестового варианта счета?


Операторы.

Оператор – это описание действий, которые будут выполнены при реализации алгоритма.

В турбо паскале существуют 2 вида операторов: простые и структурные т.е. сложные.

Простые операторы: - оператор присвоения;

- оператор перехода;

- функции и процедуры;

- пустой оператор;

труктурные операторы: - составной оператор;

- оператор условия;

- оператор варианта;

- оператор цикла.

Оператор присвоения.

:=”

С помощью оператора присвоения “:=” значение правого выражения присваивается левой переменной.

Переменная “:=” значение;

Переменная “:=” выражение;

Переменная “:=” функции.


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

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

Var a: real;

b: char.

Оператор перехода.

“goto”[__] < метка >;

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

Пустой оператор.

Не выполняет никакого действия и никак не отображается в программе. Он может потребоваться для осуществления на него безусловного перехода или для более наглядного просмотра программы.

Goto M1;

. . . .

. . . .

M1:

. . . .

. . . .

(Для лабораторной №1: структура программы, типы переменных, операции, операторы, модульCtr, оболочка Турбо Паскаль.)