Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Лекция 3 Структура программы.

Читайте также:
  1. III. Структура процесса мышления.
  2. III. Структура Студенческого совета
  3. IV Структура действия
  4. IV. Структура ОСС університету та їх повноваження
  5. XIII. Структура РО
  6. А. Формирование собственного информационного потока, не зависящего от жестко контролируемого властями, конкурирующими структурами и т. п.
  7. Автомобиля и его структура.

Инструкции присваивания и ввода/вы вода.

Пустая инструкция

Общий вид программы:

program Имя_программы;

Разделы описаний

Begin

Основной блок программы

End.

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

Begin

End.

Не только переменные, но и все именованные объекты программы должны быть предварительно описаны в соответствующем разделе. Каждый раздел начинается со своего ключевого слова и заканчивается с началом следующего раздела или на слове begin основного блока. Возможны объявления разделов: модулей – ключевое слово uses, меток – label, констант – const, типов – type, переменных – var; определение очередной процедуры – procedure, определение очередной функции – function. В Турбо Паскале разделы могут размещаться в любом порядке и быть не в единственном числе. Исключение составляет раздел uses: если он есть, то должен быть единственным и самым первым.

Основной блок содержит инструкции (операторы) программы. Инструкции – это законченные предложения языка, выполняющие некоторые действия над данными. Их условно можно разделить на простые и структурные (сложные, структурированные). Простые инструкции не содержат в себе других инструкций. Структурные инструкции содержат в себе хотя бы одну простую инструкцию и могут содержать другие структурные инструкции. К простым инструкциям относятся: присваивание (:=), обращение к процедуре, безусловный переход (goto), пустая инструкция. К структурным инструкциям относятся: составная инструкция или блок (beginend), ветвления (ifthenelse, caseofelseend), циклы (whiledo, repeatuntil, forto/downtodo), присоединение (withdo). Последовательно размещаемые инструкции разделяются символом "; ".

Формат записи программы – свободный. Но с точки зрения ясности и читаемости программы желательно придерживаться структурного стиля записи: выделять отступами описания объектов программы и вложения структурных инструкций.

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

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

Инструкция присваивания имеет вид

X := Expr

где X – переменная, Expr – выражение, значение которого после вычисления присваивается переменной X. Типы X и Expr должны соответствовать друг другу, как и при бинарных операциях (см. выше Тему "Операции"). При различии типов разрешается присваивание вещественной переменной X целого значения Expr, строковой X – символьного значения Expr, но не наоборот. В ситуации, когда X – целая и Expr – вещественное, необходимо явное преобразование типа с помощью стандартной функции Trunc или Round. Для преобразования из символьного типа в целый и обратно используются стандартные функции Ord и Chr.

В языке Паскаль отсутствуют инструкции ввода/вывода – вместо них используются инструкции обращения к стандартным процедурам. Общий вид обращения аналогичен уже рассмотренному обращению к функции: P(S1, S2, …, SN). Здесь P – имя процедуры, а в скобках – список из одного или более фактических параметров. Через эти параметры в процедуру передаются значения, и значения могут возвращаться. В отличие от обращения к функции обращение к процедуре является простой инструкцией языка.

Инструкции ввода с клавиатуры: Read – потоковый ввод, несколько таких инструкций последовательно вводят все символы из единого потока, не теряя ни одного из них; ReadLn – построчный ввод, несколько таких инструкций вводят данные каждый раз с новой строки, игнорируя избыточные символы в строке. Вводиться могут данные только целых, вещественных, символьного и строкового типов. Целые и вещественные значения разделяются пробелами или признаками "конец строки". Строковые данные желательно вводить инструкцией ReadLn.

Инструкции вывода на экран: Write – потоковый вывод, несколько таких инструкций выводят все символы в единый поток, в одну строку экрана; WriteLn – построчный вывод, несколько таких инструкций выводят данные каждый раз с новой строки, включая в её конец обычно невидимый признак "конец строки". Значение каждого из элементов списка вывода по отдельности можно форматировать, организуя более красивую и понятную печать. Выводиться могут данные тех же типов, что и при вводе, а также булевские данные.

Пустая инструкция – это просто пустое место. Несколько символов "; " подряд задают несколько пустых инструкций. Пустая инструкция может быть помечена, и тогда на неё можно передавать управление инструкцией goto.

 

Лекция 4. Блок. Ветвление.

Инструкции альтернативы и варианта

 

Составная инструкция (блок) – это последовательность любых инструкций, заключённая в инструктивные (операторные) скобки begin и end. Таким образом, блок позволяет свести цепочку инструкций в одну структурную инструкцию.

Простейшее альтернативное ветвление представлено инструкцией if, общий вид которой на языке Паскаль и на псевдокоде:

 

if L then S1 else S2 если L то S1 иначе S2 конец_если

Возможен и сокращённый вариант инструкции: if L then S1

В любом из вариантов S1 и S2 – это инструкции (каждая в единственном числе), но зато они могут быть простыми или структурными, что позволяет вкладывать в if любые инструкции.

Если в качестве S1 или S2 вкладываются другие альтернативы, то здесь самое главное – не запутаться в вариантах сочетания условий. Всегда действует правило: ветвь else соответствует ближайшей предшествующей ветви then, ещё не имеющей парной ей ветви else.

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

case C of C1: S1; … CN: SN; else S end выбор C из C1: S1; … CN: SN; иначе S конец_выбора

где условие C – выражение порядкового типа; C1, …, CN – группы констант, однотипных с C; S1, …, SN, S – инструкции (каждая в единственном числе), но зато они могут быть простыми или структурными. Символ "; " после инструкции SN является необязательным. Любая из групп констант CK может быть списком одной или более констант: D1, D2, …, DM, – либо списком диапазонов (одного или более) констант: E1 .. E2, E3 .. E4, …, E2M-1 .. E2M. Если инструкция S – пустая, то можно опустить и ключевое слово else.

Инструкция case выполняется в два этапа: сначала вычисляется выражение C; затем, если полученное значение C принадлежит какому-то набору CK, то выполняется инструкция SK и управление передаётся за слово end, если же полученное значение C не принадлежит никакому набору CK, то выполняется инструкция S (если она есть) и управление также передаётся за слово end.

 

Лекция 5. Циклы. Инструкция


Дата добавления: 2015-07-15; просмотров: 171 | Нарушение авторских прав


Читайте в этой же книге: Глоссарий | Краткий курс лекций | Хранение информации | Классификация структур данных | Операции над структурами данных | Лекция 11. Подпрограммы-функции. | Interface | Лекция 13. Ссылочный тип. | Лекция 14. Алгоритмы поиска и выборки. | Бинарный поиск |
<== предыдущая страница | следующая страница ==>
Операции. Выражения| Безусловного перехода,

mybiblioteka.su - 2015-2024 год. (0.01 сек.)