К оглавлению

 

Урок 21

Тема: Структура программы на языке Паскаль.

 

Вопросы темы:

1. Идентификаторы языка Турбо Паскаль.

2. Общие понятия и правила программирования на языке Турбо Паскаль

3. Структура программы на языке Турбо Паскаль

4. Примечание

5. Const (константы)

6. Type (тип данных):

    Численные типы

    Символьные переменные

    Логические переменные

    Массивы

7. Var (Переменные)

8. Основная программа

9. Расчет. Основные математические соотношения и операции Турбо Паскаль

10. Стандартные процедуры

11. Вывод результатов

Тест  на поиск ошибок в программе

В начало 

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.

 

В начало

5. Const (константы).

В этом разделе описания идентификаторам задаются значения, которые не меняются при выполнении программы.

Пример.

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-диапазон десятичного порядка

 Символьные переменные - char

Значениями символьного типа является множество всех символов ПК. Каждому символу приписывается целое число в диапазоне 0…255.

 Логические переменные - boolean

Значениями логического типа может быть одна из предварительно объявленных констант (False – ложь, True – истина).

 

 В начало

 

Сложные типы:

 Массивы- array.

Тип данных Массив позволяет одному идентификатору задать несколько значений, которые отличаются порядковым номером. Номер элемента массива указывается после идентификатора в квадратных скобках {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;} 

 

 

8. Основная программа

Основная программа, как правило, состоит из трех частей:

Ввод исходных данных.

Расчет.

Вывод результата.

Рассмотрим эти части более подробно.

Ввод исходных данных.

Варианты ввода исходной информации покажем на примерах:

·         Const х=20; {идентификатору x задается постоянного значения в разделе описания констант}

·         y:=20; {идентификатору y присваивается численное значение в теле основной программы}

·         read(x); { выполнение программы приостанавливается для ввода значения "x" с клавиатуры. Оператор аналогичен оператору INPUT в Бейсике}

·         readln(x); {ввод значения идентификатора с новой строки}

·         read(x,y); {ввод двух значений x ,y. Одно значение от другогоотделяется нажатием клавишей пробела или Enter}

·         Write(‘x= ’); readln(x); {Ввод значения с пояснением. На экране в месте ввода появляется сообщение: ‘х= ’}

 

В начало

 

9. Расчет. Основные математические соотношения и операции Турбо Паскаль:

·         + { сложение}

·         – { вычитание}

·         * { умножение}

·         / { деление}

·         = {равенство (используется при описании констант, типов и т.д.)}

·         := {присваивание}

·         > { больше}

·         < { меньше}

·         >= { больше либо равно}

·         <= { меньше либо равно}

·         <> { не равно}.

 

 

10. Стандартные процедуры

·         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 }

 

В начало

 

11. Вывод результатов

·         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"}

 

В начало

 

К оглавлению

Сайт управляется системой uCoz