страница 1 страница 2 | страница 3 Методические указания
к лабораторной работе
Turbo-Pascal
Часть 1
1 Цель работы
Знакомство со средой программирования Turbo Pascal. Изучение структуры программы, стандартных функций, оператора присваивания и процедур ввода-вывода.
2 Задачи работы
Научиться создавать программы на языке Turbo Pascal с использованием стандартных функций.
3 Порядок выполнения работы
3.1 Загрузить среду программирования Turbo Pascal. Ознакомиться с назначением основных пунктов меню, содержанием строки состояния и работой в справочной системе.
3.2 Составить и отладить программу, включающую в себя:
- сообщение о вводе двух чисел;
- ввод значений двух вещественных чисел;
- вывод в виде таблицы суммы, разности, произведения и среднеарифметического значения 1-го и 2-го числа с разным числом знаков в дробной части.
3.3 Составить и отладить программу вычисления функции y=f(x) c использованием стандартных функций языка Turbo Pascal в соответствии с заданным преподавателем вариантом (см. приложение А).
3.4 Провести расчеты для х=0.1, х=0.2, х=0.3, х=0.4 и х=0.5.
3.5 Записать полученные значения в отчете в виде таблицы.
4 Требование к отчету
Отчет о проделанной работе должен содержать:
– название и цель работы;
– номер варианта для выполнения задания и условие своего варианта;
– блок-схемы решения задач;
– тексты программ;
– полученные при расчетах численные результаты;
– письменные ответы на контрольные вопросы п.7 по указанию преподавателя.
5 Теоретические положения
5.1 Элементы языка
5.1.1 Алфавит языка
При записи программ разрешены символы:
- буквы латинского алфавита А-Z (в любом регистре), а также знак подчеркивания _;
- буквы русского алфавита А-Я;
- цифры 0-9;
- специальные символы > < = + - / * [ ] ( ) { } . , : ; ^ @ ’ $ #
- пары символов (их нельзя разделять пробелами) < > <= >= := (* *) (. .)
- пробелы (рассматриваются как ограничители идентификаторов, констант, чисел, зарезервированных слов).
5.1.2 Идентификаторы
Неделимые последовательности символов алфавита образуют слова -идентификаторы, используемые для обозначения констант, переменных, процедур, функций и т.д.
Идентификатор должен начинаться с буквы или символа подчеркивания, не должен содержать пробелов и специальных символов. Примеры идентификаторов:
name
WorkPhone
_SUM1
5.1.3. Константы
В качестве констант могут использоваться числа, логические константы, символы и строки символов.
Целые числа записываются со знаком или без него по обычным правилам и могут иметь значение от –2147483648 до +2147483647.
Вещественные числа записываются со знаком или без него с использованием десятичной точки и/или экспоненциальной части. Экспоненциальная часть начинается символом е или Е, за которым могут следовать знаки «+» или «-» и десятичный порядок. Символ е (Е) означает десятичный порядок и смысл «умножить на 10 в степени». Например, запись 3.14Е5 означает 3,14 × 105 ,а запись -17е-2 – это -17× 10-2.
Логическая константа – это либо слово FALSE (ложь) либо слово TRUE (истина).
Символьная константа – это любой символ, заключенный в апострофы:
'z' – символ z;
'ф' – символ ф.
Строковая константа – последовательность символов, заключенная в апострофы. Если в строке нужно указать сам символ апострофа, он удваивается, например:
' Это - строка символов ';
' That''s string'.
Строка символов может быть пустой, т.е. не иметь никаких символов в обрамляющих ее апострофах.
5.1.4 Выражения
Выражение задает порядок выполнения действий над элементами данных и состоит из операндов (констант, переменных, функций, круглых скобок и знаков операций).
Действия в выражении выполняются слева направо с соблюдением старшинства (в порядке убывания):
1) Not (логическое отрицание);
2) * (умножение), / (деление), div (целочисленное деление), mod (целочисленное деление с остатком по модулю), and (логическая операция “И”);
3) + (сложение), - (вычитание), or (логическая операция “ИЛИ”);
4) операции отношений: = (равно), <> (не равно), < (меньше), > (больше), < = (меньше или равно) , > = (больше или равно).
Для изменения порядка выполнения действий используются круглые скобки. Число открывающихся скобок равно числу закрывающихся. Любое выражение в скобках вычисляется раньше, чем выполняется операция, предшествующая скобкам.
Все составные части выражения записываются в одну строку, например, выражение запишется в виде (a+b*x)/(c+d) .
В выражение могут входить функции. Наиболее часто употребляемые функции называют стандартными. Для работы с ними не надо ни заказывать библиотеку, ни описывать их предварительно в программе. Примеры стандартных математических функций:
ABS(x) – модуль х ( | x | );
SQR(x) – квадрат числа x (x 2) ;
SQRT(x) – квадратный корень из x ( );
LN(x) – натуральный логарифм от х ( ln x );
EXP(x) – е в степени х (ех );
SIN(x) – синус х (sin x);
COS(x) – косинус х (cos x);
ARCTAN(x) – арктангенс х (arctg x).
Аргумент этих функций может быть как вещественным, так и целым. Результат – всегда вещественный.
5.2 Типы данных
Любые данные, т.е. константы, переменные, значения функций или выражения в Турбо Паскале характеризуются своими типами. Тип определяет множество допустимых значений, которые может иметь тот или иной объект, а также множество допустимых операций, которые применимы к нему. Все типы данных разделяются на две группы – простые и составные.
К простым (скалярным) типам относятся, например:
INTEGER - данные этого типа могут принимать только целые значения (положительные, отрицательные, 0) в диапазоне от –32768 до +32767;
REAL - величины этого типа могут принимать только вещественные значения (числа с дробной частью, целая часть от дробной отделяется точкой); BOOLEAN - логический тип, принимает два значения TRUE (истина) и FALSE (ложь);
CHAR – символ.
Примером составного (структурированного типа) может служить тип STRING - строка символов. Этот тип широко используется для обработки текстов.
5.3 Структура программы
Структура программы должна быть такой:
<Заголовок программы>
{Блок описаний}
BEGIN
{Раздел исполняемых операторов}
END.
5.3.1 Заголовок программы
В заголовке указывается имя программы. Общий вид заголовка:
program n;
здесь n –имя программы.
Заголовок программы необязателен, его можно опускать без каких-либо последствий для программы.
5.3.2 Блок описаний
В блоке описаний объявляются идентификаторы типов, констант, переменных, а также метки, процедуры и функции. Блок описаний может состоять из пяти разделов, которые должны следовать в строго определенном порядке:
1) раздел меток (label);
2) раздел констант (const);
3) раздел типов (type);
4) раздел переменных (var);
5) раздел процедур и функций.
5.3.2.1 Раздел меток (label)
Любой выполняемый оператор может быть снабжен меткой – положительной константой, содержащей не более 4-х цифр. Метка отделяется от оператора двоеточием. Все метки, встречающиеся в программе, должны быть описаны в разделе label. Общий вид:
label l1, l2, l3…;
здесь l1, l2, l3… - метки.
Пример.
label 20;
Пусть оператор а:=b; имеет метку 20. Тогда этот оператор выглядит так:
20: а:=b ;
5.3.2.2 Раздел констант (const)
Если в программе используются константы, имеющие достаточно громоздкую запись (например, число p с 8-ю знаками), либо сменные константы (например, для задания варианта программы), то такие константы обычно обозначаются какими-либо именами и описываются в разделе const. Это делает программу более наглядной и удобной при отладке и внесении изменений.
Общий вид:
const а1 = с1; а2 = с2; …
Здесь а1, а2, … – имя константы, с1, с2, … – значение константы.
Пример.
сonst pi=3.14; c=2.7531;
5.3.2.3 Раздел типов (type)
Если в программе вводится тип, отличный от стандартного, то этот тип описывается в разделе type:
type t1=<вид типа>;
t2=<вид типа>;
. . . . . . .
где t1 и t2 – идентификаторы вводимых типов.
Пример.
Type color=(red, yellow, green, blue);
Здесь описан тип color, задаваемый перечислением значений.
5.3.2.4 Раздел переменных (var)
В разделе var вводится имя каждой переменной и указывается, к какому типу эта переменная принадлежит:
var v11, v12, …: type1;
v21, v22, …: type2; …
Здесь v11, v12, …- имена переменных; type1 – тип переменных v11, v12, …; type2 - тип переменных v21, v22, …
Пример.
var k,i,j:integer; a,b:real;
5.3.2.5 Раздел процедур и функций
Те алгоритмы, которые оформляются как подпрограммы (процедуры и функции) помещаются в главной программе после раздела var и перед begin программы.
5.3.3 Раздел действий (операторов).
Эта часть программы начинается с ключевого слова begin и заканчивается словом end, после которого должна стоять точка (end.). Раздел действий - это выполняемая часть программы, состоящая из операторов.
5.4 Комментарии
Комментарий – это произвольная последовательность любых символов, поясняющая текст программы. Комментарий разрешается вставлять в любое место программы, где по смыслу может стоять пробел. В качестве ограничителей комментария используются фигурные скобки « { » и« } », а также пары символов: « (* » - слева от комментария и « *) » - справа от него:
{ Это комментарий }
(* Это тоже комментарий *)
5.5 Оператор присваивания
Под операторами в языке Паскаль подразумевают описание действий. Операторы отделяются друг от друга точкой с запятой. Если оператор стоит перед end, until или else, то в этом случае точка с запятой не ставятся.
Общий вид оператора присваивания:
v:=a;
здесь v – переменная, а – выражение, := - операция присваивания. Выражение а может содержать константы, переменные, названия функций, знаки операций и скобки. В операторе v:=a переменная v и выражение а должны иметь один и тот тип.
Примеры.
f:=3*c+2*sin(x);
х:=х+1;
Замечание. Разрешается присваивать переменной типа real выражение типа integer. Но нельзя присваивать переменной типа integer выражение типа real.
5.6 Процедура ввода информации
Общий вид:
Read (v1, v2, …,vn);
или
Readln (v1, v2, …,vn);
здесь v1, v2, …,vn – идентификаторы переменных.
Значения переменных вводятся с клавиатуры и должны соответствовать типам переменных. В случае использования процедуры readln, после ввода происходит переход на следующую строку.
5.7 Процедура вывода информации на печать
Общий вид оператора:
write(p1, p2, …, pn);
или
writeln(p1, p2, …, pn);
Здесь p1, p2, …, pn - список выражений, значения которых выводятся на печать.
Оператор write оставляет курсор в конце выведенной строки текста.
В случае использования процедуры writeln, после печати происходит переход на следующую строку.
Кроме значений выражений, на печать можно выводить и произвольный набор символов, заключенный в апострофы, например
writeln(’p=’,p);
Этот оператор выполняется так: сначала выводятся символы, заключенные в апострофы. Затем выводится значение переменной р, например 13.5. На экране в результате работы оператора появится:
р=13.5
Пример 1. Вычислить длину окружности радиуса 5,785.
program t10;
(* Программа вычисления длины окружности*)
const r=5.785;
var l:real;
begin
l:=2*3.1416*r;
writeln(' l=',l);
end.
либо
program t11;
var r:real;
begin
readln(r);
writeln(' l=',2*3.1416*r);
end.
Имеется возможность задать ширину поля (число позиций) М для выводимой величины Р:
Write (P1:M1, P2:M2, …PN:MN);
Для вещественных чисел можно задавать поля М и N, где М – общее число позиций, отводимых под все число, N –число позиций под его дробную часть.
Например,
Write (P:10:2);
Здесь под Р отводится 10 позиций, 2 из них под дробную часть.
Пример 2. Назначение следующей программы - ввести с клавиатуры два целых числа, найти результат деления первого числа на второе и вывести числа и полученный результат на экран в виде таблицы.
Program Input_Output;
{Программа вводит два целых числа
и выводит частное от деления 1-го на 2-е}
Var
n1,n2:Integer; {n1 и n2 - вводимые целые}
x:real; {x - результат}
Begin
Write('n1='); {Сообщение о вводе n1}
ReadLn(n1); {Ввод n1}
Write('n2='); {Сообщение о вводе n2}
ReadLn(n2); {Ввод n2}
Х:=n1/n2; {Вычисление результата}
WriteLn('---------------------------'); {Печать таблицы}
WriteLn('| n1 | n2 | Частное |');
WriteLn('---------------------------');
WriteLn(n1:8,n2:8,x:8:4);{Вывод n1, n2 и x}
WriteLn('-------------------------');
End.
6 Методические рекомендации
6.1 Запуск программы Turbo Pascal выполняется любым из стандартных способов запуска, предусмотренных в OC Windows (например, с помощью ярлыка на рабочем столе).
Для перехода к выбору команд главного меню используется клавиша F10. Для возврата в режим редактирования нужно нажать клавишу ESC.
Для получения справки используются клавиши:
F1 – получение контекстно-зависимой справки;
SHIFT+F1 – выбор справки из списка доступных справочных сообщений;
CTRL+F1 – получение справки о нужной стандартной процедуре, функции, о стандартной константе или переменной.
6.2 При решении задач можно воспользоваться примерами программ из п.5.7. Текст программы набирается в текстовом редакторе среды Turbo Pascal.
После заполнения очередной строки следует нажать клавишу ENTER, чтобы перевести курсор на следующую строку.
Наиболее часто используемые команды редактора Turbo Pascal:
- смещение курсора
Page Up – на страницу вверх;
Page Down – на страницу вниз;
Home – в начало текущей строки;
End – в конец текущей строки;
Сtrl+ Page Up – в начало текста;
Сtrl+ Page Down – в конец текста.
- команды редактирования
Backspase – стирает символ слева от курсора;
Delete - стирает символ, на который указывает курсор;
Ctrl+Y – стирает строку, в которой расположен курсор;
Enter – вставляет новую строку, разрезает старую;
Сtrl+Q L – восстанавливает измененную строку (действует, если курсор не покидал строку после ее изменения).
- работа с блоками
Ctrl+K B – начинает выделение блока;
Ctrl+K K – заканчивает выделение блока (кроме того, блок можно выделить с помощью мыши);
Ctrl+K Y – уничтожает выделенный блок;
Ctrl+K С – копирует блок;
Ctrl+K V – перемещает блок на новое место;
Ctrl+K W – записывает блок в файл;
Ctrl+K R – читает блок из файла;
Ctrl+K P – печатает блок.
Набранный текст программы запишите в файл. Клавишей F2 вызывается окно диалога, в котором следует задать имя файла.
После подготовки текста программы нужно попытаться исполнить ее, т.е. откомпилировать программу, связать ее (если это необходимо) с библиотекой стандартных программ и функций, загрузить в оперативную память и передать ей управление. Эта последовательность действий – прогон программы – осуществляется после нажатия клавиш CTRL+F9.
Если в программе нет синтаксических ошибок, то все действия выполняются последовательно одно за другим, при этом в небольшом окне сообщается о количестве откомпилированных строк и объеме доступной памяти. Перед передачей управления загруженной программе среда выводит на экран окно прогона программы, а после завершения работы восстанавливает на экране окно редактора.
Если на каком-то этапе среда обнаружит ошибку, она прекращает дальнейшие действия, восстанавливает окно редактора и помещает курсор на ту строку программы, при компиляции или исполнении которой обнаружена ошибка. При этом в верхней строке редактора появляется диагностическое сообщение о причине ошибки. Все это позволяет отладить программу, т.е. устранить в ней синтаксические ошибки и убедиться в правильности ее работы. Некоторые сообщения об ошибках, их перевод и пояснения приведены в приложении Б.
По оператору read (или readln) вызывается встроенная процедура ввода данных и программа останавливается в ожидании ввода. Необходимо набрать на клавиатуре нужные данные и нажать клавишу ENTER.
С помощью клавиш ALT+F5 в любой момент можно просмотреть данные, выданные на экран в результате прогона программы.
7 Контрольные вопросы
7.1 Как в программе на языке Turbo Pascal описываются переменные?
7.2 Какие бывают типы переменных?
7.3 Какой вид имеет оператор присваивания?
7.4 Каким символом отделяются друг от друга операторы в программе?
7.5 В каких случаях после оператора не ставятся точка с запятой?
7.6 Какая процедура служит для вывода информации на печать?
7.7 Какая процедура служит для ввода значений с клавиатуры?
7.8 Какие функции служат для вычисления квадрата, квадратного корня, модуля, экспоненты числа или числового выражения?
7.9 Какие стандартные тригонометрические функции существуют в языке Turbo Pascal?
7.10 Как в среде Turbo Pascal запустить программу на выполнение?
ПРИЛОЖЕНИЕ А
-
Номер варианта
| Функция |
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
|
12
|
|
13
|
|
14
|
|
15
|
|
страница 1 страница 2 | страница 3
|