Как сделать метку в паскале

Добавил пользователь Валентин П.
Обновлено: 04.10.2024


Горбачев Л.И. Основы программирования в среде Turbo Pascal.

1. Простые операторы. Программирование алгоритмов линейной структуры

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

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

Все операторы языка Паскаль подразделяются на три группы: простые, ввода-вывода и структурные. Фактически операторы ввода-вывода являются обращением к стандартным процедурам, так как в Паскале нет специальных операторов ввода-вывода. Однако по установившейся традиции такие обращения называют операторами.

1.1. Простые операторы.

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

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

Оператор присваивания (:=) предписывает выполнить выражение, заданное в его правой части, и присвоить результат переменной, идентификатор которой расположен в левой части. Переменная и выражение должны иметь один и тот же тип. Исключение представляет случай, когда переменная имеет вещественный тип, а выражение - целочисленный. Допустимо присваивание любых типов данных, кроме файловых.

Формат: имя_переменной := выражение;
Пример: Sort := 1; Cost := 15.23;
Name := 'Модель ВАЗ 2109';
Result := sin(A) + cos(B);
Y := Sqrt(X) + 1; L := M and N;

1.1.2. Оператор безусловного перехода (goto).

Исполняемая часть программы является некоторым составным оператором, в котором составляющие его операторы выполняются в той последовательности, в которой они записаны. Если нужно изменить такую последовательность, пользуются оператором перехода. Оператор безусловного перехода (goto) означает "перейти к. " и применяется в случаях, когда после выполнения некоторого оператора надо выполнить не следующий по порядку, а какой-либо другой, отмеченный меткой оператор. Т.е. передать управление оператору, перед которым стоит метка, указанная в операторе goto.

Формат: goto метка;
Пример: .
Label Metka1, Metka2;
.
Metka1:
goto Metka2;
Metka2:
goto Metka1;
.

Метка представляет собой идентификатор или любое целое число без знака в диапазоне от 0 до 9999. Метка должна быть описана в разделе label и записывается перед помечаемым оператором, от которого отделяется двоеточием. Между меткой и данным можно включать один или несколько пробелов.

При записи оператора goto необходимо отметить следующее:
а) метка, на которую передается управление, должна быть описана в разделе описания меток того блока процедуры, функции основной программы, в котором эта метка используется;
б) областью действия метки является тот блок, в котором она описана. Переход возможен только в пределах блока;
в) попытка выйти за пределы блока или передать управление внутрь другого блока вызывает программное прерывание.

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

Пример: Программа, реализующая оператор GoTo.
Program GoTo;
Uses CRT;
Label Finish; < Описание метки >
Var password : integer;
Begin
Finish:
ClrScr;
Write('Введите пароль: '); ReadLn(password);
< 999 - правильное значение пароля >
if password <> 999 then
begin
WriteLn('Неверный пароль! Доступ запрещен!');
goto Finish
end
else WriteLn('Пароль верный! Доступ разрешен!');
ReadLn
End.

1.1.3. Оператор вызова процедуры.

Оператор вызова процедуры служит для активизации предварительно определенной пользователем или стандартной процедуры.

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

Пустой оператор не содержит никаких символов и не выполняет никаких действий. Он может быть расположен в любом месте программы, где синтаксис языка допускает наличие оператора. Как и все другие операторы, пустой оператор может быть помечен меткой. Чаще всего пустой оператор используется для организации выхода из середины программы или составного оператора:
begin
goto Metka;
.
Metka:
end.

Пустому оператору соответствует символ ";" на том месте, где по правилам должен быть какой-либо оператор.

Пример: A := B; ; M := 7.2;

1.1.5. Операторы ввода-вывода.

В любом языке программирования предусмотрена возможность обмена или пересылки информации между ОЗУ (оперативным запоминающим устройством) и внешними устройствами (принтер, дисплей, дисководы и т.д.).

Для ввода в ОЗУ (чтения) и вывода из ОЗУ (записи) данных в Турбо Паскале существуют стандартные (встроенные) процедуры ввода-вывода, вызываемые соответственно, операторами Read и Write.

  • Read(список_переменных); - каждое вводимое значение последовательно присваивается переменным из списка; вводимые числа должны отделяться друг от друга при вводе пробелами или нажатием клавиши Enter;
  • ReadLn(список_переменных); - то же, что и оператор Read, только на экране после ввода данных происходит переход на новую строку (т.е. следующий оператор ввода будет вводить данные с новой строки); вводимые числа должны отделяться друг от друга при вводе пробелами или нажатием клавиши Enter;
  • ReadLn; - происходит переход на новую строку без ввода данных.

Значения вводимых переменных должны соответствовать типам переменных из списка ввода. В Турбо Паскале допускается вводить значения следующих данных: целых (integer), вещественных (real), символьных (char), а также строковых переменных (string).

  • значение логической переменной;
  • значение переменной типа "перечисление";
  • значение переменной типа "массив" (можно вводить значения отдельных элементов массива);
  • значение переменной типа "множество" (можно вводить значения отдельных элементов множества);
  • значение переменной типа "запись" (можно вводить значения отдельных полей записи);
  • Write(список_переменных); - выводит последовательно значения переменных из списка;
  • WriteLn(список_переменных); - то же, что и оператор Write, но после вывода значений на экране осуществляется переход на новую строку (следующий оператор вывода будет выводить данные с начала новой строки);
  • WriteLn; - осуществляет переход на новую строку без вывода данных (вывод "пустой" строки).
  • целых переменных (integer);
  • вещественных переменных (real);
  • символьных переменных (char);
  • логических переменных (boolean);
  • символьных констант;
  • арифметических и логических выражений;
  • строковых переменных.
  • значение переменной типа "перечисление";
  • значение переменной типа "массив" (можно выводить значения отдельных элементов массива);
  • значение переменной типа "множество" (можно выводить значения отдельных элементов множества);
  • значение переменной типа "запись" (можно выводить значения отдельных полей записи);

В результате выводимые значения будут такими:

ПРИМЕР
I =-5 R = 3.5200000000E+00
Символ - +
B =TRUE

В Турбо Паскале предусмотрен вывод данных в определенном пользователем форматом (форматированный вывод). В общем случае формат имеет следующий вид: P:M, где P - имя переменной, M - целая константа, указывающая на число позиций, необходимых для выводимой величины P (в качестве параметра M может указываться не число, а имя константы, описанное в разделе const).

Для вещественных переменных формат может быть задан в таком виде: P:M:N (элемент : длина : количество цифр), где M - общее число позиций для выводимой переменной P, включая знак числа, целую часть, точку и дробную часть; N - число позиций дробной части. В этом случае переменная P выводится в виде константы с фиксированной точкой.

Пример: Используем форматированный вывод переменных из предыдущего примера:
.
WriteLn(' I =',I:3,' R =',R:5:2);
WriteLn(' Символ - ',C:5);
Write(' B =',B:8);

Результат:
I = -5 R = 3.52
Символ - +
B = TRUE

1.2. Примеры программ линейной структуры.

Пример: Осуществить вывод на принтер таблицы, в которой записаны значения сторон прямоугольника и его площадь.
Program DemoWriteln;
Uses CRT;
Var < A, B - стороны, Area - площадь >
A, B, Area : integer;
Begin
A := 8; B := 4;
Area := A * B;
< Lst указывает, что вывод производится на принтер >
WriteLn(Lst, '-----------------------------------');
WriteLn(Lst, '| Сторона A | Сторона B | Площадь |');
WriteLn(Lst, '-----------------------------------');
WriteLn(Lst, '|', A:6, '|':6, B:6, '|':6, Area:6, '|':4);
WriteLn(Lst, '-----------------------------------');
End.

В результате работы программы получим таблицу:
----------------------------------------
| Сторона A | Сторона B | Площадь |
----------------------------------------
| 8 | 4 | 32 |
----------------------------------------
каждая строка которой будет печататься с первой позиции новой строки печатающего устройства.

Пример: Программа, пересчитывающая расстояние, выраженное в милях, в расстояние, выраженное в километрах.
program MilToKm;
uses CRT;
var Mil : real; < Расстояние в милях >
Km : real; < Расстояние в километрах >
Begin
ClrScr;
Write('Задайте расстояние в милях: '); ReadLn(Mil);
Km := Mil * 1.6;
WriteLn(Mil:5:2, ' миль это ', Km:5:2, ' километров');
ReadLn
End.

Примечание: Оператор ReadLn можно применить для задержки вывода результата работы программы на экране до нажатия на клавишу Enter.


В этой статье я расскажу вам про основные принципы работы с языком Pascal. Информация, выложенная здесь, проста и понятна для начинающих программистов. После изучения этой статьи вы будете владеть первоначальными знаниями о Pascal, и ваш дальнейший процесс обучения будет проходить намного легче чем мог бы быть.

Pascal – один из самых известных языков программирования. Создан в 1968 – 1969 годах швейцарским ученым Никлаусом Виртом, был назван в честь французского математика и физика Блеза Паскаля, и используется для обучения программированию по сей день.

1. Подготовка к работе

Итак, вы решили научиться программировать и начать с языка наиболее для этого подходящего – Pascal. Для начала работы вы должны приобрести (скачать) компилятор.

2. Начало работы

Что ж, перед нами открыто окно компилятора. Чистый, белый (или синий?) лист. Здесь и будут появляться на свет наши первые программы. Перед началом работы следует запомнить, что язык Pascal – это совокупность трёх составляющих: алфавита, синтаксиса (правил написания объектов языка) и семантики (правил использования этих объектов).
Алфавит Pascal состоит из:

Структура программы выглядит так:

3. Создание первых программ

Откройте окно вашого компилятора, и введите следующие строки:

program Programma1;
begin
end.

program Programma1;
begin
write(' Pascal ');
end.

3.1. Операторы write, writeln, read, readln

Теперь поговорим о вводе данных. Мы уже познакомились с оператором write, но существуют также и другие. Writeln, к примеру, используется для вывода данных с переходом на новую строку. Зачем? Ну, например чтобы дать какой-нибудь переменной значение:

Как вы видите, я вкратце описал каждое действие в фигурных скобках. Это называется комментарий. В дальнейшем я также буду использовать их для объяснений.
В этом примере для присваивания к переменной значения, введенного с клавиатуры используется оператор read. Мы видим, что при выполнении он прочитал строку в переменную А. А другой оператор, readln работает по другому. Используя его, мы можем сразу ввести нужную строку, и она прочитается в переменную:

Теперь, когда вы немного знаете о вводе данных, поговорим о том, какие могут быть данные, и как их обрабатывать.

3.2. Типы данных в Pascal

Пока вы читали эту статью, вы, наверное, уже пару раз натыкались на непонятное вам integer. Внимательно изучив основную структуру программы, вы наверняка поняли, что это тип данных. Но что это означает? Давайте поближе с этим познакомимся.

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

•Целые типы данных (для целых чисел):
— byte
Объем памяти значений этого типа составляет 1 байт. Диапазон значений для данного типа: от 0 до 255.
— word
Значения этого типа занимают уже 2 байта памяти, а диапазон значений уже побольше: от 0 до 65535.
— integer (уже нам знакомый)
Значения также занимают 2 байта памяти, диапазон такого же размера, но включает уже и отрицательные числа: -32786…32787.
— LongInt
Объем памяти, занимаемый значением типа равняется 4 байтам. Диапазон значений же полностью соответствует названию типа данных: от -2147483648 до 2147483647
— ShortInt
Значение типа потребляет 1 байт памяти, диапазон относительно небольшой: -128…127.

•Вещественные типы данных (для чисел с дробной частью):
— Real
Занимаемая значением типа память – 6 байт. Число значащих цифр – 11-12. (значащие цифры – это точные цифры, т.е. не округленные). Диапазон значений типа: от 2.9*10-39 до 1.7*1038.
— Double
Размер значения типа – 8 байт. Число значащих цифр – 15-16. Диапазон: 5.0*10324…1.7*10308.
— Extended
Занимает 10 байт. Число значущих цифр – 19-20. Диапазон: 3.4*10-4932…1.1*104932.
Помимо этих, существуют также символьный тип данных (char) и даже логический тип данных (boolean), переменные которого могут принимать значения только true или false.

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

3.3. Обработка данных. Математические операции. Условия. Логические операции.
  1. Сложение (+);
  2. Вычитание (-);
  3. Умножение (*);
  4. Деление (/);
  5. Целочисленное деление (div) – возвращает целую часть от деления (Пример: 10 div 3 = 3);
  6. Остаток от деления (mod) – возвращает только остаток от деления (Пример: 5 mod 2 = 1);

abs(x) – возвращает модуль от x;
sin(x) – синус угла x (в радианах);
cos(x) – косинус угла x (в радианах);
int(x) – возвращает целую часть от x;
random(число) – случайное число от 0 до заданного;
sqr(x) – квадрат x;
sqrt(x) – квадратный корень x;
inc(x) – увеличить x на 1;
dec(x) – уменьшить x на 1.

Условия

Условия в Pascal играют очень большую роль, особенно если алгоритм выполнения программы разветвленный. Формулируется условие следующим образом:

if (условие 1) then (действие 1 — основное) else (действие 2 — альтернативное)
(if – если, then – то, else – иначе)

При построении условия пользуются логическими операциями and, not, or, xor:

• and – операнд, объединяющий несколько условий в одно. Действие будет выполняться, только если все перечисленные условия будут верны.
program Usloviya;
var a:integer;
begin
readln(a);
if (2*2=4) and (3+2=5) then a:=a+1 else a:=a-1;
write(a);
end.

На этом примере мы видим, что все условия, перечисленные через and верны, потому выполнялось только первое действие, идущее через than. Если хотя бы одно условие не было верно, тогда выполнилось бы второе действие.

• not – логическое действие с условием из одной части. Если условие неверно, то будет выполняться основное действие (первое), если верно – то альтернативное (второе).

program Usloviya;
var b:integer;
begin
readln (b);
if not 5=4 then b:=b+1 else b:=b-1;
write (b);
end.

Условие 5=4 неверно, следовательно, будет выполняться первое действие.

• or (или) – логический оператор для условия из нескольких частей. Основное действие будет выполняться, если верно хотя бы одно условие.
program Usloviya;
var d:integer;
begin
readln (d);
if (5=4+1) or (5=4) then d:=d+1 else d:=d-1;
write(d);
end.

Одно из условий верно, поэтому программа перейдет к основному действию. Тоже повторится, если верными будут все условия. Если же ни одно условие не будет верно, то выполниться альтернативное действие.

• xor – с этим оператором основное действие выполняется, если верно только одно условие. Если верны несколько условий, или же ни одного, то выполнится альтернативное действие.

program Usloviya;
var n:integer;
begin
readln(n);
if (6=4) xor (3=5-2) then n:=n+1 else n:=n-1;
write (n);
end.

(Примечание: Не стоит забывать что приоритет логических операций выше чем математических, поэтому, если одни совмещаются с другими, то желательно выделять математические операции скобками, чтобы не возникало ошибок при выполнении программы.)

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

3.4. Процедуры и функции для управления программой

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

•Delay(время) – остановка программы с задержкой, время в кавычках указывается в миллисекундах.
•Readkey – остановка программы до нажатия клавиши, значение функции – код нажатой клавиши.
•Exit – досрочное завершение процедуры.
Следует заметить, что для работы delay, readkey, и exit необходимо подключить модуль crt (uses crt).

Также посмотрите видео: Паскаль с нуля — первая программа.

4. Заключение

Прочитав эту статью, вы получили базовые знания по языку программирования Pascal. В доступных и понятных формулировках здесь были выложены основные понятия, принципы работы с данным языком. Теперь дело переходит к вам в руки. Если вы правильно воспользуетесь этой информацией, и продолжите обучаться языку Pascal, то вскоре сможете владеть им в совершенстве.

Задачи изучения дисциплины заключаются в практическом освоении языка и среды Турбо Паскаля (версии 7.0), в приобретении студентами навыков составления алгоритмов задач теплоэнергетического профиля, отладки программ, в умении проводить анализ полученных результатов и корректировать свои действия с целью улучшения качественных показателей программ.

Язык Турбо Паскаль является классическим языком программирования, широко применяемым в инженерных расчётах. Его изучение позволяет сформировать у студентов особый вид мышления – алгоритмический. Студентам, успешно овладевшим этим языком, не составит особого труда в будущей своей трудовой деятельности применять свои знания и составлять программы не только на языке Паскаль, но и на других языках программирования. Особенно важным является то, что знание языка Паскаль нужно для составления программ в среде Windows при помощи прикладного пакета Delphi, всё более популярного в последнее время.

К настоящему моменту имеется огромное количество библиотек программ, процедур и функций с примерами реализации большинства инженерных задач на языке Паскаль и в среде визуального программирования Delphi. Умелое применение этих наработок предполагает хорошее базовое знание языка Паскаль.

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

1. ОСНОВНЫЕ ПОНЯТИЯ СИСТЕМЫ ПРОГРАММИРОВАНИЯ ТУРБО ПАСКАЛЬ

Большинство программ создаются для решения какой-либо задачи. В процессе ее решения на ПК необходимо: ввести данные, указать способ их обработки, задать способ вывода полученных результатов. Поэтому нужно знать следующее:

  • Как ввести информацию в память (ввод).
  • Как хранить информацию в памяти (данные).
  • Как указать правильные команды для обработки данных (операции).
  • Как передать данные из программы пользователю (вывод).

Необходимо также уметь упорядочивать команды так, чтобы:

  • некоторые из них выполнялись только в случае, если соблюдается некоторое условие или ряд условий (условное выполнение);
  • другие выполнялись повторно некоторое число раз (циклы);
  • третьи выделялись в отдельные части, которые могут быть неоднократно выполнены в разных местах программы (подпрограммы).

Таким образом, нужно уметь использовать семь основных элементов программирования – ввод, данные, операции, вывод, условное выполнение, циклы и подпрограммы – и на их основе строить программы.

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

Основные файлы пакета Турбо Паскаль:

  • Turbo.exe – интегрированная среда программирования;
  • Turbo.hlp – файл, содержащий данные для оперативной подсказки;
  • Turbo.tp – файл конфигурационной системы;
  • Turbo.tpl – библиотека стандартных модулей Турбо Паскаля.

После загрузки системы экран разделен на три части: основное (или рабочее) окно, главное меню и строка, в которой указывается назначение основных функциональных клавиш. Переход из основного окна в главное меню и обратно осуществляется посредством клавиши F10.

В рабочем окне осуществляется набор текста программы, запуск же происходит следующим образом: выход в меню, выбор пункта Run – Run.

Для того чтобы сохранить программу, необходимо: выйти в меню, выбрать File – Save (Save as …), в появившемся окне ввести имя файла и нажать клавишу Enter.

Выход из системы программирования: выход в меню, пункт File – Exit.

1.1. Алфавит и словарь языка Паскаль

Язык – совокупность символов, соглашений и правил, используемых для общения. При записи алгоритма решения задачи на языке программирования необходимо четко знать правила написания и использования языковых единиц. Основой любого языка является алфавит (набор знаков, состоящий из букв, десятичных и шестнадцатеричных цифр, специальных символов).

Алфавит Паскаля составляют:

  • прописные и строчные буквы латинского алфавита:

A, B, C…Y, Z, a, b, c…y, z;

  • десятичные цифры: 0, 1, 2…9;
  • специальные символы:

Неделимые последовательности знаков алфавита образуют слова, отделенные друг от друга разделителями. Ими могут быть пробел, комментарий или символ конца строки. Словарь Паскаля можно разделить на три группы слов: зарезервированные слова, стандартные идентификаторы и идентификаторы пользователя.

Зарезервированные слова (см. табл. 1.1) имеют фиксированное написание и навсегда определенный смысл. Они не могут изменяться программистом, и их нельзя использовать в качестве имен для обозначения величин.

Идентификатор – имя (identification – установление соответствия объекта некоторому набору символов). Для обозначения определенных разработчиками языка функций, констант и т. д. служат стандартные идентификаторы, например, Sqr, Sqrt и т. д. В этом примере Sqr вызывает функцию, которая возводит в квадрат данное число, а Sqrt – корень квадратный из заданного числа. Пользователь может переопределить любой стандартный идентификатор, но чаще всего это приводит к ошибкам, поэтому на практике их используют без изменения. Идентификаторы пользователя – это те имена, которые дает сам программист. При записи программ нужно соблюдать общие правила написания идентификаторов:


Горбачев Л.И. Основы программирования в среде Turbo Pascal.

1. Простые операторы. Программирование алгоритмов линейной структуры

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

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

Все операторы языка Паскаль подразделяются на три группы: простые, ввода-вывода и структурные. Фактически операторы ввода-вывода являются обращением к стандартным процедурам, так как в Паскале нет специальных операторов ввода-вывода. Однако по установившейся традиции такие обращения называют операторами.

1.1. Простые операторы.

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

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

Оператор присваивания (:=) предписывает выполнить выражение, заданное в его правой части, и присвоить результат переменной, идентификатор которой расположен в левой части. Переменная и выражение должны иметь один и тот же тип. Исключение представляет случай, когда переменная имеет вещественный тип, а выражение - целочисленный. Допустимо присваивание любых типов данных, кроме файловых.

Формат: имя_переменной := выражение;
Пример: Sort := 1; Cost := 15.23;
Name := 'Модель ВАЗ 2109';
Result := sin(A) + cos(B);
Y := Sqrt(X) + 1; L := M and N;

1.1.2. Оператор безусловного перехода (goto).

Исполняемая часть программы является некоторым составным оператором, в котором составляющие его операторы выполняются в той последовательности, в которой они записаны. Если нужно изменить такую последовательность, пользуются оператором перехода. Оператор безусловного перехода (goto) означает "перейти к. " и применяется в случаях, когда после выполнения некоторого оператора надо выполнить не следующий по порядку, а какой-либо другой, отмеченный меткой оператор. Т.е. передать управление оператору, перед которым стоит метка, указанная в операторе goto.

Формат: goto метка;
Пример: .
Label Metka1, Metka2;
.
Metka1:
goto Metka2;
Metka2:
goto Metka1;
.

Метка представляет собой идентификатор или любое целое число без знака в диапазоне от 0 до 9999. Метка должна быть описана в разделе label и записывается перед помечаемым оператором, от которого отделяется двоеточием. Между меткой и данным можно включать один или несколько пробелов.

При записи оператора goto необходимо отметить следующее:
а) метка, на которую передается управление, должна быть описана в разделе описания меток того блока процедуры, функции основной программы, в котором эта метка используется;
б) областью действия метки является тот блок, в котором она описана. Переход возможен только в пределах блока;
в) попытка выйти за пределы блока или передать управление внутрь другого блока вызывает программное прерывание.

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

Пример: Программа, реализующая оператор GoTo.
Program GoTo;
Uses CRT;
Label Finish; < Описание метки >
Var password : integer;
Begin
Finish:
ClrScr;
Write('Введите пароль: '); ReadLn(password);
< 999 - правильное значение пароля >
if password <> 999 then
begin
WriteLn('Неверный пароль! Доступ запрещен!');
goto Finish
end
else WriteLn('Пароль верный! Доступ разрешен!');
ReadLn
End.

1.1.3. Оператор вызова процедуры.

Оператор вызова процедуры служит для активизации предварительно определенной пользователем или стандартной процедуры.

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

Пустой оператор не содержит никаких символов и не выполняет никаких действий. Он может быть расположен в любом месте программы, где синтаксис языка допускает наличие оператора. Как и все другие операторы, пустой оператор может быть помечен меткой. Чаще всего пустой оператор используется для организации выхода из середины программы или составного оператора:
begin
goto Metka;
.
Metka:
end.

Пустому оператору соответствует символ ";" на том месте, где по правилам должен быть какой-либо оператор.

Пример: A := B; ; M := 7.2;

1.1.5. Операторы ввода-вывода.

В любом языке программирования предусмотрена возможность обмена или пересылки информации между ОЗУ (оперативным запоминающим устройством) и внешними устройствами (принтер, дисплей, дисководы и т.д.).

Для ввода в ОЗУ (чтения) и вывода из ОЗУ (записи) данных в Турбо Паскале существуют стандартные (встроенные) процедуры ввода-вывода, вызываемые соответственно, операторами Read и Write.

  • Read(список_переменных); - каждое вводимое значение последовательно присваивается переменным из списка; вводимые числа должны отделяться друг от друга при вводе пробелами или нажатием клавиши Enter;
  • ReadLn(список_переменных); - то же, что и оператор Read, только на экране после ввода данных происходит переход на новую строку (т.е. следующий оператор ввода будет вводить данные с новой строки); вводимые числа должны отделяться друг от друга при вводе пробелами или нажатием клавиши Enter;
  • ReadLn; - происходит переход на новую строку без ввода данных.

Значения вводимых переменных должны соответствовать типам переменных из списка ввода. В Турбо Паскале допускается вводить значения следующих данных: целых (integer), вещественных (real), символьных (char), а также строковых переменных (string).

  • значение логической переменной;
  • значение переменной типа "перечисление";
  • значение переменной типа "массив" (можно вводить значения отдельных элементов массива);
  • значение переменной типа "множество" (можно вводить значения отдельных элементов множества);
  • значение переменной типа "запись" (можно вводить значения отдельных полей записи);
  • Write(список_переменных); - выводит последовательно значения переменных из списка;
  • WriteLn(список_переменных); - то же, что и оператор Write, но после вывода значений на экране осуществляется переход на новую строку (следующий оператор вывода будет выводить данные с начала новой строки);
  • WriteLn; - осуществляет переход на новую строку без вывода данных (вывод "пустой" строки).
  • целых переменных (integer);
  • вещественных переменных (real);
  • символьных переменных (char);
  • логических переменных (boolean);
  • символьных констант;
  • арифметических и логических выражений;
  • строковых переменных.
  • значение переменной типа "перечисление";
  • значение переменной типа "массив" (можно выводить значения отдельных элементов массива);
  • значение переменной типа "множество" (можно выводить значения отдельных элементов множества);
  • значение переменной типа "запись" (можно выводить значения отдельных полей записи);

В результате выводимые значения будут такими:

ПРИМЕР
I =-5 R = 3.5200000000E+00
Символ - +
B =TRUE

В Турбо Паскале предусмотрен вывод данных в определенном пользователем форматом (форматированный вывод). В общем случае формат имеет следующий вид: P:M, где P - имя переменной, M - целая константа, указывающая на число позиций, необходимых для выводимой величины P (в качестве параметра M может указываться не число, а имя константы, описанное в разделе const).

Для вещественных переменных формат может быть задан в таком виде: P:M:N (элемент : длина : количество цифр), где M - общее число позиций для выводимой переменной P, включая знак числа, целую часть, точку и дробную часть; N - число позиций дробной части. В этом случае переменная P выводится в виде константы с фиксированной точкой.

Пример: Используем форматированный вывод переменных из предыдущего примера:
.
WriteLn(' I =',I:3,' R =',R:5:2);
WriteLn(' Символ - ',C:5);
Write(' B =',B:8);

Результат:
I = -5 R = 3.52
Символ - +
B = TRUE

1.2. Примеры программ линейной структуры.

Пример: Осуществить вывод на принтер таблицы, в которой записаны значения сторон прямоугольника и его площадь.
Program DemoWriteln;
Uses CRT;
Var < A, B - стороны, Area - площадь >
A, B, Area : integer;
Begin
A := 8; B := 4;
Area := A * B;
< Lst указывает, что вывод производится на принтер >
WriteLn(Lst, '-----------------------------------');
WriteLn(Lst, '| Сторона A | Сторона B | Площадь |');
WriteLn(Lst, '-----------------------------------');
WriteLn(Lst, '|', A:6, '|':6, B:6, '|':6, Area:6, '|':4);
WriteLn(Lst, '-----------------------------------');
End.

В результате работы программы получим таблицу:
----------------------------------------
| Сторона A | Сторона B | Площадь |
----------------------------------------
| 8 | 4 | 32 |
----------------------------------------
каждая строка которой будет печататься с первой позиции новой строки печатающего устройства.

Пример: Программа, пересчитывающая расстояние, выраженное в милях, в расстояние, выраженное в километрах.
program MilToKm;
uses CRT;
var Mil : real; < Расстояние в милях >
Km : real; < Расстояние в километрах >
Begin
ClrScr;
Write('Задайте расстояние в милях: '); ReadLn(Mil);
Km := Mil * 1.6;
WriteLn(Mil:5:2, ' миль это ', Km:5:2, ' километров');
ReadLn
End.

Примечание: Оператор ReadLn можно применить для задержки вывода результата работы программы на экране до нажатия на клавишу Enter.

Читайте также: