![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Метод последовательной детализацииСодержание книги
Поиск на нашем сайте
x:=101; Следующим шагом детализируем действие "x-простое". Переборные задачи Задача. Вывести все тройки целых положительных a, b, c <100: a2+b2=c2 for a:=1 to 99 do Решение 1а. for a:=1 to 99 do Решение 1б. for a:=1 to 99 do Но! Нельзя заниматься преждевременной оптимизацией! Оператор безусловного перехода goto Оператор безусловного перехода goto служит для того, чтобы прервать естественную последовательность выполнения операторов и указать, какой из операторов программы должен выполняться следующим. Чтобы на некоторый оператор можно было совершить переход, его метка: оператор Метка представляет собой идентификатор и должна быть описана в разделе описания меток в виде: label имя [, имя ] Сам оператор goto имеет следующий синтаксис: goto метка Переход внутрь другого оператора запрещен: С помощью оператора goto можно моделировать все другие управляющие операторы языка. Пример 1. Цикл... эквивалентно Цикл... Пример 2. Цикл... эквивалентно Цикл... Пример 3. repeat эквивалентно lbl: Пример 4. while B do эквивалентно lbl1: Пример 5. if A then эквивалентно if not A then goto lbl1; Пример 6. case i of эквивалентно if i=1 then goto lbl1; Использовать оператор goto в программах небезопасно и нежелательно. Во всех случаях программу с использованием оператора goto можно заменить на эквивалентную программу без использования goto. В частности, процедуры break и continue введены в язык, чтобы заменить наиболее часто используемые случаи оператора goto перехода на оператор, следующий за циклом, и перехода на конец тела цикла.
Следует отметить, что команда безусловного перехода (JMP) обязательно присутствует в языке ассемблера и интенсивно используется. По существу, приведенные выше примеры показывают, как на языке ассемблера моделируются те или иные управляющие конструкции языка программирования высокого уровня. Подпрограммы. Процедуры и функции Подпрограммой называется последовательность операторов, оформленная специальным образом, имеющая имя и список параметров. Подпрограмма может вызываться многократно с различными параметрами. Цели введения подпрограмм:
Процедуры Пример. Составить процедуру вычисления среднего арифметического и среднего геометрического А и В. С ее помощью найти среднее арифметическое и среднее геометрическое пар A,B; A,C; B,C. procedure Mean(A,B: real; var MA,MG: real); var A,B,C: real; begin Синтаксис описания процедуры procedure имя [(список формальных параметров)] Оператор вызова процедуры имя [(список фактических параметров)] Количество и типы фактических параметров при вызове процедуры должны соответствовать количеству и типам формальных параметров. Функции Функция - это подпрограмма, возвращающая одно значение особым образом так, что это значение может быть непосредственно использовано в выражении. Пример. Функция function sign(x: real): integer; Для того, чтобы функция вернула значение необходимо в её теле имени функции присвоить некоторое значение. Имя функции в этом контексте ведет себя как обычная переменная, но имя функции нельзя использовать в правой части оператора присваивания в качестве значения этой переменной. var s,a: real; Для сравнения реализуем вычисление sign в виде процедуры. procedure CalcSign(x: real; var sign: integer);
var a: real; begin Переменная Result В Delphi и FreePascal неявно определена переменная Result, присваивание которой равносильно и хранит результат функции. function Sum(n: integer): integer; Локальные переменные подпрограмм не инициализируются (место на программном стеке под них отводится при выделении памяти под запись активации), поэтому их явная инициализация обязательна. Способы передачи параметров
|
||||||
Последнее изменение этой страницы: 2016-09-20; просмотров: 473; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.9.105 (0.01 с.) |