Урок 21
Тема: Структура программы на языке Паскаль.
2. Общие понятия и правила программирования на языке Турбо Паскаль
3. Структура программы на языке Турбо Паскаль
9. Расчет. Основные математические соотношения и операции Турбо Паскаль
1. Идентификаторы языка (ТП)
Идентификаторами ТП называют произвольный набор символов.
Требования к идентификаторам:
· Идентификатор состоит из латинских букв и цифр (заглавные и строчные буквы не различаются).
· Идентификатора должен начинаться обязательно с буквы {"а1", а не "1а"}.
· Идентификатор может состоять из любого количества символов, но распознаются только первые 63 .
· Служебные слова запрещается использовать в качестве идентификаторов.
· При написании идентификатора нельзя использовать пробелы.
2. Общие понятия и правила программирования на языке Турбо Паскаль
· Программа составляется из операторов Турбо Паскаля, которые разделяются символом ";".
· Для выделения группы операторов используют операторные скобки: begin…..end.
· Несколько операторов, заключенных в операторные скобки, называют составным оператором.
· В тексте программы фигурными скобками выделяются комментарии, которые игнорируются при выполнении программы. В тексте лекций будем также использовать фигурные скобки для комментирования.
3. Структура программы на языке Турбо Паскаль
Program P1;
{заголовок, название программы} {±} Uses………;{подключение внешних модулей с расширением *.tpu}{±} Const……...; {описание констант} {±} Type………; {задание типов} {±} Var………..; {раздел объявления переменных}{±} Function F1 ….; {описание функций} {±} Procedure Pr1 ….; {описание процедур} {±} |
|
Begin{начало
основной программы} {+}
….. {тело основной программы} {±} End. {конец основной программы} {+}. |
Программа состоит из заголовка и блока, за которым следует точка, являющаяся признаком конца текста программы.
{Пример простой программы на Паскале} {Программа вычисляет сумму кубов k введенных чисел, 1<=k<=N} program summa (input, output); {Заголовок программы } {начало блока} const N = 10; {Раздел констант } type TCount = 1..N; {Раздел типов } var i,k:TCount; {Раздел переменных } value, summa: Real; function Cube (f:Real):Real; {Раздел процедур и функций } begin |
||
|
Cube:=f*f*f; |
|
end; begin |
||
|
readln (k); summa:=0; for i:=1 to k do begin |
|
|
readln(value); summa:=summa + cube(value); |
|
|
end; |
|
end. {Конец раздела операторов, блока и программы} |
||
|
|
|
4. Примечание. {+} – обязательная часть программы,
{±} – необязательная часть программы.
5. Рассмотрим основные части программы
Uses – подключение внешних библиотек для расширения в программе набора доступных операторов.
Пример:
UsesDOS, Crt, Graph, Printer; { Подключение четырех стандартных модулей:
DOS – использование в программе команд операционной системы.
Crt – расширение возможностей ввода-вывода, использование звукового генератора.
Graph – подключение графических процедур и функций.
Printer – легкий доступ к печати.}
Пример. Следующая программа обеспечивает реализацию легкого доступа к печати.
UsesPrinter; { подключение модуля}
begin
Write(‘привет’); { выводится на экран слово "привет"}
Write(lst,‘привет’); { выводится на принтер слово "привет"}
end.
В этом разделе описания идентификаторам задаются значения, которые не меняются при выполнении программы.
Пример.
Const
a=4; {численная константа}
b=’A’; {символьная константа }
s=’ABBA’; {строковая константа }
b1=false; {логическая константа }
M:array[1..4] of integer=(1,5,6,7); {массив констант }.
6. Type (тип данных) определяет множество допустимых значений, которые принимает идентификатор и множество операций, которые с ним можно производить.
На рисунке приведены основные типы данных языка Турбо Паскаль.
Основные типы данных ТП |
Типы данных, которые далее будут использованы при написании программ, рассмотрим подробнее.
Простые типы
Тип |
Размер, Байт |
Диапазон значений |
Byte | 1 | 0…255 |
Shortint | 1 | -128…127 |
Word | 2 | 0…65535 |
Integer | 2 | -32768…32767 |
Longint | 4 | -2147483648…2147483647 |
Single | 4 |
7..8 значащих цифр -45…38-диапазон десятичного порядка |
Real | 6 |
11..12 значащих цифр -39…38-диапазон десятичного порядка |
Double | 8 |
15..16 значащих цифр -324…308-диапазон десятичного порядка |
Extended | 10 |
19..20 значащих цифр -4951…4932-диапазон десятичного порядка |
Значениями символьного типа является множество всех символов ПК. Каждому символу приписывается целое число в диапазоне 0…255.
Логические переменные - boolean
Значениями логического типа может быть одна из предварительно объявленных констант (False – ложь, True – истина).
Сложные типы:
Тип данных Массив позволяет одному идентификатору задать несколько значений, которые отличаются порядковым номером. Номер элемента массива указывается после идентификатора в квадратных скобках {M[5] – пятый элемент массива М}. При описании массива указывается диапазон номеров элементов массива и тип, к которому относится каждый его элемент. Массивы могут быть одно-, двух- и многомерными.
Пример описания и заполнения элементов массива.
Var {описание массивов}
M: array [1..5] of integer; {одномерный массив М с номерами элементов от 1 до 5, состоящий из целых чисел}
M1: array [2..3,11..15] of char; {двумерный массив М1 с номерами строк от 2 до 3, с номерами столбцов от 11 до 15, состоящий из символов}
Begin {заполнение массива}
М[2]:=100; {второму элементу численного массива М присвоено значение 100}
М1[2,3]:=’d’; {элементу второй строки и третьего столбца символьного двухмерного массива М1 присвоено значение ’d’}
End.
Строковые переменные – string.
Переменные строкового типа состоят из нескольких символов.
Пример.
Var s:string; {описание идентификатора s как строковую переменную}
Begin
s:=’Привет’; {задание значения строковой переменной}
Writeln(s); {распечатка на экране слова "Привет"}
end.
7. Var (Переменные).
Все идентификаторы, используемые в программе, должны быть описаны. Описать идентификатор - указать тип данных, к которому он относится.
Пример.
Var
x,y:real; {идентификаторы x,y - переменные реального типа}
i,j,k:integer; { идентификаторы i,j,k – переменные целого типа }
M:array [1..4] of char; { M - одномерный символьный массив из 4 элементов}
M1:array [1..3,1..4] of byte; { M1 двухмерный массив из 12 элементовцелого типа}
Type
re=real; { описание нового типа: идентификатор re - реальный тип}
Var
z:re; {идентификатор z – переменная типа re, то есть реального типа}
{Четыре последние строки примера можно заменить следующим
образом: Var z:real;}
Основная программа, как правило, состоит из трех частей:
Ввод исходных данных.
Расчет.
Вывод результата.
Рассмотрим эти части более подробно.
Ввод исходных данных.
Варианты ввода исходной информации покажем на примерах:
· Const х=20; {идентификатору x задается постоянного значения в разделе описания констант}
· y:=20; {идентификатору y присваивается численное значение в теле основной программы}
· read(x); { выполнение программы приостанавливается для ввода значения "x" с клавиатуры. Оператор аналогичен оператору INPUT в Бейсике}
· readln(x); {ввод значения идентификатора с новой строки}
· read(x,y); {ввод двух значений x ,y. Одно значение от другогоотделяется нажатием клавишей пробела или Enter}
· Write(‘x= ’); readln(x); {Ввод значения с пояснением. На экране в месте ввода появляется сообщение: ‘х= ’}
9. Расчет. Основные математические соотношения и операции Турбо Паскаль:
· + { сложение}
· – { вычитание}
· * { умножение}
· / { деление}
· = {равенство (используется при описании констант, типов и т.д.)}
· := {присваивание}
· > { больше}
· < { меньше}
· >= { больше либо равно}
· <= { меньше либо равно}
· <> { не равно}.
· Dec(i); {i:=i-1}
· inc(i); {i:=i+1}
· GotoXY(i,j); {перемещение курсора в указанную точку экрана с координатами i, j}
· str(x,S); {идентификатор численного типа x переводит в строковую переменную S: x→S. }{ Требуется модуль Crt}
· Clrscr; {очистка экрана} {Требуется модуль Crt }
· Write(x); {вывод на экран значения x: при реальном x=4, на экран выводится "4.0000000000E+00"}
· Write(x:5:1); {вывод форматированных данных, то есть выделение на экране заданного количества позиций для вывода идентификатора: 5 показывает общее число позиций, 1 – число знаков после запятой: при x=4 , на экран выводится "4.0"}
· Writeln(x); {вывод с новой строки}
· Writeln(x,y); {вывод двух значений идентификаторов}
· Writeln(‘x= ’,x:4:1); {вывод с комментариями и форматированием: "x= 4.0"}
· Writeln(‘Площадь круга радиусом 3 м равна’,3.14*sqr(3):4:1); {Вывод с комментариями и выполнением расчетов: "Площадь круга радиусом 3 м равна 28.3"}