Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Процедуры




17)

16)

14)

13)

Условный оператор

Оператор вывода

Writeln (['Текст пояснения ',]x1[,x2,x3,...]) - сначала идет имя процедуры Writeln, затем текст, имена переменных, арифметические выражения. Их может быть несколько либо одно имя.
Но необходимо помнить, что Writeln переводит курсор на новую строку в отличии от Write.
Арифметические выражения вычисляются, а затем выводятся.
При выводе вещественных чисел необходимо форматирование, иначе они будут представлены в форме с плавающей запятой.
Writeln(real2:5:2); Здесь переменная real2 выводится на экран ограниченная по ширине в 5 символов, а также с 2 знаками после запятой.

12) Оператор ветвления (условная инструкция, условный оператор) — оператор, конструкция языка программирования, обеспечивающая выполнение определённой команды (набора команд) только при условии истинности некоторого логического выражения, либо выполнение одной из нескольких команд (наборов команд) в зависимости от значения некоторого выражения.

Оператор ветвления применяется в случаях, когда выполнение или невыполнение некоторого набора команд должно зависеть от выполнения или невыполнения некоторого условия. Ветвление — одна из трёх (наряду с последовательным исполнением команд и циклом) базовых конструкций структурного программирования.

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

Условный оператор реализует выполнение определённых команд при условии, что некоторое логическое выражение (условие) принимает значение «истина» true. В большинстве языков программирования условный оператор начинается с ключевого слова if.

Циклические конструкции.

1. Цикл с предусловием.
Для реализации циклов с предусловием используется составной оператор, включающий оператор while, do, операторные скобки.
В общем виде цикл реализуется записью:
while <условие> do <действие>;
Если тело цикла содержит более одного действия, то необходимо использовать операторные скобки:
while <условие> do
begin
<оператор 1>;
<оператор 2>;
...
<оператор n>;
end;

2. Цикл с постусловием.
Для реализации цикла используется составной оператор, состоящий из операторов repeat и until.
В общем виде цикл записывается так:
repeat
<действие>;
until <условие>;

Пример: задано целое число. Вывести на печать все цифры введенного числа.
1 способ:

var a,b:longint; Begin read(a); repeat b:=a mod 10; writeln(b); a:=a div 10; until a=0; End.


2 способ:

var a,b:longint; Begin read(a); while a<>0 do begin b:=a mod 10; write(b:3); a:=a div 10; end; End.

 

3. Цикл с параметром.

Для реализации в языке Pascal используется составной оператор, состоящий из операторов for, to, downto, do и при необходимости из операторных скобок. Переменная параметр обязательно объявляется в декларационной части программы и может принадлежать одному из порядковых типов.
Если при изменении переменной параметра необходимо использовать переход к следующему значению, то используется оператор to; если переход необходимо осуществить к предыдущему значению, то используется оператор downto. Тогда в общем виде цикл записывается так:
for I:=I0 to In do
begin
<оператор 1>;
<оператор 2>;
...
<оператор n>;
end;

В Турбо Паскале пять структуированных типов:

массивы;

строки;

множества;

записи;

файлы;

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

Массив - это упорядоченное, ограниченное множество однотипных элементов, объединенных общим именем. Тип компонент (элементов) называется базовым и м.б. любым кроме файлового. Для обозначения элементов массива используется переменная с индексами.

Например: A[25], B[5, 8], X[i], Y[i, j], R[n+1].
Размер массива (длина) – число элементов массива.

Размерность массива – число индексов в массиве.

Индекс определяет положение элемента в массиве. В качестве индекса м.б. использовано выражение (индексное), переменная или константа (частный случай выражения). В качестве индексов м.б. любой порядковый тип кроме Longint. Тип индексов д.б. скалярным, упорядоченным и конечным. Чаще всего используются индексы интервального типа, при этом они м.б. отрицательными.

Все компоненты массива одинаково доступны и могут выбираться в произвольном порядке.
В программе массивы д.б. описаны одним из двух способов:

 

 

С использованием раздела описания типов:

Type T = array[T1] of T2;
Var A, B, C:T;
где:
T - имя типа; {регулярный тип}
T1 - тип индекса;
T2 - тип компонент. {базовый тип}
Тип, определенный с помощью конструкции array.. of называется регулярным.
Например:
Type
vec_r = array[1..n] of real;
vec1_i = array[1..n] of integer;
vec1_l = array[False..True] of Boolean;
vec1_S = array[‘A’1.. ‘Z’] of char;
Var
A, B:vec_r;
N, K:vec_i;
V, W:vec_l;
R, S:vec_s;

Без использования раздела описания типов:

Var A, B, C: = array[T1] of T2;
Например:
Var
A, B: array[1..n] of real;
N, K: array[1..n] of integer;
V, W: array[False..True] of Boolean;
R, S: array[‘A’1.. ‘Z’] of char;

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

Например: X:=Y.

?15)

Двумерный массив в Паскале трактуется как одномерный массив, тип элементов которого также является массивом (массив массивов). Положение элементов в двумерных массивах Паскаля описывается двумя индексами. Их можно представить в виде прямоугольной таблицы или матрицы

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

type
matrix= array [1..5, 1..10] of integer;
var
a, b: matrix;

Табулирование функции — это вычисление значений функции при изменении аргумента от некоторого начального значения до некоторого конечного значения с определённым шагом. Именно так составляются таблицы значений функций, отсюда и название — табулирование. Необходимость в табулировании возникает при решении достаточно широкого круга задач. Например, при численном решении нелинейных уравнений f(x) = 0, путём табулирования можно отделить (локализовать) корни уравнения, т.е. найти такие отрезки, на концах которых, функция имеет разные знаки. С помощью табулирования можно (хотя и очень грубо) найти минимум или максимум функции. Иногда случается так, что функция не имеет аналитического представления, а её значения получаются в результате вычислений, что часто бывает при компьютерном моделировании различных процессов. Если такая функция будет использоваться в последующих расчётах (например, она должна быть проинтегрирована или продифференцирована и т.п.), то часто поступают следующим образом: вычисляют значения функции в нужном интервале изменения аргумента, т.е. составляют таблицу (табулируют), а затем по этой таблице строят каким-либо образом другую функцию, заданную аналитическим выражением (формулой). Необходимость в табулировании возникает также при построении графиков функции на экране компьютера.

В Turbo Pascal в настоящее время имеется большое количество стандартных подпрограмм и данных, объединенных в несколько стандартных модулей. Они позволяют упростить процедуру написания программ, более полно использовать возможности компьютеров типа IBM PC, возможности операционной системы MS DOS. В библиотеке имеются следующие стандартные модули:

 

 

System - основная библиотека;

Strings - работа с ASCIIZ-строками;

Crt - работа с консолью;

Graph - графическая библиотека;

Dos - использование возможностей ДОС;

WinDos - использование возможностей ДОС с использованием ASCIIZ-строк;

Overlay - организация оверлейных структур;

Printer - работа с принтером;

Тurbo3 - связь с программами Turbo Pascal 3.0;

Graph3 - связь с графикой Turbo Pascal 3.0.

Модули Strings, Graph, WinDos, ТurboЗ и Graph3 находятся соответственно в файлах STRINGS.TPU, GRAPH.TPU, WINDOS.TPU TURB03.TPU и GRAPH3.TPU, остальные - в файле TURBO.TPL.

Так как необходимость обеспечить совместимость с программами, написанными в терминах среды Turbo Pascal 3.0, возникает все реже и реже, модули ТurboЗ и Graph3 здесь рассматриваться не будут.

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

Стандартная подпрограмма (процедура или функция) - подпрограмма, включенная в библиотеку программ ЭВМ, доступ к которой обеспечивается средствами языка программирования. Вызывается она по имени с заданием фактических параметров с типом описанным при описании данной процедуры в библиотечке процедур и функций.

Из набора стандартных процедур и функций по обработке одного типа информации составляются модули. Каждый модуль имеет своё имя (мы уже хорошо знакомы с модулями Crt, Graph). Доступ к процедурам и функциям модуля осуществляется при подключении этого модуля (Uses Crt, Graph).

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

Структура процедуры имеет следующий вид:

Procedure <имя процедуры>(формальные параметры: их тип);Var (локальные переменные)begin...end;

Процедура вызывается по имени:

<имя процедуры> (фактические параметры);

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

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

Заголовок процедуры может выглядеть так:

PROCEDURE GG(a,b,c:integer); вызываться так: GG(3,n,m)

Здесь a,b,c-формальные параметры, а 3, n, m-фактические параметры

Таким образом в процедуру передаются значения: a=3, b=n, c=m

Переменные описанные в процедуре после слова Var, являются внутренними переменными процедуры или промежуточными, они не являются данными для операций внутри процедуры и не являются результатом её выполнения, а нужны лишь для промежуточных действий. Данные и результаты описываются в круглых скобках после имени процедуры. Перед описанием переменных-результатов пишут служебное слово var.

Например:

Procedure express(a,b,c: real; var x,y:real);Var z: real;begin z:=a+ b+ c; x:=sqr(z); y:=sqrt(z);end;

Эту процедуру можно вызвать следующим образом:

express(7.6, 6.8, 9.5, x1, x2);

Формальные входные параметры a, b, c принимают значения соответствующих фактических параметров a=7.6; b=6.8; c=9.5.

При этих значениях выполняется процедура. Результатом выполнения процедуры являются x, y, которые передают свои значения соответствующим фактическим параметрам x1, y1. Таким образом в основной программе будем иметь x1=20, y1=22.

В качестве фактических параметров могут быть константы, переменные, выражения, массивы. В качестве формальных параметров могут быть только переменные(константы и выражения недопустимы).




Поделиться с друзьями:


Дата добавления: 2015-03-29; Просмотров: 423; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.039 сек.