Стандартные процедуры вывода
Назначение: вывод информации на экран дисплея ПЭВМ. Можно выводить значения данных любого целого, любого вещественного, логического (BOOLEAN), литерного (СHAR) и строкового (STRING) типов.
Имя: существуют две процедуры WRITE и WRITELN.
Список формальных параметров:
- - количество параметров определяет программист;
- - порядок следования параметров определяет программист;
- - параметры могут быть любого целого, любого вещественного, логического (BOOLEAN), литерного (СHAR) и строкового (STRING) типов;
- - все параметры - только параметры-значения.
При выполнении процедур вывода вначале вычисляются значения фактических параметров, затем полученные значения в виде строк символов выводятся на экран, начиная с текущего положения курсора. После выполнения процедуры WRITE курсор находится на экране после последнего выведенного значения, а после выполнения процедуры WRITELN курсор располагается в начале строки экрана, следующей за строкой с выведенными значениями.
При обращении к процедурам вывода для любого фактического параметра через двоеточие можно задавать необязательную дополнительную информацию - целое число без знака, определяющее минимальное количество позиций строки экрана, отводимое под значение выводимого данного (формат вывода данного). Для вещественных данных в формате через двоеточие можно указывать вторую дополнительную часть - целое число без знака, определяющее количество цифр в дробной части выводимого вещественного числа.
IV.2.3. Составной оператор
Назначение
Составной оператор предназначен для объединения нескольких операторов в один единый.
Синтаксис
Синтаксис определяется диаграммой, приведенной на рис. 11.10.
Рис. 11.10. –Синтаксис составного оператора
Таким образом, составной оператор - последовательность операторов, отделенных друг от друга точкой с запятой, заключенная в операторные скобки начало (BEGIN) и конец (END).
Обратите внимание, что раздел операторов любой программы представляет собой единственный оператор - составной оператор, заканчивающийся точкой.
Семантика
С точки зрения структуры программы и ее исполнения, исполнение составного оператора - выполнение одного действия, состоящего из поддействий.
IV.2.4. Пустой оператор
Назначение
Помним, что оператор от оператора в Паскале отделяется точкой с запятой (а не оператор оканчивается точкой с запятой). Если все-таки поставили точку с запятой после оператора, за которым непосредственно не следует другой оператор, то для того, чтобы не возникало синтаксической ошибки, считают, что за точкой запятой появился дополнительный оператор - пустой оператор. Такая ситуация может возникнуть, если после оператора, стоящего перед операторной скобкой END поставлена точка с запятой:
... ; <пустой оператор> END
Существуют алгоритмы, в которых специально используются пустые операторы.
Синтаксис
Синтаксическая диаграмма пустого оператора показана на рис. 11.11.
Рис. 11.11. –Синтаксис пустого оператора
Никакими символами пустой оператор не изображается, но может появиться в любой программе.
Семантика
Никаких действий при исполнении пустого оператора не выполняется.
Примеры линейных алгоритмов.
Задача
Постановка задачи
Электрическая цепь состоит из n одинаковых сопротивлений величиной R, соединенных параллельно. К этой электрической цепи приложено напряжение величиной U. Определить общий ток в цепи I.
Математическая модель
Как всегда решение задачи мы должны начинать с изучения предметной области, чтобы затем построить математическую модель, описывающую поставленную задачу. Данная задача относится к разделу электричество в физике. Математической моделью, описывающей протекание тока в цепи, является закон Ома:
, где
I - ток в цепи, U - приложенное к цепи напряжение, Ro – общее сопротивление цепи.
Общее сопротивление цепи, состоящей из параллельно соединенных сопротивлений, определяется из следующего математического соотношения: величина обратная величине общего сопротивления равняется сумме величин обратных составляющим цепь сопротивлениям
Соотношения (1) и (2) являются математической моделью нашей задачи. С точки зрения математики - это два линейных уравнения с неизвестными Ro (во втором уравнении) и I (в первом уравнении).
Метод решения
Метод решения линейных уравнений известен - неизвестные переносятся в левую часть, а известные члены уравнения в правую. Подставив значения известных величин, и, выполнив действия, получаем значения неизвестных величин. Таким образом, метод решения предложенной модели в нашем случае будет таким - из уравнения 2 вычисляем Ro: Ro=R/n, а затем из уравнения 1 вычисляем I: I = U/Ro .
Информационная модель
Следующим этапом определяем информационную модель - перечень входной, выходной и промежуточной информации с указанием имен и типов, которые должен обрабатывать наш алгоритм.
Таблица 11.1. Информационная модель задачи
Статус
| Назначение
| Имя
| Тип данных
| Входная информация
| количество сопротивлений
| n
| integer
| Входная информация
| величина одного сопротивления
| R
| real
| Входная информация
| приложенное напряжение
| U
| real
| Выходная информация
| ток в цепи
| I
| real
| Промежуточная информация
| общее сопротивление
| R0
| real
|
Алгоритмическая модель
Переходим к разработке алгоритма. Это творческий процесс, в результате которого программист реализует информационную модель и метод решения математической модели, используя формально ограниченные возможности ЭВМ. Запишем разработанный алгоритм. Существуют много способов записи алгоритмом, наиболее используемые два - схема алгоритма (графическое изображение алгоритма) и запись алгоритма на алгоритмическом языке. В принципе эти два способа равноправны.
Схема алгоритма решения задачи приведена на рис. 11.12.
Рис. 11.12. –Схема алгоритма
Программная модель
Язык Паскаль является алгоритмическим языком (языком для записи алгоритмов) и языком программирования (языком написания программ). Запишем этот алгоритм на языке Паскаль (одновременно получаем программную модель на языке Паскаль).
Вспомним, программа на Паскале состоит из разделов.
Первый раздел - заголовок текста программы. Назовем ее FIZIKA:
PROGRAM FIZIKA;
Второй радел программы - описание используемых модулей. Модулями пока не пользуемся, поэтому второй раздел отсутствует.
Третий раздел программы - описание используемых меток. Мы знаем, что хорошие (структурированные) программы не должны содержать меток. А мы пишем только хорошие программы – поэтому третий раздел отсутствует.
Четвертый раздел текста программы - описание поименованных констант. Если мы посмотрим на метод решения, то увидим, что константы отсутствуют. Поэтому четвертого раздела программы не будет.
Пятый раздел программы - описание нестандартных типов данных. При решении задачи в информационной модели мы определили, что у нас используются только целый и вещественный типы данных. Они стандартные. Поэтому раздел пять в программе отсутствует.
Шестой - обязательный раздел каждой программы – описание переменных величин. В информационной модели перечислены четыре переменных. Опишем их:
VAR n : INTEGER;
Ro, R, U, I : REAL;
Не забываем, что по этому разделу распределяется оперативная память. В свободной части ОП выделяются участки соответствующего размера под каждую переменную. Эти участки получают имена переменных. Распределение памяти приведено на рис. 11.13.
| ОП
|
|
| .
.
.
|
| n
| ?
| под хранение данного типа INTEGER (2Б)
|
|
|
| Ro
| ?
| под хранение данного типа REAL (6Б)
|
|
|
| R
| ?
| под хранение данного типа REAL (6Б)
|
|
|
| U
| ?
| под хранение данного типа REAL 6(Б)
|
|
|
| I
| ?
| под хранение данного типа REAL 6(Б)
|
| .
.
.
|
| Рис. 11.13. –Распределение оперативной памяти
Седьмой раздел программы - описание (тексты) собственных процедур и функций. С такими видами текстов мы не знакомы, поэтому этот раздел в нашей программе отсутствует.
Восьмой - обязательный раздел - раздел операторов. Все операторы текста программы располагаются между операторными скобками BEGIN и END с точкой. Последовательность разработки раздела описания программ обычно следующая. Вначале между операторными скобками в виде комментариев пишутся пункты плана алгоритма. Затем по каждому пункту плана вставляются операторы, которые реализуют этот пункт. Для нашей задачи это выглядит следующим образом. Составим план:
BEGIN
{Ввод исходной информации}
{Расчет по формулам 2 и 1}
{Вывод результирующей информации}
END.
Перейдем к реализации каждого пункта плана.
При реализации ввода исходных данных мы должны ориентироваться не на себя, а на пользователя нашей программы. Поэтому наша программа должна указывать пользователю - какую информацию он должен вводить. Сообщение об этой информации выдается с помощью обращения к стандартной процедуре вывода с фактическим параметром - строкой символов:
WRITELN('Количество, величина сопротивления и напряжение ?')
Непосредственный ввод информации осуществляется с помощью обращения к стандартной процедуре ввода READLN с фактическими параметрами - именами вводимых переменных:
READLN (n, R, U)
Второй пункт плана реализуется с помощью двух операторов присваивания:
Ro:= R/n ;
I:= U/Ro
Последний пункт плана реализуется с помощью обращения к стандартной процедуре вывода WRITELN. Причем вывод должен быть информативным, т.е. содержать максимум информации о полученных результатах и исходных данных, при которых получены эти результаты. Поэтому в качестве фактических параметров при об ращении к процедуре вывода будут поясняющие тексты (строки символов) и имена переменных, значения которых выводятся:
WRITELN('В цепи, состоящей из ', n,
' параллельных сопротивлений ', R,
', к которой приложено напряжение ', U,
' ,протекает ток =', I)
Таким образом, текст программы выглядит следующим образом:
PROGRAM FIZIKA;
{Назначение: расчет тока в цепи, содержащей n одинаковых сопротивлений величины R, подключенных параллельно. К цепи приложено напряжение U. }
VAR n {количество сопротивлений (вход.инф.)}: INTEGER;
Ro{общее сопротивление цепи (промежуточная инф.)},
R {величина одного сопротивления (вход.инф.)},
U {приложенное напряжение (вход.инф.)},
I {протекающий ток (выход.инф.)} : REAL;
BEGIN
{Ввод исходной информации}
WRITELN('Количество, величина сопротивления и напряжение ?');
READLN (n, R, U);
{Расчет по формулам 2 и 1}
Ro:= R/n ;
I:= U/Ro ;
{Вывод результирующей информации}
WRITELN('В цепи, состоящей из ', n,
' параллельных сопротивлений ', R,
', к которой приложено напряжение ', U,
', протекает ток =', I)
END.
Программа FIZIKA состоит из пяти операторов, для реализации этой программы используется две разновидности операторов - операторы присваивания и операторы обращения к процедурам.
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|