Программа на Turbo-Pascal состоит из: заголовка программы; блока; знака (. ). Заголовок программ
Вид материала | Программа |
- Компоновать программы из отдельных частей отлаживать программы выполнять программы., 197.76kb.
- Программирование на языке высокого уровня, 59.92kb.
- Доманская Юлия Георгиевна г. Вилейка 2006г пояснительная записка, 74.95kb.
- Програма на мові Turbo Pascal, лінійні програми Команди галуження, вибору та мітки, 1485.97kb.
- Задачи работы Научиться создавать программы на языке Turbo Pascal с использованием, 598.05kb.
- Структура программы на Паскале Система программирования Турбо Паскаль, 145.34kb.
- Б. В. Ващук Turbo Pascal, 715.52kb.
- Изучаем Turbo Pascal» (главы 2, 4-6), Г. Г. Рапаков, С. Ю. Ржеуцкая «Turbo Pascal для, 92kb.
- Конспект урока по информатике для десятого класса по теме «Условный оператор в Turbo, 32.44kb.
- Курс «Программирование на языке Turbo Pascal 0» Цель курса, 19.6kb.
Структурированные операторы.
-Такие операторы, которые состоят из других операторов:
1. Составной оператор;
2. Условный оператор IF;
3. Оператор варианта CASE;
4. Оператор цикла repeat … util;
5. Оператор цикла while … do;
6. Оператор цикла For … to … do;
7. Оператор над записями with.
Составной оператор.
Содержит ключевые слова (“begin” и “end”), между которыми перечислены ряд операторов. Составной оператор используется там, где синтаксис языка требует использования 1-го оператора, а необходимо выполнить несколько операторов. Выполнение составного оператора приводит к выполнению заключенной в нем последовательности.
Условный оператор.
Оператор условия if служит для выбора операторов программы к выполнению согласно полученного условия. Формат, обязательное ключевое слово if и т.д.
“if” <условие>”then”<оператор1>
[“else”<оператор2>];
Оператор if выполняется следующим образом:
<условие>
типа Boolean
Значит результатом вычисления данного условия будет Boolean (“истина” или ”ложь”). В условии должны присутствовать not, and, or, xor, in. <, >, <>, =, <=, =>,
<оператор1> <оператор2> - это составной, простой или структурированный оператор. Между ними begin … end (составной), := (простой), if, case и т.д.
1. Сначала вычисляется условия:
а) если условие “истина”, то выполняется оператор1, стоящий за ключевым словом “them”;
б) если условие “ложь”, то выполняется оператор2, стоящий за ключевым словом “else”, при этом оператор1 пропускается.
2. После того, как выполняется оператор1 или 2, действие переходит на оператор стоящий за if.
If i>18 then begin readln; i:=1; clrsCB; end.
Оператор if может иметь вложенные операторы if,если это так, то обязательно присутствует else.
Итак:
program proba;
write (y: 5: 2);
Var x,y; real end.
Begin x[__] y[__]
Read(x);
end.
Запись констант, переменных, стандартных функций.
Для обозначения исходных данных и результатов вычислений употребляются переменные, которыми могут быть не только любые буквы, но и, например, последовательность символов вида x1, x2, time, сила, альфа и т.д., которые состоят из букв и цифр и начинаются с буквы. Соответствующее исходное данное или результат вычисления называется значением переменной. Длина имени не ограничивается, но различаются имена только по первым 8-ми символам.
Константы в отличие от переменных не могут менять своих значений во время работы программы.
Для арифметических вычислений используются числа целого и вещественного типов. Целая часть вещественного числа отделяется от дробной части точкой. В состав вещественных чисел обязательно входит точка, символ Е или оба эти знака.
Буква Е, целое значение за которой образуется масштабный множитель, обозначает умножение на 10 в степени этого множителя. Пр., запись 2Е-4 обозначает число 0.0002.
В языке Паскаль определена стандартная константа с именем niaxint, равная максимальному положительному целому числу, представленному в конкретной реализации языка.
Константы могут являться значениями следующих типов: целые(integer), действительные(real), логические(Boolean), символьные(Char) или задаваться в виде строк(текстовые константы). Константы могут записываться значениями или именами соответствующего типа.
Константы целого и действительного типов являются числовыми константами, которые имеют положительный или отрицательный знак.
Константы логического типа имеют одно из двух значений – TRUE (истинно) или FALSE (ложно).
Константы символьного типа записываются литерами, заключенными в кавычки (апострофы). Символ апостроф записывается двойными кавычками.
Текстовые константы (строки) записываются последовательностью символов (текстом), заключенной в кавычки. Имеющиеся в тексте кавычки дублируются.
Простые переменные записываются своими именами. Они могут принадлежать к различным типам переменных: целый, действительный, логический, символьный.
Переменная с индексом является элементом массива. Массив состоит из упорядоченного набора значений одного типа, имеющих общее имя. Местоположение элемента в массиве задается индексом, который записывается в квадратных скобках. А[i] – i-й элемент массива А. B[i,j] – элемент массива В, находящийся на пересечении i-й строки, j-го столбца.
Стандартные функции служат для облегчения вычисление наиболее часто встречающихся функций. При обращении к стандартным функциям необходимо записать имя функции, а в скобках указать аргументы.
обращение | Выполнение функции | Тип Аргумента функции | |
ABS(x) SQR(x) | [x] x2 | Real или integer | Real или integer |
Sin(x) Cos(x) Exp(x) Ln(x) Sqrt(x) Arctg(x) | Sinx Cosx ex ln x кор. x arctg x | Real или Integer. | Real. |
Truenc(x) Round(x) | Выделение целой части. Округление числа. | Real. | Integer. |
Pred(x) Succ(x) | Нахождение предшествующего элемента. Нахождение последующего элемента. | Integer или char или Boolean. | Integer или char или Boolean. |
Ord(x) | Определение порядкового номера символа в наборе символов. | Char или Boolean. | Integer. |
Chr(i) | Определение символа из набора символов по порядковому номеру i. | Integer. | Char. |
Odd(x) | Определение четности числа. | Integer. | Boolean. |
Правильные записи арифметических выражений.
Выражения определяют действия и последовательность вычисления значения. Они могут состоять из констант, переменных, стандартных функций, разделенных скобками и знаками операций. Например,
0.5+A, p-T/A-B, (1.25*sin(x)+p) (SQR(A+B))x, (C>0.5) AND (C<1.5)
Порядок выполнения операций определяется скобками, а при их отсутствии – согласно старшинству(приоритету): 1. Операция отрицания: NOT. 2. операция типа умножения: *, /, div, mod, and; 3. Операции типа сложение: +, -, or; 4. Операции отношения: <=, <, =, <>, >, >=, in.
17-2*3=11 (17-2)*3=45 16/4*2=8.
Так как все символы упорядочены, то для символов х1 и х2 справедливо выражение отношения ORD(x1)
Операция | Знак операции | тип | |
| | операндов | результата |
Сложение Умножение Вычитание | + * - | real или integer. | Integer, если оба оператора integer и real-в противном. |
Деление | / | Real или integer. | Real. |
Деление с отбрасыванием остатка Вычисление остатка при делении чисел. | DIV MOD | Integer. | Integer. |
Отрицание Дизъюнкция Конъюнкция. | NOT OR AND | Boolean | Boolean |
Сравнение на равенство. | = | Любой тип | Boolean |
Сравнение на неравенство | <> | Переменных и констант | Boolean |
Сравнение: Больше Меньше Больше или равно Меньше или равно | > < >= <= | Любой скалярный тип | Boolean |
В тригонометрических функциях углы выражаются в радианах.
Выражение с использованием стандартных функций: SQRT(2*H/G)
Это – время падения тела с высоты Н в поле тяжести с ускорением G.
Для вычисления выражения А в степени В можно воспользоваться выражением языка Паскаль.
EXP(B*LN(A)).
Арифметический оператор присвоения.
Инструкция присваивания служит для изменения состояния памяти.
Операторы присваивания служит для вычисления значения выражения и присваивания его имени результата. Общий вид записи оператора: V:= b
Где V – имя результата; b – выражение; := - символ присвоения.
<имя изменения переменной> := <выражение>
Например: P=0.125; Z:=true
Y:=Y+0.5 PN:=1.26+(T+SQR(A*A-B));
Переменная и выражение должны принадлежать одному типу. Допускается 2 исключения: 1) переменная - действительного типа, а выражение целого или ограниченного целого типа; 2) выражение – ограниченного типа по отношению переменной и наоборот.
Организация простого ввода-вывода данных.
Эти операторы выполнены в языке Паскаль как процедуры.
Для ввода используются операторы:
READ (b1, b2,…, bn);
READLN (b1, b2,…, bn);
READLN;
Где b1, b2,…, bn - имена значений переменных, подлежащих вводу.
Оператор READ (b1, b2,…, bn) обеспечивает выборку данных из стандартного входного файла INPUT, в результате которой имена переменных b1, b2, …, bn получают соответствующие значения. Типы вводимых переменных должны соответствовать типам вводимых значений.
При вводе литерных данных все литеры, включая пробелы и переходы к новой строке, являются значимыми.
Оператор READLN (b1, b2,…, bn); обеспечивает выборку из стандартного входного файла INPUT, но после окончания выбора последней переменной осуществляется переход к началу новой строки файла. При вводе значений переменных целого и действительного типов операторы read и readln пропускают пробелы между значениями.
Оператор readln; обеспечивает пропуск одной строки в стандартном файле INPUT и переход к началу новой строки.
Значения переменных, соответствующие именам переменных в списке ввода, могут принадлежать типам целому, действительному или символьному. Ввод переменных логического типа недопустим.
Для ввода информации используются операторы
Write(b1, b2,…, bn);
Writeln(b1, b2,…, bn);
Где b1, b2,…, bn - имена значений переменных подлежащих выводу.
Оператор Write(b1, b2,…, bn);выполняет ввод значений, соответствующих именам, b1, b2,…, bn, в стандартный выходной файл OUTPUT. Выводимые значения размещаются в одной строке.
Оператор writeln; обеспечивает пропуск строки в файл OUTPUT и переход к началу следующей строки.
Имена переменных или констант, записанные в операторе ввода, могут принадлежать целому, действительному, символьному или логическому типу.
Ширина поля вывода определяется типом устройства, использующимся в данном ЭВМ. Формы представления выводимых переменных определяется типом переменных: значение величин целого типа выводятся в обычной форме; значения величин действительного типа – в виде нормализованного числа действительного типа с порядком; значение логического типа – в виде логических значений TRUE и FALSE; значение символьных переменных – в виде соответствующих символов.
Операторы вывода допускают использование указания о ширине поля, отводимого под значение в явном виде.
Write (DD: 6, IR: 8)
Значение переменных DD и IR размещаются в одной строке и занимают соответственно 6 и 8 позиций. Каждое значение размещается в отведенном поле и занимает крайне правые позиции. При вводе значений действительного типа с фиксированной точкой указывается ширина поля, отводимая под все значения и дробную часть числа.
WRITELN (b: m: n); где m - поле, отводимое под запись значения; n – часть поля, отводимого под дробную часть числа.
WRITE (A:8:3); в данном случае под значение А выделяется 8 позиций, 3 из которых отводятся под дробную часть числа.
Можно задавать количество пробелов между разными значениями: WRITE (”:q); где q – константа целого типа, указывающая число пробелов.
Пример: WRITE (A,”:Н,В);
Между значениями А и В образуется гарантированный интервал в 4 пробела.
Длина строки, используемой для вывода данных, зависит от типа устройства. Первый символ в списке вывода оператора WRITE служит для задания интервала между строками:
+ - нет пропуска строки; |_| - пропуск одной строки; О – пропуск двух строк;
1 - переход к новой строке перед выводом.
Организация подключения библиотеки,
управляющей текстовым режимом монитора.
Библиотеки на языке Паскаль называются модулями.
Чтобы программа на языке Паскаль могла работать со спец. процедурами и функциями (обслуживающими то или иное устройство компьютера), она должна использовать соответствующую библиотеку.
Об использовании модуля программа должна сообщить в самом начале (после заголовка) следующим образом:
USES имя модуля
(USES - использует).
Если мы собираемся работать с экраном в текстовом режиме, нам понадобятся спец. средства Турбо Паскаля, такие как управление выдачей текста на экран, изменение цвета, анализ нажатия клавиш; в программе будут использованы процедуры и функции из модуля (библиотеки) CRT. В самом начале программы следует указать это:
USES CRT.
Процедуры и функции модуля CRT.
В текстовом режиме экран дисплея можно рассматривать как множество позиций; в каждой позиции может быть изображен один символ. Большинство дисплеев имеют по 80 позиций в строке (столбцы) и 25 строк на экране.
Весь экран целиком и любая его прямоугольная область могут представлять собой текстовое окно. Это значит, что для такой прямоугольной области можно задать ее собственный цвет (он называется цветом фона) и цвет для символов, изображаемый в окне.
(х1,у1) Текстовое окно (х2,у2) |
(80,25)
Для работы с окнами используется процедура:
WINDOW ( x1, y1, x2, y2) –
- определяет расположение текстового окна на экране.
TEXTCOLOR (c) –
- задает цвет для символов С. Цвет выбирается из палитры в 16 цветов с номерами от 0 до 15.
Цвет | Имя | Номер |
Черный | Black | 0 |
Синий | Blue | 1 |
Зеленый | Green | 2 |
Голубой | Cyan | 3 |
Красный | Red | 4 |
Фиолетовый | Magenta | 5 |
Коричневый | Brown | 6 |
Ярко-серый | Light (Blue) Gray | 7 |
Темно-серый | Dark Gray | 8 |
Ярко-синий | Light Blue | 9 |
Ярко-зеленый | Light Green | 10 |
Ярко-голубой | Light Cyan | 11 |
Ярко-красный | Light Red | 12 |
Ярко-фиолетовый | Light Magenta | 13 |
Желтый | Yellow | 14 |
Белый | Write | 15 |
TEXTBACKGROUND (F) –
определяет цвет фона для окна F. В текстовом режиме фон может быть выбран из 8 цветов с номерами от 0 до 7.
CLRSCR –
очищает окно, то есть закрашивает его цветом фона.
GOTOXY (X,Y) –
позволяет определить позицию в окне, начиная с которой будут изображаться символы. Координаты X,Y задаются относительно верхнего левого угла того окна, с которым идет работа. После выполнения процедуры GOTOXY оператор WRITE выдавать данные на экран, начиная с позиции X,Y в текущем окне. Этих средств достаточно, чтобы подготовить экран к работе и реализовать такие маги алгоритма, как “зажечь кнопку”, “погасить кнопку”, “выдать результат игры”. Для записи названий кнопок удобно организовать массив, элементами которого будут символьные строки.
Проверить, какая клавиша нажата на клавиатуры, можно с помощью функции READKEY:
СН:= READKEY, где СН – переменная символьного типа.
Код символа можно получить, используя функцию ORD.
KOD=ORD(CH)
Например: IF ORD(CH)=13 then…(нажата клавиша ввод) (или так: IF CH = # 13 then).
Разработка алгоритма решения задачи.
1. Постановка задачи.
Вычислить:
y= |xy/x-y/xв куб. корне|
J=(y-x)*(y-z/y-x)/(1+(y-x)2)
При x= 1,426
y= 18,225
z= - 3,298
2. Блок-схема алгоритма.
3. Программа решения задачи(язык Паскаль).
Program primer;
Uses CTR;
Var x, y, z, j: real;
Begin.
Clrscr ;
Goto x y ( 20,1)
Write (‘лабораторная работа №1’);
Goto x y (20,2);
Write (‘Ахмедчина Лилия’);
Goto x y (20,3);
Write (‘Напер группы : 1ПVI01’);
Goto x y (20,4);
Write (‘Вариант №2’);
Goto x y (20,6);
Write (‘Введите дробное число х = ‘);
Read ( x )
Goto x y (20,7);
Write (‘Введите дробное число у = ‘);
Read ( y );
Goto x y (20,8)
Write (’Введите дробное число z = ‘);
Read ( z );
{ Вычисление j }
j = ( y-x ) * (( y- z /y –x ) / (1+(y-x)*(y-x)));
{ Объявление текстового окна для выдачи результатов }
Window x y (20,10);
{ Проверка возможности вычисления у }
if x =0 then
write (‘Нулевой делитель ‘.
Переменная у не изменялась : _ ‘) ;
Else Y: = abs (exp ((y/x)* ln (x) – exp((1/3)* ln (y/x)));
{ Вывод результатов. Под число отводится 6 позиций, из них 3 – дробная часть }
WRITELN;
WRITELN (‘y = ‘, y );
WRITELN;
WRITELN (‘j = ‘, j )
WRITELN(‘_ _ _ _ _ _ _ _ _ _ _ _’)
END.
Модуль CTR (дополнительная информация).
Константы режимов работы.
Имя Номер Режим
константы режима
BW40 0 черно-белый, 40 * 25
СО 40 1 цветной, 40 * 25
BW80 2 черно-белый, 80 * 25
MONO 7 монохромный, 80 * 25
СО 80 3 цветной, 80 * 25.
Процедуры и функции.
Интерфейс Назначение
Установка режимов и окон.
Procedure AssighCtr(file: text) : Связывает окно дисплея с
тестовыми файлами, что
позволяет ускорить вывод
на экран.
Procedure Clrscr; Очищает экран и помещает курсор
в верхний левый угол.
Procedure Text Mode (Mod:integer); Выбор текстового Mode – номер текстового режима вывода в текстовом
или соответствующая константа. режиме.
Procedure Window (x1,y1,x2,y2:byte); Определяет окно
(x1,y1)и(x2,y2) – координаты вывода в текстовом
верхнего левого и нижнего режиме.
правого углов окна.
Управление цветом текста и фона.
Procedure High Video; Устанавливает высокую яркость
выводимых символов.
Procedure Low Video; Устанавливает низкую яркость
выводимых символов.
Procedure Norm Video; Возвращает цвет символов и фона
свойственный данному графическому
режиму по умолчанию.
Procedure TextBackground Выбор цвета фона.
(Color:byte); Выбор цвета символов.
Color – код цвета или
соответствующая константа.
Управление выводом текста.
Procedure ClrEol; Стирает все символы от текущей
позиции курсора до конца строки.
Procedure DelLine; Удаляет линию, в которой находится
курсор.
Procedure InsLine; Вставляет новую строку текста перед
строкой, где находится курсор.
Работа с клавиатурой.
Function KeyPressed:Boolean; Определяет была ли нажата
Значение True, если клавиша на клавиатуре.
нажата любая клавиша;
и False – если нет.
Function ReadKey:char; Считывает символы из буфера
Значение функции - клавиатуры.
код символа клавиши,
нажатой на клавиатуре.
Управление курсором.
Procedure GOTOXY (x,y:integer); Перемещает курсор в
x,y- координаты курсора. указанные координаты
окна вывода.
Function Where x: Integer; Возвращают текущую
Значение функции – коор- координату Х курсора.
дината Х курсора.
Function Where y: Integer; Возвращают текущую
Значение функции – коор- координату Y курсора.
дината Y курсора.
Управление звуком.
Procedure NoSound; Выключает динамик.
Procedure Sound(Hz: word); Включает звук динамика
Hz – частота звука в герцах с заданной тональной
частотой.
Управление временем.
Procedure Delay(Ms: word); Задержка исполнения прог-
Ms – значение задержки в раммы на заданное число
миллисекундах. миллисекунд.
Оболочка TURBO PASCAL.
Значительным событием в истории языков программирования стало создание в 1971г. языка Паскаль. Его автор – основоположник множества идей современного программирования, швейцарский профессор Никлаус Вирт разрабатывал Паскаль как учебный язык структурного программирования. Паскаль во многом напоминает Алгол, но в нем ужесточен ряд требований к структуре программы и имеются возможности, позволяющие успешно применять его при создании проектов. В Паскале сконцентрированы многие лучшие черты языков – предшественников, но по сравнению с ними Паскаль является языком программирования высокого уровня.
Наибольший успех в распространении этого языка обеспечили персональные компьютеры. Фирма Borland Int.(США) разработала систему программирования Турбо Паскаль для ПК. Турбо Паскаль – это не только язык и транслятор с него, но еще и операционная оболочка, обеспечивающая пользователю удобство работы. Турбо Паскаль вышел за рамки учебного предназначения и стал языком профессионального программирования с универсальными возможностями. Транслятор с Турбо Паскаля по оптимальности создаваемых им программ близок наиболее удачному в этом отношении транслятору – транслятор с фортрана.
В силу названных достоинств Паскаль стал основой многих современных языков программирования, таких как Ада, Модула-2 и др.
К важнейшим достоинствам языка Турбо Паскаль относятся небольшой размер компилятора, высокая степень соответствия стандартному Паскалю, очень быстрая компиляция программ, объединение компилятора с интерактивным экранным редактором, предупреждения об ошибках на уровне исходной программы, обширная библиотека подпрограмм и полезные расширения, упрощающие системное программирование.